Обновить
204.72

Алгоритмы *

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

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

Как добыть свечи по всем акциям Мосбиржи

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

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

Читать далее

Логистика. Часть 6. Что такое нестинг?

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

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

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

Читать дальше →

Про сортировку чисел и SIMD или как я обогнал STL в 16 раз

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

Cитуация, когда недостаток производительности пытаются покрыть новым железом, не редка. Важно понимать, однако, что железо, которое мы использовали и используем сегодня, содержит в себе множество механизмов, способных актуализировать наш код на года вперед. В моем понимании программист, умеющий грамотно оперировать этими механизмами(в частности в терминах бизнес процессов, требующих 'Здесь и Сейчас', терминах поиска золотой середины между Скоростью и Дизайном) - профессионал. В этой статье речь пойдет про довольно изъезженную и, казалось бы, понятную тему - тему сортировок, но с одним небольшим дополнением - SIMD. Эту тему я выбрал не случайно: в процессе решения довольно важной для индустрии задачи возникла следующая подзадача: есть входное множество целых чисел. Каждому множеству сопоставлено свое уникальное значение. При этом множества элементов, которые отличаются между собой только порядком следования элементов, а не их значениями, считаются одинаковыми и должны возвращать одно и тоже значение. Одно из решений - посортировать множества, а затем использовать результат как ключ в Хеш Таблице. Одно из важных ограничений - количество элементов в множестве не превышает 128 элементов. Под катом рассказываю о том, как сортировать такие множества быстро.

Читать далее

Качество переходного процесса ч.2

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

Продолжаем публикацию лекций Олега Степановича Козлова с кафедры Ядерные Энергетические Установки МГТУ им. Баумана. Вторая часть лекции про качество САР и модель реактора как бонус.

В предыдущих сериях:

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 Критерий Найквиста.
7. Точность систем автоматического управления. Часть 1 и Часть 2
8. Качество переходного процесса. Часть 1 

Читать далее

Компилятор за выходные: синтаксические деревья

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

Вам когда-нибудь приходилось задаваться вопросом, как работает компилятор, но так руки и не дошли разобраться? Тогда этот текст для вас. Мне тоже не доводилось заглядывать под капот, но тут так случилось, что мне нужно прочитать курс лекций о компиляторах местным третьекурсникам. Кто встречался с некомпетентными преподавателями? Здравствуйте, это я :)

Итак, чтобы самому разобраться в теме, я собираюсь написать транслятор с эзотерического языка программирования wend (сокращение от week-end), который я только что сам придумал, в обычный ассемблер. Задача уложиться в несколько сотен строк питоновского кода. Основной репозиторий живёт на гитхабе (не забудьте заглянуть в мой профиль и посмотреть другие tiny* репозитории).

Читать далее

Алгебры процессов для бизнес-процессов на примере CCS: кофе-машина-теорема

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

Формализация бизнес-процессов алгебраическими выражениями полвека будоражит умы математиков и методологов BPM (Business Process Management, ранее называемое CASE). Однако появление разнообразных алгебр процессов не добавили в практику BPM алгебраического формализма.

Алгебра алгоритмов (алгоритмическая алгебра Глушкова [GLU78], включая формализацию параллелизма), Алгебра \ исчисление процессов (CCS \ pi-calculus, CSP, ACP и др.), «Исчисление функций» (УФО, [UFO14]) не позволяют говорить о формальной (математической) теории BPM, а также инструменте, применимым бизнес-аналитиком на практике, т.е. об Алгебрах \ исчислениях бизнес-процессов - как математических абстракциях, формализующих workflow \ docflow и другие составляющие бизнес-процессов (Алгебре \ исчислении workflow).

Читать далее

Сказ о том, как я за год решил более 600 leetcode задач

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

Всем салют!

Хочу рассказать вам историю о том, как я начинал с уровня — «не могу решить даже 1 easy задачу из 10» до уровня — «могу решить каждую вторую medium задачу» и прошел несколько coding сессий в таких компаниях как Meta, Booking, Careem, Avito...

Читать далее

Сжатие целых чисел

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

Цель статьи осветить state of the art методы сжатия целых чисел, чтобы сэкономить в будущем время исследования алгоритмов и терминологии. При этом описание части алгоритмов может быть упрощено для понимания. Сравнение алгоритмов тоже находится вне рамках этой статьи. Подробнее можно почитать в ссылках.

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

Читать далее

Искусственный интеллект для игры Точки

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

Кратко о правилах: игроки поочерёдно ставят точки двух цветов в перекрестия линий. Цель — окружить точки соперника замыканием вокруг них непрерывной цепи своих точек.

Читать далее

Метод быстрого марша (Fast Marching Method)

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

Пример реализации метода быстрого марша(Fast Marching Method) для создания полей расстояний(Distance FIeld) и поиска кратчайшего пути.

Читать далее

Алгоритм minimax в шахматах

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

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

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

Не будем тратить время на объяснение того, как двигаются фигуры – это вы и так знаете. В сегодняшней статьи мы разберем алогоритм Minimax.

Читать далее

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

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

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

Стоит ли использовать специальные алгоритмы?

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

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

Читать далее

Кодирование слова по алгоритму А.С. Пушкина в Micro QR Code версии М2

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

Задание: необходимо создать кодовое слово (сокращенный вариант собственной фамилии и инициалов) по алгоритму А.С. Пушкина. Затем создать для полученного сокращения Micro QR Code вер. М2. Данный режим невозможно прочитать стандартными ресурсами мобильных устройств, производимых GAFAM (как оказалось, свободно распространяемые библиотеки просто страшно глючат, поэтому Ассоциация отказалась и от этого режима)

Читать далее

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

Кто знает, что значит GPT в названии ChatGPT, могут дальше не читать

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

В настоящее время искусственный интеллект (ИИ) стремительно развивается. Мы являемся свидетелями интеллектуальной мощи таких нейросетей, как GPT-4 Turbo от OpenAI и Gemini Ultra от Google. В Интернете появляется огромное количество научных и популярных публикаций. Зачем же нужна еще одна статья про ИИ? Играя с ребенком в ChatGPT, я неожиданно осознал, что не понимаю значения аббревиатуры GPT. И, казалось бы, простая задача для айтишника, неожиданно превратилась в нетривиальное исследование архитектур современных нейросетей, которым я и хочу поделиться. Сгенерированная ИИ картинка, будет еще долго напоминать мою задумчивость при взгляде на многообразие и сложность современных нейросетей.

Читать далее

Кодирование числа в Micro QR Code версии М2 (не по ГОСТ)

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

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

Читать далее

Неожиданное взаимодействие предсказания ветвлений и подсистем памяти

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

Это 15-я статья в серии, посвящённая оптимизации подсистем памяти. Остальные доступны здесь (англ.).

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

Кодирование числа в Micro QR Code версии М2 (по ГОСТ)

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

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

Читать далее

Полиномиальные корневые методы синтеза САУ ч.1

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

Ленонид Маркович Скворцов. Широко известный в узких кругах математик, профессионально занимающийся математическами проблемами автоматического управления. Например, его авторские методы использованы в SimInTech. Данный текст первая часть работы, которая еще готовится к публикации. Но с разрешения автора, читатели Хабр будут превыми кто сможет с ним ознакомится.

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

Читать далее

Разработка модуля формирования виртуальной трёхмерной среды системы проектирования для робототехнических комплексов

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

Виртуальная трёхмерная среда максимальной приближенная к реальной физической на примере Выборгского залива с двумя робототехническими комплексами - БАС и БЭК

Читать далее

Чтение Micro QR Code версии М3 (байтовый режим)

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

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

Читать далее

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