Комментарии 8
А в питоне точно нет другого способа решения задач линейного программирования?
чтобы он в одно действие щелкнул эту матрицу?
Ещё интереснее механизмы многомерной оптимизации в динамических системах (изменяющаяся топология, изменяющиеся веса/"нагрузка"), когда есть, к примеру, базовая оптимальная модель и далее происходит оптимизация различных отклонений целевых показателей. Также можно рассматривать более сложную модель с грузоперевозками/такси, когда не только надо минимум по расходам, но и минимум по "штрафам", при невозможности или задержках доставки при динамической маршрутизации. Один авто только с одним пассажиром, только с точками A и B - это относительно просто.
Продолжайте эту тему, при желании и возможности. Большое спасибо за статью.
моделировать можно без глубокого математического фундамента.
Вот скажите, как вы без этого самого фундамента поймете, что линейное программирование вообще пригодно для решения задачи конкретного типа, и тем более — что это лучший из возможных методов решения? При этом вы ведь в тексте этот свой выбор просто никак не обосновали, а лишь заявили, что возьмем мол его.
Лучший - нет, универсальный и доступный - да. В статье не утверждается, что все задачи можно и нужно решать с помощью линейного программирования (ЛП). Приводится решение только одной задачи, которая решается в том числе методами ЛП. Этот пример можно использовать как шаблон/паттерн для разработки своего решения аналогичной задачи с помощью ЛП. Кроме того, есть различные решатели задач MILP (cbc, SCIP, cplex, gurobi и др.), которые отличаются по производительности и открытости кода. Что является еще одной размерностью (доступность готовых пакетов с алгоритмами) для выбора подхода к решению задачи.
Лучший — нет, универсальный и доступный — да.
На самом деле я не спрашивал, я знаю что такое линейное программирование. Я говорю, что вы в тексте ничем не обосновали его выбор.
Нет, про все задачи не утверждается, тут вы правы.
Утверждается, что можно решать задачи без математического фундамента — но при этом вы не объяснили выбор конкретного метода в своем примере. Но без фундамента человек просто не поймет, какие задачи являются аналогичными, и почему вон тут нельзя решать методами ЛП. В целом-то статья скорее хорошая, и может быть вы дальше разберете все что нужно — но пока вот это место заканчивает вводную часть:
также выбрав подходящий метод оптимизации
а дальше сразу следует переход к конкретной задаче, а хотя бы краткое описание того, какие собственно задачи и методы бывают — его не хватает. Между тем как раз выбор метода, по крайней мере на мой взгляд, это тот самый фундамент и есть. И математическая оптимизация — это вполне себе раздел прикладной математики. Во всяком случае в наше время был, прямо в программе ВУЗа.
Выбор метода оптимизации - согласен, не добавил вводной части по этому пункту. Попробую исправиться.
По поводу математической оптимизации. Сейчас существует множество различных пакетов с реализацией различных методов оптимизации (линейное/нелинейное программирование, мета-эвристические методы, различные градиентные методы, методы поиска кратчайшего пути и др.). Эти сборники алгоритмов реализованы на хорошем уровне и позволяют проводить проверку гипотез, решать задачи быстрее и экономнее по ресурсам. Яркий пример из другой области - нейросети. Мало кто готов и может натренировать свой GPT4, даже если структура сети будет в общем доступе.
В статье демонстрируется "что" необходимо подать на вход и "как" применять готовые наборы оптимизационных алгоритмов для решения прикладных задач. Аналогично тому, как разметка и подготовка данных используется для finetuning нейросетей под локальные нужды. Мало кто вдается в детали структуры и организации нейросети при их обучении - черный ящик.
И математическая оптимизация — это вполне себе раздел прикладной математики.
Согласен. Добавлю, что стоит предоставить этот инструмент более широкому кругу лиц, чтобы все могли подумать над его применением.
Математическая оптимизация и моделирование в PuLP: задача о назначениях