Обновить
273.34

Алгоритмы *

Все об алгоритмах

Сначала показывать
Порог рейтинга
Уровень сложности

Часть 1. Как всё началось — страх потеряться в небе и POISK решений

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.4K

Весной 2024 года я — курсант летной школы по классу PPL (частный пилот) с несколькими десятками часов налёта, осознал то, чего старается избегать каждый лётчик: потеряться в пространстве без визуальных ориентиров, например оказался под плотной облачностью без привычного GPS‑сопровождения. Спутниковые сигналы в России с 2022г заблокированы по известным причинам. До этого момента я воспринимал навигатор в телефоне как «дополнительный инструмент». Но когда на панели вдруг погас зелёный индикатор спутников, по спине пробежал холодок: как отработать возврат в аэродромную зону в «белом» небе без визуальных ориентиров?

Известно, что инерциальные навигационные системы (ИНС) могут определять местоположение, ориентацию и скорость объекта без внешних источников. Внутри них наработки десятилетий — набор ускорителей и гироскопов, расположенных ортогонально, и вычислитель, который интегрирует измеренные ускорения и угловые скорости. ИНС — это, говоря простыми словами, «супер‑мертвый пеленг»: она интегрирует собственные ускорения и вращения, чтобы определить, куда и на сколько мы сместились. Достоинство такой системы — полная автономность, независимость от спутников и наземных радиомаяков. Именно это и нужно в эпоху блокировок сигналов, когда GPS может исчезнуть в самый неподходящий момент. К стати — не только в воздухе, но в любой среде — будь‑то тоща воды или космическое пространство.

Однако у классического «мертвого счёта» есть серьёзный недостаток: ошибки интегрирования накапливаются во времени. Даже самые точные акселерометры с погрешностью порядка 10 микрон могут дать ошибку в 100 метров всего за 5 минут полета, если её не корректировать. Таким образом за полетный час рискуем «улететь» на пару километров в сторону и потерять визуальные ориентиры при ВП. Поэтому в авиации инерциальные системы обычно работают в связке с внешними источниками (радиомаяками, GPS и т. п.), которые регулярно сбрасывают накопившийся дрейф. В моем проекте основная задача — обеспечить не менее часа автономной работы с минимальным дрейфом. Предполагается возможность корректировать корректировать свою позицию либо по сигналам VOR DME, либо по триангуляции на вышках СС, либо визуально (подтверждение пилотом прохождения крупных объектов‑маркеров).

Читать далее

Практический CQRS и Event Sourcing на Go

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели8.3K

Event Sourcing и CQRS — это мощные архитектурные подходы, которые заменяют традиционное CRUD-управление состоянием на журналирование событий и разделение операций записи и чтения для масштабируемости и надежности. Вместо прямого изменения данных система сохраняет каждое изменение как событие, что обеспечивает полный аудит, контроль конкурентности и гибкость в обработке данных.

Читать далее

Три слагаемых AGI

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.6K

Как-то часто стали встречаться статьи нейро-скептиков: людей, которые всю эту движуху вокруг ИИ считают хайпом, пузырем и чем-то явно переоцененным. Скептицизм - это естественно, полезно, и эволюционно-оправдано для человека. Более того, я и сам большой скептик: на все смотрю через призму инженерного снобизма, проф-деформаций и врожденной недоверчивости. И мне, также, трудно самому себе признаться, что весь мой, более чем 20-ти летний опыт в IT - скоро можно будет выбросить на помойку. Я тоже цепляюсь за те логические соломинки, которые мне позволяют надеяться на то, что я останусь в строю.

Но мой персональный нейро-скептицизм простирается еще шире. Он, во многом, касается и возможностей природных нейросетей - наших с вами мозгов. Я очень скептичен в отношении интеллектуальной исключительности человека. Я нахожу чрезмерно самонадеянными высказывания о том, что мы обладаем какой-то уникальной способностью к творчеству и к тому, что мы, в действительности, все-вокруг контролируем. Наш интеллект, мало того, что неравномерно распределен в популяции, так еще и очень нестабилен во времени: мы очень зависимы от стресса, усталости, уровня гормонов и нейромедиаторов... Умнейшие из нас, порой, могут вести себя как полнейшие дураки. И это нормально. А средний по больнице интеллект человечества - хм, даже не знаю как сказать, чтобы не обидеть всю цивилизацию. Даже в отношении свободы воли, в научном сообществе сейчас доминирует идея о том, что ее и нет вовсе.

Читать далее

Когда одни связи объясняют другие: QAP-корреляция и QAP-регрессия

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.6K

В рамках анализа социальных сетей может понадобиться проверить гипотезу о том, объясняются ли связи одного рода (например, деловые) - связями другого рода (например, дружескими и/или родственными). Сделать это для сетевых данных (графов) можно с помощью метода QAP-корреляции и QAP-регрессии. Ниже подробнее и на примерах о том, почему это нужно делать именно так, и как это делать, например, в программе UCINet. (Спойлер: будут ссылки на реализацию методов в R и Python).

QAP-регрессия - Читать далее

Защита от невидимого шума: как ломать и чинить мультимодальные модели

Уровень сложностиСложный
Время на прочтение14 мин
Охват и читатели4K

Всем привет! Меня зовут Евгений Пищик, и сегодня я хочу поделиться с вами опытом разработки метода переноса нейросетевых атак, над которым я работал в рамках мастерской по сервисам и платформам ИИ в Инженерно‑математической школе НИУ ВШЭ и VK.

С каждым апдейтом нейронных сетей растёт и количество исследований, посвящённых их уязвимостям. Когда от работы моделей зависят кредитные решения, автопилот на шоссе или диагноз в кардиологии, цена ошибки стремится к неприлично высокой отметке. Неудивительно, что вопросы безопасности — от поиска уязвимостей до проектирования методов защиты — сегодня выведены в первую линию приоритетов.

Параллельно эволюционируют мультимодальные модели, которые используют сразу несколько моделей‑компонент для разных модальностей, тем самым открывая больше возможностей для атак. Логичный след — атаки, мигрировавшие из классического одномодального мира, которые используют особенности мультимодальной структуры моделей. Сегодня в статье разберём, как перенести атаку с визуального энкодера на целую мультимодальную систему.

Читать далее

Роботы не покупают эклеры

Время на прочтение12 мин
Охват и читатели3.4K

Вам знакомо такое выражение: 1 доллар — тому кто придумал, 2 — тому кто сделал и 10 — тому кто продал? Думаю, каждый прочувствовал на себе все «прелести» капитализма и у каждого есть мнение на этот счет. Реалистичный, взрослый взгляд на все это состоит в понимании простой истины: мир — это рынок, а идеи и их реализация — все это убытки до тех пор пока нет продаж. Но на самом деле продажи — это просто наука и как любая наука она обладает внутренними, очень глубокими проблемами и очень сильными противоречиями. Обо всем этом и пойдет речь в данной статье.

Купить эклер

Алгоритм проталкивания предпотока: как найти максимальный поток в сети (для начинающих)

Время на прочтение8 мин
Охват и читатели1.6K

Привет, будущие инженеры и программисты! Сегодня мы разберём ещё один крутой алгоритм для поиска максимального потока — алгоритм проталкивания предпотока (Push‑Relabel). Если алгоритм Форда‑Фалкерсона — это как если бы вы искали дорогу в городе с фонариком, а алгоритм Диница — как если бы вы строили уровни и шли по ним этажами, то проталкивание предпотока — это как если бы вы взяли гидравлический домкрат и начали «выдавливать» воду из источника!

Представьте, что у вас есть система водопроводных труб, и вы хотите прокачать максимальное количество воды из водонапорной башни в городской район. Но вместо того чтобы искать пути и аккуратно направлять воду, вы решили действовать по‑другому: накачать воду под давлением в башню и позволить ей «выдавливаться» через трубы, постепенно находя оптимальные пути. Это и есть идея алгоритма проталкивания предпотока!

Читать далее

Массивы в Pine Script: что это такое, как создавать, использовать и исправлять ошибки

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели1.2K

Подробно знакомимся с массивами в Pine Script: что это такое, как создавать массивы с фиксированным или динамическим размером, как с ними работать, менять содержимое, выполнять арифметические операции и визуализировать результаты на графике. Также разбираем типичные ошибки, которые возникают при работе.

Всё это пригодится при создании пользовательских индикаторов и стратегий в TradingView.

Читать далее

Немного про SPARQL, или как мы заняли призовое место на Text-To-SPARQL Challenge на ESWC 2025

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели712

Привет, Хабр! Мы — Даниил Березин и Роман Авдеев, магистранты кафедры банковских информационных технологий в МФТИ (СберТех).

В рамках дипломной работы под руководством кандидата технических наук, научного сотрудника группы «Прикладное NLP» AIRI Олега Сомова мы участвовали в соревновании Text‑To‑SPARQL Challenge на конференции ESWC 2025 (Порторож, Словения).

Среди 9 команд из ведущих европейских исследовательских центров мы заняли:

🥉 3-е место в треке DBPedia

🏅 5-е место в треке с корпоративным графом знаний

В этой статье расскажем, как проходило соревнование, какие подходы мы пробовали и какие уроки извлекли.

Читать далее

Как мы разработали гибкий пайплайн для прогноза временных рядов любых метрик

Время на прочтение20 мин
Охват и читатели3.5K

Практически каждый ML‑разработчик сталкивался с прогнозированием временных рядов, ведь окружающие нас сущности и метрики зачастую зависят от времени.

Меня зовут Александр Елизаров, я работаю в группе аналитики ключевых показателей в бизнес‑группе Поиска и рекламных технологий. В течение нескольких лет нам приходилось прогнозировать большое количество временных рядов разных доменных областей: от поисковой доли Яндекса до DAU определённых сервисов. Чтобы успешно справляться с этой задачей, мы вместе с коллегами разработали собственный прогнозный фреймворк. В этой статье я расскажу, как создать универсальный и гибкий пайплайн для прогнозирования. Под катом рассмотрим:

— правильно выстроенную иерархию данных;

— методы консистентного предсказания абсолютных и относительных метрик;

— частые проблемы моделей и то, как мы их фиксили;

— а также все важные этапы, о которых нельзя забывать, когда работаешь с временными рядами.

Читать далее

Биомимикрия: как природные структуры вдохновляют инженеров на создание новых технологий. Часть 2

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели1.7K

Привет, Хабр! Природа остаётся величайшим источником инженерных решений, вдохновляя учёных и разработчиков на создание технологий, меняющих мир. От микроскопических слизевиков до крыльев бабочек — биомимикрия открывает новые горизонты, позволяя нам переосмысливать материалы, структуры и механизмы.

В этой статье мы продолжаем рассказывать вам о том, как природные механизмы вдохновляют на создание новых технологий. Впереди ещё больше примеров, где биология, физика и инженерия пересекаются, рождая инновации будущего.

Часть 1.

Читать далее

Как выбрать оффер? Задача о разборчивой невесте и правило 37%

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели11K

В течение месяца вы проходите собеседования, получаете офферы — и хотите выбрать лучший. Но каждый оффер живёт недолго: если не согласитесь вовремя, к нему уже не вернуться. Как действовать, чтобы выбрать самый лучший?


Это версия классической задачи о разборчивой невесте. У неё есть красивая оптимальная стратегия — правило 37\%. Возможно, вы о нём слышали. Но знаете ли вы, почему оно работает? И как вообще до него додуматься?


Часто алгоритмы — это эвристики, без гарантии оптимальности. Но в этой задаче всё иначе. Мы шаг за шагом переоткроем правило  37 \% и докажем, что он действительно лучший

Недавно я узнал о Теореме о Шансах — более общем подходе, который, неожиданно, работает гораздо проще, чем классическое доказательство. По-русски о ней еще никто не писал

В статье мы разберём эту теорему, выведем правило 37\% и увидим, как в задаче естественно появляется число e — и какой у него смысл на самом деле

Эта задача стоит того, чтобы пройти её до конца. Будет понятно, красиво и интересно

К правилу 37%

Как обойти ограничения TradingView и забирать данные с графика без использования платных функций (через Pine Script)

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели16K

Приветствую! Я Никита, разработчик торговых стратегий и инструментов в международном криптовалютном фонде Wild Boar. Здесь пишу об алгоритмической торговле, делюсь опытом и помогаю внимательным читателям владеть не только ситуацией на рынке, но и всем (почему – см. внутри). 

В этой статье делюсь нестандартным методом, который позволяет обойти ограничения TradingView и забирать данные с графика без использования платных функций.

Читать далее

Ближайшие события

Алгоритм Форда–Фалкерсона: как найти максимальный поток в сети (для начинающих)

Время на прочтение7 мин
Охват и читатели2.4K

Привет, будущие инженеры и программисты! Сегодня мы разберём классический алгоритм Форда–Фалкерсона — дедушку всех алгоритмов максимального потока. Если алгоритм Диница — это современный спорткар, то Форд–Фалкерсон — это надёжная "классика", которая учит основам и помогает понять суть задачи.

Представьте, что вы владелец сети трубопроводов, и вам нужно понять, сколько воды можно прокачать из водохранилища в город. У каждой трубы есть максимальная пропускная способность, и вода может течь только в одном направлении. Ваша задача — найти такой способ распределения воды по трубам, чтобы в город попало максимальное количество воды. Это и есть задача максимального потока!

Читать далее

Алгоритм Диница: как найти максимальный поток в сети (для начинающих)

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели2.5K

Привет, будущие инженеры и программисты! Сегодня мы погрузимся в мир алгоритмов и разберём одну очень крутую штуку — алгоритм Диница. Звучит сложно? Не переживайте, мы разберём его по полочкам, как конструктор LEGO, и вы поймёте, как он помогает решать реальные задачи.

Представьте, что у вас есть город, и по его дорогам едут машины. У каждой дороги есть своя пропускная способность — сколько машин может проехать по ней за час. Ваша задача — понять, сколько всего машин может проехать из одной точки города (например, от завода) в другую (например, до торгового центра) за час, используя все дороги. Это и есть задача о максимальном потоке!

Читать далее

Алгоритмы для работы с большими данными в Go: HyperLogLog и Count-Min Sketch

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели3.2K

Алгоритмы для работы с большими данными

Всем привет! Для начала давайте разберем что такое вообще Алгоритмы для работы с большими данными, основная суть алгоритмов для работы с большими данными  — это эффективная обработка огромных объёмов информации при минимальных вычислительных ресурсах (памяти, CPU, диске). Их суть — жертвовать точностью ради скорости и масштабируемости.

Читать далее

Использование машинного обучения для оптимизации логистических процессов

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели1.9K

Привет! Сегодня в логистике мы сталкиваемся с множеством вызовов, требующих новых подходов. Глобализация, большие объёмы данных, изменчивость потребительских настроений и стремление к экономии делают традиционные способы управления недостаточно эффективными. Поэтому машинное обучение оказывается как никогда кстати и становится важным инструментом для оптимизации логистических процессов.

Традиционная организация цепочек поставок часто сталкивается с проблемами. Например, прогнозирование и планирование могут быть некорректными из-за отсутствия своевременных и точных данных. Для координации участников цепочек поставок требуются значительные, но не всегда оправданные ресурсы. Непредсказуемые обстоятельства, такие как погодные условия или колебания спроса, тоже могут приводить к сбоям. Работа вручную также повышает вероятность ошибок (человеческий фактор, куда ж без него) и снижает общую эффективность.

Читать далее

Конечный автомат, машина Тьюринга, порождающая грамматика и компьютер: в чём разница

Уровень сложностиСложный
Время на прочтение12 мин
Охват и читатели2.3K

В данной статье мы разъясним вопрос, который, находясь в самой основе теоретического программирования, при этом парадоксальным образом очень часто объясняется неправильно или неполно, причём эти неправильные объяснения даже иногда входят в учебные пособия (по крайней мере, известный китайский чатбот не смог мне правильно ответить на вопрос об отличии машины Тьюринга от конечного автомата, хотя, казалось бы, они приходятся чатботу ближайшими родственниками, и он мог бы изучить область деятельности своих создателей в обучающей выборке).

А в конце мы немного пофилософствуем на тему, что же такое программа и что такое семантика.

Читать далее

goYSDA: Как мы в ШАДе переизобрели и сделали непрерывную игру Го, выкинув из него сетку

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели1.5K

Привет, Хабр!

Все мы знаем Го — глубокую, медитативную игру на доске 19x19. Камни, пересечения, территории... А что, если выкинуть саму сетку и разрешить ставить камни куда угодно в пределах доски?

Мы в команде YSDA (Yandex School of Data Analysis или Школа Анализа Данных, ШАД) задались этим вопросом и решили проверить. Получилось азартно, хаотично и, что самое главное для нас как разработчиков, — чертовски интересно с точки зрения алгоритмов.

В этой статье я расскажу, как мы реализовали эту идею на Python и Pygame, с какими геометрическими головоломками столкнулись и как Диаграмма Вороного помогает считать очки в реальном времени, превращая статичную доску в живое поле битвы.

А в конце встретим неожиданный твист! Узнаем, что такое такое Суго.

Погрузиться в игру →

Flame-графики Doom для GPU

Время на прочтение8 мин
Охват и читатели2.1K

Код AI Flame Graphs теперь открыт, этот проект поддерживает GPU Intel Battlemage. Это значит, что AI Flame Graphs теперь способен генерировать flame-графики (Flame Graph, граф пламени, диаграмма пламени), охватывающие полный стек GPU — это даёт пользователям новые аналитические данные о производительности игр. Особенно полезным AI Flame Graphs выглядит в связке с FlameScope (это — мой опенсорсный проект, созданный несколько лет назад). Вот — пример профилирования игры GZDoom. Тут показаны результаты визуализации использования CPU и GPU, проведённые с помощью FlameScope и снабжённые комментариями.

Читать далее

Вклад авторов