Обновить
198.78

Алгоритмы *

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

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

Практическое применение сервера с FPGA

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

В данной статье будет рассказано о попытке ускорить операции над разреженными булевыми матрицами, реализованные на OpenCL, с помощью замены целевой платформы GPGPU на FPGA.

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

Объем таких данных неуклонно растет и потому для получения хорошей производительности в задачах анализа графов все острее встает вопрос о разработке параллельных алгоритмов, что оказывается нетривиальной задачей из-за нерегулярности данных.
Читать дальше →

Быстрая математика для графиков, на примере вычисления среднего

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

Расскажу про типичные подходы к вычислению данных, для построения графиков. Про "лайфхаки" ускорения вычислений и про работу различных типов данных в JavaScript, а главное, про то, как ускорить вычислительные операции. И задам "Домашнее Задание".

Читать далее

Оптимизация на простых типах данных. Часть №2 «Числа»

Время на прочтение8 мин
Количество просмотров6.7K
19 апреля автор курса «Алгоритмы для разработчиков» в Яндекс.Практикуме и разработчик в компании Joom Александра Воронцова провела открытый вебинар «Оптимизация на простых типах данных». У Аси за спиной 11 лет разработки, опыт олимпиадного программирования, а также работа в Яндексе с высоконагруженными проектами.

Мы подготовили расшифровку вебинара в двух частях. Первая часть — про строки и работу с ними, вторая — про числа.

Статья будет полезна разработчикам на Python и C/C++, которые хотят научиться трюкам для ускорения кода, а также программистам на других языках, которым интересны фишки, связанные с типами данных.


Золотая середина. Поиск медианного элемента потока входных чисел

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


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

Оптимизация на простых типах данных. Часть №1 «Строки»

Время на прочтение12 мин
Количество просмотров8.1K
19 апреля автор курса «Алгоритмы для разработчиков» в Яндекс.Практикуме и разработчик в компании Joom Александра Воронцова провела открытый вебинар «Оптимизация на простых типах данных». У Аси за спиной 11 лет разработки, опыт олимпиадного программирования, а также работа в Яндексе с высоконагруженными проектами.

Мы подготовили расшифровку вебинара в двух частях. Первая часть — про строки и работу с ними, вторая — про числа.

Статья будет полезна разработчикам на Python и C/C++, которые хотят научиться трюкам для ускорения кода, а также программистам на других языках, которым интересны фишки, связанные с типами данных.


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

Data Phoenix Digest — 08.07.2021

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

Приветствую всех!

Встречайте свежий выпуск дайджеста полезных материалов из мира Data Science & Machine Learning и не забывайте подписываться на наш Telegram-канал.

Также хочу пригласить всех 14 июля на долгожданный оффлайн митап одесского Open Data Science сообщества. На нем мы поговорим про управление данными и обнаружение объектов в реальном мире, а также вас ждет много живого общения, которого нам очень не хватало на карантине. Участие бесплатное, будет организована онлайн-трансляция. Детали и обязательная предварительная регистрация здесь.

Читать далее

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

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

Еще в сентябре 2019 года консалтинговое агентство IDC прогнозировало, что к 2023 году расходы предприятий на внедрение технологий искусственного интеллекта вырастут более чем в два с половиной раза и составят $97,9 млрд. Пандемия COVID-19 только увеличила потенциальную ценность AI для бизнеса. Согласно исследованию McKinsey State of AI, опубликованному в ноябре 2020 года, половина респондентов заявили, что их организации уже внедрили, как минимум, одну AI-функцию в свои бизнес-процессы.


Эксперты утверждают, что 77% устройств, которые мы используем в настоящее время, имеют встроенный искусственный интеллект. AI-технологии сопровождают людей в медицине, экономике, образовании, науке, розничной торговле, автомобилестроении, производстве и даже в творчестве. Какие же операции мы можем смело доверить искусственному интеллекту, освободив человеческие ресурсы для более важных задач?


AI_01.jpg
Читать дальше →

Вычисляем ближайшие объекты по координатам

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

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

Читать далее

Реализация алгоритма Минимакс на примере игры «Крестики-Нолики»

Время на прочтение7 мин
Количество просмотров40K
Недавно я написал непобедимую игру «Крестики-Нолики». Это был интересный и поучительный проект, который многому меня научил. Если у вас есть желание посмотреть результат — это можно сделать здесь.

image

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

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

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

Комплексные числа и геометрические узоры

Время на прочтение6 мин
Количество просмотров31K
Когда речь заходит о комплексных числах, в первую очередь вспоминают о преобразовании Фурье и прочих аспектах цифровой обработки сигналов. Однако у них есть и более наглядная интерпретация, геометрическая — как точки на плоскости, координатам которой соответствуют действительная и мнимая часть комплексного числа. Рассматривая некоторую кривую как совокупность таких точек, можно описать её как комплексную функцию действительной переменной.

Дальше больше картинок и анимаций

Алгоритм Форда-Фалкерсона

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

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

Читать далее

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

Время на прочтение4 мин
Количество просмотров8.6K
Во вчерашней статье про «задачу Танежи или проблемы числа 10958», я попытался представить конкатенацию чисел как алгебраическую операцию. И пока делал расчеты, понял, что мы можем переводить числа меду система счисления только на основе их умножения.

$2ACE_{16} = 10958_{10} = 25316_8 = 10101011001110_2$


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

Погрузиться в поиск музыкальной информации [MIR] — книги, которые помогут сделать это

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

Специалисты, занимающиеся поиском музыкальной информации [music information retrieval, MIR], разрабатывают алгоритмы машинного обучения для выявления паттернов и зависимостей в композициях. Лучшие практики этого направления сегодня используют стриминговые платформы для классификации музыки — например, распознают плагиат. Однако MIR — достаточно новое направление, и оно лишь начинает закрепляться в виде полноценной научной дисциплины.

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

Читать далее

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

Извлечение троих: Как найти пасхалки в книгах Стивена Кинга с помощью NLP алгоритмов

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

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

Читать далее

Задача Танежи или проблема числа 10958…

Время на прочтение7 мин
Количество просмотров40K
В работе Индера Танежа (Inder J. Taneja) (бразильского математика-популяризатора математики) от 2014 года: Crazy Sequential Representation: Numbers from 0 to 11111 in terms of Increasing and Decreasing Orders of 1 to 9 (Сумасшедшее последовательное представление: числа от 0 до 11111 в порядке возрастания и убывания от 1 до 9).
Был один пробел, а именно число 10958, который немного всколыхнул научное сообщество, и самое главное до сих пор не заполнен. Вот про него мы и поговорим.


Измерение интенсивности трафика при помощи u-моделей

Время на прочтение22 мин
Количество просмотров2.8K
stream rate art
Измерение интенсивности потоков в представлении художника.

В одной из наших предыдущих публикаций мы рассказывали о способе измерения интенсивности потока событий при помощи счетчика на основе экспоненциального распада. Оказывается, идея такого счетчика имеет интересное обобщение, о котором в этой публикации расскажут сотрудники компании Qrator Labs Артем Шворин и Дмитрий Камальдинов.
Читать дальше →

Двойственная задача линейного программирования

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

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

Читать далее

Cимплексный метод решения ЗЛП. Пример

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

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

Читать далее

Data Phoenix Digest — 01.07.2021

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

Приветствую всех!

Встречайте свежий выпуск дайджеста полезных материалов из мира Data Science & Machine Learning и не забывайте подписываться на наш Telegram-канал.

Читать далее

Timsort — самый быстрый алгоритм сортировки, о котором вы никогда не слышали

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

Timsort: Очень быстрый, O(n log n), стабильный алгоритм сортировки, созданный для реального мира, а не для академических целей.

Timsort — это алгоритм сортировки, который эффективен для реальных данных, а не создан в академической лаборатории. Tim Peters создал Timsort для Python в 2001 году. 

Timsort сначала анализирует список, который он пытается отсортировать, и на его основе выбирает наилучший подход. С момента его появления он используется в качестве алгоритма сортировки по умолчанию в Python, Java, платформе Android и GNU Octave.

Нотация Big O для Timsort — это O(n log n). Чтобы узнать о нотации Big O, прочтите это.

Читать далее

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