Всё про Алгоритмы и Структуры данных – Telegram
Всё про Алгоритмы и Структуры данных
7.93K subscribers
329 photos
36 videos
5 files
2.8K links
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников.

Ссылка: @Portal_v_IT

Сотрудничество, авторские права: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/structuredata
Download Telegram
ESP32 + LD2410: Архитектуры нейронных сетей для классификации движений

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

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

https://habr.com/ru/articles/952548/

Алгоритмы и Структуры данных
Визуализация алгоритмов стандартной библиотеки C++ (продолжение)

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

https://habr.com/ru/articles/763024/

Алгоритмы и Структуры данных
2
Как не сломать продакшен: 8 основных паттернов распределенных систем

Распределeнные системы стали основой современных высоконагруженных и отказоустойчивых приложений. Однако их разработка сопряжена сo множеством вызовов – от управления состоянием и взаимодействия сервисов до обработки отказов и масштабирования. Чтобы упростить решение этих задач, инженеры используют проверенные временем архитектурные паттерны. В этой статье мы разберeм восемь ключевых шаблонов, помогающих строить надeжные и эффективные распределенные системы.

https://proglib.io/p/kak-ne-slomat-prodakshen-8-osnovnyh-patternov-raspredelennyh-sistem-2025-02-10

Алгоритмы и Структуры данных
Введение в трассировку лучей: простой метод создания 3D-изображений. Часть 2 — прямая трассировка

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

https://habr.com/ru/articles/763894/

Алгоритмы и Структуры данных
1
Введение в трассировку лучей: простой метод создания 3D-изображений. Часть 1 — как создается изображение?

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

https://habr.com/ru/articles/763416/

Алгоритмы и Структуры данных
1
Сжать и не пожалеть: как работает сжатие без потерь

Более 9 миллиардов гигабайт информации ежедневно путешествуют по интернету, заставляя постоянно искать все новые и новые методы упаковки данных. Самые эффективные решения используют подходы, которые позволяют достичь большей плотности за счет "потерь" информации в процессе сжатия. Google, например, недавно представили вариант сжатия с потерями, в котором отправляющий компьютер отбрасывает детали изображения, а ИИ на принимающей стороне их восстанавливает. Даже Netflix использует подход, допускающий потери, понижая качество как только становится известно, что пользователь использует устройство с низким разрешением.

В то же время очень мало внимания уделяется сжатию без потерь. Почему? Ответ прост - методы сжатия без потерь уже невероятно эффективны. С их помощью работает буквально всё, от формата PNG до утилиты PKZip. И это все благодаря студенту, что захотел пропустить экзамен.

https://habr.com/ru/articles/763248/

Алгоритмы и Структуры данных
1👍1
Программист embedded лезет в FPGA (часть 3, чего не может ардуинка)

В этой статье мы будем работать на более низком уровне. Делать на коленке прозрачные электроды, и наклеивать поляризационные плёнки, наверное, не надо. Будем формировать видео-сигнал, который идёт на монитор / телевизор.

Но совсем нахрапом не получится. Придётся сделать небольшой экскурс в тему передачи видео изображений.

https://habr.com/ru/articles/943264/

Алгоритмы и Структуры данных
Поиск с помощью регулярных выражений: подход с Виртуальной Машиной

Назовите самый используемый интерпретатор байт-кода или виртуальную машину (далее просто ВМ). JVM от SUN? Flash от Adobe? .NET и Mono? Perl? Python? PHP? Все они без сомнения популярны, но есть ещё одна ВМ, которая используется шире, чем все предыдущие вместе взятые. Этот интерпретатор байт-кода - библиотека регулярных выражений от Генри Спенсера (Henry Spencer) и её многочисленные наследники.

Первая статья из этой серии описывала два главных подхода к реализации поиска по регулярным выражениям: подход на основе конечных автоматов с линейной сложностью в худшем случае, который использовался в awk и egrep (а сейчас в большинстве реализаций grep); и подход на основе алгоритма с возвратом (бэктрекинг) с экспоненциальной сложностью в худшем случае, который используется почти везде, включая ed, sed, Perl, PCRE и Python.

https://habr.com/ru/articles/759372/

Алгоритмы и Структуры данных
Приложения алгебры кортежей. Часть 2. Математическая модель вопроса

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

Об алгебре кортежей (АК) и ее использовании для логико-семантического анализа было рассказано в моей статье в Хабре. В комментариях к статье предлагалось обратить внимание на функцию SELECT в языке SQL, которая соответствует операции Selection (Выборка) в реляционной алгебре. Эта операцию можно рассматривать как один из вариантов математической модели вопроса.

Чтобы построить математическую модель вопроса, необходимо понять его семантику. Известный лингвист Лаури Карттунен считал, что смысл вопроса – это то, что он содержит множество возможных ответов. Для ответа на вопрос необходимо уменьшить неопределенность за счет сокращения числа элементов этого множества. Это идея дает подсказку для более точного определения смысла вопроса.

https://habr.com/ru/articles/763004/

Алгоритмы и Структуры данных
Helena.4.0 – новый алгоритм для подбора гиперпараметров

С целью автоматизации процесса подбора гиперпараметров автором данной статьи разработан алгоритм Helena.4.0. Конечной целью является создание автоматической системы построения моделей (auto-ML), которая бы подбирала гиперпараметры за минимальное время.

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

Для поиска максимума функции алгоритм Helena.4.0 использует только ее значения, и не используют первые и последующие производные. Таким образом, этот алгоритм не требуют ни дифференцируемости, ни непрерывности максимизируемой функции.

Сравнение алгоритма Helena.4.0 с наиболее популярными конкурентами (Optuna, HyperOpt, RandomSearch) показывает его высокую конкурентоспособность.

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

https://habr.com/ru/companies/rosbank/articles/763026/

Алгоритмы и Структуры данных
Kaggle для футболистов. Разбираем подходы призеров соревнований по детекции столкновений (1 и 2 место)

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

https://habr.com/ru/companies/magnus-tech/articles/756628/

Алгоритмы и Структуры данных
«Я есть Ты: Диалог об Истине, которая всегда была одна»

Книга состоит из двух частей: «Сознание (Сотворение)» и «Размышление (Пророчество)». Рекомендуется начинать читать, только при наличии достаточного времени и отсутствии отвлекающих факторов, иначе вход в состояние потока и со-настройки не реализуется. Нетерпеливые, послесловие могут прочитать сразу (это по желанию, но вы можете лишить себя части удовольствия от удивления), а вот содержимое каждого диалога - только последовательно, в этом суть погружения. Особый интерес предлагается обратить на ход внутренних рассуждений.

https://habr.com/ru/articles/954358/

Алгоритмы и Структуры данных
Быстрый двоичный поиск без ветвления

Тот же интерфейс функции, что и у std::lower_bound, но вдвое быстрее и короче. «Без ветвления», потому что if компилируется в команду условной передачи, а не в ветвление/условный переход. Ближе к концу статьи мы изучим опции компилятора и даже более быстрые версии полностью без ветвления. Для понимания этой статьи не нужны особые знания в C++. Достаточно понимать, что итераторы (first и last) по сути являются указателями на элементы массива, хотя могут указывать на один элемент дальше, чем последний элемент массива. Можете не обращать внимания на template, class, constexpr и &. Вот если бы существовал быстрый и чистый язык, работающий на уровне железа...1 2

https://habr.com/ru/companies/ruvds/articles/756422/

Алгоритмы и Структуры данных
1
Почему структура Ur, Uz не случайна даже при случайном k в ECDSA: математика за топологией цифровых подписей

ECDSA (Elliptic Curve Digital Signature Algorithm) является краеугольным камнем современной криптографии, защищающим транзакции в Bitcoin, SSL/TLS-соединения и электронные документы. Однако даже в хорошо изученных алгоритмах скрываются неочевидные математические свойства, которые могут быть использованы как для укрепления безопасности, так и для обнаружения уязвимостей.

В этой статье мы глубоко погрузимся в один из таких феноменов: почему структура параметров (U_r, U_z) в ECDSA остаётся детерминированной даже при идеально случайной генерации секретного числа k. Это свойство, часто игнорируемое в учебниках, имеет фундаментальное значение для понимания безопасности ECDSA и объясняет, как криптоаналитики обнаруживают уязвимости в реальных системах.

https://habr.com/ru/articles/954536/

Алгоритмы и Структуры данных
👍1
От нестационарности к прогнозу: пайплайн анализа и моделирования временных рядов

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

https://habr.com/ru/companies/sberbank/articles/954636/

Алгоритмы и Структуры данных
👍1
Seedream v4 — платный конкурент Nano Banana. Зачем он тогда нужен? И как использовать бесплатно + Гайды

Итак, Nano Banana — больше про быстрые и простые правки, бесплатно, но с водяными знаками и более строгими ограничениями. А Seedream v4 менее строг, а вдобавок предлагает качество 4K. Еще, можно закидывать в генерацию до 6 референсных изображений, хотя в Nano Banana можно загрузить до 10 референсов. Почему же креаторы предпочитают больше Nano Banana, а бизнесмены и агентства Seedream v4? Из-за целей и невидимого водяного знака.

https://habr.com/ru/articles/954638/

Алгоритмы и Структуры данных
1
Регулярная катастрофа и как её избежать. Подход к регулярным выражениям

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

Можно не писать самому регулярные выражения. Вообще не использовать их в коде. Но они всё равно там окажутся. Допустим, мы хотим написать проверку email-адреса, чтобы пускать людей с нужным корпоративным аккаунтом. Написали заглушку на FastAPI:

https://habr.com/ru/companies/sberdevices/articles/954296/

Алгоритмы и Структуры данных
Делим кастрюлю компота на ноль. Что получится? Спойлер: ничего хорошего

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

https://habr.com/ru/companies/yoomoney/articles/954946/

Алгоритмы и Структуры данных
Покодим на Yandex Cup?

Яндекс открыл регистрацию на Yandex Cup — чемпионат по программированию с призовым фондом 12 млн рублей и финалом в Стамбуле!

На выбор — шесть направлений, фанатов классического спортивного программирования ждёт трек «Алгоритм».

Главное:
— регистрация: до 29 октября
— пробный тур онлайн: 20–29 октября
— квалификация онлайн: 2 ноября

Офлайн-финал соберёт 180 программистов 5–7 декабря в Стамбуле. Лучшие участники получат призы от 100 тысяч рублей и возможность пройти собеседование в Яндекс по упрощённой схеме.

Регистрация и примеры задач на сайте.
👍1🤯1