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

Алгоритмы *

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

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

Топ-18 наших самых крутых ИИ-разработок за 2023 год: рукописная прописка, UniversalPay и обрезанные QR. А что еще?

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

2023 год оказался для нашей компании, Smart Engines, крайне успешным со всех точек зрения – бизнес-результатов, научных достижений и, разумеется, технологий. И нашими успехами мы традиционно хотим поделиться с вами. 

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

Мы собрали для себя и для вас топ-18 разработок Smart Engines за минувший год – приглашаем под кат, чтобы с ними познакомиться.

Читать далее

Чтение Micro QR Code версии М2 (алфавитно-цифровой режим)

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

Задание: необходимо прочитать Micro QR Code версии М2, содержащий кодовое слово, состоящее из символов верхнего регистра (на примере закодированных слов – NOVICE, MONEY и M1ND5; почему выбрано именно такое количество символов будет также расшифровано) на основе алгоритма, приведенного в ГОСТ Р ИСО/МЭК 18004-2015 (п. 7.4.4). Аналогично версии М1 данный режим невозможно прочитать стандартными ресурсами мобильных устройств, производимых GAFAM (как оказалось, свободно распространяемые библиотеки страшно глючат, поэтому Ассоциация отказалась и от этого режима).

Читать далее

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

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

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

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

Читать далее

Товары-аналоги и с чем их едят или Свежий подход к формированию групп товаров для управления ассортиментом Ozon fresh

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

Мы команда data science Ozon fresh. В этой статье мы расскажем об одной из наших задач - алгоритм, который помогает управлять нашим огромным ассортиментом.

Ozon fresh — это сервис быстрой доставки продуктов, бакалеи, бытовой техники, электроники и других товаров. В нашем ассортименте более 35 000 уникальных позиций (готовая еда, мясо, рыба, фрукты, овощи, товары для гигиены и многое другое). Специфика Ozon fresh заключается в мини-складах, где хранятся товары. Они доставляются клиентам в радиусе нескольких километров. 

Управление таким количеством позиций требует много человеческих и технологических ресурсов. У нас этим занимаются более 30 человек. Для упрощения работы мы  используем различные группировки товарных позиций. Самая популярная — иерархическая четырёхуровневая группировка (далее мы будем называть её «категорийное дерево»).

Читать далее

В поисках алгоритмического дзена

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

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

Читать далее

Простая проблема приводит к слишком большим числам для нашей Вселенной

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

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

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

Звучит достаточно просто. «Вы можете пойти в начальную школу и рассказать об этом детям», — сказал Кристоф Хаазе, учёный из Оксфордского университета. «Люди подумают: «Это должно быть легко». 

Но математическая задача, лежащая в основе дилеммы Алисы и называемая проблемой достижимости для систем сложения векторов, на удивление тонкая.

Читать далее

Почему B-деревья быстрые?

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

B-дерево — это структура, помогающая выполнять поиск в больших объёмах данных. Она была изобретена более сорока лет назад, однако по-прежнему используется в большинстве современных баз данных. Хотя существуют и более новые структуры индексов, например, LSM-деревья, B-дерево пока никто не победил в обработке большинства запросов баз данных.

После прочтения этого поста вы будете знать, как B-дерево упорядочивает данные и выполняет поисковые запросы.

Читать далее

Томографический калейдоскоп, или подведение итогов уходящего 2023 года вместе с STE

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

Привет, Хабр. На пороге Новый год. Как всегда в конце года хочется понять, а чем же был для нас, компании Smart Engines, год уходящий? Продуктивным - да, и бизнес-результаты, и научные достижения, и технологии - как игрушки на елке - радуют. А где же игрушки - спросите вы и будете правы. Ведь один их сверкающий вид открывает двери празднику. А ниже они обязательно будут. Сегодня мы поделимся с вами нашим взглядом на 12 месяцев, а поможет в этом наш STE. Тот самый продукт для томографической реконструкции, над которым мы не устаем трудиться, дополняя, стабилизируя и запуская, как проходческий щит, в неосвоенные туннели условий томографической съемки.

Результат наших трудов покажем на томографии 12 объектов, каждый из которых символизирует один из 12 месяцев года. Да-да, интересная задача перед нами стояла в декабре - собрать 12 объектов, сфотографировать, сделать томографию и соорудить календарь из них. Кстати, и ты, дорогой читатель, можешь стать обладателем календаря от Smart Engines, но обо всем по порядку!

Читать далее

Чтение Micro QR Code версии М2 (числовой режим)

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

Задание: необходимо прочитать Micro QR Code версии М2, содержащий кодовое слово, состоящее из цифр (на примере – 99999999 и максимальном кодовом расстоянии – 9999999999; почему выбрано именно такое количество цифр будет также расшифровано) на основе алгоритма, приведенного в ГОСТ Р ИСО/МЭК 18004-2015 (п. 7.4.3, пример 2). Аналогично версии М1 данный режим невозможно прочитать стандартными ресурсами мобильных устройств, производимых GAFAM (как оказалось, свободно распространяемые библиотеки страшно глючат, поэтому Ассоциация отказалась и от этого режима).

Читать далее

Разработка и интерпретация иерархической кластеризации

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

Привет Хабр!

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

Читать далее

Секреты USA в Micro QR Code M3 (часть 3)

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

Встроенные в Micro QR Code технологии насыщенны мифами и нереальностями. Программисты моделисты часто добавляют артефакты и/или cookies в свои наработки, которые интересно находить при расшифровке кодов и алгоритмов. А затем и самому кодировать и декодировать практически любую информацию. Рассмотрим этапы расшифровки микрокода среднего микроуровня – М3 формата алфавитно-цифрового кодирования на том же самом историческом примере, что и М2, и М4, аналогично М2 разделим сплошную фразу на четыре слова, получим: UNITED STATES OF AMERICA.

Читать далее

Распаковываем файл gzip вручную

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

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

$ echo "aaaaaaaa" > test.out
$ xxd test.out
00000000: 6161 6161 6161 6161 0a     aaaaaaaa.

Файл получился размером 9 байт — 8 символов a плюс перевод каретки в конце.

Теперь упакуем его. Сделаем это командой gzip -1, поскольку так мы задействуем самый быстрый метод сжатия, который позволит нам лучше разобрать процесс.

$ gzip -1 test.out
$ xxd test.out.gz
00000000: 1f8b 0808 bf35 6a61 0403 7465 7374 2e6f  .....5ja..test.o
00000010: 7574 004b 4c84 002e 00b6 66d7 ad09 0000  ut.KL.....f.....
00000020: 00

Дисклеймер: эту статью я писал в целях обучения, так что мог допустить некоторые ошибки. Мне нравится заниматься низкоуровневым программированием, но моя основная деятельность сосредоточена на веб-разработке для Microsoft Teams.
Читать дальше →

Сложность алгоритмов. Разбор Big O

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

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

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

Читать далее

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

Секреты USA в Micro QR Code M2 (часть 2)

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

Рассмотрим этапы расшифровки микрокода среднего микроуровня – М2 формата алфавитно-цифрового кодирования на том же самом историческом примере, что и М4, но в этот раз разделим сплошную фразу на четыре слова, получим: UNITED STATES OF AMERICA

Читать далее

Algopack Мосбиржи — получаем справочную информация о доступных акциях

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

Совсем недавно, буквально 2 месяца назад, Мосбиржа запустила Algopack и выложила на Гитхаб долгожданную многими библиотеку на python – moexAlgo, которая должна упростить работу с AlgoPack API.

Читать далее

Multilabel-классификация знаний школьников

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

Привет, Хабр! Меня зовут Егор, сейчас я учусь на четвёртом курсе кафедры математических методов прогнозирования (ММП) ВМК МГУ и изучаю машинное обучение, в том числе, обработку естественных языков (Natural Language Processing). Этим летом я стажировался в Лаборатории искусственного интеллекта, в центре Инструментов машинного обучения, где смог применить свои знания для решения практических задач. Об одной из них я и хочу рассказать.

Читать далее

«Алгоритмы» vs «Структуры данных»

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

И снова здравствуйте!

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

По этому решил я эту тему продолжать. Хотя, правды ради и прохождения полиграфа для, я бы всё равно не выдержал и написал бы что-нибудь про это ещё.

Сего дня я решил, что напишу про алгоритмы структур данных. Про те, которые смогу вспомнить. И, как говорит наш дорогой шеф:

«Погнали!»

Секреты USA в Micro QR Code M4 (часть 1)

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

Встроенные в Micro QR Code технологии насыщенны мифами и нереальностями. Программисты моделисты часто добавляют артефакты и/или cookies в свои наработки, которые интересно находить при расшифровке кодов и алгоритмов. А затем и самому кодировать и декодировать практически любую информацию. Рассмотрим этапы расшифровки микрокодов самого старшего микроуровня – М4 формата буквенно-цифрового кодирования на историческом примере.

Первый и, наверное, самый важный на фоне остальных мифов вопрос: почему максимальное количество смешанных символов для кодирования в микрокодах ровно 21 (цифро-кода – 35 символов, но для алфавита это не актуально)?

Читать далее

Чтение Micro QR Code версии М1 (числовой режим)

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

Задача: необходимо прочитать Micro QR Code версии М1, содержащее кодовое слово, состоящее из цифр (на примерах – 7, 77, 777, 7777 и максимальное кодовое расстояние – 77777) на основе алгоритма, приведенного в ГОСТ Р ИСО/МЭК 18004-2015 (п. 7.4.3, пример 2). Данный режим невозможно прочитать стандартными ресурсами мобильных устройств, производимых GAFAM (как оказалось, свободно распространяемые библиотеки страшно глючат, поэтому Ассоциация отказалась от режима)

Читать далее

Метод подбора параметров функции за ограниченное время. Торговый симулятор + улучшение стратегии

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

Уважаемые участники сообщества Хабр, добрый день!

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

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

Итак, начнем.

Читать далее

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