#динамическое_программирование — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #динамическое_программирование, aggregated by home.social.
-
Рекурсивные типы. Часть 6. Пересвёртка на практике
В этот раз мы разберём, как пересвёртка рекурсивных структур данных помогает в решении задач динамического программирования.
https://habr.com/ru/articles/1029528/
#рекурсия #пересвёртка #хиломорфизм #катаморфизм #динамическое_программирование #неподвижные_точки
-
Не бойтесь динамического программирования
Говорят, все боятся задач на динамическое программирование (aka ДП), потому что их решения выглядят как из задачника по матанализу. А мне оно всегда нравилось. Одна изящная формула — и задача решена. В этой статье разберем три задачи по динамическому программированию с LeetCode и попробуем каждый раз прийти к изящной формуле интуитивно. Также обсудим, по каким признакам можно понять, что задача — на динамическое программирование. Разбор трех задачек
https://habr.com/ru/articles/1017372/
#динамическое_программирование #leetcode #leetcode_easy #leetcode_medium #алгоритмическая_секция #собеседование_по_алгоритмам
-
Не бойтесь динамического программирования
Говорят, все боятся задач на динамическое программирование (aka ДП), потому что их решения выглядят как из задачника по матанализу. А мне оно всегда нравилось. Одна изящная формула — и задача решена. В этой статье разберем три задачи по динамическому программированию с LeetCode и попробуем каждый раз прийти к изящной формуле интуитивно. Также обсудим, по каким признакам можно понять, что задача — на динамическое программирование. Разбор трех задачек
https://habr.com/ru/articles/1017372/
#динамическое_программирование #leetcode #leetcode_easy #leetcode_medium #алгоритмическая_секция #собеседование_по_алгоритмам
-
Не бойтесь динамического программирования
Говорят, все боятся задач на динамическое программирование (aka ДП), потому что их решения выглядят как из задачника по матанализу. А мне оно всегда нравилось. Одна изящная формула — и задача решена. В этой статье разберем три задачи по динамическому программированию с LeetCode и попробуем каждый раз прийти к изящной формуле интуитивно. Также обсудим, по каким признакам можно понять, что задача — на динамическое программирование. Разбор трех задачек
https://habr.com/ru/articles/1017372/
#динамическое_программирование #leetcode #leetcode_easy #leetcode_medium #алгоритмическая_секция #собеседование_по_алгоритмам
-
Не бойтесь динамического программирования
Говорят, все боятся задач на динамическое программирование (aka ДП), потому что их решения выглядят как из задачника по матанализу. А мне оно всегда нравилось. Одна изящная формула — и задача решена. В этой статье разберем три задачи по динамическому программированию с LeetCode и попробуем каждый раз прийти к изящной формуле интуитивно. Также обсудим, по каким признакам можно понять, что задача — на динамическое программирование. Разбор трех задачек
https://habr.com/ru/articles/1017372/
#динамическое_программирование #leetcode #leetcode_easy #leetcode_medium #алгоритмическая_секция #собеседование_по_алгоритмам
-
LIFO, 3D и Динамический Шампур: как упаковать 6000 объектов в фуру за 12 секунд
В статье представлен подробный разбор разработки высокопроизводительного 3D-движка для оптимизации загрузки транспортных средств. Мы прошли путь от простого полочного алгоритма с КПД 58% до комплексной системы, обеспечивающей плотность упаковки до 90%. Автор делится уникальным опытом решения критических проблем: от устранения коллизий и соблюдения границ трюма до внедрения динамической балансировки веса и строгой очередности выгрузки по городам (LIFO). Особое внимание уделено оптимизации алгоритма Subset Sum, позволившего достичь скорости обработки в 14 000 объектов в секунду, и верификации логики через систему из 12 Unit-тестов. Внутри — чистый код на Python, математические выкладки и эффектная визуализация процесса упаковки
https://habr.com/ru/articles/992564/
#алгоритмы #программирование #математика #python #логистика #lifo #оптимизация #bin_packing #subset_sum_problem #динамическое_программирование
-
LIFO, 3D и Динамический Шампур: как упаковать 6000 объектов в фуру за 12 секунд
В статье представлен подробный разбор разработки высокопроизводительного 3D-движка для оптимизации загрузки транспортных средств. Мы прошли путь от простого полочного алгоритма с КПД 58% до комплексной системы, обеспечивающей плотность упаковки до 90%. Автор делится уникальным опытом решения критических проблем: от устранения коллизий и соблюдения границ трюма до внедрения динамической балансировки веса и строгой очередности выгрузки по городам (LIFO). Особое внимание уделено оптимизации алгоритма Subset Sum, позволившего достичь скорости обработки в 14 000 объектов в секунду, и верификации логики через систему из 12 Unit-тестов. Внутри — чистый код на Python, математические выкладки и эффектная визуализация процесса упаковки
https://habr.com/ru/articles/992564/
#алгоритмы #программирование #математика #python #логистика #lifo #оптимизация #bin_packing #subset_sum_problem #динамическое_программирование
-
LIFO, 3D и Динамический Шампур: как упаковать 6000 объектов в фуру за 12 секунд
В статье представлен подробный разбор разработки высокопроизводительного 3D-движка для оптимизации загрузки транспортных средств. Мы прошли путь от простого полочного алгоритма с КПД 58% до комплексной системы, обеспечивающей плотность упаковки до 90%. Автор делится уникальным опытом решения критических проблем: от устранения коллизий и соблюдения границ трюма до внедрения динамической балансировки веса и строгой очередности выгрузки по городам (LIFO). Особое внимание уделено оптимизации алгоритма Subset Sum, позволившего достичь скорости обработки в 14 000 объектов в секунду, и верификации логики через систему из 12 Unit-тестов. Внутри — чистый код на Python, математические выкладки и эффектная визуализация процесса упаковки
https://habr.com/ru/articles/992564/
#алгоритмы #программирование #математика #python #логистика #lifo #оптимизация #bin_packing #subset_sum_problem #динамическое_программирование
-
LIFO, 3D и Динамический Шампур: как упаковать 6000 объектов в фуру за 12 секунд
В статье представлен подробный разбор разработки высокопроизводительного 3D-движка для оптимизации загрузки транспортных средств. Мы прошли путь от простого полочного алгоритма с КПД 58% до комплексной системы, обеспечивающей плотность упаковки до 90%. Автор делится уникальным опытом решения критических проблем: от устранения коллизий и соблюдения границ трюма до внедрения динамической балансировки веса и строгой очередности выгрузки по городам (LIFO). Особое внимание уделено оптимизации алгоритма Subset Sum, позволившего достичь скорости обработки в 14 000 объектов в секунду, и верификации логики через систему из 12 Unit-тестов. Внутри — чистый код на Python, математические выкладки и эффектная визуализация процесса упаковки
https://habr.com/ru/articles/992564/
#алгоритмы #программирование #математика #python #логистика #lifo #оптимизация #bin_packing #subset_sum_problem #динамическое_программирование
-
[Перевод] Алгоритмическое мышление для дата-сайентистов: как писать код, который экономит время и место
Алгоритмическое мышление помогает писать быстрый код, который экономно расходует вычислительные ресурсы памяти и хранилища. Сегодня в профессию переходит всё больше аналитиков из других предметных областей, и не все из них знакомы с концепцией алгоритмического мышления. Статья призвана заполнить этот пробел в знаниях. В ней приводится общее описание концепции и примеры практических задач, которые часто предлагают на собеседовании будущие работодатели. Спойлер: алгоритмическое мышление — это необходимый для дата-сайентистов навык, важность которого сохранится и в будущем, в том числе в решениях на базе ИИ.
https://habr.com/ru/companies/netologyru/articles/831160/
#алгоритмы #сложность_алгоритма #алгоритмическое_мышление #решение_задач #Пойа #c++ #реализация_цикла #big_o #динамическое_программирование #Мэтт_Уэлш
-
SQL HowTo: динамическое программирование (Advent of Code 2024, Day 19: Linen Layout)
В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024 . Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать. Используем динамическое программирование для подсчета количества вариантов размещений.
https://habr.com/ru/companies/tensor/articles/887300/
#postgresql #sql #sql_tips_and_tricks #динамическое_программирование #advent_of_code__2024
-
SQL HowTo: динамическое программирование (Advent of Code 2024, Day 19: Linen Layout)
В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024 . Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать. Используем динамическое программирование для подсчета количества вариантов размещений.
https://habr.com/ru/companies/tensor/articles/887300/
#postgresql #sql #sql_tips_and_tricks #динамическое_программирование #advent_of_code__2024
-
SQL HowTo: динамическое программирование (Advent of Code 2024, Day 19: Linen Layout)
В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024 . Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать. Используем динамическое программирование для подсчета количества вариантов размещений.
https://habr.com/ru/companies/tensor/articles/887300/
#postgresql #sql #sql_tips_and_tricks #динамическое_программирование #advent_of_code__2024
-
SQL HowTo: динамическое программирование (Advent of Code 2024, Day 19: Linen Layout)
В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024 . Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать. Используем динамическое программирование для подсчета количества вариантов размещений.
https://habr.com/ru/companies/tensor/articles/887300/
#postgresql #sql #sql_tips_and_tricks #динамическое_программирование #advent_of_code__2024
-
Задача о банкомате
Рассмотрим одну задачу, которая на leetcode маркирована как "medium", хотя на самом деле это невероятно сложная задача. Примечательна она тем, что допускает в разной степени оптимальные решения, самые упрощённые из которых действительно весьма просты, а самые оптимальные ещё не найдены современной наукой. В этой задаче ценно то, что на её примере можно изучать целый ряд техник программирования.
https://habr.com/ru/articles/859758/
#Задача #lisp #Scheme #размен_денег #рекурсия #динамическое_программирование #недетерминированное #программирование
-
Разбор задачи «Regular Expression Matching»
В этой статье я разберу решение задачи сопоставления строки шаблону с регулярным выражением, которая предлагается сайтом LeetCode под номером 10.
https://habr.com/ru/articles/966134/
#динамическое_программирование #регулярные_выражения #разбор_задач
-
Конкатенация чисел и делимость на 13 — задачка от Клайва Фрэйзера
Дан массив с числами, в десятичном представлении - из них можно удалить какие-то, а то что осталось конкатенировать. Для N чисел это даёт 2^N-1 возможных результатов (нельзя удалить все числа) - и нам интересно сколько из этих результатов делятся нацело на 13 . Для маленьких массивов можно написать простой перебор, но автор предлагает N=400000 - у одного из пользователей это сразу вызвало реакцию "2 в степени 400000 - это невозможно перебрать". Действительно, перебором тут не справиться :) Задача тут - а под катом, поскольку о ней самой уже говорить нечего, я немножко расскажу про автора - это довольно любопытно (и может когда-то я смогу более подробный пост о нём сделать если получу от него самого больше информации). Таинственный Незнакомец...
https://habr.com/ru/companies/codeabbey/articles/897780/
#динамическое_программирование #задачи #занимательные_задачи
-
[Перевод] Алгоритмическое мышление для дата-сайентистов: как писать код, который экономит время и место
Алгоритмическое мышление помогает писать быстрый код, который экономно расходует вычислительные ресурсы памяти и хранилища. Сегодня в профессию переходит всё больше аналитиков из других предметных областей, и не все из них знакомы с концепцией алгоритмического мышления. Статья призвана заполнить этот пробел в знаниях. В ней приводится общее описание концепции и примеры практических задач, которые часто предлагают на собеседовании будущие работодатели. Спойлер: алгоритмическое мышление — это необходимый для дата-сайентистов навык, важность которого сохранится и в будущем, в том числе в решениях на базе ИИ.
https://habr.com/ru/companies/netologyru/articles/831160/
#алгоритмы #сложность_алгоритма #алгоритмическое_мышление #решение_задач #Пойа #c++ #реализация_цикла #big_o #динамическое_программирование #Мэтт_Уэлш
-
[Перевод] Алгоритмическое мышление для дата-сайентистов: как писать код, который экономит время и место
Алгоритмическое мышление помогает писать быстрый код, который экономно расходует вычислительные ресурсы памяти и хранилища. Сегодня в профессию переходит всё больше аналитиков из других предметных областей, и не все из них знакомы с концепцией алгоритмического мышления. Статья призвана заполнить этот пробел в знаниях. В ней приводится общее описание концепции и примеры практических задач, которые часто предлагают на собеседовании будущие работодатели. Спойлер: алгоритмическое мышление — это необходимый для дата-сайентистов навык, важность которого сохранится и в будущем, в том числе в решениях на базе ИИ.
https://habr.com/ru/companies/netologyru/articles/831160/
#алгоритмы #сложность_алгоритма #алгоритмическое_мышление #решение_задач #Пойа #c++ #реализация_цикла #big_o #динамическое_программирование #Мэтт_Уэлш
-
Пошаговая Formula 1 — игра/задачка на программирование
Среди игр на тетрадном листочке из школьной поры была такая Гонки - вы тоже помните? На удивление, похожую игру предлагает в своей старинной книжке Жак Арсак - машина "в пошаговом режиме" мчится по извилистой трассе на целочисленной плоскости - и нужно варьируя вектор скорости умудриться не вылететь - но и доехать не черепашьим шагом. Задача на основе этой игры добавлена на сайт к новогодним праздникам - вдруг кто-то устанет от оливье раньше времени :) Здесь в качестве входных данных вы получаете описание профиля всей трассы целиком - и нужно предложить последовательность ходов которые позволят безопасно проехать весь маршрут притом со средней скоростью не хуже 3 клеток за ход (считая только продольную компоненту скорости). Чтобы легче было понять принцип (вдруг кто-то не играл в детстве) - добавлена небольшая демонстрашка, в которой можно управлять прохождением по трассе кликая или тапая в нужные участки экрана. Честно говоря планировалось что в задаче будет спрашиваться наиболее быстрый маршрут - но составляя её я немного усомнился в собственном решении - поэтому она стала чуточку проще. Конечно, из-за того что вся трасса видна сразу, отсутствует интрига - но на днях планируется добавить версию игры в которой нужно играть против HTTP-сервера - и там "видимость" трассы будет ограниченной, так что если не хватает интриги - просто чуть-чуть подождите :) Кажется, дальше читать нечего
-
Динамическое программирование на Python
Динамического программирование полезно при решении оптимизационных задач и задач на вычисление, где присутствует большое кол-во повторяющихся подзадач. По сравнению с другими алгоритмическими подходами, динамическое программирование позволяет ускорить процесс вычисления за счет сохранения результатов выполнения подзадач.
-
Коммивояжер на GPU
Мы уже решали задачу коммивояжёра точно методом динамического программирования. С тех пор прошло немало времени. Мне бы хотелось поделиться некоторыми соображениями по улучшению алгоритма, а также представить алгоритм пригодный для расчёта задачи коммивояжера на GPU . Динамическое программирование — это метод решения сложных задач путём разбиения их на более мелкие подзадачи, решение которых легче и проще. Основная идея метода заключается в том, чтобы не решать одну и ту же подзадачу многократно, а сохранять результаты решения подзадач и повторно использовать их для ускорения общего процесса решения.
https://habr.com/ru/articles/814465/
#tsp #gpu #коммивояжер #динамическое_программирование #cuda #python