
Тема: Решение задач линейного программирования симплекс-методом
-
Цель работы
-
Закрепить знания построения математической модели задачи ЛП
-
Научиться строить первый опорный план задачи ЛП
-
Научиться находить оптимальное решение задачи ЛП симплекс-методом
2. Теоретические сведения
Симплексный метод решения задач линейного программирования основан на последовательном переходе от одного опорного плана (решения) ЗЛП к другому, при этом значения целевой функции изменяются.
2.1 Алгоритм симплекс-метода
Алгоритм симплексного метода состоит из итераций, позволяющих находить оптимальное решение задачи линейного программирования (ЛП), рассматривая ограниченное количество допустимых базисных решений:
-
Составление первого опорного плана.
а) Составляем симплексную таблицу начального опорного решения методом симплексного метода при стремлении целевой функции к максимуму.
Коэффициенты целевой функции |
c1 |
c2 |
... |
cn |
0 |
0 |
0 |
0 |
|
||
План |
Базисные переменные |
Значения базисных переменных |
х1 |
х2 |
... |
xn |
xn+1 |
xn+2 |
... |
xn+m |
zi |
1 |
xn+1 |
b1 |
а11 |
a12 |
|
а1n
|
1 |
0 |
|
0 |
|
xn+2 |
b2 |
а21 |
a22 |
|
а2n
|
0 |
1 |
|
0 |
|
|
…… |
….. |
|
|
|
|
0 |
0 |
|
0 |
|
|
xn+m |
bm |
аm1 |
am2 |
... |
аmn |
0 |
0 |
... |
1 |
|
|
Индексная строка |
F(X) |
0 |
- c1 |
- c2 |
... |
- cn |
0 |
0 |
0 |
0 |
|
б) При стремлении целевой функции к минимуму опорное решение находится методом М- базиса.
Коэффициенты целевой функции |
C *1 |
C *2 |
... |
C*n |
0 |
0 |
0 |
0 |
|
||
План |
Базисные переменные |
Значения базисных переменных |
х1 |
х2 |
... |
xn |
y1 |
y2 |
…. |
ym |
zi |
1 |
y1
y2 …… ym
|
b1
b2 ….. bm |
а11
а21
аm1 |
a12
a22
am2 |
|
а1n
а2n
аmn |
1
0
0
|
0
1
0 |
|
0
0
1
|
|
Индексная строка |
F(X) |
M(b1+…+bm) |
-C *1 |
-C *2 |
... |
-C* n |
0 |
0 |
0 |
0 |
|
Для нахождения значений C *i надо переменные уi выразить через основные переменные (в уравнениях ограничителях) и подставить в целевую функцию.
Проверка плана (решения) на оптимальность. Если все коэффициенты последней строки симплексной таблицы (F(X)) при решении на максимум неотрицательны, то план (решение) оптимален. Если хотя бы одно значение индексной строки меньше нуля, то план не оптимален, и его можно улучшить. (При решении ЗЛП на минимум целевой функции признаком оптимального плана являются отрицательные значения коэффициентов индексной строки) симплексной таблицы. Переходим к следующему этапу.
-
Определение ведущих столбцов и строк.
Из отрицательных значений последней строки выбираем наибольший по модулю, что и определяет ведущий столбец, который показывает, какая переменная на следующем приближении перейдет из свободных в базисные. Затем столбец свободных членов симплексной таблицы делим на элементы того же знака ведущего столбца. Делятся только элементы одинаковых знаков. Результаты заносим в отдельный столбец zi. Строка, соответствующая минимальной zi является ведущей. Она определяет переменную, которая в следующем плане выйдет из базиса и станет свободной. Элемент, находящийся на пересечении ведущей строки и ведущего столбца, называют разрешающим и выделяют.
-
Построение нового опорного плана.
Разделим элементы ведущей строки предыдущей таблицы на разрешающий элемент и результаты деления занесем в строку следующей симплексной таблицы. Запишем полученные значения , соответствующие введенной в базис переменной (на месте разрешающего элемента появится 1), а в остальные клетки ведущего столбца, включая и строку F(X) , записываем нули.
Остальные новые элементы нового плана находятся по правилу прямоугольника:
НЭ = СЭ- (А*В)/РЭ,
где НЭ - новый элемент,
СЭ- старый элемент,
РЭ- разрешающий элемент,
А и В –элементы старого плана образующие прямоугольник с элементами СЭ и РЭ
Далее возвращаемся ко второму этапу - проверке на оптимальность.
Пример (см. методы нахождения опорного решения)
Коммерческое предприятие реализует три группы товаров (А,В,С). Плановые нормативы затрат ресурсов на 1 товарный рубль товарооборота, доход от продажи товаров на 1 товарный рубль товарооборота, а так же объем ресурсов заданы. Определить плановый объем продаж и структуру товарооборота так, чтобы доход торгового предприятия был максимальным.
Виды ресурсов |
Нормы затрат на 1товарный рубль товарооборота |
объем ресурсов |
||
А |
В |
С |
||
Рабочее время продавцов
|
0,1
|
0,2
|
0,4
|
1100
|
Площадь торговых залов
|
0,05
|
0,02
|
0,02
|
120
|
Площадь складских помещений |
3 |
1
|
2
|
8000 |
Доход |
3 |
5 |
4 |
максимальный |
Запишем математическую модель :
х1, х2,х3 - количество продаваемых товаров;
Доход
( целевая функция ) определяется:
F(X)= max(3 х1+5 х2+4 х3)
При условии:
х1≥0; х2≥0; х3≥0;
и ограничениях
0,1х1
+ 0,2х2
+ 0,4х3
+ х4
≤ 1100
0,05х1 + 0,02х2 + 0,02х3 + х5 ≤ 120
3х1 + х2 + 2х3 + х6 ≤ 8000
Для построения первого опорного плана приведем запись ОЗЛП в канонической форме
F(X)= max(3 х1+5 х2+4 х3)
При условии
х1≥0; х2≥0; х3≥0;
и ограничениях
0,1х1
+ 0,2х2 +
0,4х3 +
х4 =
1100
0,05х1 + 0,02х2 + 0,02х3 + х5 = 120
3х1 + х2 + 2х3 + х6 = 8000
Запишем математическую модель в векторном виде
F(X)=max(C*X), где С=(3 5 4 0 0 0 ) – вектор-строка из коэффициентов целевой функции
х1
х2
Х = х3 – вектор-столбец переменных
х4
х5
х6
при условии: вектор Х ≥0
и ограничениях: А*Х=Р0,
где
матрица
0,1 0,2
0,4 1 0 0 1100
А= 0,05 0,02 0,02 0 1 0 , Р0= 120
3 1 2 0 0 1 8000
Находим
первый опорный план
Базисные переменные: х3; х4; х5.
Свободные переменные: х1=0; х2=0; х3=0;
В этом случае значения базисных переменных равны значениям свободных членов. Построим таблицу начального опорного решения:
Коэффициенты целевой функции |
3 |
5 |
4 |
0 |
0 |
0 |
|
||
План |
Базисные переменные |
Значения базисных переменных |
х1 |
х2 |
х3 |
х4 |
х5 |
х6 |
zi |
1 |
х4
|
1100
|
0,1
|
0,2
|
0,4
|
1
|
0
|
0
|
5500
|
x5
|
120
|
0,05
|
0,02
|
0,02
|
0
|
1
|
0
|
6000
|
|
x6
|
8000 |
3 |
1 |
2 |
0 |
0
|
1 |
8000 |
|
Индексная строка |
F(X) |
0 |
- 3 |
- 5 |
-4 |
0 |
0 |
0 |
|
Первый опорный план не оптимален, т.к. в индексной строке находятся отрицательные коэффициенты. Значит будем строить новый план.
За ведущий столбец выбираем столбец с максимальным по модулю отрицательным элементом индексной строки (-5). Переменная х2 переходит из свободных в базисные.
Для определения ведущей строки находим значения z. Значения базисных переменных делим на значения элементов ведущего столбца, учитывая знак.
Минимальное значение z определяет ведущую строку. Базисная переменная х4 переходит в свободные. Разрешающий элемент равен 0,2.
Формируем второй план таблицы.
Новые значения ведущей строки равны значению старого элемента деленного на разрешающий элемент.
Новые значения ведущего столбца равны нулю (включая и индексную строку), кроме элемента находящегося на пересечении ведущего столбца и ведущей строки. (Он равен 1).
Остальные элементы находятся по правилу прямоугольника
НЭ=СЭ-А*В/РЭ
Например для элемента на пересечении х5 и х1 НЭ=0,05-0,1*0,02/0,2=0,04 и т.д.
План |
Базисные переменные |
Значения базисных переменных |
х1 |
х2 |
х3 |
х4 |
х5 |
х6 |
zi |
2 |
х2
|
5500
|
0,5
|
1
|
2
|
5
|
0
|
0
|
11000
|
х5
|
10
|
0,04
|
0
|
-0,02
|
-0,1
|
1
|
0
|
250
|
|
x6
|
2500
|
2,5 |
0 |
0 |
-5 |
0
|
1 |
1000 |
|
Индексная строка |
F(X) |
27500 |
- 0,5 |
0 |
6 |
0 |
0 |
0 |
|
Этот план не оптимален. По вышеописанному алгоритму строим следующий план решения
План |
Базисные переменные |
Значения базисных переменных |
х1 |
х2 |
х3 |
х4 |
х5 |
х6 |
zi |
2 |
х2
|
5375
|
0
|
1
|
2,25
|
5
|
6,25
|
0
|
|
х1
|
250
|
1
|
0
|
-0,5
|
-0,1
|
-2,5
|
0
|
|
|
x6
|
1875
|
0 |
0 |
1,25 |
-5 |
1,25
|
1 |
|
|
Индексная строка |
F(X) |
27625 |
0 |
0 |
5,75 |
23,75 |
12,5 |
0 |
|
При третьей итерации (приближении) получаем оптимальный план.
Следовательно фирма должна продавать 250 единиц товара А , 5375 единиц товара В , товар С не реализуется. Доход получат при этом максимальный – 27625. Оказывается недоиспользована площадь складских помещений на
1875 м2.
Индексная строка свободных переменных 3-го плана (х3,х4,х5) имеет ненулевые элементы. Это говорит о том , что данный план линейной задачи является единственным.