
- •1. Построить математическую модель в форме задачи линейного программирования.
- •1.2. Найти оптимальный план производства, используя геометрическую интерпретацию задачи линейного программирования.
- •1.3. Привести задачу к канонической форме.
- •1.4. Найти оптимальный план симплекс методом, заполняя необходимые симплексные таблицы.
- •Симплекс-таблица после второй итерации
- •Симплекс-таблица, соответствующая оптимальному
- •1. Заполнить таблицу транспортной задачи, указав в ней кратчайшие расстояния между пунктами.
- •2. Построить математическую модель в форме транспортной задачи.
- •3. Проверить, является ли задача сбалансированной. Если нет, то сбалансировать ее
- •2.4. Построить начальный план методом северо-западного угла.
- •Начальный план, построенный по методу северо-западного угла
- •2.5. Найти оптимальный план подвоза, заполнив все необходимые таблицы.
1.3. Привести задачу к канонической форме.
Напомним, что каноническая форма имеет следующие особенности:
ищется максимум целевой функции. Сразу отметим, что это свойство на самом деле не является существенным и формулируется в целях единообразия. Обладание же следующими двумя свойствами необходимо для применения симплекс-метода,
все ограничения в системе (2.2.9) являются уравнениями,
все переменные неотрицательные.
Приемы приведения задачи к канонической форме проиллюстрируем на примере 2.
Пример 2. Приведем к канонической форме задачу:
5x1-2x2
-x4
min,
3x1+
x2–x3+2x4
2,
5x1-3x2-x3-2x4
0,
2x1 +x3- x4 =-1,
x1 0, x3 0.
Обсудим кратко, что необходимо для этого сделать. Целевую функцию надо умножить на минус единицу. К левой части первого ограничения надо прибавить новую неотрицательную переменную y1. Из левой части второго ограничения надо вычесть новую неотрицательную переменную y2. Третье ограничение не изменяется. Переменные x2 и x4 могут принимать положительные и отрицательные значения, поэтому сделаем замену переменных:
x2=u2-v2, x4=u4-v4, где u2 0, v2 0, u4 0, v4 0.
С учётом всего сказанного получаем, что рассматриваемая задача в канонической форме имеет вид:
-5x1+2(u2-v2) - (u4-v4) max,
3x1+ (u2 - v2)-x3+2(u4-v4) 2,
5x1-3(u2 - v2)-x3-2(u4-v4) 0,
2x1 +x3- (u4-v4) =-1,
x1 0, u2 0, v2 0, x3 0, u4 0, v4 0, y1 0, y2 0.
Пусть
набор значений(x
,u
,v
,x
,x
,v
,y
,y
)
неизвестных задачи в канонической форме
является её оптимальным планом. Тогда
набор значений x
,x
,x
,x
,
где x
=u
-v
,x
=u
-v
является оптимальным планом исходной
задачи из примера 2.
1.4. Найти оптимальный план симплекс методом, заполняя необходимые симплексные таблицы.
Решение задачи линейного программирования симплекс-методом будем иллюстрировать на примере 3.
Пример 3.
20x1+30x2+ x3 max,
8x1 +2x3 = 32,
-4x2 -x4 =-12,
x1 +2x2 +x5 = 8,
2x1 +2x2 +x6= 12,
x1 0,x2 0,x3 0,x4 0,x5 0,x6 0.
Пункт 1. Построение начального плана (заполнение начальной таблицы).
Подчеркнём: решаются задачи в канонической форме.
А. Умножить на (-1) ограничения, правые части которых меньше нуля. В результате правые части всех ограничений будут больше или равны нулю.
В каждом ограничении, являющимся уравнением, выделить, если это возможно, по одной переменной, которая входит в рассматриваемое ограничение со знаком "+", а в остальные уравнения с коэффициентом нуль. Для примера - это x3 из первого, x4 - из второго, x5 и x6 - из третьего и четвёртого уравнений соответственно. Если выделить в каждом ограничении по требуемой переменной не удаётся, то надо решать вспомогательную задачу или М-задачу. Вспомогательную задачу мы рассмотрим в дальнейшем.
Разделить каждое ограничение на коэффициент при выделенной в этом ограничении переменной.
Для примера получим:
20x1+30x2+x3 max,
4x1 +x3 =16,
4x2 +x4 =12,
x1+2x2 +x5 = 8,
2x1+2x2 +x6=12,
x1 0,x2 0,x3 0,x4 0,x5 0,x6 0.
Выделенные переменные являются базисными для строящегося плана. Записать их во второй столбец таблицы, учитывая то, что нижняя строка таблицы соответствует целевой функции, а остальные - ограничениям (первая строка - первому уравнению, вторая - второму и т.д.).
Б. В первый столбец записать коэффициенты целевой функции, стоящие перед базисными переменными, указанными во втором столбце.
В. В третий столбец записать правые части ограничений (уравнений).
Г. В столбцы с четвёртого до последнего записать коэффициенты ограничений (уравнений) при соответствующих переменных.
Д. Заполнить клетки последней строки. Первая и вторая клетки не заполняются. Скалярным произведением двух столбцов (по аналогии со скалярным произведением векторов) назовем сумму произведений элементов этих столбцов, стоящих в одной строке (только по строкам, соответствующим ограничениям задачи). Например, скалярное произведение третьего и четвертого столбцов равно
В
третью клетку записать скалярное
произведение первого и третьего столбца,
взятое с обратным знаком. Для примера
произведение этих столбцов равно
с обратным знаком получаем –16.
Остальные
клетки заполняются по правилу: из
коэффициента целевой функции при
переменной, соответствующей рассматриваемому
столбцу, вычитается скалярное произведение
рассматриваемого столстодолбец
1.нта целевой функции при переменной,
соответствующей рассматриваемому
столбцу, вычитается скалярное произведенте
расбца на
столбец 1. Для четвертой клетки из примера
получаем:
Аналогично заполняются остальные
клетки.
Таблица 1
Начальная симплекс-таблица
Коэффи- циенты целевой функции |
Базис- ные пере- менные |
Значения базисных перемен- ных |
x1 |
X2 |
x3 |
x4 |
x5 |
x6 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
1 |
x3 |
16 |
4 |
0 |
1 |
0 |
0 |
0 |
0 |
x4 |
12 |
0 |
4 |
0 |
1 |
0 |
0 |
0 |
x5 |
8 |
1 |
2 |
0 |
0 |
1 |
0 |
0 |
x6 |
12 |
2 |
2 |
0 |
0 |
0 |
1 |
- |
- |
-16 |
16 |
30 |
0 |
0 |
0 |
0 |
Отметим, что базисные переменные плана указаны во втором столбце таблицы, их значения - в третьем. Переменные, не попавшие во второй столбец, являются небазисными, их значения равны нулю. В третьей клетке последней строки указано значение целевой функции на рассматриваемом плане, данное с обратным знаком. В остальных клетках последней строки указаны коэффициенты целевой функции, получающиеся после того как все базисные переменные выражены через небазисные (см. предыдущий пункт), проверьте это.
Пункт 2. Проверка плана на оптимальность.
Если все элементы последней строки таблицы, начиная с четвертой клетки, меньше нуля или равны нулю, то задача решена, и полученная таблица соответствует оптимальному плану задачи.
В противном случае выполняется третий пункт.
Пункт 3. Построение нового плана.
А. Из клеток последней строки (начиная с 4-й) выбираем ту, в которой указано максимальное число. Если таких клеток несколько, то выбираем самую левую из них. Столбец, в котором стоит выбранная клетка, называется генеральным. Для примера это пятый столбец.
Б. Если все элементы генерального столбца, кроме элемента последней строки, не положительны, то задача не имеет решения.
В противном случае для всех больших нуля элементов генерального столбца (кроме элементов последней строки) вычисляются следующие отношения: элемент третьего столбца делится на соответствующий (по строке) элемент генерального столбца. Для рассматриваемого примера получаем: во второй строке – 12:4=3, в третьей - 8:2=4, в четвёртой - 12:2=6. Выбираем строку, в которой получено минимальное отношение. Если таких строк несколько, то выбираем из них первую (верхнюю). Выбранная строка называется генеральной. Для примера это вторая строка.
Элемент, стоящий на пересечении генеральной строки и генерального столбца, называется генеральным. В таблицах генеральный элемент отмечен звёздочкой.
В. Элементы генеральной строки (начиная с третьей клетки) делим на генеральный элемент и записываем результаты в соответствующие клетки новой таблицы.
Остальные клетки столбцов, начиная с третьего, заполняются по формуле:
где
- элемент "новой" таблицы на
пересечении
-й
строки и
-го
столбца;
- соответствующий элемент "старой”
таблицы;
r - номер генеральной строки в "старой" таблице; l - номер генерального столбца в "старой" таблице.
Г. В клетке второго столбца, лежащей в генеральной строке (строке r), указываем переменную, соответствующую генеральному столбцу, остальные клетки этого столбца остаются без изменений (формируем новый список базисных переменных).
Таблица 2
Симплекс-таблица после первой итерации
Коэффициенты целевой функции |
Базис- ные пере- менные |
Значения базисных перемен- ных |
x1 |
x2 |
x3 |
x4 |
x5 |
X6 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
- |
x3 |
16 |
4 |
0 |
1 |
0 |
0 |
0 |
- |
x2 |
3 |
0 |
1 |
0 |
0.25 |
0 |
0 |
- |
x5 |
2 |
1 |
0 |
0 |
-0.5 |
1 |
0 |
- |
x6 |
6 |
2 |
0 |
0 |
-0.5 |
0 |
1 |
- |
- |
-106 |
16 |
0 |
0 |
-7.5 |
0 |
0 |
Д. Первый столбец можно не заполнять.
Е. Переходим к пункту 2, т.е. к проверке оптимальности плана и т.д.
Таблица 3