
- •Глава 1 Оптимизационные экономико-математические модели
- •1.1 Общая задача оптимизации
- •1.2 Использование средств ms Excel для построения экономико-математических моделей и нахождения оптимального решения
- •1.3 Линейное программирование
- •1.3.1 Графический метод решения задач линейного программирования
- •1.3.2 Симплекс-метод решения задач линейного программирования
- •1.3.3 Специальные задачи линейного программирования
- •Контрольные вопросы
- •1.4 Варианты заданий по теме
1.3.2 Симплекс-метод решения задач линейного программирования
Симплексный метод в отличие от графического универсален. С его помощью можно решать задали линейного программирования с неограниченным числом переменных. Применение симплекс-метода осуществляется в два этапа:
- нахождение допустимого базового решения;
- последовательное улучшение полученного на предыдущем этапе решения до достижения оптимального.
Основные операции алгоритма симплекс-метода удобно проиллюстрировать с использованием конкретного примера. Воспользуемся задачей о производстве видеокарт, которую мы уже решили графическим методом. Для корректной постановки математической задачи необходимо все неравенства перевести в уравнения путём добавления новых переменных:
Целевая функция остаётся прежней: .
Для
решения задачи составим симплекс-таблицу
табл. 1.2. Значения аргументов переписываются
из системы уравнений и целевой функции.
Правая часть определяется как правая
часть системы уравнений. Столбец «базис»
показывает текущее значение целевой
функции, т.е. при
,
и
значение целевой функции W
равно нулю.
Каким
образом определить, какие аргументы
окажутся в столбце «базис»? Для этого,
нужно обратить внимание в каких столбцах
содержаться одна единица и нули. В табл.
1.2 это столбцы
,
и
.
В этих столбцах строка с единицей и
показывает базис. Например, в столбце
поле с единицей находится во второй
строке, соответственной базис по второй
строке будет
.
Таблица 1.2
№ |
|
|
|
|
|
Правая часть |
Базис |
1 |
3 |
6 |
1 |
0 |
0 |
31 |
|
2 |
6 |
8 |
0 |
1 |
0 |
47 |
|
3 |
10 |
7 |
0 |
0 |
1 |
72 |
|
|
50 |
60 |
0 |
0 |
0 |
0 |
|
Табл. 1.2 является опорной базовой таблицей и ещё не содержит оптимальное значение целевой функции. Для приближения к оптимальному значению функции , данная таблица должна быть пересчитана и возможно не на один раз.
После каждого пересчёта значение должно возрастать. Правая часть никогда не должна содержать отрицательных значений. Пересчёт нужно вести пока в последней строке симплекс-таблице не исчезнут положительные числа.
Для пересчёта симплекс-таблицы нужно принять одну из ячеек в качестве разрешающего элемента, по которому будет вестись пересчёт всей симплекс-таблицы. Что бы выбрать разрешающий элемент нужно:
определить столбец, содержащий максимальное значение (столбцы содержащие только отрицательные и нулевые ячейки в расчёт не берутся);
определить строку, в выбранном столбце, в которой содержится число больше нуля (в случае если таких строк несколько выбирают ту, в которой соотношение значения «правой части» ячейки и её самой минимально).
Таким образом, на пересечении выбранного столбца и строки получаем опорную ячейку относительно, которой и пойдёт дальнейший пересчёт. В табл. 1.2 эта ячейка отмечена рамкой. При пересчёте: в опорном столбце проставляются нули по всем строкам. Значения ячеек опорной строки делятся на значение ячейки, содержащей разрешающий элемент. В ячейке с определяющим элементом ставится единица. Остальные ячейки пересчитываются по следующей схеме, представленной на рис. 1.5, где
П – пересчитываемая ячейка;
О – опорная ячейка, с разрешающим элементом;
А и Б – смежные ячейки.
Формула
пересчёта:
.
|
|
А |
|
П |
|
|
|
|
|
|
|
|
|
O |
|
В |
|
Рисунок 1.5 – Схема перерасчёта симплекс-таблицы
В табл. 1.3 представлена первая и последующие итерации (пересчёт) симплекс-таблицы.
Таблица 1.3
№ |
|
|
|
|
|
Правая часть |
Базис |
1 |
1/2 |
1 |
1/6 |
0 |
0 |
31/6 |
|
2 |
2 |
0 |
-4/3 |
1 |
0 |
17/3 |
|
3 |
13/2 |
0 |
-7/6 |
0 |
1 |
215/6 |
|
|
20 |
0 |
-10 |
0 |
0 |
-310 |
|
1 |
0 |
1 |
1/2 |
-1/4 |
0 |
15/4 |
|
2 |
1 |
0 |
-2/3 |
1/2 |
0 |
17/6 |
|
3 |
0 |
0 |
19/6 |
-13/4 |
1 |
209/12 |
|
|
0 |
0 |
10/3 |
-10 |
0 |
-1100/3 |
|
1 |
0 |
1 |
0 |
5/19 |
-3/19 |
1 |
|
2 |
1 |
0 |
0 |
-7/38 |
4/19 |
13/2 |
|
3 |
0 |
0 |
1 |
-39/38 |
6/19 |
11/2 |
|
|
0 |
0 |
0 |
-125/19 |
-20/19 |
-385 |
|
Как видно из табл. 1.3, абсолютное значение в правой части таблицы возрастало после каждой итерации. Так же максимальное значение по столбцам тоже уменьшалось, пока все значения по строке не стали нулевыми или отрицательными.
Из
базиса видно, что при
и
прибыль будет максимальной и составит
385 ден.ед. Учитывая условия целостности,
примем
,
тогда прибыль составит, так же как и при
графическом методе,
ден.ед.