Решение LPP с использованием симплекс-метода с переменными в зависимости от диапазона
В настоящее время я работаю над проблемой, которую можно решить с помощью линейного программирования в соответствии с исследованиями, которые я провел здесь, на YouTube и на других сайтах. Я ознакомился с так называемым симплекс-методом и его разновидностями, такими как - Big M, Dual SM, но все же не могу найти примеров, которые бы напоминали формулировку моей проблемы и, соответственно, ее решение.
Мой вопрос будет: как конвертировать программу в стандартную форму?
Я думаю, что минимизация и максимизация должны работать, но давайте сделаем это с минимизацией.
Я использую 'n' как обозначение, что в качестве входных данных может быть 'n' количество переменных, т.е. иногда будет 10, иногда - 60, да.. это много. Но если есть способ решить эту проблему, я думаю, он должен работать для любого количества переменных.
Чтобы минимизировать:Z = a1*x1 + a2*x2 + .. + an*xn,
где a1 .. an
просто случайные коэффициенты, все положительные.
При условии: (вот часть, где я не уверен, можно ли это сделать так)
N1 ≤ b1*x1 + b2*x2 + .. + bn*xn ≤ N2<br>
M1 ≤ c1*x1 + c2*x2 + .. + cn*xn ≤ M2<br>
O1 ≤ d1*x1 + d2*x2 + .. + dn*xn ≤ O2
- где
N1, N2, M1, M2, O1 & O2
натуральные числа, > 0, например 101, 155, 6433 и т. д.
и конечноN1 < N2, M1 < M2, O1 < O2
- где
b1 .. bn, c1 .. cn, d1 .. dn
просто случайные коэффициенты, все положительные
Также каждая неизвестная переменная - x1, x2 .. xn
ограничен так:
X1-min ≤ x1 ≤ X1-max
X2-min ≤ x2 ≤ X2-max
..
Xn-min ≤ xn ≤ Xn-max
Конечно, все минусы и максимумы известны, положительные, где Xmin
X1..n всегда должно быть> 0 и между его мин / макс.
Я знаю о добавлении слабых, избыточных, искусственных переменных, но я не уверен на 100%, насколько это просто. Мои первоначальные мысли состояли в том, чтобы разделить каждое неравенство на две части и, в зависимости от его знака, добавить либо слабые, либо избыточные + искусственные переменные и продолжить работу с таблицами.
Надеюсь, мне удалось объяснить мою проблему достаточно хорошо, хотя я все еще немного запутался в том, как к ней подойти.
Заранее спасибо! Надеюсь, вы, ребята, хорошего дня!
1 ответ
У вас есть как больше, так и меньше, чем ограничения. Вам необходимо преобразовать их в пару ограничений с той же формой неравенства, умножив на минус один:
N1 ≤ b1*x1 + b2*x2 + .. + bn*xn ≤ N2
идет к
b1*x1 + b2*x2 + .. + bn*xn ≤ N2
-b1*x1 - b2*x2 - .. - bn*xn ≤ -N1
Вы можете сделать это также для границ переменных (просто коэффициенты там имеют один 1, а остальные ноль). И тогда все готово: это довольно стандартная форма.
Если я что-то упустил?