Как стать автором
Обновить
327.76

Алгоритмы *

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

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

Код как закон: бездушные DAO и душа новых демократий

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

Что, если демократию можно запрограммировать? Без взяток, бюрократии и человеческого фактора. DAO — децентрализованные автономные организации — стремятся заменить привычные формы управления кодом. Это статья — не объяснение "что такое DAO" на пальцах, а погружение в кишки смарт-контрактов, проблемы DAO-архитектуры и возможный путь к новому типу общества, в котором код действительно становится законом.

Некоторые идеи звучат как научная фантастика... пока ты не понимаешь, что они уже реализованы. DAO — именно такая штука. Казалось бы, зачем кому-то передавать власть куску кода на блокчейне? Но как только ты сталкиваешься с первым бесконечно медленным собранием в Zoom, где все переговариваются и никто ничего не решает — DAO начинает выглядеть не такой уж и странной идеей.

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

Читать далее

JavaScript: структуры данных и алгоритмы. Часть 10

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


Привет, друзья!


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


Сегодня мы продолжим разбирать алгоритмы для работы с графами.


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


Структуры данных и алгоритмы на MyJavaScript.


Интересно? Тогда прошу под кат.

Читать дальше →

Плавающие запятые и ящики

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

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

Читать далее

Алгоритм долговременной генерации розового шума во временной области

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

Тема данной статьи была навеяна публикацией Автокорреляционная функция фликкер-шума / Хабр, в которой даны теоретические оценки авто-корреляционной функции фликкер-шума. Однако, практическое сравнение было дано лишь для броуновского шума, потому что он тривиально получается из белого шума интегрированием. Проверка розового шума осталась под вопросом, потому что для его генерации во временной области требуется "расщепить" интегратор на два одинаковых каскада, что, как будет показано далее, нетривиально, а практическая реализация может быть лишь приближенной. Аналоговые способы (фактически, в частотной области) генерации розового шума оставляем за скобкой, потому что это отдельная тема: там используется свойство, что мощность шума одинакова в каждой октаве, то есть диапазоны частот f ... 2f равномощны. Сфокусируемся на цифровом способе генерации розового шума, то есть на алгоритме, причем во временной области. Обзор показал, что такой алгоритм, как ни странно, отсутствует, что и побудило к созданию такового.

Читать далее

Нейросетевой подход для классификации событий отслеживаемых сверхширокополосным радаром

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

В данной статье речь пойдёт о том, как используя разные архитектуры нейронных сетей классифицировать данные полученные со сверхширокополосного радара " XETHRU by NOVELDA X4M02 290056-010 ". Моя работа основана на публикации " UWB-gestures, a public dataset of dynamic hand gestures acquired using impulse radar sensors " в которой подробно рассмотрена задача классификации человеческих жестов заснятых на сверхширокополосный радар при помощи свёрточной нейронной сети. Авторы оригинальной статьи выложили весь датасет собранный ими в открытый доступ, благодаря чему у меня появилась возможность воспроизвести их результат, а так же превзойти его применив архитектуры рекуррентных нейронных сетей и трансформеров.

Оригинальная статья:
https://www.researchgate.net/publication/350811193_UWB-gestures_a_public_dataset_of_dynamic_hand_gestures_acquired_using_impulse_radar_sensors https://www.nature.com/articles/s41597-021-00876-0
Данные:
https://figshare.com/articles/dataset/A_Public_Dataset_of_Dynamic_Hand-gestures_Acquired_using_Impulse-radar_sensors_/12652592
Мой GitHub с кодом:
https://github.com/DenissStepanjuk/UWB-Gestures-classification-with-Neural-Networks

Ознакомиться.

Искусственный интеллект и алгоритмы в энергетике: применение, преимущества, перспективы

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

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

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

Читать далее

Книга: «System Design: пережить интервью»

Время на прочтение3 мин
Количество просмотров11K
Привет, Хаброжители!

Собеседования по проектированию систем — это боль. Даже опытные разработчики спотыкаются о бесконечные open-ended вопросы и доску, на которой нужно за 45 минут набросать архитектуру, способную пережить апокалипсис.

Хорошая новость: наша новинка поможет успешно пройти интервью.

Книга Чжиюна Таня «System Design: пережить интервью» — это гайд по выживанию. В ней нет воды, только практика: как разбирать задачи, выбирать решения и уверенно их продавать эксперту. Автор знает, о чем говорит — его подход помог разработчикам попасть в Amazon, Apple, ByteDance, PayPal и Uber.
Читать дальше →

SQL HowTo: немного двоичной логики (Advent of Code 2024, Day 24: Crossed Wires)

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

В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.

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

Рекурсивно вычисляем логические выражения и разбираем устройство двоичного сумматора.

Читать далее

JavaScript: структуры данных и алгоритмы. Часть 9

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


Привет, друзья!


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


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


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


Интересно? Тогда прошу под кат.

Читать дальше →

Часть 3. Робот Вертер в медицине

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

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

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

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

Робот-абилитолог может предложить постоянную доступность (работает 24/7 без усталости), точную повторяемость движений для тренировки, мгновенную обратную связь в реальном времени, персонализированные программы на основе данных о прогрессе, а также снижение нагрузки на медиков, позволяя им сосредоточиться на сложных случаях. Однако он не заменяет специалиста, а дополняет его, обеспечивая системность, безопасность и психологический комфорт за счет отсутствия субъективных оценок.

Читать далее

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

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

Что такое цифровая обработка изображений? Зачем нам вообще знать про алгоритмы обработки, когда есть фотошоп и фильтры в телефоне? Или всё можно отдать нейросети и получить крутой результат? И при чём тут Julia, наконец? Будем разбираться!

Мы запускаем серию статей про обработку изображений с использованием языка Julia и вычислительной среды Engee. Задача – ответить на часто встречающиеся вопросы вроде актуальности этого направления компьютерной науки, задач, решаемых методами обработки изображений, применения и реализации стандартных и «умных» алгоритмов. 

В первой части ознакомимся с основами на примере сегментации спутникового снимка.

Читать далее

Великий и могучий: как мы учим нашу систему находить нецензурную лексику в ФИО

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

Привет, Хабр! Меня зовут Макс Траулько, я занимаюсь анализом данных и проработкой новый фичей в команде RnD в HFLabs. Прямо сейчас я работаю над нетривиальной задачей — учу наши алгоритмы распознавать в именах и фамилиях русский мат и прочие ругательства.

Как появилась эта задача? В одной крупной компании клиенты могут оставить обращения во фронт-системе. И иногда пишут в полях ФИО, прямо скажем, черт знает что. А у бизнеса риски: если при ответе на обращение автоматически использовать данные из поля «Имя», можно стать героем насмешливых или гневных постов. 

Чуть раньше с такой же проблемой к нам пришел другой клиент, из ретейла. У того клиенты вообще большие выдумщики — придумывают составные и сложные имена и фамилии с обсценной лексикой. Даже жаль, что показать эти примеры не можем. 

В статье расскажу, как мы решаем эту задачу.

Читать далее

Код, который не ест батарейку: программируем с умом и экономим ресурсы

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

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

Читать далее

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

NVIDIA cuDF и 100-кратное ускорение чтения данных формата JSON Lines в pandas

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

JSON — это широко распространённый формат, применяемый для хранения информации, основанной на обычном тексте. Он поддерживается самыми разными системами, обеспечивая их взаимодействие. Чаще всего это — веб-приложения и большие языковые модели (Large Language Model, LLM). Хотя JSON-данные удобны для восприятия человеком, их сложно обрабатывать, используя инструменты из сфер Data Science (наука о данных) и Data Engineering (инженерия данных).

JSON-данные часто существуют в виде JSON-строк (формат JSON Lines), отделённых друг от друга символами перевода строки (NDJSON, Newline-Delimited JSON). NDJSON используется для представления записей, входящих в состав набора данных. Часто первым этапом обработки данных является чтение файлов формата JSON Lines и преобразование их в объекты DataFrame (датафрейм).

В это материале мы сравним производительность и функционал API, доступных в Python и применяемых для преобразования формата JSON Lines в датафреймы.

Читать далее

Румынская нейросеть личной предикации Emerald AI

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

В 2023 международная группа студентов и аспирантов, на базе Королевского Технологического Университете имени Жоржа Асаши в Яссах (Румыния), начала исследования возможности создания личных предикативных систем на базе нейросетей. Изначально, цель группы была доказать, что достоверные предсказания поведения окружения невозможны. Но две из пяти моделей, использованных в первоначальном эксперименте, дали неожиданный результат в 67.1% и 74.5% соответственно. Моделям удалось предсказывать оценки на экзаменах, личные впечатления о поездках, походах в кино, результатов собеседований, личных отношений и, даже реакции на запросах на гранты. Предсказания делались в закрытом для участника виде и результат учитывался по прошествии времени, для предотвращения обратной связи (эффект пифии).

И что дальше?

Библиотека для кэширования Caffeine: анализ кода

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

То и дело, прожигая время за чтением reddit, я натыкаюсь на очередной пост, в котором упоминается метод S3 FIFO и говорится, что он лучше LRU (вытеснение реже всего используемых значений) — потому, что даёт более низкий процент промахов кэша. Видные компании, в частности, RedPandas, Rising Wave и Cloudflare уже внедрили S3 FIFO у себя на различных мощностях, что только подогрело мой интерес к нему. Кэши — чертовски интересная тема, а по работе мне приходится сильно полагаться на работу с кэшами при обслуживании нескольких сервисов. Так что я был уверен, что рано или поздно мне потребуется протестировать S3 FIFO или, как минимум, удостовериться, что я понимаю ключевые идеи, заложенные в этой технологии.

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

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

Читать далее

Более быстрые хеш-таблицы: претенденты на место SwissTable

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

24 ноября 2021 года на сайте ArXiv.org была опубликована научная статья «Крошечные указатели» (Tiny Pointers) с описанием новой структуры данных — «крошечных» указателей, которые указывают путь к фрагменту хранимых данных и занимают меньше памяти, чем традиционные указатели.

Осенью 2021 года эту статью заметил Андрей Крапивин (Andrew Krapivin), студент Ратгерского университета в Нью-Джерси, и не придал ей особого значения, пишет Quanta Magazine, журнал о последних достижениях в математике (перевод статьи на Хабре). Только через два года он нашёл время, чтобы внимательно ознакомиться с материалом. И понял, насколько это прорывное изобретение, если применить его для оптимизации хеш-таблиц.

Данная тема уже упоминалась на Хабре, но заслуживает более подробного обсуждения.
Читать дальше →

SQL HowTo: работаем с массивами (Advent of Code 2024, Day 23: LAN Party)

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

В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.

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

Применяем простые операции над массивами, чтобы определить связность графов.

Читать далее

Правильная скобочная последовательность

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

Когда-то однажды я встретил классическую задачу с правильной скобочной последовательностью. Задача звучала как-то так: "Сгенерировать k-ю в лексикографическом порядке правильную скобочную последовательность длины 2n". Эта была одна из первых задач на алгоритмы, которую я встретил. До сих пор не понимаю общепринятое решение, потому придумал свое. Эта статья про это самое решение.

Читать далее

Алгоритмы поиска аномалий HBOS и ECOD

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

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

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

Читать далее