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

Алгоритмы *

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

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

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

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

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

Читать далее

О том, как алгоритм Дейкстры реализовывал и некоторых его применениях

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

Приветствую Вас, хабровчане!

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

Читать далее

Улучшаем маршруты обхода на складе силами веб-программиста и математики

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

Сразу к сути: есть склад, где все бизнес-процессы уже отлажены и в целом всех всё устраивает. Ничего, что даст рост в 30%, сделать уже невозможно, но хочется. Поставлена цель: оптимизировать маршрут, по которому идёт сборщик товаров, чтобы товар собирался быстрее. Результат 2-3% роста вполне устроит. Ограничения:

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

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

Для прочтения знать сам алгоритм k-ближайших соседей не требуется — он очень простой и станет ясен ещё в ходе прочтения. Он чем-то похож на теорему Пифагора, только на стероидах.

Читать 2500 слов

Как построить прогноз спроса и не потерять голову

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

Всем привет! Представьте себе ситуацию: ваша уютная маленькая команда Data Science занимается прогнозированием спроса для пары десятков дарксторов с помощью какого-нибудь коробочного Prophet. И в один прекрасный день к вам приходит бизнес. Бизнес садится, закидывает ногу на ногу, закуривает сигару и говорит:

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

Хорошо, думаем мы, кажется, что это звучит нетрудно… 

С этой задачи начинается моя история о прогнозе спроса в Самокате. Меня зовут Мария Суртаева, я Data Scientist и расскажу о концепции прогноза спроса, его практических задачах и роли градиентного бустинга.

Читать далее

API для Инвестиций, или Как написать торгового робота

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

На связи команда Тинькофф Инвестиций. В этой статье разберем, как клиенты с минимальными навыками программирования создают торговых роботов. Базой будет API брокера Тинькофф Инвестиций — Tinkoff Invest API. Добро пожаловать на борт!

Читать далее

Программная генерация костюма на основе биологических параметров человека

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

Предупреждение! Эта публикация сыра, как воды мирового океана!
!Эта публикация - размышление, публикация концепт!

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

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

Одежда, один из доступных способов показать себя.

Читать далее

Используем нейросеть для генерации стихов в стиле «Евгения Онегина»

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

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

Шаг 1 – выбираем архитектуру

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

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

Читать далее

Мой личный опыт восстановления старых фотографий с помощью нейросетей

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

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

Читать далее

Применение расстояния Левенштейна с целью оптимизации работы склада

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

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

Предлагаю всем вместе начать исправлять эту ситуацию и приглашаю почитать о том, как на промышленном складе применяли — внезапно! — алгоритм Левенштейна (способ нечёткого сравнения строк).

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

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

Читать далее

Сферический БПЛА в воздухе

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

Представьте, что вы решили сконструировать воздушный шар. И пусть даже не в натуральную величину, а уменьшенную модель – но главное, чтобы летала!!! С чего начать, как подступиться к этой задаче?

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

Читать далее

Пришло время программистов-самоучек

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

И почему к нам стоит присоединиться


image

Миф


Среди комментариев к одному из постов с рекламой моей книги «The Self-Taught Programmer» («Computer Science для программиста-самоучки. Все что нужно знать о структурах данных и алгоритмах») был и такой: «Хочу научиться программировать, но слышал, что в компаниях не воспринимают всерьез программистов без академической степени». К сожалению, это распространенное убеждение, и к счастью – неверное.
Читать дальше →

Как математика помогает логистике быть точнее. Опыт ПГК

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

Цифровые алгоритмы помогают решать реальные бизнес-задачи в самых разных сферах. Логистика — не исключение. Главные инструменты логиста — вовсе не карта, линейка и калькулятор, а сложные IT-системы, которые основаны на математическом моделировании и алгоритмах искусственного интеллекта. Эксперты в этой области ориентируются в цифровых продуктах, умеют их использовать и извлекать выгоду для компании. Почему? Потому что основная задача логиста – экономия. Он критически оценивает существующие процессы и предлагает способы их оптимизации. Ольга Умнова, Product Owner ПГК, и Дмитрий Алимин, руководитель направления в управлении развития цифровых продуктов компании, рассказывают, как оператор использует математический подход в бизнесе.

Читать далее

Как подготовиться к собеседованию в Samsung Advanced Computing Lab

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

Я работаю проектировщиком аппаратного блока графического процессора в телефонах Samsung, в рамках совместного проекта с AMD. Сейчас наш менеджмент расширяет команду и поощряет инженеров распостранять информацию о новых позициях среди своих знакомых. Я решил написать это пост для более широкой аудитории, так как множество людей, способных пройти интервью на RTL или DV позицию - больше, чем множество моих знакомых. Если вы сможете прислать мне ответ на задачку в моем посте вместе с вашим резюме, я перешлю его нанимающему менеджеру и рекрутеру нашей группы (в комментах прошу ответ не писать). Если резюме им понравится, вам нужно будет пройти стандартное собеседование на несколько часов, с несколькими инженерами, у каждого из которых свой набор задачек.

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

Читать далее

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

Что делать, если твой временной ряд растёт вширь

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

Привет, Хабр! Есть мнение, что прогнозирование временных рядов - сложная задача. Но не будем расстраиваться, ведь есть и плюсы - существует ещё большое количество задач, когда рядов сразу несколько, и такие задачи ещё сложнее! Когда начинаем сравнивать, понимаем, что прогнозировать одномерные временные ряды не так уж и сложно. А вот что делать с ситуацией, когда временной ряд обрастает параллельно идущими с ним последовательностями других параметров (многомерный ряд), какие методы и алгоритмы использовать, и что делать, если задача прогнозировать такие ряды есть, а опыта не очень много (спойлер - используйте AutoML, а пока он работает восполните пробел прочитав пару статей по теме), разбираем под катом.

Что такое временной ряд 

Если начинать совсем издалека, то это последовательность значений, упорядоченная по времени. Во временных рядах есть закономерность: текущие значения ряда связаны с предыдущими. Если такого свойства у ряда нет, то поздравляем (или не поздравляем), вы имеете дело с процессом, который прогнозировать классическими (и не очень) моделями не выйдет, в таком случае стоит смотреть в сторону Марковских процессов.

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

Ну и что же делать

Как преобразовать правило .gitignore в регулярное выражение

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

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

Читать далее

JavaScript: Zoom как в картах для SVG/HTML

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

dgrm.net | GitHub

Как сделан zoom в редакторе блок-схем dgrm.net.
Zoom-ить можно:

колесиком мышки,
touchpad-ом
и двумя пальцами на телефонах и планшетах.

Готовая функция zoom-а SVG для ваших проектов прилагается. Для HTML можно переделать.

Читать далее

Алгоритмы для веб-разработчиков простыми словами (часть 3)

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

Здравствуйте, друзья!

Мы продолжаем разбирать максимально простым языком алгоритмы и структуры данных на JavaScript. Тема нашей сегодняшней статьи — рекурсия. Для многих разработчиков рекурсия кажется чем-то очень сложным и непонятным, но не переживайте, не так страшен черт, как его малюют.

И сегодня мы узнаем, как устроена рекурсия, а также разберем алгоритм сортировки массива под названием Quick Sort или, как еще его называют, быстрая сортировка Хоара. Как вы уже догадались, этот алгоритм рекурсивный.

Если вы еще не читали нашу первую статью (про алгоритмы поиска и Big O нотацию), то можете найти ее здесь.

Ссылку на вторую статью (про алгоритмы сортировки и оценку сложности алгоритмов по скорости и памяти) вы можете найти здесь.

А сейчас давайте перейдем к теме статьи.

Рекурсия

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

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

Читать далее

#3 Нейронные сети для начинающих. Работа с изображениями в OpenCV. Алгоритм Canny Edge Detector

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


Здесь должна быть шутка
image

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

  1. Преобразование изображения в оттенки серого.
  2. Уменьшение размерности изображения (в пикселях) в 4 раза.
  3. Нахождение и выделение (рамкой) самого тёмного объекта на изображении.
Читать дальше →

Масштабирование. Алгоритм Уменьшения и Увеличения изображения

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

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


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

И какие могут быть проблемы?

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

Читать далее

Как стиральная машина управляет двигателем. Часть I — подключение двигателя и алгоритм стабилизации

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


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

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

Электронная начинка современных бытовых приборов, особенно если речь идёт не о наколенной сборке в мастерской дядюшки Ли, а известных брендах, представляет собой чудеса оптимизации. Занимаясь ремонтом, я попутно подсматриваю достойные внимания технические решения, улыбаюсь замечая промахи проектировщиков. Временами их бывает крайне сложно объяснить чем то иным, кроме как требованиями маркетологов вносить в конструкцию элементы “планового устаревания”.

Погода на дворе не очень, очередной прототип отправляется на опытную эксплуатацию, почему бы не рассказать о чём то интересном? Давно я не писал на Хабр!
Почему двигатель, почему стиральные машины?
Ответ под катом

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