Алгоритм симплекс-метода
1. Просматривается последняя строка (индексная) таблицы и среди коэффициентов этой строки (исключая столбец свободных членов) выбирается наименьшее отрицательное число при отыскании max либо наибольшее положительное при задаче на min. Если такового нет, то исходное базисное решение является оптимальным и данная таблица является последней.
2. Просматривается столбец таблицы, отвечающий выбранному отрицательному (положительному) коэффициенту в последней строке разрешающий столбец, и в этом столбце выбираются положительные коэффициенты. Если таковых нет, то целевая функция неограниченна на области допустимых значений переменных и задача решений не имеет.
3. Среди выбранных коэффициентов
столбца выбирается тот, для которого
абсолютная величина отношения
соответствующего свободного члена
(находящегося в столбце свободных
членов) к этому элементу минимальна
.
Строка, на которой находится данное
минимальное соотношение, называется
разрешающей. На пересечении
разрешающего столбца и разрешающей
строки находится разрешающий элемент.
4. В дальнейшем базисная переменная, отвечающая строке разрешающего элемента, должна быть переведена в разряд свободных, а свободная переменная, отвечающая столбцу разрешающего элемента, вводится в число базисных.
5. Строится новая таблица, содержащая новые названия базисных переменных: разделим каждый элемент разрешающей строки (исключая столбец свободных членов) на разрешающий элемент и полученные значения запишем в строку с измененной базисной переменной новой симплекс таблицы. В новой таблице все элементы ключевого столбца равны 0, кроме разрешающего, он всегда равен 1.
6. Остальные элементы новой таблицы вычисляются методом Жордана-Гаусса.
7. Проверяем полученное решение на оптимальность.
Пример решения задачи симплекс методом и графическим методом.
В производстве двух видов продукции А и В принимают участие три предприятия. При этом на изготовление единицы изделия А первое предприятие тратит 5 ч, второе предприятие – 9 ч, третье предприятие – 10 ч. На изготовление единицы изделия В первое предприятие тратит 7 ч, второе предприятие – 9 ч, третье предприятие – 8 ч. На производство всех изделий первое предприятие может затратить не более чем 343 ч, второе предприятие – 587 ч, третье предприятие – 587 ч. От реализации единицы готовой продукции вида А прибыль составляет 11 руб., а вида В – 7 руб.
Определить максимальную прибыль от реализации всей продукции видов А и В. Решить задачу симплекс-методом. Дать геометрическую интерпретацию математической формулировки.
Решение.
Представим данные этой задачи в виде таблицы:
|
Изделие А (ч.) |
Изделие В (ч.) |
Допустимые затраты (ч.) |
I предприятие |
5 |
7 |
343 |
II предприятие |
9 |
9 |
587 |
III предприятие |
10 |
8 |
587 |
Прибыль (руб.) |
11 |
7 |
|
Пусть
количество изделий вида А будет
,
а количество изделий вида В –
,
тогда функция прибыли будет иметь вид:
Составим систему ограничений.
Система ограничений имеет следующий вид:
Приведём систему ограничений к каноническому виду:
Строим симплекс-таблицу:
11 7
|
|
|
|
|
|
|
|
|
343 |
5 |
7 |
1 |
0 |
0 |
343/5=68.6 |
|
587 |
9 |
9 |
0 |
1 |
0 |
587/9=65.2 |
|
5 |
10 |
8 |
0 |
0 |
1 |
587/10=58.7 |
f |
0 |
-11 |
-7 |
0 |
0 |
0 |
|
В
последней строке максимальное по модулю
число соответствует переменной
.
Минимальное соотношение
соответствует третьей строке. Разрешающий
элемент находится на пересечении
и
.
Получим таблицу следующего вида:
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
58,7 |
1 |
0,8 |
0 |
0 |
0,1 |
|
f |
|
0 |
|
|
|
|
|
Производя вычисления по правилу «прямоугольника» получаем:
|
|
|
|
|
|
|
|
|
49,5 |
0 |
3 |
0 |
0 |
-0,5 |
|
|
58,7 |
0 |
1,8 |
0 |
0 |
-0,9 |
|
|
58,7 |
1 |
0,8 |
0 |
0 |
0,1 |
|
f |
645,7 |
0 |
1,8 |
0 |
0 |
1,1 |
|
В данной таблице нижняя строка f не содержит отрицательных значений, значит, мы пришли к оптимальному решению задачи. Причем наиболее выгодным оказалось производство изделия А, а на первом и втором предприятиях образовались излишки рабочего времени, соответственно 49,5 и 58,7 часов. Для увеличения объемов выпуска необходимо повысить эффективность третьего предприятия.
X (58.7; 0; 49.5; 58.7; 0)
Чтобы дать геометрическую интерпретацию данной задачи, построим на координатной плоскости следующие прямые:
I.
-
0
68.6
49
0
II.
-
0
65.2
65.2
0
III.
-
0
58.7
73.4
0
Область значений данной системы равенств ограничена отрезком координатной прямой y от 0 до 49, отрезком координатной прямой x от 0 до 58,7, отрезком прямой I от пересечения с координатной прямой y до пересечения с прямой III и прямой III от пересечения с прямой I до пересечения с координатной прямой x.
Для
того чтобы найти минимальное и максимальное
значение функции
при заданных ограничениях, построим
нормальный вектор
(11;
7), координатам вектора будут точки (0,
0) и (11, 7). Затем построим перпендикулярно
вектору прямую, проходящую через начало
координат. Перемещая данную прямую в
направлении вектора
заметим, что она (прямая) входит в область
определения в точке 0 и это минимум
данной функции. При дальнейшем перемещении
прямой видно, что она выходит из области
определения в точке В, это максимум
данной функции.
Решить самостоятельно.
Решить задачи симплекс-методом.
Транспортная задача.
Транспортная задача линейного программирования получила в настоящее время широкое распространение в теоретических обработках и практическом применении на транспорте и в промышленности. Важную роль она имеет в деле рационализации постановок важнейших видов промышленной и сельскохозяйственной продукции, а также оптимального планирования грузопотоков и работы различных видов транспорта. Кроме того, к задачам транспортного типа сводятся многие другие задачи линейного программирования - задачи о назначениях, сетевые, календарного планирования.
Постановка задачи. Пусть в пунктах А1, ... ,Am производят некоторый однородный продукт, причем объем производства в пункте Ai составляет ai единиц, i = 1,...,m. Данный продукт потребляют в пунктах B1, . , Bn, объем потребления в пункте Вj составляет bj единиц j = 1,.,n. Предположим, что из каждого пункта производства возможно транспортировка продукта в любой пункт потребления. Транспортные издержки по перевозке единицы продукции из пункта Ai в пункт Вj равны cij (i = 1,.,m; j = 1,.,n ). Задача состоит в определении такого плана перевозок, при котором запросы всех потребителей Вj полностью удовлетворены, весь продукт из пунктов производства вывезен и суммарные транспортные издержки минимальны.
Итак, от каждого i-го производителя произведенный им продукт ai, может перемещаться к j-му потребителю в объеме, не превышающем bj. Таким образом, xij будет означать перемещение некоторого числа единиц ресурса от i-го производителя к j-му потребителю. Через cij обозначим стоимость перемещения единицы ресурса от i-го производителя к j-му потребителю.
Тогда матрица X = {хij} будет называться матрицей перевозок или планом перевозок и, соответственно, матрица С = {сij} — матрицей стоимости.
Суммарная стоимость всех перевозок, вычисленная по любому допустимому плану, будет
Оптимальным планом перевозок X* будет называться тот из допустимых планов перевозок, который обеспечит минимальную сумму затрат на перевозку всех ресурсов.
Математическая модель транспортной задачи такова:
При заданных ограничениях:
где
Если
,
т.е. количество запросов равно количеству
единиц предложенной продукции,
следовательно, задача называется
закрытой.
В случае, когда
или
задача
называется открытой.
Транспортная задача решается с помощью общего приёма последовательного улучшения планов, состоящего из следующих основных этапов:
определение исходного опорного плана;
оценка этого плана;
переход к следующему плану путём однократного замещения одной базисной переменной на свободную.
Пример:
Имеются три пункта поставки однородного груза А1, А2 и А3 и четыре пункта потребления этого груза. На пунктах поставки А1, А2 и А3 находится груз соответственно в количестве 300, 320 и 380 т. В пункты B1, B2, B3 и B4 требуется доставить соответственно 250, 200, 290 и 260 т груза. Стоимости перевозок между пунктами поставки и пунктами потребления приведено в следующей таблице:
Пункты отправления |
Пункты назначения |
Запасы |
||||
|
|
|
|
|||
|
1 |
4 |
5 |
11 |
300 |
|
|
12 |
8 |
3 |
14 |
320 |
|
|
10 |
15 |
7 |
9 |
380 |
|
Потребности |
250 |
200 |
290 |
260 |
1000 |
|
Решение:
Данная задача является закрытой, так как суммарная мощность поставщиков равна суммарному спросу потребителей. И действительно 300+320+380=1000 и 250+200+290+260=1000.
Для решения этой задачи необходимо произвести первоначальное распределение поставок, воспользуемся для этого правилом учета наименьших затрат, а таблицу перегруппируем.
Пункты отправления |
Мощности поставщиков
|
Пункты назначения и их спрос |
|||
|
|
|
|
||
250 |
200 |
290 |
260 |
||
|
300 |
1 |
4 |
5 |
11 |
|
320 |
12 |
8 |
3 |
14 |
|
380 |
10 |
15 |
7 |
9 |
Согласно правилу учета наименьших затрат мы должны дать поставку в клетку имеющую наименьший показатель затрат, это клетка (А1; В1) показатель затрат равен 1, в эту клетку мы дадим 250 единиц груза, при этом потребности В1 удовлетворены полностью, а мощность поставщика А1 уменьшились до 50 единиц груза.
Пункты отправ ления |
Мощности поставщиков
|
Пункты назначения и их спрос |
|||
|
|
|
|
||
250-250=0 |
200 |
290 |
260 |
||
|
300-250=50 |
1 250 |
4 |
5 |
11 |
|
320 |
12 |
8 |
3 |
14 |
|
380 |
10 |
15 |
7 |
9 |
Далее мы дадим поставку в клетку (А2; В3), где показатель затрат равен 3. Передав в эту клетку 290 единиц груза, мы полностью удовлетворим потребности пункта В3 и уменьшим мощность поставщика А2 до 30 единиц груза.
Пункты отправ ления |
Мощности поставщиков
|
Пункты назначения и их спрос |
|||
|
|
|
|
||
0 |
200 |
290-290=0 |
260 |
||
|
50 |
1 250 |
4 |
5 |
11 |
|
320-290=30 |
12 |
8 |
3 290 |
14 |
|
380 |
10 |
15 |
7 |
9 |
Заполняя аналогичным образом, соответствующие клетки таблицы придем к следующей схеме поставок:
Пункты отправления |
Мощности поставщиков
|
Пункты назначения и их спрос |
|||
|
|
|
|
||
250-250 |
200-50-30-120 |
290-290 |
260-260 |
||
|
300-250-50 |
1 250 |
4 50 |
5 |
11 |
|
320-290-30 |
12 |
8 30 |
3 290 |
14 |
|
380-120-260 |
10 |
15 120 |
7 |
9 260 |
При данном распределении поставок целевая функция F будет равна:
F=250+4*50+8*30+15*120+3*290+9*260=5700
Далее необходимо проверить является ли данная схема поставок оптимальной, для этого снизу и справа имеющейся таблицы присоединим дополнительные строку и столбец.
Пункты отправ ления |
Мощности постав щиков
|
Пункты назначения и их спрос |
|
|||
|
|
|
|
|
||
250 |
200 |
290 |
260 |
|
||
|
300 |
1 250 |
4 50 |
5 |
11 |
|
|
320 |
12 |
8 30 |
3 90 |
14 |
|
|
380 |
10 |
15 120 |
7 |
9 260 |
|
|
|
|
|
|
|
|
Каждой клетке таблицы поставим в соответствие ее оценку, полученную как алгебраическую сумму показателя затрат клетки и соответствующих чисел, записанных в дополнительных строке и столбце. Эти числа подбираются таким образом, чтобы оценки заполненных клеток равнялись нулю. Оценки свободных клеток могут быть положительными, отрицательными или равными нулю.
Впишем в правый верхний угол каждой клетки ее оценку.
Пункты отправления |
Мощнос ти постав щиков
|
Пункты назначения и их спрос |
|
|||
|
|
|
|
|||
250 |
200 |
290 |
260 |
|||
|
300 |
1 0 250 |
4 0 50 |
5 6 |
1 133 1 |
-1 |
|
320 |
1 7 2 |
0 8 30 |
3 0 290 |
1 9 4 |
-5 |
|
380 |
1 -2 0 |
1 0 5 120 |
7 -3 |
9 0 260 |
-12 |
|
0 |
-3 |
2 |
3 |
|
|
Таким образом определили, что первоначальное распределение поставок не является оптимальным (в клетках (А3; В1) и (А3; В3) отрицательные оценки). Необходимо произвести перераспределение поставок. Сделаем поставку в клетку (А3; В3). Но очевидно, что поставка в эту клетку повлечет изменения поставок в соседние клетки, другими словами образуется цикл. Передадим 120 единиц груза из клетки (А3; В2) в клетку (А3; В3), затем увеличим на 120 единиц поставку в клетку (А2; В2), а поставку в клетке (А2; В3) уменьшим на 120 единиц. Получили:
Пункты отправления |
Мощнос ти постав щиков
|
Пункты назначения и их спрос |
|
|||
|
|
|
|
|||
250 |
200 |
290 |
260 |
|||
|
300 |
1 250 |
4 0 50 |
5 0 |
1 6 1 |
-
103 |
|
320 |
12 |
8 7 150 |
3 0 170 |
1 0 4 |
- 9 5 |
|
380 |
10 |
1 1 5 |
7 0 120 |
9 0 260 |
- 0 9 |
|
0 |
-3 |
2 |
0 |
|
|
При данном распределении поставок целевая функция F будет равна:
F=250+4*50+8*150+3*170+7*120+9*260=5340
Таблица не содержит пустых клеток с отрицательными оценками, а значит мы нашли оптимальное решение данной задачи.

87