У меня есть некоторые проблемы, связанные с линейной программой, которую я уже решил и использую Excel, но теперь я хочу сделать это в r / python, потому что я уже достиг превосходств и пределов решателей. Поэтому я прошу помощи по этой конкретной теме.
Я пробовал ее с помощью пакета lPsovle, также изменив функцию lp.assign, но не могу найти решение.
Проблема в том, чтоследующим образом:
Допустим, я поставляю товарный товар.
У меня есть различные склады, которые обслуживают разные области. Эти области ДОЛЖНЫ быть обслужены с их требованиями. Мои склады, с другой стороны, имеют ограничения относительно их возможностей, которые они могут обрабатывать и доставлять. Одно депо может обслуживать несколько зон, но одна зона может обслуживаться только одним депо.
У меня есть матрица расстояний / затрат для соединений между складами и районами, а также спрос на эти районы.
Целью этого решения должно быть то, что области должны обслуживаться с минимально возможным усилием.
Допустим, матрица стоимости / расстояния выглядит примерно так:
assign.costs <- matrix (c(2, 7, 7, 2, 7, 7, 3, 2, 7, 2, 8, 10, 1, 9, 8, 2,7,8,9,10), 4, 10)
Итакэто создает мою матрицу с клиентами / областями в первой строке / заголовке и депо в именах первых столбцов / строк.
Теперь спрос областей / клиентов:
assign.demand <- matrix (c(1,2,3,4,5,6,7,8,9,10), 1, 10)
Ограничения емкости, сколько может обслуживать депозит:
assign.capacity <- matrix (c(15,15,15,15), 4, 1)
Так что теперь я хотел бы, чтобы эта проблема была решена с помощью lp для генерации распределения, какая область должна обслуживаться какойдепо в соответствии с этими ограничениями.
Результат должен выглядеть примерно так:
assign.solution <- matrix (c(1,0,0,0 ,0,1,0,0, 1,0,0,0, 1,0,0,0 ,0,0,0,1), 4, 10)
Что касается ограничений, это означает, что каждый столбец должендо одного.
Я пробовал это с функциями lpsolve и lp.assign из lpSolve, но я не знаю точно, как реализовать именно такие ограничения, которые у меня есть, и я уже пытался изменить функции lp.assign с помощьюнет успехаЕсли это поможет, я также могу сформулировать уравнения для ЛП.
Спасибо всем за вашу помощь, я действительно застрял прямо сейчас: D
BR