Распространённая задача программистов в работе с геопространственными данными — отобразить маршруты между различными точками. Решением, которое может понадобиться в разработке веб-сайта, делимся к старту курса по Fullstack-разработке на Python.
User
Век поиска кратчайшего решения задачи о кратчайшем пути
TL;DR Очень подробный разбор алгоритмов решения задачи о кратчайшем пути от классики до двунаправленного А* и ALT с кодом и примерами на OSM
Люди пытались найти более быстрые способы передвижения на протяжении всей своей истории. Появление качественной дорожной системы в римской империи в своё время привело к её расцвету, но со временем выяснилось, что и в продуманных дорожных системах бывают забавные изъяны, как например в небезызвестной задаче о кёнигсбергских мостах, считающейся отправной точкой возникновения теории графов. Неудивительно и то, что с развитием вычислительной техники логистические задачи стали одними из первых, над которыми трудились первопроходцы компьютерных наук. Задача о кратчайшем пути -- одна из них, звучит достаточно просто: есть несколько городов и дорог, соединяющих пару городов между собой, мы хотим попасть из города А в город Б пройдя при этом минимальное расстояние. Первый системный подход к этой задаче был описан в работе Эгервари в 1931г., спустя 25 лет Эдсгер Дейкстра придумал алгоритм, который сейчас является частью любого уважающего себя базового курса алгоритмов на графах. На нём же, будем честны, заканчиваются знания о кратчайших путях у большинства профессиональных разработчиков, ибо сценариев, где реализации с википедии/stackoverflow будет не хватать, крайне мало.
Может показаться, что на самом деле просто не было существенного прогресса с 60х годов, так как Дейкстра предоставил почти асимптотически оптимальный алгоритм решения задачи. На самом деле нет, прогресс был и придумали много чего интересного, хоть и действительно с того времени фокус сместился на другие задачи. Приглашаю под кат если интересно узнать что такого напридумывали, что используется в современных логистических системах, почему меня огорчает отсутствие учёта флага единства в HOMM3 при расчёте пути, ну и наконец, что за мужики на картинке выше рядом с Дейкстрой?
Как мы делаем опенсорс курсы для программистов от программистов
Покоцанные, но не сломленные, мы представляем проект, над которым работали полтора года по ночам. Курсы по программированию с задачами в online IDE и прагматичной теорией. Никаких сертификатов и гарантий трудоустройства. Сплошной хардкор и опенсорс!
Похоже, я придумал свой алгоритм поиска кратчайшего пути (upd: меня опередили...)
Всем привет! Я реализовал, похоже, собственный алгоритм поиска кратчайшего пути с отрицательными ребрами графа.
Почему собственный? Я искал подобное решение, но не нашел, возможно, оно уже было реализовано, просто плохо поискал. Жду Нобелевскую премию =)
Додумался я до него путем модификации классического Дейкстры. Прошу адекватно отнестись к содержимому, ибо это моя первая статья, и, возможно, я ничего не придумывал и, вообще, этот алгоритм не работает вовсе (но по многочисленным тестам он работает правильно).
Людвиг. Победи прокрастинацию. Как перестать откладывать дела на завтра (инструменты из книги)
Одна из самых практичных книг по тайм-менеджменту. Помогает в борьбе с откладыванием дел на потом и в более стоящем использовании своего времени. Расскажу про 3 инструмента, которые взял в работу.
Топовые подходы к решению алгоритмических задач
Привет! Меня зовут Дмитрий Королёв, я бэкенд-разработчик в Авито. В этой статье я расскажу про ключевые аспекты и концепции работы с наиболее популярными алгоритмами и структурами данных. Это поможет и в реальных проектах, и чтобы глубже понять алгоритмические принципы. Статья подойдёт специалистам, которые хотят углубить свои знания в программировании, и укрепить навыки нахождения оптимальных решений алгоритмических задач.
Что мы делаем, когда у нас заказывают аналитику без нормальных формулировок
Сюр?
Сюр. Но встречается на каждом шагу.
Вопрос решается с помощью Self-service, который даёт всем желающим возможность работать в базе данных на низком уровне. И он может удовлетворить как айтишников, с которых снимается уйма хлопот, так и бизнес-подразделения, которые теперь могут получать все необходимые расчёты ровно в том виде, который их полностью устраивает. То есть это отличный способ дать бизнесу возможность быстро находить ответы на свои вопросы.
Пользовательские атрибуты в Python
Куда идти дальше, когда перерастаешь уровень сложности senior
Когда ты только начинаешь свой путь в IT как младший специалист, позиция старшего кажется заоблачной далью. Возможно, это недалеко от правды. Конечно, есть упоительные истории, которые рассказывают, что кто-то левелапнулся с джуна до сеньора всего за 13 месяцев...
Но копнёшь чуть глубже и оказывается, что у человека за спиной аж 3 года опыта до его трудоустройства джуном в конкретной компании. Так что за год с небольшим этот путь пройти вряд ли получится. В среднем же переход от нижней ступени до верхней занимает около 10 лет.
И когда ты всё-таки забираешься на эту вершину, то вновь оказываешься у распутья. Позади много лет упорной работы, итогом которой становятся солидные офферы и невероятная востребованность на рынке. Что в таком случае может побудить заняться поиском новых вызовов вместо дальнейшего горизонтального роста в очень комфортных условиях?
Как системному аналитику не делать чужую работу
Выжимка требований и обязанностей после исследования кучи вакансий, частые хотелки бизнеса и реальные задачи системного аналитика. Отсеиваем лишнее. Покажите своему руководителю, чтобы перестать делать всё, везде и сразу.
Введение в Tkinter
Всем доброго времени суток!
Tkinter – это кроссплатформенная библиотека для разработки графического интерфейса на языке Python (начиная с Python 3.0 переименована в tkinter). Tkinter расшифровывается как Tk interface, и является интерфейсом к Tcl/Tk.
Tkinter входит в стандартный дистрибутив Python.
Мега-Учебник Flask Глава 2: Шаблоны (издание 2024)
После завершения главы 1 у вас должно получиться простое, но функциональное веб-приложение. Во второй части серии мега-учебника по Flask я собираюсь обсудить, как работать с шаблонами.
Об одной изящной задаче
Хабр, привет! В этой статье хочу поделиться с вами одной изящной задачей из нашего прошедшего квеста, которая мне очень понравилась и, как мне кажется, заслуживает вашего внимания.
Имеется функция magic()
, принимающая три целочисленных аргумента, в теле которой определены константы a, b, c
, являющиеся натуральными числами. Требуется определить значения констант a, b
и c
за минимальное количество вызовов данной функции.
Основы теории цвета. Система CIE XYZ
Недостаточные или ошибочные знания большинства IT специалистов относительно цветовоспроизведения, по моему мнению, объясняются тем, что на изучение теории цвета тратится очень мало времени, так как её основы обманчиво простые: так как на сетчатке глаза есть три вида колбочек, то смешивая определённые три цвета можно без проблем получить всю радугу цветов, что подтверждается регуляторами RGB или CMYK в какой то программе. Большинству этого кажется достаточно, и ихняя тяга к знаниям в этой области заканчивается. Но, процессы получения, создания и воспроизведения изображений готовят Вам множество нюансов и возможных проблем, решить которые поможет понимание теории цвета, а также процессов в основе которых она лежит. Этот топик призван восполнить пробел знаний в области цветоведения, и будет полезен большинству дизайнеров, фотографов, программистов, а также, надеюсь, другим IT специалистам.
Попробуйте дать ответ на следующие вопросы:
- почему физика не может дать определения понятию цвета?
- какая из семи основных единиц измерений СИ основывается на свойствах зрительной системы человека?
- какого цветового тона нет в спектре?
- как удалось измерить ощущение цвета человеком ещё 90 лет назад?
- где используются цвета, которые не имеют яркости?
Если хоть один на вопрос у Вас не нашёлся ответ, рекомендую заглянуть под кат, где Вы сможете найти ответы на все эти вопросы.
Наивный байесовский классификатор. Основная идея, модификации и реализация с нуля на Python
Наивный байесовский классификатор (Naive Bayes classifier) — вероятностный классификатор на основе формулы Байеса со строгим (наивным) предположением о независимости признаков между собой при заданном классе, что сильно упрощает задачу классификации из-за оценки одномерных вероятностных плотностей вместо одной многомерной.
Помимо теории и реализации с нуля на Python, в данной статье также будет приведён небольшой пример использования наивного Байеса в контексте фильтрации спама со всеми подробными расчётами вручную.
Зачем айтишнику ехать в Екатеринбург
Екат, Екб, Ебург и Катер – у Екатеринбурга много неофициальных имен. А недавно к ним добавились «Центр мерзотной либероты» и «Город Бесов» – звания, которыми наградил уральскую столицу одиозный журналист Владимир Соловьев. Как бы вы ни относились к пропагандисту, в одном он точно прав – город отличается от всех других в России. Рассказываем, почему в нем стоит побывать всем, кто (на время?) отложил идею о релокации и собирается строить карьеру в российском IT.
Хочу работать аналитиком. Как пройти собеседование?
Привет! Я Женя, ведущий менеджер по персоналу СИГМЫ — каждый день я ищу таланты среди ИТ-специалистов и приглядываюсь к бодрым студентам из технических вузов. Решила остановиться на теме, которая в силу профессиональных обязанностей меня очень волнует — поиск аналитиков. Да, материалов по этому направлению немало, но поиск работы и подготовка к собеседованиям всегда актуальны, особенно для начинающих специалистов. Именно с этой стороны и зайду😊.
Кратко про Nameko Python
Привет, Хабр!
Nameko, как фреймворк для Python, предлагает удобные абстракции и инструменты для создания микросервисов, ориентированных на сообщения и события.
С Nameko можно получить не только инструмент для создания микросервисов, но и платформу для реализации распределенных систем с поддержкой Dependency Injection, позволяющей легко интегрировать различные компоненты приложения.
Замыкания и декораторы в Python: часть 2 — декораторы
Уважаемые читатели, рад вас приветствовать в новой статье. Этот материал является продолжением предыдущей публикации, посвященной замыканиям. В данной части обзора мы углубимся в тему декораторов.
Эта статья написана в первую очередь для тех, кто только начинает свой путь в программировании или начал изучать Python. Потому здесь я не буду рассматривать декораторы классов, чтобы сделать материал более доступным для новичков. Тем не менее, для тех, кто изучит данную статью, не составит труда разобраться в декораторах классов, так как они не имеют существенных отличий от рассматриваемых здесь декораторов функций.
Information
- Rating
- Does not participate
- Registered
- Activity