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

Алгоритмы *

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

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

Небольшая доработка двухлинейного сумматора и счётчика испытательного стенда для сумматоров

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

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

Читать далее

Опасность наивности

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

Вопрос на засыпку. Как вы реализуете перемешивание колоды карт?

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

Читать далее

Реализация шифра «Магма» на языке RUST

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

Привет! Сегодня мы продолжаем реализовывать шифрование. В этой статье мы рассмотрим алгоритм шифра "Магма", который был разработан и использовался в СССР.

Читать далее

Простые эвристики для TSP

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

В прошлой заметке я поднял тему ванильно-радужных перспектив использования искусственного интеллекта для решения оптимизационных задач, в частности, для решения хорошо изученной задачи коммивояжера, она же TSP (Travelling Salesman Problem). Там же был дан старт разбору некоторых классических алгоритмов для решения этой задачи в рамках чего я представил подход, основанный на MIP (Mixed Integer Programming). Считаю важным завершить такой разбор для лучшего понимания отличий в работе нейронных сетей.

Читать далее

SLAM на Java с OpenCV: сравнение алгоритмов автономной навигации

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

Интересуешься визуальной одометрией? В этой статье я сравнил алгоритмы ORB, R2D2, SIFT и их комбинации, реализовав их на Java с OpenCV. Подробно разобрал, как они работают, замерил точность, производительность и наглядно показал, какой алгоритм лучше для беспилотников. Если хочешь узнать больше и посмотреть примеры кода на Java, заглядывай!

Как я сравнил SLAM-алгоритмы на Java?

Homo clickus. Как моделирование кликающих людей пригодится для сегментации изображений

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

Приветствую всех читающих!

Меня зовут Антон Антонов, я инженер по искусственному интеллекту, работаю в Институте искусственного интеллекта AIRI в команде, которая занимается Embodied AI — областью, связывающей робототехнику, компьютерное зрение и большие языковые модели.

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

Ниже я хотел бы подробнее рассказать о нашей разработке.

Кликнуть

Магия простоты: как мы улучшили отображение общественного транспорта на карте

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

Привет! Я Иван Косолапов, тимлид команды ETA/RTA. Мы часть сервиса Data Science и занимаемся анализом данных и машинным обучением для задач навигации в 2ГИС.

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

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

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

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

Расскажу, как решая эти задачи, мы добились более точного отображения автобусов на карте в 2ГИС, упростив существующую на тот момент сложную систему.

Читать

SQL HowTo: агрегация внутри рекурсии (Advent of Code 2024, Day 11: Plutonian Pebbles)

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

Сегодня посмотрим на примере задачки из Advent of Code зачем и как можно обойти ошибку aggregate functions are not allowed in a recursive query's recursive term, возникающую при попытке агрегировать какие-то данные внутри шага рекурсии на PostgreSQL — «если нельзя, но очень хочется, то можно».

Читать далее

Хэши: виды, применение и примеры на Java

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

Хэширование — это фундаментальный процесс в программировании, который применяется везде: от защиты паролей до ускорения поиска данных в структурах. Эта статья поможет разобраться в основных видах хэшей, их применении, а также покажет, как их использовать на практике с примерами на Java.

Читать далее

Формальная верификация протокола IBFT: проверяем безопасность византийского консенсуса в блокчейне

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

Добрый день! Меня зовут Кирилл Зиборов, я представляю отдел безопасности распределенных систем Positive Technologies. В этой статье я продолжу рассказывать о том, как мы используем инструменты формальной верификации для предотвращения уязвимостей в различных компонентах блокчейна. Ранее мы верифицировали смарт-контракты дедуктивным методом. В этот раз речь пойдет о протоколах консенсуса — механизмах принятия узлами новых транзакций в цепочку, а именно об алгоритме Istanbul Byzantine Fault Tolerant и в целом о том, как можно гарантировать корректность подобных алгоритмов с помощью метода проверки моделей.

Читать далее

Головоломки с балансом. Поиск фальшивой монеты (часть 2)

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

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

В прошлой статье мы остановились на том, что необходимо сформулировать алгоритм выбора сравнений в каждой точке дерева решений для любого N ≥ 3. В статье будет много формул, за что я искренне извиняюсь, но кто сказал, что математика может обходиться без них?

Читать далее

Когда ИИ может в оптимизацию…

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

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

Читать далее

Элегантная математика фильтров Блума

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

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

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

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

Медианы чисел

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

Пусть дано нечётное количество чисел. Обозначим его через n = 2k + 1. Будем считать, что все числа разные. Медианой считается то число из них, для которого есть k чисел меньше его и k чисел больше. Далее будут рассматриваться алгоритмы поиска медиан при небольших значений n.

Читать далее

Порядок из хаоса. Напишем клеточный автомат «Муравей Лэнгтона» на p5py в браузере и анимируем с помощью state machine

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

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

Читать далее

Как TF-IDF обошел SOTA-модель BERT4Rec в персональных рекомендациях

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

Привет, меня зовут Коновалов Андрей, я Data Scientist персональных рекомендаций Wildberries. В этой статье разберем, как можно тюнингом TF-IDF побить BERT4Rec в ретро-тесте рекомендательной системы.

Читать далее

Применимость Java в искусственном интеллекте: 7 библиотек для нейросетей, которые стоит изучить

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

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

Читать далее

На чём учатся современные модели машинного перевода: опыт команды Яндекс Переводчика

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

В сервисе Яндекс Переводчик мы поддерживаем перевод между 102 языками. Наша цель — обеспечивать качественный перевод для самых разных типов данных: текстов, документов, HTML, изображений и видео. Сегодня обсудим ключевой компонент для обучения моделей машинного перевода — данные для обучения.

Современные нейросетевые подходы очень требовательны как к объёму данных в обучении, так и к их качеству. Для получения хорошей переводной модели требуются сотни миллионов, а в идеале миллиарды параллельных предложений (пар из предложения и его перевода). Возникает вопрос: откуда их взять и что это за данные?

В этой статье я расскажу о том, как из текстов интернета в 100 ПБ найти терабайты суперчистых данных с переводами между любыми языками. Вы узнаете, почему эта задача требует обучения больше десятка различных вспомогательных ML‑моделей. А ещё коротко подсвечу, какое место в этом процессе занимает наша YandexGPT и что это за зверь такой — YandexGPT‑MT.

Читать далее

Как устроены очереди: визуальное объяснение

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

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

В этом посте мы изучим очереди в контексте HTTP-запросов. Начнём мы с простого, и постепенно будем вводить более сложные структуры очередей.
Читать дальше →

8 вопросов начинающего аналитика

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

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

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

1.       Заказчик, который не понимает, какой эффект он получит от задачи.

2.       Аналитики, которые боятся отстаивать свое мнение.

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

Сегодня детальнее я бы хотела поговорить о второй проблеме.

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

Читать далее

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