Как стать автором
Поиск
Написать публикацию
Обновить
92.02

Алгоритмы *

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

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

Оптимальный выбор файловой системы и создание драйвера для OSPI Flash с GitHub Copilot

Время на прочтение5 мин
Количество просмотров251

Файловая система во встраиваемых решениях — критическое звено. От её выбора зависят надёжность, детерминированность и задержки всей системы.

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

На практике всплывают одни и те же проблемы: дефрагментация, высокое потребление RAM, плохая детерминированность (плавающие задержки), неустойчивость к сбоям записи/питания и низкая скорость. Нередко корнем оказываются драйверы из SDK производителей чипов: они не оптимизированы для многозадачной среды и часто недоработаны под OSPI.

Я протестировал четыре файловые системы на платформе MC80 с внешней OSPI NOR Flash и разработал специализированный драйвер вместо стандартного из FSP — с полноценной поддержкой OSPI и RTOS.

Читать далее

Новости

Как Java-разработчику эффективно решать алгоритмические задачи

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

Многие Java-разработчики боятся алгоритмических задач (и я один из тех, кто включается в каждую дискуссиую на тему надобности алго-собесов для бигтеха). Они кажутся чем-то из параллельной реальности: где-то там, в университетах, на LeetCode, в собеседованиях в FAANG и контестах.

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

Я расскажу, как можно подойти к этому процессу системно и без боли — на основе личного опыта Java-разработчика и преподавателя.

Решаем алгоритмы

Кому нужна математика?

Время на прочтение7 мин
Количество просмотров7.5K

Недавно я прочёл книгу «Кому нужна математика?» Нелли Литвак и Андрея Райгородского — и она меня по-настоящему зацепила. Это короткие, живые рассказы о том, как математика помогает решать важные и неожиданные задачи: от составления расписаний до защиты интернет-трафика. В этом посте я перескажу три истории из книги, которые особенно меня удивили

Читать далее

GIMP Script-Fu ООП. Основной алгоритм в ООП системах с множественным наследованием

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров371

Библиотека функций к Script-fu

Введение.

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

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

Читать далее

Больше, чем аналитика: как Process Mining помогает ритейлу экономить и повышать выручку

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров609

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

Мы рассмотрим подробнее эту методологию и особенности её применения. А также на нескольких примерах из практики М.Видео‑Эльдорадо и Т1 покажем, чем процессная аналитика может быть полезна в компании.

Читать далее

Когда несколько пикселей решают всё: One Pixel атака и способы защиты от неё

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

Удивительно, но факт: несколько изменений в изображении могут полностью поменять вывод нейросети, что ломает заложенную разработчиком логику. В данной статье мы не просто подсветим факт существования One Pixel атаки, но и комплексно разберём архитектурные факторы, которые влияют на устойчивость CV-систем к данному семейству атак.

Читать далее

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

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров568

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров375

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

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

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

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров979

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

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

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

Читать далее

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

Время на прочтение12 мин
Количество просмотров1.8K

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

Купить эклер

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

Время на прочтение8 мин
Количество просмотров2K

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

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

Читать далее

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

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

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров914

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

Время на прочтение20 мин
Количество просмотров3.1K

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

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

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

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

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

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

Читать далее

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

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

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

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

Часть 1.

Читать далее

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

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

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


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


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

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

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

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

К правилу 37%

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

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

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

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

Читать далее

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

Время на прочтение7 мин
Количество просмотров1.7K

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

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

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

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