Обновить
256K+

Алгоритмы *

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

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

В чем смысл жизни с точки зрения термодинамики?

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

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

Итак, начнем с определения. Большинство рассуждений о бессмысленности бессмысленны просто потому что никто даже не попытался сопоставить слово с каким-то конкретным физическим феноменом. Гуманитарии, которые обычно что-то якобы умное на эту тему вещают, опираются на личный опыт, на опыт каких-то философов, но не на самое надежное в человеческом знании - на научную картину мира. А ей есть много чего рассказать.

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

Читать далее

Новости

35 вопросов для собеседований по RL в 2026 году

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

Уже который раз я наблюдаю одну и ту же картину: человек проходит в аспирантуру, но затем почти сразу же во время весенней волны найма устраивается на высокооплачиваемую должность в отрасли. Меня подобное натолкнуло на мысль сразу пойти работать в индустрию.

Поэтому я поискал по Zhihu и прошёлся примерно по всем рассказам о собеседованиях, связанным с обучением с подкреплением (reinforcement learning), сопоставил их со свежими обсуждениями и собственными наблюдениями, а затем подготовил из этого выжимку на 35 самых интересных вопросов. Считайте получившееся своего рода бенчмарком для собеседований по RL.

Читать далее

Сопоставление каталогов продукции: автоматический массовый подбор с использованием токенизации

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

Задача широко знакома в узких кругах: наш каталог товаров встречается с каталогом контрагента — по сути одни и те же позиции, но названы по-разному. Надо найти совпадения и предоставить коллегам список подходящих наших артикулов для каждой их позиции.

В разобранном ниже случае это картриджи: 22 тысячи записей у контрагента против сотен тысяч наших номенклатур. Для такой задачи матерый программист берёт Elasticsearch, алгоритмы нечёткого поиска и тратит много времени, иногда в меру матерясь. Здесь подбор ведется с помощью токенизации, запросами в стиле no-code и без ИИ.

Токенизируем и сопоставляем

Быстрые и компактные структуры данных для RMQ

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

Range minimum query – это классическая задача, в этой заметке решаем статический вариант. Есть массив A[0..n-1]; нужно построить структуру данных, которая умеет быстро находить минимум и его позицию на произвольном интервале [l, r). Я собрал несколько практических наработок и сделал из них два очень компактных и быстрых варианта:

вариант с 1.05n дополнительных бит, которому иногда нужно обращаться к исходному массиву;

вариант с 2.1n дополнительных бит, который отвечает на запросы без доступа к исходному массиву.

Обе реализации очень быстры на практике: на случайных запросах по массиву размера 10^9 элементов они работают в среднем за 20–30 нс на запрос.

Для ориентира: туториал Codeforces по блочному RMQ описывает структуру, которая отрабатывает запрос за 100 нс для массивов длины 10^7 с 32-битными целыми числами, при этом используя 32n дополнительных бит.

Читать далее

Почему интервью для разрабов — такое непроходимое говно, и что с этим делать?

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

Доброго утречка. Прогреемся?

Мое мнение не отражает позицию какой бы то ни было компании. Все совпадения с вашими нанимающими менеджерами случайны. Мой бывший Director Title в одном из топ-трех русскоговорящих бигтехов никакого отношения к высказанному не имеет и совпадения с ним тоже случайны. Кто захочет — при желании найдет, где и чем я занимался последние 10 лет и почему мое мнение имеет ценность.

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

Читать далее

Часть II. Начала дискретной математики. SQL, Комбинаторика, Тервер за 15 минут. SQL, EBNF, XPATH в 480 LOC

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

┼┼┼┼┼┼┼┼┼▄▀▀▀▄▄▄▄▄▄▄▀▀▀▄┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼█▒▒░░░░░░░░░▒▒█┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼█░░█░░░░░█░░█┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼─▄▄──█░░░▀█▀░░░█──▄▄─┼┼┼┼┼
┼┼┼┼┼┼█░░█─▀▄░░░░░░░▄▀─█░░█┼┼┼┼┼
┼┼┼██░██░████░██░░░██░░░█████┼┼┼
┼┼┼██▄██░██▄▄░██░░░██░░░██░██┼┼┼
┼┼┼██▀██░██▀▀░██░░░██░░░██░██┼┼┼
┼┼┼██░██░████░████░████░█████┼┼┼

Для строительства компиляторов, нам нужны начала математики. Из них, как мы убедимся, проистекает добрая половина понимания и всех наших работ.
В частности, без начал не понять лямбда-исчисление Чёрча, которое мы применим на этапе работы с AST. Рассмотрим элементы дискретной математики с примерами на С, JavaScript, SQL.

Читать далее

Ускоренное построение KNN-индексов в Manticore

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

Раньше построение KNN-индекса было самым медленным этапом при сохранении и слиянии чанков в таблицах с векторными атрибутами. Начиная с v27.1.5 , Manticore может задействовать несколько ядер CPU при сохранении чанков, слияниях через OPTIMIZE, авто-оптимизации и ALTER TABLE ... REBUILD KNN. На 16-ядерном Ryzen 9 5950X построение KNN-индекса для 1 миллиона 1536-мерных векторов сократилось с 8 минут до 39 секунд.

Читать далее

Управляющие последовательности (ANSI)

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

Что такое ANSI коды и как их обрабатывает терминал? Зачем нужны эмуляторы терминала? Как отформатировать вывод в PowerShell из AutoHotkey? Разбираемся в этой статье.

Читать далее

Применение методов детектирования объектов в задаче долгосрочного прогнозирования событий

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

Привет, Хабр. Мы — Савченко Андрей — директор по науке, и Иван Карпухин — senior researcher в в Sber AI Lab — Центре практического искусственного интеллекта Сбера, расскажем о нашем исследовании, представленном на конференции AAAI 2026.

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

На первый взгляд эти две области никак не связаны между собой. В одном случае модель ищет автомобили, людей и дорожные знаки на фотографии, а в другом — пытается предсказать будущие покупки клиента банка, последовательность медицинских процедур или активность пользователя в социальной сети. Но если отбросить подробности реализации и посмотреть на задачу более абстрактно, то мы обнаружим сходство. В компьютерном зрении необходимо ответить всего на два вопроса: что находится на изображении и где именно расположен объект. В прогнозировании событий задача выглядит почти так же: какое событие произойдёт и когда именно это случится. Двумерное пространство изображения превращают в одномерную временную ось. Эта аналогия впоследствии позволила перенести целый класс методов из object detection в моделирование последовательностей событий.

Читать далее

Как создавали нейропоиск Discovery AI — технологию для крупнейшей контентной базы в РФ

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

Привет! Меня зовут Евгений Астафуров, я ведущий разработчик в Отделе экспериментальных технологий AI VK. Мы разрабатываем Discovery AI — набор ИИ‑технологий для интеллектуального поиска, рекомендаций и взаимодействия с контентом. В него вошли нейропоиск, анализ контекста, персонализация, генеративные модели и рекомендательные алгоритмы, чтобы помогать пользователям находить нужную информацию, получать релевантные ответы и новый контент.

В этой статье подробно разберу архитектуру технологии нейропоиска в Discovery AI, которая объединяет большую языковую модель (LLM), поиск, инференс и данные многомиллиардной контентной базы VK. Технология становится важным компонентом развития рекомендательных и поисковых систем в наших продуктах и будет поэтапно внедряться в сервисы для пользователей, авторов и бизнеса (Дзен, VK, Медиапроекты Mail, VK Видео и другие). 

Нейропоиск

Задача коммивояжера: обходим 750 точек за 5 сек

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

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

Для решения задачи коммивояжёра существует большое количество методов и алгоритмов, самые распространённые — поисковые алгоритмы. Лидеры среди них — генетические алгоритмы и алгоритмы колонии муравьёв.

Я придумал свой вариант.

В статье «Сравнение производительности генетических алгоритмов и муравьиных алгоритмов применительно к задаче коммивояжера Авторы: Sabry Ahmed Haroun, Benhra Jamal, El Hassani Hicham Лаборатория LISER, ENSEM, UH2C Касабланка, Марокко.» от May 2015. Приводятся результаты тестов. Генетический алгоритм был разработан на C++. Муравьиный алгоритм оптимизации был написан на C#.

Читать далее

От пульта до полотенца — учим робота искать всё, что угодно

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

Привет, Хабр! Меня зовут Татьяна Земскова, я аспирантка МФТИ и научный сотрудник команды Embodied Agents лаборатории Cognitive AI Systems AIRI. Областью моих научных интересов является компьютерное зрение для робототехники. Я изучаю, в частности, то, каким образом робот может использовать различные модальности (текст, изображения, сегментационные маски объектов) для лучшего понимания сцены и навигации. 

Желаемыми свойствами современных навигационных систем является их универсальность, минимальность сенсорного сетапа и быстрота принятия решений на борту робота. Сегодня мы поговорим о том, как мы вместе с коллегами (Алексеем Староверовым, Дмитрием Юдиным и Александром Пановым) смогли создать и обучить лёгкую (130М) трансформерную модель, способную доезжать до любых категорий объектов, заданных текстом. Полученный метод описан в свежей работе OVSegDT: Segmenting Transformer for Open‑Vocabulary Object Goal Navigation.

На веб‑странице проекта можно найти ссылку на открытый исходный код с инструкциями по запуску и ссылкой на предварительно обученные веса модели. Это позволяет как воспроизвести наши эксперименты, так и попробовать запустить модель самостоятельно на собственных данных в симуляторе или на реальном роботе. В этом посте мы обсудим основные особенности модели и то, как мы пришли к этому методу.

Читать далее

Складское броуновское движение: почему хаотичное хранение работает лучше строгой логики

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

Человеческий мозг настроен на порядок: макароны к макаронам, телевизоры к телевизорам. Это кажется логичным, эффективным и «правильным». Именно так устроены склады без WMS — или, точнее, без продуманного алгоритма размещения. Но крупнейшие в мире фулфилмент-центры работают ровно наоборот. Amazon хранит зубную пасту рядом с книгами и запчастями. Для человека — хаос. Для алгоритма — математически совершенная архитектура.

Этот материал — разбор концепции хаотичного (динамического) адресного хранения (chaotic storage / random storage / scattered storage): как она устроена изнутри, почему работает лучше «логичного» порядка, и как WMS превращает визуальный беспорядок в оптимизированную модель распределения потоков.

Читать далее

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

Как мы реализовали оптимальное обучение CV-моделей в Luna Line. Часть 2. Сегментация

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

И снова здравствуйте! Продолжаю свой рассказ о поиске «универсального рецепта» для обучения моделей в Luna Line. Теперь речь пойдет о сегментации. Если вы пропустили предыдущую публикацию по классификации, то вам лучше начать читать с нее, чтобы не запутаться. 

Дело в том, что когда мы разобрались с классификацией, наша же методология оставила послевкусие неудовлетворенности. Мы задавали себе вопрос: а действительно ли выбранное семейство показывает максимум своих возможностей или мы просто зажали его в рамки единого пайплайна? Для сегментации мы решили действовать иначе.

Читать далее

Умеют ли трансформеры водить машину

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

Трансформеры уже умеют писать код, генерировать тексты и рисовать картины. Но могут ли они управлять автономным автомобилем в реальных городских условиях, среди людей и других машин?

Меня зовут Максим, я руковожу службой поведения и предсказания движения в Автономном транспорте Яндекса. Отвечаю за задачу Motion Planning — ту часть системы, которая решает, как именно должен двигаться автомобиль в следующие секунды. В этой статье я расскажу, как мы используем архитектуры на основе трансформеров в планировании движения и почему это сильно отличается от привычных задач генеративных моделей.

Мы пройдём путь от первых ML‑экспериментов до регулярных испытаний на реальных машинах. Разберём, чем Open Loop отличается от Closed Loop, почему качество предсказаний не определяет качество вождения и почему безопасность для нас важнее любой архитектуры.

Читать далее

Поговорим о градиентном бустинге

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

Градиентный бустинг часто воспринимают как «ещё один алгоритм из sklearn», но за ним стоит простая и сильная идея: модель не пытается сразу угадать правильный ответ, а шаг за шагом исправляет собственные ошибки.

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

Читать далее

Цветной текст в консоли в AutoHotkey

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

Алгоритм вывода цветного текста в консоль и как его можно написать на AutoHotkey. Погрузимся в язык, рассмотрим оптимизацию кода и улучшение читабельности (применимо к любому высокоуровневому языку).

Читать далее

HTCE: когнитивное ядро нового поколения, которое не верит без доказательств

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

HTCE: как мы строим ИИ, который не верит без доказательств

Большинство AI-систем сегодня стараются отвечать быстро и уверенно. HTCE строится иначе: это когнитивное ядро, которое сначала спрашивает — откуда взялось знание, можно ли ему доверять, сколько стоит проверка и не пытается ли внешний solver подменить истину своим вердиктом.

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

Читать далее

Терминал — измеряем скорость работы на клавиатуре

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

Существуют готовые решения для измерения скорости работы на клавиатуре, например typespeed. Прекрасная программа с различными опциями.

Потренировал на ней пальцы и возникла идея написать что-нибудь самому. Расскажу, каким путём шёл и что получилось.

Читать далее

Сикофантия? Или ускорение динамического пересчета определителя от O(n³) до O(n)?

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

Всем привет. Хотел бы поделиться своими результатами и обратиться за ответным мнением.

Представлюсь: Шевченко Максим Юрьевич. Работал мануальным тестировщиком (в том числе); считаю себя исследователем, в основном, в области математики.

Лет 10 тому назад мне удалось вывести обобщение тождества Деснано‑Якоби, связанное с методом конденсации Чарльза Доджсона (более известного как Льюис Кэрролл). Тогда это обобщение показалось мне интересным лишь с теоретической точки зрения, и никакого практического применения его я не предполагал. Некоторое время эта работа «пылилась в сундуке», пока я ее, наконец, не опубликовал на GitVerse (там же Python код, о котором позже).

В настоящее время, оказавшись без работы, я вдруг понял, что мой труд, как и я сам, снова пылится без дела и пользы, и почувствовал досаду. Дело еще в том, что будучи человеком без ученой степени, в академических кругах я часто сталкивался с так называемым «недоумением» в свой адрес по поводу моих научных изысканий. Работа моя была опубликована в нерецензируемом журнале. Так что до поры мне не удавалось осознать степень ее новизны и область применения.

И потому в качестве рецензента я решил наконец обратиться к искусственному интеллекту (далее «AI»). LLM‑модели не интересуются регалиями, не затягивают ответ на полгода и готовы отвечать на вопросы до бесконечности.

Конечно, с другой стороны AI может «галлюцинировать», а также выдавать желаемое за действительное, то есть заниматься «цифровым подхалимством»: сикофантией.

Читать далее
1
23 ...