Как стать автором
Обновить
87.39
Рейтинг

Алгоритмы *

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Танцы без бубнов или как я реализовал автомат на ПЛИС

Блог компании ЦИТМ Экспонента Алгоритмы *FPGA *Программирование микроконтроллеров *Инженерные системы

Всем привет, дорогие хабровчане! Сегодня я хочу поделиться своей «больной» идеей реализовать калькулятор на ПЛИС на основе конечного автомата. Почему больной? Потому что уж очень мудрёно получается: всё-таки реализация автоматов на ПЛИС – дорогая практика в смысле ресурсов. Почему хочу поделиться? Потому что вишенкой на торте в этом проекте является автоматическая генерация кода с помощью такого мощного средства, как HDL Coder в MATLAB, что в купе со Stateflow очень интересно смотрится: создание железного кода на основе графического составления графа системы – ни это ли верх мечтаний разработчика, которому необходимо реализовать сложнейший граф с кучей разных переходов и условий ?!

Итак, задачу перед собой я поставил следующую: у меня есть «китайский» кит с FPGA Spartan 6 на борту и старенький клавиатурный интерфейс PS/2. Я собираюсь залить проект калькулятора-автомата на ПЛИС вместе с выбранным интерфейсом и с клавиатуры осуществлять ввод данных. Вывод результата и текущего ввода будем наблюдать на 8-ми cемисегментных дисплеях, которые также имеются на отладочной плате.

В первой части мы познакомимся с пакетом Stateflow, как собиралась модель в SIMULINK и сгенерируем HDL-описание. Во второй части мы немного скорректируем проект для получения синтезируемого HDL кода.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 1.3K
Комментарии 2

Новости

Получаем кривую плотности распределения вероятности случайного (или нет) процесса

Python *Программирование *Анализ и проектирование систем *Алгоритмы *Математика *

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

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

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 2.2K
Комментарии 6

Citymobil Data Meetup №3

Блог компании Ситимобил Алгоритмы *Big Data *IT-компании Data Engineering *

Ситимобил каждый месяц проводит митапы о применении Data science в городских и геосервисах, логистике и технологиях умных городов.

На митапе мы рассмотрим разные особенности применения современных технологий в геосервисах. Поговорим и о классическом data science в задачах прогнозирования времени прибытия, о проектирование data warehouse (DWH), чтобы можно было эффективно применять методы машинного обучения и строить дэшборды. А также продолжим говорить о Switchback-экспериментах (у нас уже был доклад об этом не первом митапе), которые часто просто незаменимы в геосервисах.
В этот раз в гости к Ситимобил придут коллеги из Самоката.

Ждём вас 28 октября в 18:00.  Регистрация

Читать далее
Рейтинг 0
Просмотры 221
Комментарии 0

Шифры замены

Информационная безопасность *Криптография *Алгоритмы *Математика *Научно-популярное

В предыдущей статье были рассмотрены простые шифры, использующие алфавиты естественных языков (ЕЯ). Автоматическая обработка сообщений в компьютерных и сетях связи предусматривает использование искусственных языков (ИЯ), что более эффективно во многих отношениях. Ранее описывалась классификация шифров и для некоторых из них было показано как они применяются в области информационной безопасности. Здесь продолжим такое рассмотрение, но для более сложных шифров.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 2.3K
Комментарии 3

Взлом ГПСЧ с помощью машинного обучения

Блог компании Дата-центр «Миран» Информационная безопасность *Криптография *Алгоритмы *Машинное обучение *

Выдача XORShift кажется случайной

Исследователь Мостафа Хассан (Mostafa Hassan) сумел взломать два генератора псведослучайных чисел (ГПСЧ) с помощью машинного обучения. Обученная двуслойная нейросеть предсказала выдачу генератора xorshift128 с точностью 100%.

Во второй части своей работы Мостафа описал ещё одну нейросеть, которая взломала популярный генератор Mersenne Twister (вихрь Мерсенна, MT, MT19937) тоже с точностью 100%.
Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 8.5K
Комментарии 13

«Ижора»: клеточный автомат-компьютер

Open source *Занимательные задачки Lisp *Алгоритмы *DIY или Сделай сам
Из песочницы
Tutorial

Хотелось бы поделиться с читателями Хабра довольно необычной разработкой: настоящим компьютером, сделанном в виде клеточного автомата, действующего по простому правилу Fireworld2 с четырьмя состояниями клеток. Текущая базовая версия компьютера называется "Ижора 1". Еще с 1950-х годов существует такая традиция: давать компьютерам географические названия.

Паттерн, состоящий из более 6 миллионов клеток, содержит 256 килобайт памяти и снабжен монохромным экраном 128x64 пикселей, отражающим состояние экранного раздела ОЗУ, примерно как в ZX Spectrum и других популярных исторических моделях персональных компьютеров. Программы можно писать на ассемблере, компилировать в машинный код, тестировать на эмуляторе и вводить специальной утилитой в сам клеточный автомат. Другая утилита позволяет сохранять текущее состояние компьютера. Для запуска компьютера необходима программа Golly - лучшая на сегодня площадка для подобного рода исследований.

Ассемблер и эмулятор написаны на языке Common Lisp, скрипты для ввода программ в сам клеточный автомат и сохранения его состояния - в Python. Компьютер имеет 32-битную архитектуру и на данный момент в нем все один регистр и одна операция: вычитание с условным переходом в случае отрицательного или нулевого результата (Subleq). Несмотря на примитивность такой модели, давно доказана ее универсальность. Существует даже операционная система Dawn OS, написанная для эмулятора Subleq-процессора.

Итак, суммируем: виртуальный компьютер с экзотической моделью программирования и ресурсами уровня древних ПК 1980-х, исполняющий всего около 10 операций в секунду, требующий современный компьютер с несколькими гигабайтами памяти (рекомендуемый минимум - 8 гигабайт), с эмулятором и ассемблером на Лиспе. Зачем и кому это нужно? Очень краткий ответ: ради хака и ретрокомпьютинга. Ниже - более подробно.

Читать далее:
Всего голосов 39: ↑39 и ↓0 +39
Просмотры 5.2K
Комментарии 18

Затачиваем маршрут GPS: несколько способов отфильтровать данные

Блог компании ATI.SU Алгоритмы *Maps API *C# *

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 2.1K
Комментарии 13

Обзор методов улучшения речи и шумоподавления: от классики к SotA

Блог компании МТС Алгоритмы *Звук Natural Language Processing *Голосовые интерфейсы

Всем привет! Меня зовут Оля Яковенко, я разработчик в MTS AI, занимаюсь задачами по автоматической обработке сигналов. В частности, на данный момент я исследую различные подходы шумоподавления для последующего распознавания речи, и сегодня я хотела бы поделиться с вами обзором и некоторыми находками на эту тему.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 1.1K
Комментарии 7

Приближение многочленом с условием прохождения через точки

Алгоритмы *Математика *Машинное обучение *

При моделировании данных методом наименьших квадратов, кривая обычно не проходит через точки измерений (рис. 1).

Что, если нужно, чтобы эта кривая точно проходила через одну или несколько особо выделенных точек (рис. 2)?

Тогда читаем дальше
Всего голосов 21: ↑18 и ↓3 +15
Просмотры 3.4K
Комментарии 28

Увлекательная история о раскрашивании парных скобок — как VSCode ускорил раскраску в 10,000 раз

Блог компании Wunder Fund Программирование *Алгоритмы *Visual Studio *
Перевод

Прим. Wunder Fund: в этой статье из блога VSCode рассказана увлекательная алгоритмическая история о решении проблемы раскрашивания скобок. Господам удалось достичь значительногоускорения этого процесса. Нам самим очень нравится решать подобные задачи при работе над торговой системой, а если они вам тоже интересны, то пишите:)

Когда имеешь дело с глубоко вложенными скобками в Visual Studio Code — может быть непросто понять то, у каких скобок есть пары, а у каких — нет.

Для того чтобы упростить решение этой задачи, в 2006 году пользователь CoenraadS разработал восхитительное расширение для VS Code — Bracket Pair Colorizer, позволяющее раскрашивать парные скобки, и опубликовал его в VS Code Marketplace. Это расширение стало весьма популярным, теперь оно, с более чем 6 миллионами установок, входит в 10 самых скачиваемых расширений.

Для того чтобы решить проблемы, касающиеся производительности и точности работы расширения, в 2018 году CoenraadS выпустил расширение Bracket Pair Colorizer 2, которое тоже стало популярным и было установлено более 3 миллионов раз.

Читать далее
Всего голосов 43: ↑43 и ↓0 +43
Просмотры 19K
Комментарии 15

Шифры замены и табличного гаммирования

Информационная безопасность *Криптография *Алгоритмы *Математика *

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

Допустим, что устройства читателя подвергаются атаке со стороны неизвестного хакера.

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

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 1.9K
Комментарии 0

Антиплагиат исходного кода: гибридный подход с использованием парсера ANTLR

Алгоритмы *Учебный процесс в IT

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

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 3.1K
Комментарии 17

Идеальная экономика

Децентрализованные сети Алгоритмы *Управление сообществом *Криптовалюты Будущее здесь

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

Подробнее далее...
Всего голосов 21: ↑3 и ↓18 -15
Просмотры 4.1K
Комментарии 37

Логистика. Часть 3. Еще одна модель динамического ценообразования

Алгоритмы *Математика *Разработка под e-commerce *Управление e-commerce *Транспорт
Бывает так, что попадается какая-то задача, находится ее решение, причем довольно неплохое, но потом эта задача все равно не отпускает. Появляется навязчивая мысль о том, что у нее должно быть более оптимальное решение. Примерно так и получилось с задачей динамического ценообразования для авиабилетов, которую мы описывали более года назад в прошлой статье. Решение основывалось на алгоритме семплирования Томпсона. Компьютерное моделирование продаж показывало превосходные результаты, а тот факт, что такие гиганты как Walmart и Amazon уже давным давно и более чем успешно используют различные модификации этого алгоритма, только укрепляло уверенность в том, что мы на верном пути и иных способов оптимального решения задачи просто нет. Но в подавляющем большинстве случаев то, что отлично и везде работает, в авиаотрасли должно работать лучше. Не потому что так хочется, а потому что в этом действительно есть сильная потребность. Должно быть меньше экспериментов с ценой, она не должна меняться очень часто, а сам процесс поиска оптимальной цены должен быть еще быстрее. Но самое главное, алгоритм семплирования Томпсона не позволяет получить более-менее адекватную вероятностную модель спроса, без которой невозможно в полной мере использовать стохастическое программирование и заняться задачами глобальной оптимизации.


Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 2.6K
Комментарии 0

Формы глаголов в английском языке

Алгоритмы *Natural Language Processing *
Recovery mode

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

Каждое из 16 времен (каждое время – в двух вариантах: действительный и страдательный залог) может быть охарактеризовано наличием или отсутствием каждого из следующих 5 признаков.

Читать далее
Всего голосов 5: ↑1 и ↓4 -3
Просмотры 5.6K
Комментарии 14

Спортивное программирование — социальный лифт в IT. Как его использовать школьнику, родителям школьника и разработчику?

Блог компании IT-People Спортивное программирование *Алгоритмы *Учебный процесс в IT

С какого возраста можно обучать ребенка программированию и какой язык лучше выбрать? Как попасть на самые крутые IT-направления в лучшие вузы? Становятся ли дети разработчиков разработчиками? Как попасть на стажировку в Яндекс или на работу в Google?

Обо всем этом нам рассказывает Михаил Рубинчик — лидер и главный тренер по спортивному программированию в Уральском федеральном университете и основатель онлайн-школы по спортивному программированию SPGuide. Подробности под катом

Читать далее
Всего голосов 10: ↑6 и ↓4 +2
Просмотры 5.1K
Комментарии 27

Копнем поглубже: сравниваем популярные алгоритмы оптимизации с менее известными. Часть 2

Блог компании Prequel Алгоритмы *Обработка изображений *Машинное обучение *Искусственный интеллект


Еще раз здравствуй, Хабр! Меня зовут Мария Белялова, и я занимаюсь data science в мобильном фоторедакторе Prequel. Кстати, именно в нём и обработана фотография из шапки поста.

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

В этой статье мы посмотрим, как они ведут себя на игрушечной задаче — распознавании цифр из датасета MNIST. В следующей части мы проверим эти алгоритмы в бою на реальной задаче из продакшена. Код для этой и предыдущей части находится здесь.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 2.8K
Комментарии 1

Парадокс Монти Холла не работает

Алгоритмы *Математика *
Из песочницы

Недавно на просторах интернета увидел отрывок из фильма "Двадцать одно". В этом отрывке говорится о том, что парадокс Монти Холла действительно работает!

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

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

Читать далее
Всего голосов 44: ↑8 и ↓36 -28
Просмотры 5.8K
Комментарии 61

Мозг, сенсорные системы и их моделирование

Алгоритмы *Математика *Научно-популярное Мозг Биология

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

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 1.3K
Комментарии 4

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