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

Алгоритмы *

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

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

Как выполнить аппаратную реализацию энкодера h264, не написав ни строчки кода на VHDL/Verilog?

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

Вступление

Сжатие видео с камеры является важной задачей как при трансляции данных через сеть Интернет, так и при передаче данных через радиоканал. Это позволяет в разы сократить объем передаваемой информации при небольшой потере детализации в исходном видео. Сейчас самым популярным алгоритмом для сжатия видео является кодек h264. Хотя уже существует следующая реализация кодека – h265, но он имеет большую вычислительную сложность алгоритма и пока не нашел столь широкого применения, и его реализацию можно оставить на потом :)

Модельно-ориентированное проектирование - это что?

При разработке алгоритма для ПЛИС можно выделить два основных подхода: написать алгоритм сразу на языке описание аппаратуры VHDL/Verilog/SystemC или использовать более высокоуровневые средства проектирования. Во втором случае вначале строится эталонная модель алгоритма в MATLAB/Simulink, тестируется, верифицируется и постепенно подготавливается к автоматической генерации HDL кода из алгоритма. Конечно, мы выбрали второй вариант, т. е. наш план – на основе MATLAB кода сделать эталонную модель алгоритма Simulink, а после – адаптировать ее к автоматической генерации кода и получить HDL для ПЛИС.

Читать далее

Балансирующий робот на Arduino Nano и шаговых моторах

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

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

Читать далее

DataScience Digest — 31.08.21

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

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

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

Также хочу пригласить всех на сентябрьские вебинары, которые мы проводим в рамках серии "The A-Z of Data":

- 8 сентября - Deploying deep learning models with Kubernetes and Kubeflow
- 16 сентября - Re-usable pipelines for ML projects with DVC
- 22 сентября - From research to product with Hydrosphere

Буду рад видеть всех на наших трансляциях, присоединяйтесь!

Читать далее

Управление запасами

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

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

Читать далее

Шрифты для графического дисплея? Это же очень просто

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

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

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

Читать далее

Как достичь максимального счастья в обществе? (теория игр)

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

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

Возникает логичный вопрос: а можно ли с помощью концепций теории игр смоделировать поведение индивидов в обществе?

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

Задача выбора (назначения). Венгерский метод решения

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

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

Читать далее

Проигрыватель мелодий из игры Monkey Island

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

Приключение начинается...

Кратко:

  • Я модифицировал DOSBox для извлечения пар значений частоты/задержки мелодий PC-спикера из игры «Остров обезьян».
  • Затем с помощью алгоритма Хаффмана я втиснул всю эту музыку в ATiny85 (512 байтов ОЗУ, 8Кб флэш).
  • После этого собрал небольшую плату с динамиком для ее воспроизведения…
  • … в качестве подарка моим племянникам и племянницам, с которыми встречусь в ближайшем будущем спустя год изоляции из-за пандемии.

Все верно – их дядя откровенный ботан, позаботившийся о том, чтобы детство племяшей не прошло без знакомства с Гайбрашем Трипвудом:)
Читать дальше →

Рекомендательные системы: как алгоритмы ЯRUS подбирают пользователям новости

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

Руководитель технической дирекции ЯRUS, Дмитрий Илюхин

Сегодня мы поговорим о внутренней кухне рекомендательных систем на примере приложения ЯRUS. Разработчики предлагают ярусный контент – новости, видео, события, музыку и многое другое. Однако цель команды ЯRUS – не только собирать разнообразный контент на одной площадке, но и правильно показывать его пользователям, за что и отвечает рекомендательная система. Что же такое рекомендательные системы и как они работают, расскажет руководитель технической дирекции ЯRUS Дмитрий Илюхин.

— Привет, как ты долго занимаешься проектом?

— В ЯRUS я с самого его основания, с июля 2020 года. Многое, что вы можете увидеть сейчас, – итог наших общих трудов с командой.

Расскажи чуть подробнее, как связаны приложение и рекомендательная система?

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

Есть два типа подходов. Первые основаны на том, что смотрит группа пользователей; вторые – на предпочтении конкретного человека. Мы учитываем всё.

Например, к нам в систему ежедневно подтягивается около 56 000 новостей от 10 000 источников СМИ. Все они проходят внутреннюю чистку: на качество, язык и прочие параметры. Оставляем только литературные тексты.

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

Читать далее

Протокол безопасности транспортного уровня (TLS), версия 1.2 (RFC 5246) (Часть 2)

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

Данный перевод является второй частью перевода протокола безопасности транспортного уровня (TLS) версии 1.2 (RFC 5246). Первая часть перевода находится  здесь. Вторая часть перевода содержит описание протокола записи TLS.

Читать далее

Как мы поучаствовали в ICFPC 2021 и что из этого вышло

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

Одна старая академическая конференция, International Conference on Functional Programming, уже больше двадцати лет организует соревнование по программированию своего имени. 1 задание, 72 часа, участвуют команды произвольного размера. На этом ограничения все. Задача может быть любой, решения — тем более.

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

Под катом обзор контеста 2021 года и нашего участия в нем. А еще алгоритмы, теории, байки и разбор решений других команд.

Читать далее

Единая система мониторинга и оповещений BI: правда или вымысел?

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


Привет, Хабр! Мы, Юлия Лузганова HiJulia и Наталия Прудникова balzaant, аналитики в команде Business Intelligence Delivery Club. Наш департамент аналитики стремительно вырос за последние полтора года, сейчас в нем 50 человек и десятки различных проектов. Мы в группе BI-аналитики помогаем пользователям получать чистые и актуальные данные. Например, количество заказов, работающие рестораны и время доставки заказов — одни из главных сущностей. Наша основная задача — своевременная и бесперебойная поставка данных в аналитическое хранилище и их подготовка к дальнейшему использованию. Для этого нам необходимо оперативно выявлять проблемы с загрузкой и обработкой информации.

В этой статье мы хотели бы рассказать о создании мониторинга и системы “near real-time” оповещений. С технической точки зрения реализация простая, а вот нервных клеток разработчиков DWH, BI и пользователей после внедрения сохранено бесконечно много.

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

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

Разбор алгоритмов генерации псевдослучайных чисел

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

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

Читать далее

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

Задача, которую предлагали разработчикам на собеседованиях в Reddit: разбор и решение от сотрудника компании

Время на прочтение8 мин
Количество просмотров24K
Впервые я столкнулся с техническими собеседованиями еще в 2012 году, когда искал свою первую работу в IT. Я выслушал условия задачи, нацарапал решение на доске, ответил на несколько вопросов и ушел, весь перепачканный черный маркером. В то время я совершенно не представлял, как выглядит весь этот процесс с другой стороны; всё, что мне оставалось – в тревоге ждать результатов и надеяться, что я вписался в неизвестные мне критерии тех, кто проводил собеседование.

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

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

Разбиения чисел и магические шестиугольники

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

Среди свойств разбиений чисел на части можно указать одно, не называемое другими авторами, которое в ряде случаев оказывается весьма полезным. Речь идет о свойстве разбиений числа, закрепляющем за конкретными слагаемыми подмножества позиций (точек) дискретной плоскости, в котором эти слагаемые могут перемещаться, не выходя за его пределы. Например, рассмотрим такую задачу. Имеется 2 спицы длиной 12 ед и 7 шаровых бусин с диаметрами 2,2,2,3,3,4,4 ед и сквозными отверстиями, проходящими через центры бусин. Как распределить и нанизать бусины на спицы, чтобы спицы после вставки их в кольцо с диаметром большим 12 образовали симметричную фигуру?

Читать далее

Интеграция сервиса «Проверки по списку недействительных российских паспортов» или как сжать csv-файл в 38 раз

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

Имеется ежедневно обновляемый архив со списком недействительных российских паспортов в формате csv. Размер архива list_of_expired_passports.csv.bz2 — 506 MB, размер распакованного csv-файла — 1,6 GB.

Требуется реализовать вспомогательный REST-сервис, для использования внутри компании, со следующими возможностями:

1. Проверка наличия паспорта (Серия + Номер) в списке недействительных паспортов.
2. Возможность обновления данных без прерывания работы сервиса.

Читать далее

Рекомендательные системы: проблемы и методы решения. Часть 2

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

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

(вот ссылка на первую часть).

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

Читать далее

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

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

Транспортная задача линейного программирования относится к перечню классических задач, решаемых в практике деятельности людей. Эта задача методами классической математики не решается. В задаче необходимо отыскивать экстремум целевой функции. В задаче целевая функция – линейная. Ограничения на переменные (их может быть очень много) описываются также линейными зависимостями. Казалось бы чего проще. Но как раз ограничения и порождают трудности, связанные не просто с поиском max и min при отсутствии ограничений, а с необходимостью учета таких ограничений. Искать требуется не просто экстремум, а условный экстремум. Методы решения задачи позволяют учитывать особенности структуры задачи и даже отказаться от симплексного метода решения в чистом виде.

Читать далее

Нейросети против пылесоса, или Как мы убрали лишний шум в звонках ВКонтакте

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

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

Читать далее

Удаление в красно-черном дереве

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

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

Читать далее

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