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

Алгоритмы *

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

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

Точечные фильтры: алгоритмы и их реализация

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

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

Для начала импортируем модули для дальнейшей работы с изображениями.

Читать далее

Как меняется сумма от перемены мест в графике производства

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

Меня зовут Ася, и я занимаюсь решениями по оптимизации в НЛМК-ИТ. Много лет я работала .NET разработчиком, мечтала о профессиональном росте. Коллеги из проекта по календарному планированию и графикованию поверили в меня и взяли в команду, несмотря на то, что на тот момент я не имела релевантного опыта. Я узнала, что математические модели востребованы и в металлургии. И вот мы выпустили в опытно-промышленную эксплуатацию проект оптимального планирования производства на основе класса программ Solver.

Здесь хочу рассказать об оптимизации очередей производства в прокатном и электросталеплавильном цехах НЛМК-Калуга. На фото прокатный цех.

Когда я начала работать, люди составляли планы загрузки агрегатов в Excel. В прокатном цехе это план для прокатного стана, а в электросталеплавильном для МНЛЗ (машина непрерывного литья заготовок). Это основные агрегаты двух цехов, они работают непрерывно день и ночь и одномоментно могут производить только один вид продукции, потом приключаться на другой.

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

Чтобы узнать какими средствами мы оцифровали процесс планирования производства, прошу под кат.

Читать далее

Особенности прогнозирования продаж и оттока в условиях неопределенности

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

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

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

С 2015 по 2021 годы я работала в дирекции по продажам конвергентных продуктов Билайн аналитиком, можно сказать, «на все руки» – аналитиком продаж, продуктовым, финансовым. В мою зону ответственности входили операционная и ежемесячная отчетность, расчет планов продаж на квартал, бюджетирование расходов на продажи, расчеты кейсов по инициативам – для всего этого требовалось моделирование основных KPI развития бизнеса. 

Меня зовут Нина Фещенко, с 2022 года в департаменте аналитики розничного бизнеса (B2C) я в большей степени занимаюсь работой с данными и BI-аналитикой, но без моделирования тоже не обходится. В этом посте я опишу свой опыт построения модели прогнозирования продаж конвергентных продуктов (2019-2021), а также прогнозирования оттока мобильных абонентов в 2022 году. Расскажу, как работала модель в относительно стабильный период до 2020-го года, и какие корректировки пришлось внести впоследствии. 

Читать далее

Как быстро вычисляются логарифм и экспонента в компьютере?

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

Сегодняшняя статья посвящена методам быстрого приближенного вычисления двоичного логарифма и экспоненты/степеней двойки. Не все задумывались, как именно реализовано вычисление нелинейных математических функций в компьютере, который вообще-то умеет складывать и умножать, но не вычислять синусы или гиперболические тангенсы. Из школьных институтских времен вспоминаются ряды Тейлора, приближающие функцию полиномом в окрестности заданной точки, или интерполяционные полиномы Лагранжа,  но как добиться действительно высокой точности приближения? А можно ли эти имплементации ускорить? Постараемся сегодня приоткрыть завесу тайны.

Читать далее

Реализация двустороннего A* на двух потоках

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

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

Читать далее

Координатный квест: как найти координаты и расстояния без регистраций и смс

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

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

С вами участник профессионального сообщества NTA Алексей Майка.

Хочу поделиться своим опытом решения одной интересной задачки и описать весь проделанный путь.

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

Узнать результаты

FTM, который написал MUSIC: точное определение местоположения Wi-Fi-устройств в условиях многолучевости.Часть 2/3

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

Часть 1/3

Часть 3/3

Статья «When FTM Discovered MUSIC: Accurate WiFi-based Ranging in the Presence of Multipath» опубликована в материалах Международной конференции IEEE по компьютерным коммуникациям, которая прошла в Торонто, Канада, с 6 по 9 июля 2020 г. (IEEE International Conference on Computer Communications, INFOCOM 2020). Идеи, изложенные в этой публикации, получили дальнейшее развитие, в частности, в статье «FSI: A FTM Calibration Method Using Wi-Fi Physical Layer Information» («FSI: метод калибровки FTM с использованием информации о физическом уровне Wi-Fi»), опубликованной во 2-й части материалов 17-й Международной конференции по беспроводным алгоритмам, системам и приложениям, которая прошла в Даляне, Китай, с 24 по 26 ноября 2022 г. (Wireless Algorithms, Systems, and Applications; WASA 2022).

Читать далее

6. Устойчивость систем автоматического управления. 6.6 Понятие об областях устойчивости

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

Продолжаем публикацию лекций Олега Степановича Козлова по предмету "Управление в Технических Системах".

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

1. Введение в теорию автоматического управления.2. Математическое описание систем автоматического управления 2.1 — 2.32.3 — 2.82.9 — 2.13

3. ЧАСТОТНЫЕ ХАРАКТЕРИСТИКИ ЗВЕНЬЕВ И СИСТЕМ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ РЕГУЛИРОВАНИЯ. 3.1. Амплитудно-фазовая частотная характеристика: годограф, АФЧХ, ЛАХ, ФЧХ3.2. Типовые звенья систем автоматического управления регулирования. Классификация типовых звеньев. Простейшие типовые звенья3.3. Апериодическое звено 1–го порядка инерционное звено. На примере входной камеры ядерного реактора3.4. Апериодическое звено 2-го порядка3.5. Колебательное звено3.6. Инерционно-дифференцирующее звено3.7. Форсирующее звено.  3.8. Инерционно-интегрирующее звено (интегрирующее звено с замедлением)3.9. Изодромное звено (изодром)3.10 Минимально-фазовые и не минимально-фазовые звенья3.11 Математическая модель кинетики нейтронов в «точечном» реакторе «нулевой» мощности

4. Структурные преобразования систем автоматического регулирования.

5. Передаточные функции и уравнения динамики замкнутых систем автоматического регулирования (САР).

6. Устойчивость систем автоматического регулирования. 6.1 Понятие об устойчивости САР. Теорема Ляпунова. 6.2 Необходимые условия устойчивости линейных и линеаризованных САР. 6.3 Алгебраический критерий устойчивости Гурвица. 6.4 Частотный критерий устойчивости Михайлова. 6.5 Критерий Найквиста.

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

Читать далее

Повышение точности решения плохо обусловленных СЛАУ методом Гаусса

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

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

Читать далее

Дешевый как автобус, удобный как такси: перспективный вид общественного транспорта для больших и средних городов. Часть3

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


Ссылка на Часть1: «Предварительный анализ» (ру / eng )
Ссылка на Часть2: «Эксперименты на торе» (ру / eng )
Cсылка на «Часть3: Практически значимые решения» (ру / eng )
Cсылка на «Summary» (ру / eng )

1 Игра в дипломатию


1.1 О чем эта работа


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

1.2 Головоломка для талантливых и смелых (чудаки приветствуются: ?)


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

RSync на стероидах с поддержкой Windows

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


На Хабре периодически рассказывают о новых инструментах для синхронизации данных. Это интересная тема. Такие программы используются:

  • для синхронизации файлов на разных устройствах,
  • дедупликации,
  • резервного копирования,
  • сжатия.

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

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

Решаем криптографическую задачу: Из России с любовью

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

Ранее в блоге FirstVDS уже была статья с разбором решения криптографической задачи с MysteryTwister. В этом топике разберём задачу с довольно многозначительным названием «Из России с любовью» ("From Russia with Love"). Автор задачи Sansibar.

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

Перейдём к задаче

Алгоритмы поиска подстроки на JavaScript

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

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

Как говорит Википедия «Поиск подстроки в строке — одна из простейших задач поиска информации», но это не совсем так, ниже я расскажу про разные алгоритмы решения и покажу примеры их реализации. Начнем!

Читать далее

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

Метод генерации столбцов для решения задач математической оптимизации большой размерности

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

Теперь к истокам задачи: часто, чтобы математическая модель была применима в реальном секторе, необходимо использовать очень много ограничений и большое количество переменных. Задачи, возникающие в бизнесе в реальных условиях, требуют использования моделей с большим количеством ограничений и большим количеством переменных.  Временами задача в лоб может и не решиться, поэтому были придуманы различные трюки. Один из них - метод « генерации столбцов» (Column generation).

Читать далее

Решаем криптарифмы с помощью алгебры и python

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

Если вы увлекались математикой в возрасте до 12 лет, то, наверное, встречались с криптарифмами - арифметическими ребусами.

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

Читать далее

Как с помощью нейронной сети снизить дозу КТ, не потеряв в качестве реконструкции

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

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

Читать далее

Шаблон проектирования: Composite

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

Всем привет! В данной статье рассмотрим паттерн проектирования Composite («Компоновщик»).

Начнем немного с теории.

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

Читать далее

Нечеткое сравнение строк с помощью rapidfuzz

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

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

Меня зовут Антон Черниговский, я участник профессионального сообщества NTA.

В публикации расскажу, как при решении задачи нечеткого сравнения строк, среди разных инструментов сравнения (по косинусному сходству, по сходству Левенштейна, по сходству Джаро‑Винклера) был выбран лучший вариант нечеткого сопоставления. Сравнение инструментов производилось исходя из скорости выполнения, правильности сравнения и простоты реализации, с помощью библиотек rapidfuzz и sklearn.

Узнать какой инструмент лучше

Алгоритмы программы для дозиметра на счетчике Гейгера

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

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

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

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

Читать далее

Интерактивные книги 2: на этот раз про геймдизайн и алгоритмы

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров11K
Хабр силен комментариями. Поэтому, когда я писал топик "Мечтали про интерактивные книги? Я знаю человека, который делает их прямо сейчас", то надеялся, что читатели помогут найти аналогичные примеры. Результат превзошел ожидания.


Итак, знакомьтесь — Амит Патель (Amit Patel) и его интерактивные статьи на стыке математики, алгоритмов и программирования. Небольшой дисклаймер: поскольку я не могу встроить интерактивные иллюстрации на Хабр, то буду использовать анимированные gif. Некоторые из них могут быть тяжелые.
Читать дальше →

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