n b i

реклама
Симплексный метод решения задачи
линейного программирования.
Пусть торговое предприятие реализует n групп товаров, используя
при этом ограниченные материально-денежные ресурсы размером
(i  1, m)
bi
. Известны расходы ресурсов i –го вида на организацию продажи
единицы товарооборота товаров
технологической матрицы
j-ой группы,
заданные в виде
(i  1, m) ( j  1, n)
А = (aij) ,
,
,
и
прибыль,
получаемая предприятием от реализации единицы товарооборота товаров jой группы - Сj.
Требуется определить объем и структуру товарооборота Хj
( j  1, n)
,
при которых общая прибыль торгового предприятия была бы максимальной.
Математическую модель задачи можно записать следующим образом:
Определить
X
(x
,x
,...,
x
),
1
2
n
который удовлетворяет ограничениям
n
a x b, i  1, m
i
(2.1)
,  j  1, n
(2.2)
j
1
ij
xj  0
j
и доставляет максимальное значение целевой функции
n
L
(
X
)
c
x
max

j
j
(2.3)
j

1
Задача линейного программирования (2.1)–(2.3) может быть решена
симплексным методом, так как система ограничений задана в виде системы
неравенств только смысла «≤ »
и
вектор столбец свободных членов
содержит только положительные числа, т.е.
bi ≥ 0.
Алгоритм симплексного метода включает следующие этапы.
1. Составление первого опорного плана.
Перейдем от системы неравенств (2.1) к системе уравнений путем
введения неотрицательных дополнительных переменных. Векторы-столбцы
при этих переменных представляют собой единичные векторы и образуют
базис, а соответствующие им переменные называются базисными.
n
i  1, m
ax
x


b
i,
Разрешим
систему
j
1
ij
n

1
j
(2.4)
уравнений
(2.4)
относительно
базисных
переменных:
n
x
b
a

n

1
i
ijx
j , i  1, m
(2.5)
j
1
Аналогично функцию цели представим в виде:
 n



L
(
X
)
0


c

x

j
j


j

1


(2.6)
Полагая, что основные переменные
x
x
...

x
0
1
2
n
, получим
первый
0
0
(
0
,
0
,...,
0
,
b
,
b
,...,
b
)
1
1
2
m
опорный план X
, L(X1 )  0.
Исследование опорного плана на оптимальность, а также дальнейший
вычислительный
процесс
удобнее
вести,
если
условия
задачи
и
первоначальные данные, полученные после определения первого опорного
плана, занести в симплексную таблицу. Первые
m
строк
симплексной
таблицы содержат коэффициенты системы ограничений и свободные члены.
Последняя (m +1)-ая строка таблицы называется индексной. Она заполняется
коэффициентами функции цели, взятыми с противоположным знаком.
2. Проверка оптимальности опорного плана.
Если все коэффициенты индексной строки симплексной таблицы (при
решении задачи на максимум целевой функции) неотрицательны (∆ ≥ 0,
j 1,nm, то опорный план задачи является оптимальным. Если найдется
хотя бы один коэффициент
индексной строки
меньше нуля, план не
оптимальный и можно перейти к новому опорному плану, при котором
значение
целевой
осуществляется
функции
увеличится.
Переход
к
другому
плану
исключением из исходного базиса какого-нибудь из
векторов и введением в него нового вектора.
3. Определение направляющих (разрешающих) столбца и строки.
Из отрицательных коэффициентов индексной строки ∆ j < 0 выбираем
максимальный
по
абсолютной
величине.
Направляющий
столбец,
соответствующий выбранному коэффициенту, показывает, какой вектор или
переменная на следующей итерации прейдет из
свободных в базисные.
Пусть, например, ∆k < 0 и решено ввести в базис вектор А k.
Для определения вектора (переменной), подлежащего исключению из
базиса, элементы столбца свободных членов симплексной
таблицы
(значения базисных переменных) делим на соответствующие положительные
элементы направляющего столбца
 bi

 aik
для всех
aik  0  .
Результаты
заносим в столбец Θ симплексной таблицы. Строка симплексной таблицы,
соответствующая минимальному
значению
Θ, является направляющей.
Пусть этот минимум достигается при i = r. Тогда из базиса исключают
вектор Аr , т.е. переменная xr на следующей итерации выйдет из состава
базисных переменных и станет свободной. Элемент симплексной таблицы аrk
, находящийся на пересечении направляющих столбца и строки, называется
разрешающим.
4. Определение нового опорного плана.
Для перехода к новому опорному плану производится пересчет
симплексной
таблицы
методом
Жордана-
переменные в базисе, т.е. вместо xr
Гаусса.
Сначала
заменим
в базис войдет переменная аk ,
соответствующая направляющему столбцу.
Разделим все элементы направляющей строки
r
симплексной таблицы на разрешающий элемент аrk и
занесем в
строку r
предыдущей
результаты деления
следующей симплексной таблицы, которая
соответствует введенной в базис переменной xk.
В результате этого на
месте разрешающего элемента новой симплексной таблицы будем иметь «1»,
а в остальных клетках столбца «к» накапливаем нули. Это равносильно
исключению переменной
xk
из всех строк таблицы (уравнений), кроме
строки r, соответствующей переменной . xk .
Преобразование остальных строк симплексной таблицы, включая
индексную, рассмотрим на примере строки і. Для получения новых
элементов і-ой строки коэффициент а іk , находящийся на пересечении і-ой
строки и k-го столбца и взятый с противоположным знаком, умножаем на
элементы преобразованной направляющей строки
соответствующими элементами
r
и складываем с
і-ой строки. Результаты заносим в і-ую
строку новой симплексной таблицы. Если коэффициент
а
іk
= 0, то і-ая
строка переносится в следующую симплексную таблицу без изменений.
Полученный новый опорный план снова проверяем на оптимальность.
Таким образом, переходим ко второму этапу алгоритма и продолжаем
процесс до получения оптимального плана.
Замечания.
1.
При решении задачи линейного программирования на минимум
целевой функции признаком оптимальности плана являются отрицательные
значения всех коэффициентов индексной строки симплексной таблицы. Если
опорный план не оптимален, то максимальное положительное значение
коэффициента индексной стоки определяет выбор направляющего столбца.
2. Если в направляющем столбце все коэффициенты а
іk
≤ 0, то
функция цели L( Х ) не ограничена на множестве допустимых планов, т.е.
L( Х ) → ∞ и задача не имеет решения.
3.
Если в столбце θ симплексной таблицы содержатся два или
несколько одинаковых наименьших значения, то новый опорный план будет
вырожденным, т.е. одна или несколько базисных переменных станут
равными нулю.
4. Если в оптимальный план вошла дополнительная переменная xn+1 ,
то это свидетельствует о недоиспользовании ресурса і-го вида в количестве
значения этой переменной.
5.
Если в индексной строке оптимальной симплексной таблицы
находится нуль, принадлежащий столбцу свободной переменной, не
вошедшей в базис, а среди коэффициентов данного столбца имеется хотя бы
один положительный элемент, то задача имеет множество оптимальных
планов. Свободную переменную, соответствующую указанному столбцу,
можно ввести в базис, выполнив 3 и 4 этапы алгоритма, в результате будет
получен второй оптимальный план с другим набором базисных переменных,
но с тем же значением функции цели. Согласно основной теореме линейного
программирования, любая выпуклая комбинация этих планов также является
оптимальным планом задачи.
Пример.
Торговое предприятие при продаже трех групп товаров использует три
вида ограниченных материально-денежных ресурсов. Нормы затрат ресурсов
на реализацию единицы товарооборота (тыс.руб.), объем ресурсов и доход от
реализации единицы товарооборота приведены в технологической таблице.
Определить оптимальный план реализации товаров, обеспечивающий
торговому предприятию максимальную прибыль (числа условные).
№ Виды
п\п материальноденежных
ресурсов
(i = 1,3)
Единица
Норма затрат ресурсов
измерения на реализацию
1 ед.товарооборота
1
2
3
группа группа группа
(а і1)
(а і2)
(а і3)
1. Рабочее время Чел.-час.
2
1
6
продавцов
2. Площадь
м2
3
3
9
торговых залов
3. Площадь
м2
2
1
2
складских
помещений
Прибыль
от Тыс.руб.
14
6
22
реализации ед. т/о
Объем
материальноденежных
ресурсов (b і)
240
540
120
max
Запишем математическую модель задачи.
Определить
X(x
1,x
2,x
3) ,
который удовлетворяет условиям
2x1 x2 6x3 240
3x 3x 9x 540
 1 2 3

2x1 x2 2x3 120
x1 0,x2 0,x3 0.
( 2 .7 )
( 2 .8 )
и доставляет максимальное значение целевой функции
L
(
X
)

14
x

6
x

22
x

max
1
2
3
.
(2.9)
Задачу (2.8) – (2.9) решим симплексным методом.
Для получения первого опорного плана систему неравенств
(2.7)
приведем к системе уравнений
240
2x1x26x3x4
3x3x 9x x 540
1 2 3
5

x6120
2x1x22x3

x10,x20,x30.
В
системе
уравнений
(2.10)
x1 , x2 , x3
-
основные
переменные,
характеризующие объемы реализации 1, 2 и 3 групп товаров соответственно,
x4 , x5 , x6
- дополнительные переменные, определяющие объемы ресурсов.
Решим систему уравнений (2.10) относительно базисных переменных
(2x1x26x3)
x4240

(3x13x29x3)
x5540
x120
6 (2x1x22x3)
Функцию цели запишем в виде:
L
(
X
)

0

(

14
x

6
x

22
x
)
1
2
3
(2.12)
Полагая, что свободные переменные
опорный план:
x
x2 x3 0,
1
получим первый
0
X
(
0
,
0
,
0
,
240
,
540
,
120
)
1
, L(X1 ) 0, в котором базисные
0
x
240
,x
540
,x
120
.
5
6
переменные 4
Первый опорный план заносим в симплексную таблицу (см. таблицу0.
этот план является не оптимальным, так как в индексной строке находятся
отрицательные коэффициенты:
–14, –6, –22.
Из отрицательных
коэффициентов индексной строки выбираем наибольший по абсолютной
величине. Так как |–22| > {|–14|, |–6|}, то направляющий столбец
соответствует переменной x3. Тогда на следующей итерации переменная x3
перейдет из свободных в базисные. Элементы столбца свободных членов
симплексной таблицы разделим на соответствующие положительные
коэффициенты направляющего столбца:
240
 40;
6
540
120
 60;
 60.
9
2
Из
трех значений столбца θ выбираем min{40,60,60}= 40. Строка симплексной
таблицы,
соответствующая
минимальному
направляющей. Она определяет
итерации
значению
θ,
является
переменную x4, которая на следующей
перейдет из базиса и станет свободной. На пересечении
направляющих столбца и строки находится разрешающий элемент, равный 6.
В таблице 1 направляющие столбец и строка помечены стрелками, а
разрешающий элемент обведен кругом.
Формируем следующую симплексную таблицу 2. Вместо переменной
x4 в таблицу 2 вошла переменная x3. Строка, соответствующая переменной
x3
получена в результате деления всех элементов направляющей строки
(строка переменной x4 таблицы 1) на разрешающий элемент 6. На месте
разрешающего элемента в таблице получаем «1». В остальных клетках
столбца x3 таблицы 2 накапливаем нули методом Жордана-Гаусса.
Рассмотрим преобразование второй строки симплексной таблицы,
которая соответствует переменной x4 .
Для получения новых значений
элементов данной строки необходимо все элементы преобразованной
направляющей строки таблицы 2 умножить на число, стоящее на
пересечении строки x5 и столбца x3 таблицы 1, взятое с противоположным
знаком, т.е. на (–9). Результаты умножения сложить с соответствующими
элементами строки x5 таблицы 1 и записать в строку x5 таблицы 2.
40·(–9) + 540 = 180
1
3
1
6
·(–9) + 3 = 0
·(–9) + 3 =
1·(–9) + 9 = 0
1
6
3
2
3
·(–9) + 0 = – 2
0·(–9) + 1 = 1
0·(–9) + 0 = 0.
Аналогично проводятся расчеты по всем строкам таблицы, включая
индексную.
Далее возвращаемся к этапу 2 алгоритма – проверка оптимальности
опорного плана. Выполняя последовательно все этапы алгоритма, заполняем
таблицу 3.
На третьей итерации в таблице 3 получен оптимальный план, так как
все коэффициенты в индексной строке ∆j ≥ 0, j = 1, 6.
Запишем оптимальный план:
X
*
= (30, 0, 30, 0, 180, 0), L( X ) = 1080 (тыс.руб.).
*
Следовательно, для получения максимальной прибыли в размере 1080
тыс. руб. торговому предприятию необходимо продавать товаров 1-ой
группы 30 ед. (х1*= 30) и товаров 3-ей группы 30 ед. (х3*= 30). В оптимальный
план вошла дополнительная переменная х5*= 180. Это указывает на то, что
ресурсы второго вида (площади торговых залов) недоиспользованы на 180
м2, остальные ресурсы использованы полностью, так как х4*= х6*= 0.
Полученный в результате решения оптимальный план является
невырожденным, так как при расчете столбца θ не были получены
одинаковые минимальные значения и все значения базисных переменных в
оптимальном плане отличны от нуля.
В индексной строке таблицы 3 в строках переменных
x2 , x4 , x6 ,
не
вошедших в состав базисных, получены ненулевые элементы, поэтому
оптимальный план задачи является единственным.
Т Базисные
абл переменица
ные
1
←x4
Свободные
члены
(значения
базисных
перемнных)
240
x1
x2
x3
x4
x5
x6
θ
2
1
6
1
0
0
40
x5
540
3
3
9
0
1
0
60
x6
120
2
1
2
0
0
1
60
0
–14
–6
–22↑
0
0
0
0
L( X 1 )
Т
абл
ица
2
x3
40
1
3
1
6
1
x5
180
0
3
2
0
←x6
40
4
3
2
3
0
L( X 2 )
880
7
20
– 3
–3
1
6
0
0
120
3
1
0
–
1
0
1
30
0
11
3
0
0
1
4
0
3
1
0
1
0
3
4
2
0
5
–2
–3
↑
Т
абл
ица
2
x3
30
0
0
1
x5
180
0
3
2
0
x1
30
1
1
2
0
1080
0
1
0
*
L( X 3 )
–2
–4
1
–4
Похожие документы
Скачать