Обновить
256K+

Алгоритмы *

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

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

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

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

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

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

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

Читать далее

Новости

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

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

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

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

Читать далее

Моделирование упругих столкновений

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

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

Википедия

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

Pet-project: мини-библиотека по линейной алгебре

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

Статья о пет-проекте — попытке создать мини-библиотеку по линейной алгебре с небольшим функционалом для работы с матрицами.

Читать далее

Программисты рисуют и травят: от штриховой векторизации к офортам Меллана

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

Не умея рисовать, организовал три персональные выставки портретов и картин с января по май в разных городах России. 21-й век на дворе. Программист нажимает кнопку, а робот рисует простой шариковой ручкой на простой бумаге. Как? Об этом в статье.

Читать далее

Секреты поиска решений управляемого данными

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

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

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

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

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

Читать далее

Как двое договариваются о секрете, крича на всю площадь: алгоритм Диффи-Хеллмана без формул

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

Представьте себе площадь: людную, шумную, и на ней стоят двое, назовем их Алиса и Коля. Им нужно договориться о пароле, но шептаться друг с другом нельзя. А еще вокруг толпа, и в толпе стоит Ева, которая записывает каждое слово. Никаких записок, никаких встреч за кулисами, только крик через всю площадь.

Звучит как безнадежная задача. Все, что Алиса крикнет Коле, услышит и Ева. Любая информация, которая дойдет до Коли, дойдет и до нее. Кажется, что общий секрет в таких условиях невозможен в принципе.

А теперь плохая новость для нашей интуиции: именно это сейчас происходит на вашем устройстве.

Читать далее

Как мы ускоряли диффузионный декодер TTS

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

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

Внутри TTS работает каскад из трёх компонентов: языковая модель предсказывает аудиотокены по тексту, диффузионный декодер восстанавливает мел‑спектрограмму из латентов, а вокодер превращает её в звуковую волну. Долгое время самой тяжёлой была языковая модель, но после её оптимизации на первый план вышел декодер латентов — его forward pass запускается на каждом шаге семплинга диффузии, а шагов — десятки. Именно его мы и взялись ускорять.

Читать далее

Мы не выравниваем железо — мы выравниваем реальность: как превратить любой лазерный гравер в прецизионный фотоплоттер

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

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

ЛУТ (лазерно-утюжная технология) — это лотерея. Классический фотометод требует идеального шаблона, а профессиональный фотоплоттер стоит как подержанный автомобиль. Казалось бы, решение на поверхности: взять доступный китайский лазерный гравер за $100 и вперёд. Но тут начинается новый «ад»: оси изначально кривые, реальный шаг моторов живёт своей жизнью, а заготовка почти всегда лежит на столе с перекосом в пару градусов. Малейшее отклонение — и прецизионный Gerber превращается в бесполезный кусок текстолита.

Я решил эту проблему иначе. Зачем часами юстировать механику, если можно переложить всё на математику и нейросети?

Представляю LPP-Laser — флагманское направление открытой модульной платформы LPP (Linear Path Platform). Система не требует от станка совершенства. Она просто «натягивает» ваш проект на реальность.

Читать далее

HyperLogLog: как найти уникальные значения в терабайте данных, не храня их

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

Представим задачу: хайлоад-сервис гонит поток данных — логи, IP-адреса, ID пользователей, миллиарды записей в сутки. Ваша задача — посчитать количество уникальных посетителей за неделю.

Первым решением может показаться завести HashSet и кидать туда ключи, а в конце посмотреть размер. Решение неплохое, но когда речь заходит о миллиардах записей — память будет слабым местом. Один IP-адрес (4 байта) как ключ в HashSet потянет за собой накладные расходы на ноды, указатели и хеши. На практике один элемент сжирает не меньше 50–100 байт. Поток в миллиард уникальных записей потребует под сотню гигабайт оперативной памяти. Это дорого, а если инстансов десять — то просто нереально.

Но существует алгоритм, который способен решить эту задачу примерно в 1.5 килобайта памяти с погрешностью около 2%? Без хранения самих данных и гигантских кластеров. Достаточно одного прохода по потоку и пары битовых трюков — именно так и работает HyperLogLog, алгоритм родом из математической статистики, который перевернул подход к подсчёту уникальности в Big Data.

HyperLogLog используют в Redis, BigQuery, ClickHouse, Presto. В этой статье мы разберем и реализуем этот алгоритм на C, а также узнаем его предысторию.

Читать далее

Математика букв: Wordle и теория информации

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

Что общего между кроссвордом, тетрисом и пазлом? Все они являются играми-головоломками, которые заставляют игрока шевелить извилинами. Какие-то головоломки построены на применении внимания и усидчивости, какие-то тестируют знания и память, какие-то заставляют формировать стратегию. Но есть и такие, что кажутся на первый взгляд весьма случайными и полагающимися больше на удачу, нежели на точный расчет. К таким относиться Wordle — головоломка, в которой необходимо угадать слово из 5 букв за 6 попыток. Ученые из Бингемтонского университета (Вестал, штат Нью-Йорк, США), используя теорию информации, разработали стратегию для игры в Wordle, которая позволяет «угадывать» слова с точностью 99%. В чем секрет данной стратегии и насколько она сложна? Ответы на эти вопросы мы найдем в докладе ученых.

Читать далее

Автоматизация расстановки стеллажей: с 2–3 дней ручного расчета до 15 минут

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

Дано: компания (наш клиент) продает стеллажные системы. Менеджер по продажам получает от клиента план склада в DXF или DWG. На выходе нужны варианты расстановки стеллажей, спецификация и чертёж — эти материалы сразу уходят в коммерческое предложение. До автоматизации этот путь занимал 2–3 дня инженерной работы на типовом объекте, и любая правка клиента запускала пересчёт почти с нуля.

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

В продажах стеллажных систем клиент выбирает того подрядчика, кто быстро считает. Того, кто сделает расчет, за 2–3 дня заказчик. Скорость составления КП и пресейла  прямо влияет на возможность продать или принять участие в тендере, а так же на загрузку инженерной команды, которую на этапе продажи приходится дёргать на каждый входящий план.

Читать далее

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

Как мы ускорили KNN-поиск в Manticore: двухпроходный обход HNSW, пакетная обработка и AVX-512

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

Кратко: Три изменения в HNSW-поиске ускоряют KNN-поиск до 29% при больших k и дают более 20% прироста при параллельной нагрузке. Без изменений API, без перестроения индексов и без новых настроек — просто более быстрый поиск.

Читать далее

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

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

Всем привет! Меня зовут Гриша Дядиченко, я технический директор и основатель White Label Games. Уже больше десяти лет работаю с компьютерной графикой, AR/VR и компьютерным зрением — в основном это заказная разработка, плюс собственные прототипы по вечерам, до которых дотягиваются руки.

Делал я как-то на работе, по вечерам в свободное время, VR-шутер. Стрельбу, понятное дело, заложил себе на выходные: ну а что, raycast из ствола, событие попадания, отнял здоровье — делов-то. К вечеру воскресенья оно даже работало. Только ощущалось так, будто тыкаешь противника палкой: ни веса, ни отдачи, ни чувства, что ты вообще попал. Знакомо, наверное, каждому, кто хоть раз ставил в сцену оружие и жал «выстрел» — механически всё верно, а стрельба вялая и какая-то ненастоящая. Половина лечения тут — чистая полировка: вспышки, звук, тряска камеры, импакт-эффекты. А вот вторая половина — невидимая математика под капотом: та, что решает, ощущается стрельба честной и отзывчивой или кривой и несправедливой. Спред, который мозг считывает как «нечестный». Отдача, которую можно выучить. Попадание, которое по сети то засчитывается, то нет. Вот это всё и разберём.

Сталкивались ли вы с ситуацией, когда в шутере вы точно попали по противнику, а сервер сказал «промах»? Или с тем, что AI-противник стреляет в вас сверхскоростным снарядом и ни разу не попадает в движущуюся цель? Или с тем, что AK-47 в Counter-Strike рисует «семёрку» из пуль вверх и влево — и это, конечно же, никакой не баг, а вполне продуманная механика? Под капотом у всех этих ситуаций — конкретная математика.

Читать далее

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

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

Привет, Хабр! Меня зовут Анастасия Белозерова, я тимлид исследовательской команды, работающей над продуктом Luna Line в VisionLabs (входит в MWS AI). Мы занимаемся созданием no-code-платформы для компьютерного зрения, которая позволяет пользователю (не программисту, а агроному, например) разметить данные, нажать на кнопку и получить идеально обученную CV-модель под свои рабочие задачи, даже если у него для этого данных всего-то 50 картинок. 

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

Кто желает не читать, а смотреть и слушать, вот тут лежит видеозапись моего доклада по этой теме на Митапе D﹥﹤Vision. 

Но давайте сначала коротко расскажу о продукте.

Читать далее

Метафора квантовой механики глазами хобби-гейм-девелопера. Попытка понять квантовые штуки через алгоритмы поиска пути

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

Представим наш мир в виде бесконечной 3D сетки координат с ячейками ^планковской длины. А бегающие по ней фотоны (^Волновой пакет информации) это спрайты с альфа-каналом и размытыми краями, где в центре альфа вероятнее всего близка к 1.0.

Сетка это рабочая структура, по которой работает “рендер-движок” реальности. Скорость света в данном случае это радиус расширения взаимодействия с сеткой (^Световой конус), для которой движок ведет непрерывный расчет поиска пути, по типу алгоритмов A^, HPA, Dijkstra (^Принцип наименьшего действия, ^Интегралы по траекториям Фейнмана).

Каждая ячейка сетки имеет свой вес и скрытые параметры (^Амплитуда вероятности, ^ Виртуальное возбуждение поля) и по умолчанию содержит случайный фоновый шум (^Квантовые флуктуации).

Пока для фотона-спрайта происходят вычисления в сетке, пиксели прозрачны (виртуальны), их нельзя зафиксировать материально.

Этот подход не различает ^локальность и ^нелокальность, т.к. движок всегда глобален, а наблюдатель пребывает в сфере его взаимодействий.

Читать далее

«Клиенты приходят не только из-за курса»: как РНКО «Металлург» 10 лет живет без ручного ввода паспорта

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

Привет, Хабр! На связи Smart Engines. Недавно мы провели открытый диалог с Егором Карасевым, первым заместителем Председателя Правления РНКО «Металлург», и обсудили наше сотрудничество длиной в 10 лет. Все это время компания использует технологии Smart Engines для распознавания паспортов клиентов в отделениях. Получился разговор не столько об OCR, сколько о том, как автоматизация меняет потоковое обслуживание, снижает нагрузку на сотрудников и помогает бизнесу не терять клиентов из-за ручного ввода данных.

Под катом – история о том, как паспортный сканер, взятый с выставки «на попробовать», стал частью банковского процесса, который работает уже одиннадцатый год.

Читать далее

Коты против токсичности. Как ленты соцсетей искажают наше восприятие реальности и какие алгоритмы могут их исправить

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

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

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

Была, правда, одна экспериментальная попытка с Meta* на выборах США в 2020-м. Тогда выявили, что алгоритмическая лента усиливает «нецивильный» контент примерно на 40%. Вот только авторы работы не зафиксировали изменения в установках и не смогли ответить на главный вопрос: через какой психологический механизм лента влияет на пользователей и можно ли это исправить, не сломав их интерес к самой соцсети?

Этот пробел закрыла группа исследователей под руководством Уильяма Брэди (ассистент-профессор управления и организаций в Kellogg School of Management), которая весной этого года опубликовала результаты своей работы в научном журнале Nature.

Как им это удалось и что из этого вышло, расскажу в этой статье.

Читать далее

Аудит алгоритмов: как реализация Boyer-Moore с 190K звёзд на GitHub оказалась brute-force

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

Проверил реализацию Boyer-Moore в TheAlgorithms/Python (190K+ звёзд). Оказалось, что сдвиг bad character записывается в переменную for-цикла, что в Python не имеет эффекта. Алгоритм выдаёт правильные результаты, но работает как brute-force O(nm) вместо O(n/m). Плюс ещё две находки: бесконечный цикл в типичных реализациях full BM и ошибка в оригинальной статье 1977 года, которую исправили только в 1980-м.

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