Обновить
164.11

Алгоритмы *

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

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

Метод наименьших квадратов Гаусса с весовыми коэффициентами отклонений

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

В моей практике метод наименьших квадратов Гаусса используется в двух случаях.

Когда производится измерение, для корректировки полученной величины.

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

Практика показала, что чем меньше величина, тем меньшая погрешность допускается.

Моя идея – это ввести весовые коэффициенты отклонений в формулу критерия Гаусса.

Читать далее

Новости

Как веб-камера и нейросеть помогают удалённо измерять частоту дыхания

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

Российская ИТ-компания «Криптонит» продолжает развивать технологии дистанционного мониторинга показателей жизнедеятельности человека. В своей новой работе специалист отдела перспективных исследований компании «Криптонит» Алексей Протопопов представил бесконтактный метод определения частоты дыхательных движений (ЧДД) с высокой точностью. В этом методе применяется обычная веб-камера и алгоритм, использующий нейросеть на одном из этапов обработки видеосигнала. 

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

Метод Алексея Протопопова решает эту проблему. В его основе лежит сегментация изображения тела нейросетью и продвинутая фильтрация помех.  Метод протестировали на видеозаписях 14 добровольцев: 8 мужчин и 6 женщин в возрасте от 20 до 65 лет. Общая продолжительность записей превысила 2,5 часа. 

Принцип работы

В основе метода лежит анализ естественного смещения грудной клетки при вдохе и выдохе. Главная сложность — выделить именно дыхательные движения на фоне другой физической активности: разговора, жестов, поворотов и смены позы. 

Для решения этой задачи в предложенном методе нейронная сеть MediaPipe выделяет на каждом кадре области груди и живота. Тем самым она создаёт «маску» для анализа изображения. Этот этап называется «сегментация». Он самый ресурсоёмкий и занимает более 90% времени обработки. Сегментация позволяет алгоритму самостоятельно определять часть кадра, по которой нужно проводить измерения, поэтому смена позы почти не влияет на результат. 

Читать далее

Как я пытался сжимать смыслы вместо байтов

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

Написал прототип SemanticZip: сжатие текста в 14 раз за счет удаления «выводимой» информации. Теория информации, Колмогоровская сложность. В теории все работало...
Разбор полетов: почему нельзя сжимать смыслы и почему красивые метафоры проигрывают скучному RAG

Читать далее

Антирекурсия. Часть 1

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

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

Однако, следует понимать что рекурсия в математике и рекурсия в программировании далеко не одно и тоже. Как отметил Ален И. Голуб в книге «Веревка достаточной длины, чтобы… выстрелить себе в ногу» (п. 6. Если вы не можете сказать это по‑английски, то вы не сможете выполнить это и на Си/Си++) — математическое мышление может помешать писать хорошие программы. И как раз рекурсия наглядно демонстрирует эту мысль.

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

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

Читать далее

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

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

Привет, меня зовут Дмитрий Крупенин. Последние 7 лет я занимаюсь созданием и развитием внутренних продуктов для крупных компаний. Я отвечал за распределение обращений в клиентском сервисе для одного биг.теха РФ, а сейчас помогаю строить распределение задач контента в рамках другого. Захотелось освежить все знания по этой теме, а заодно структурировать это в статью, которую вы сейчас и читаете.

В чем собственно вызов в этой области: современные алгоритмы назначения обращений операторам представляют собой критически важную технологическую основу для крупных компаний, обрабатывающих миллионы клиентских запросов ежемесячно. В условиях растущих ожиданий клиентов и необходимости обеспечения высокого качества обслуживания (при оптимальных для бизнеса операционных затратах) эффективность распределения обращений на подходящих исполнителей становится одним из ключевых факторов конкурентоспособности. Исследования (раз, два, три) показывают, что передовые AI-powered алгоритмы способны снижать время ожидания клиентов на 40-60%, повышать показатели решения с первого обращения до 85%, и одновременно оптимизировать загрузку операторов, предотвращая их выгорание. Давайте разберемся так ли это и как достичь таких результатов.

Читать далее

Noise-Based Logic: Введение в шумовую логику

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

— Как собрать квантовый компьютер из говна и палок на классических электронных компонентах?
 — Как передавать тысячи бит данных параллельно по одному электрическому проводу?
 — Как снизить энергопотребление чипов на 2–3 порядка и забыть про утечку по сторонним каналам?

Эти кликбейтные вопросы перестанут восприниматься таковыми после прочтения этой статьи.

Я постараюсь объяснить, что за инопланетная технология скрывается за термином “Noise-Based Logic”. Подробно изложу теоретические основы, чтобы понять идею, основные принципы и возможности.

Читать

Как я устроился на копеечную ставку, чтобы решить нерешаемую задачу

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

Подмести весь супермаркет Albert Heijn? Звучит несложно. Собственно, так и должно быть.

Но я студент-информатик и у меня есть одна проблема склонность оптимизировать процессы, которые, быть может, оптимизации не требуют.

Поэтому вместо того, чтобы просто делать свою работу, ну то есть… подметать… я поступил так, как поступил бы любой здравомыслящий человек: превратил план этажа супермаркета в решётчатый граф, создал визуальный редактор и написал на C++ оптимизатор пути, используя алгоритм имитации отжига (simulated annealing).

Читать далее

Пишем игру-головоломку под macOS на SwiftUI [StarDust Collector]

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

В прошлой статье я поделился опытом, как я писал с помощью ИИ кастомный TO-DO лист под macOS. Опыт оказался противоречивым, однако приложение было создано, и оно даже работало.

Поэтому я решил расширить идею, добавить фана и реализовать мечту любого программиста — написать собственную игру. И так как у меня уже появилось небольшое понимание экосистемы десктоп-приложений под macOS и SwiftUI, я решил использовать его.

Читать далее

Я создал вдвое более быстрый лексер, но обнаружил, что узким местом был ввод-вывод

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

Я создал лексер ассемблера ARM64 (ну, точнее, сгенерировал его из моего собственного генератора парсера, но пост не об этом), обрабатывающий код на Dart вдвое быстрее официального сканера. Этого результата я добился при помощи статистических методик надёжного измерения малых различий в производительности. Затем я провёл его бенчмарк на 104000 файлов и обнаружил, что узким местом был не мой лексер, а ввод-вывод. Это история о том, как я случайно узнал, почему pub.dev хранит пакеты в виде файлов tar.gz.

Читать далее

Вероятности и .NET: сравниваем библиотечные решения для оценки спортивных событий и не только

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

Как вычисляется шанс того, что теннисист возьмёт следующий гейм? Или что футбольная команда забьёт гол в течение пяти минут? Всё это — не просто угадайка, а работа математической модели, построенной на статистике и обрабатывающей события матча в реальном времени.

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

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

Читать далее

Идентификация звёзд и при чём тут сингулярное разложение

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

Рассказ о том, как с помощью одной матрицы и двух чисел научиться распознавать любые созвездия на небе.

Читать далее

Почему Andrej Karpathy использует SVM в 2026 году (и вам тоже стоит)

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

На arXiv каждый день публикуются сотни статей по машинному обучению. Читать всё — нереально, а пропустить что-то важное — обидно. Andrej Karpathy, бывший Director of AI в Tesla и соавтор курса Stanford CS231n, решил эту проблему неожиданным способом.

Он выбрал не BERT, не GPT и не какой-нибудь модный трансформер. Он остановился на добром старом SVM — алгоритме, которому уже несколько десятков лет. И знаете что? Это работает настолько хорошо, что используется даже в академических системах.

В этой статье мы разберём, как устроено его решение, почему «примитивный» подход работает лучше сложных нейросетей, и когда вам тоже стоит выбрать SVM вместо трансформера. Давайте разбираться!

Читать далее

Оптимизация маршрутов доставки заказов маркетплейса или как мы победили в E-CUP 2025

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

Хабр, привет! Недавно завершилось ML-соревнование E-CUP 2025. Наша команда из X5 Tech заняла первое место в треке «Логистика: автопланирование курьеров», где было нужно оптимизировать время, затрачиваемое курьерами на доставку 20 000 заказов. В статье расскажем про подходы, которые использовали для решения этой задачи. Посмотрим, во сколько раз можно сжать JSON с матрицей расстояний. Какой код мы использовали для быстрого решения задачи TSP с помощью LKH-3. Обсудим, на что обращать внимание при кластеризации заказов.

Постановка задачи

Требовалось распределить порядка 20 000 заказов между 280 курьерами и построить для каждого из них маршрут так, чтобы минимизировать их суммарное время работы. Оно складывалось из времени перемещения курьеров между заказами и времени выполнения самих заказов (service time). За каждый невыполненный заказ добавлялся штраф 3000 секунд...

Читать далее

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

Генетический алгоритм как инструмент инженера: практический кейс раскроя полотен

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

Генетический алгоритм как инструмент инженера: практический кейс раскроя полотен

Генетический алгоритм — это «умный» инструмент для автоматизации раскроя материалов (металл, ткань, пластик). Вместо ручного подбора или полного перебора он по принципам естественного отбора ищет компактное размещение деталей, минимизируя отходы. В статье показан практический кейс на Python: как без сложной математики создать алгоритм, который экономит материал, время. Этот подход можно адаптировать под ваши производственные задачи.

Читать далее

Как Питолис мир создавал

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

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

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

(спойлер: Что-то вроде даже получилось)

Вперёд, создавать миры

Про GEO доказательно: +40% видимости в AI-выдаче, нейропоиске и ответах LLM/SGE (аналитика + стратегия)

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

Наконец, научное обоснование (или разоблачение?) про GEO/Generative Engine Optimization. Статья-этакий бенчмарк...

Внутри о том, как нейропоиск выбирает источники и что можно сделать уже сейчас (уровень: легко), чтобы попасть в ответы нейросетей. Доказательная часть + практическая стратегия под контент/SEO.

Читать далее

Как зарабатывать на бирже, не предсказывая цену: математика против ML-интуиции

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

Недавно я пробовал машинное обучение на Московской бирже, пытаясь найти полезные признаки и при этом опираясь в поисках этих признаков на советы ИИ ассистентов, а поиск самого алгоритма переложил на ML.

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

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

Человека зовут Дмитрий Шалаев. Эта наша совместная с ним статья. 

Сбор урожая с волатильности

За пределами LLM: детерминированный движок рассуждения на конечном алфавите

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

В статье я показываю альтернативу LLM в роли решателя внутри продукта: детерминированное ядро, работающее на конечном алфавите состояний с таблично заданной бинарной операцией — lookup/transition table.
Вместо вероятностных ответов — воспроизводимые вычисления с замыканием (фикс-точка или цикл), учётом симметрий (автоморфизмов) для факторизации перебора и со строгим контуром проверки: спецификации, валидаторы, регрессия и публичный отчёт в стабильном JSON-формате.
Систему можно запустить локально одной командой — или прогнать прямо в ChatGPT, если включён режим выполнения кода: вы получите PASS/FAIL и полный комплект артефактов прогона.

Читать далее

Распространенные ошибки при создании приложений с генеративным ИИ

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

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

Эти ошибки являются распространенными, поэтому, если вы работали над каким-либо продуктом, связанным с ИИ, вы, вероятно, уже сталкивались с ними.

Читать далее

Алгоритмический тупик: почему платформы продвигают мусор, имея инструменты для его фильтрации

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

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

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