Линейная оптимизация минимизирует максимум значений вектора_Operational Research

Я хочу применить линейную оптимизацию. моя формулировка проблемы не на 100% правильная, поэтому я постараюсь объяснить их в тексте. мой входной набор данных DS, который имеет шесть слотов t и две строки, как показано ниже.

t1 t2 t3 t4 t5 t6
451 432 470 450 530 420
0 0 0 50 50 50

целевая функция находит минимум максимума для значений суммы столбца. например, максимальная сумма столбца в вышеуказанном наборе данных равна 580, в результате целевая функция минимизирует это максимальное значение на основе ограничений. Существует два ограничения: первое ограничение, первая строка оптимизированного набора данных равна исходному набору данных, который равен 451 432 470 450 530 420; второе ограничение - суммирование во втором ряду нового оптимизированного набора данных, равное суммированию во втором ряду исходного набора данных. ограничения кратко означают, что первая строка должна быть одинаковой, а значения второй строки можно перемещать из одного слота в другой для достижения минимальной целевой функции.

Я попытался математически написать вышеуказанную задачу следующим образом:

min z = max (colsum (DS))

при условии:

DS_new [1,] == DS [1,]

Sum (DS_new [2,]) == Sum (DS [2,])

Код в R:

DS <- mydataset
DS_new <- c()
P <- max(colSums(DS))
library(lpSolve)
objective.in <- c(P)
const.mat <- matrix(c(DS_new[1,],sum(DS_new[2,])), nrow=2,
                byrow=TRUE)
const.rhs <- c(DS[1,],sum(DS[2,]))
const.dir <- c("==", "==")
optimum <- lp(direction="min", objective.in, const.mat,
          const.dir, const.rhs)

Выход:

> optimum

Ошибка: не найдено подходящего решения

Однако, что я хочу, желаемый результат:

DS
   t1  t2  t3  t4  t5  t6
1 451 432 470 450 530 420
2  50  50  50   0   0   0

максимальная сумма в столбце желаемого выходного набора данных составляет 530.

0 ответов

Другие вопросы по тегам