Все потоки
Поиск
Написать публикацию
Обновить
175.82

Алгоритмы *

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

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

Метод Рудольфа Калмана для сглаживания рядов

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

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

Читать далее

DeepWalk: поведение и как его реализовать

Время на прочтение8 мин
Количество просмотров4.5K
imageШпаргалка по быстрому анализу и оценке отношений в графовых сетях при помощи Python, Networkx и Gensim.

При помощи графовых структур данных можно представлять сложные взаимодействия, и работа с ними открыла новые пути анализа и классификации сущностей – смотря, как они влияют друг на друга. Притом, что такой анализ – очень мощное средство для нахождения различных структур внутри сообществ, в них не хватает возможностей запрограммировать аспекты графа как входную информацию для традиционных алгоритмов машинного обучения. Алгоритм DeepWalk [1] позволяет схватывать взаимодействия, содержащиеся в графе и программировать их в простых нейронных сетях как векторные представления, которые далее могут потребляться вышеупомянутыми алгоритмами машинного обучения. В Интернете много простых вводных статей, позволяющих познакомиться с алгоритмом DeepWalk, однако не хватает таких, в которых приводился бы код и сообщались бы детали реализации подобных систем. Под такими деталями я понимаю параметризацию модели, соображения о развертывании и обработку невидимых данных.

В этой короткой статье мы в общем виде рассмотрим графовые сети, Word2Vec / Skip-Gram, а также процесс DeepWalk. В качестве иллюстрации приведу пример с многоклассовой классификацией, на котором демонстрируется ход алгоритма. Рассмотрим различные конфигурации параметров и обратим внимание, как они влияют на производительность алгоритма. В заключение обрисую некоторые моменты, связанные с развертыванием и обработкой невидимых данных внутри системы.
Читать дальше →

Машинное обучение переосмысливает строительные блоки вычислений

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

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

Читать далее

Шесть картинок, как создать словарь

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

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

Читать далее

Чем жив ВКС-рынок в России

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

29 сентября мы провели большую конференцию с блэкджеком дебатами и выставкой. Собрали самое вкусное с мероприятия. Уже надвигалось окончание пандемии, но 2022, что называется, shifted expectations.

Читать далее

Мечты о хорошем спеллчекере без лишних заморочек

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

Привет, Хабр!

Работая с текстами, часто приходится сталкиваться с проблемой грязных данных. Опечатки, орфографические ошибки, случайный CAPS LOCK. И это ещё не затрагивая всю огромную беду с непопулярными жаргонизмами и локальными аббревиатурами/названиями. Практически любой даже самый мощный и чудесный алгоритм анализа, не будучи предварительно подготовленным, на моменте обнаружения фразы «две однёрки» пошатнётся и икнёт. А если таких фраз в тексте будет много, то алгоритм просто сойдёт с рельсов, и полезный эффект нивелируется.

Читать далее

Урбанизм и алгоритмы: построение сетей велодорожек с учетом спроса

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


Любое строительство, будь то сарай для дров или новый микрорайон огромного мегаполиса, требует тщательного планирования. В противном случае можно получить результат, далекий от желаемого. В аспекте урбанизма, который распространяется по миру с небывалой скоростью, планирования много не бывает, ведь разумный градостроитель должен учесть все нюансы, от расположения домов и улиц до расположения автомобильных дорог и пешеходных тропинок. Если с дорогами для машин все более-менее понятно, то вот с дорогами для велосипедистов порой возникают трудности. Чаще всего это связано с тем, что о велосипедистах думают в последнюю очередь, не учитывая их нужды в начале проектирования района или города в целом. Ученые из Дрезденского технического университета (Германия) разработали алгоритм для построения сети велодорожек на основе спроса, т. е. пожеланий и нужд самих велосипедистов. Как работает алгоритм, какие факторы он учитывает, и насколько хороши построенные им маршруты? Ответы на эти вопросы мы найдем в докладе ученых.
Читать дальше →

Алгоритмы поиска решений лабиринтов и их практическое применение в реальном мире — Кит Берроуз и Ванесса Клотцман

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

Первое упоминание термина “maze” датируется тринадцатым веком, а “labyrinth” — к четырнадцатым. Сама концепция лабиринтов восходит к эпохе греческого мифологического героя Тесея — древнего героя, успешно прошедшего Кносский лабиринт и сразившего Минотавра.

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

Читать далее

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

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

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

Однако нельзя отрицать экспоненциального роста вычислительной мощности компьютеров в последние десятилетия. Более того, закон Мура и революция IT — один из главных факторов экономического прогресса в XX–XXI вв. Давайте вспомним некоторые отрасли, которые кардинально продвинулись вперёд благодаря экспоненциальному росту вычислений.

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

Читать далее

Алгоритмы сортировки в Swift

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

Алгоритмы сортировки в Swift. Краткое пособие для подготовки к собеседованию для начинающего разработчика на Swift.

Читать далее

Согласованное хеширование: не самые очевидные вещи

Время на прочтение13 мин
Количество просмотров9.1K
image

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

# модульное хеширование
hash = key % N of nodes


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

Книга «Алгоритмы неформально»

Время на прочтение9 мин
Количество просмотров8.4K
image Хорошего настроения, Хаброжители!

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

Вы узнаете нюансы реализации многих самых популярных алгоритмов современности, познакомитесь с их реализацией на Python 3, а также научитесь измерять и оптимизировать их производительность.
Читать дальше →

Создаём свою библиотеку виджетов на Javascript голыми руками. Часть 0: Классы и модули

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

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

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

Начать реализацию.

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

Когда и как следует инвалидировать кэш

Время на прочтение11 мин
Количество просмотров16K
image

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

Выразить иерархически: вопрос как увидеть хамелеона

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

Проблема нейросетей - невозможность обучаться на единичных примерах. Справиться может табличное RL, но обучаться на данных большой размерности - иная неразрешимая сторона этой парадигмы https://habr.com/ru/post/437020/ Решение только в одном: видеть мир иерархически, где каждая его подчасть также может быть выражена иерархически.

Читать далее

Децентрализованный поиск для свободного веба

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

Возможно ли создать поисковую систему, которую тяжело подвергнуть цензуре, влиянию и блокировке?

Говоря техническим языком, возможно ли выполнять полнотекстовый поиск не имея удаленного сервера, удобным для пользователя способом, одновременно храня поисковый индекс в peer-to-peer системе и имея возможность быстро обновлять поисковый индекс?

Да, это возможно!

Под катом описание архитектуры поискового движка Summa на Rust и набора приемов, позволивших ответить утвердительно на все вопрос

Читать далее

Алгоритмы для веб-разработчиков простыми словами (часть 2)

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

Здравствуйте, друзья!

Мы продолжаем разбирать максимально простым языком алгоритмы и структуры данных на JavaScript. И сегодня мы поговорим о, пожалуй, самом знаменитом алгоритме, про который слышал каждый разработчик — а именно о сортировке пузырьком (Bubble Sort).

Если вы еще не читали нашу первую статью (про алгоритмы поиска и Big O нотацию), то можете найти ее вот здесь.

А сейчас давайте перейдем к теме статьи.

Читать далее

Алгоритмы сортировки и их производительность

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

Здравствуйте, давно читаю Хабр и все хотел написать кому-нибудь статью, но не знал с чего начать и о чем писать. Но решил что тянуть кота за причинное место. Надо просто взять и написать обзор о чем то что я знаю и что будет просто для начало. Поэтому решил описать алгоритмы сортировки в размере 37 штук. Я понимаю, что на Хабре есть подобные статьи, одна постараюсь их добавить количеством алгоритмов и приведением небольшого числа графиков.

Читать далее

Как полюбить задачи регрессии

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

У задач классификации, в отличии от задач регрессии, есть одно очень приятное свойство:
большинство ML алгоритмов решения задач классификации выдают не просто ответ, а некоторую оценку уверенности модели в ответе. То есть помимо метрик самой модели мы обладаем оценкой вероятности для конкретного ответа на конкретном примере. Это здорово помогает в принятии решений.
Неправда ли хотелось бы иметь что-то такое и для задач регресии?

Читать далее

Визуализация алгоритмов сортировки

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

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

Читать далее

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