Линейное программирование. Общая постановка задачи

advertisement
Задачи математического и линейного программирования.
Модели линейного программирования.
Нередко экономические задачи имеют не единственное решение и
требуется выбрать лучшее – оптимальное из них. Моделирование таких задач
сводится к задачам математического программирования (ЗМП).
Математическое программирование – область математики, изучающая
оптимизационные процессы посредством поиска экстремума функции при
заданных ограничениях.
Сформулируем в общем виде ЗМП:
f  x1 , x2 , , xn   max min 
(7)
при условиях
g1  x1 , x2 , , xn   bi , i  1, 2, , k , 

g1  x1 , x2 , , xn   bi , i  k  1, , l ,  (8)
g1  x1 , x2 , , xn   bi , i  l  1, , m,
x1  0, x2  0, , xn  0,
(9)
где f  x1 , x2 , , xn  – целевая функция, условия (8) – специальные
ограничения, условия (9) – общие ограничения ЗМП.
x1 , x2 , , xn  ,
Точку
координаты
которой
удовлетворяют
ограничениям (8) и (9), называют допустимым решением ЗМП.
Множество всех допустимых решений ЗМП называют допустимым
множеством.


*
*
*
Допустимое решение x1 , x2 , , xn , удовлетворяющее соотношению
(7), называют оптимальным решением ЗМП.
Если
в
ЗМП
целевая
функция
f  x1 , x2 , , xn 
и
функции
g1  x1 , x2 , , xn , i  1, 2, , m , – линейные, то имеем общую задачу
линейного программирования (ЗЛП):
c1 x1  c2 x2    cn xn  F  max min 
(10)
ai1 x1  ai 2 x2    ain xn  bi , i  1, 2, , k , 

ai1 x1  ai 2 x2    ain xn  bi , i  k  1, , l ,  (11)
ai1 x1  ai 2 x2    ain xn  bi , i  l  1, , m,
x1  0, x2  0, , xn  0,
(12)
В
зависимости
от
вида
специальных
ограничений
различают
следующие ЗЛП:
- каноническая ЗЛП, включающая в качестве ограничений (11) только
уравнения, т. е.
ai1 x1  ai 2 x2    ain xn  bi , i  1, 2, , m ;
- стандартная ЗЛП, включающая в качестве ограничений (11) только
неравенства, т. е.
ai1 x1  ai 2 x2    ain xn  bi , i  1, 2, , l ,
ai1 x1  ai 2 x2    ain xn  bi , i  l  1, , m.
Рассмотрим следующие примеры моделей, приводимых к ЗЛП.
Пример 1. Экономико-математическая модель задачи о планировании
производства.
На заводе имеются запасы трех видов сырья: S1 , S 2 и S 3 , из которого
можно наладить производство двух видов товаров: T1 и T2 . Запасы сырья,
норма его расхода на производство единицы товаров, а также прибыль от
реализации единицы каждого товара приведены в таблице 1 (цифры
условные).
Таблица 1
Сырье
Товары
T1
S1
S2
S3
3
1
1
25
T2
3
2
4
34
Прибыль
Запасы
126
48
72
Необходимо составить такой план производства товаров, при котором
прибыль от их реализации будет максимальной.
Решение.
План производства зададим числами x1 и x 2 , где x i – количество
единиц товара Ti , которое следует произвести i  1, 2  . Неизвестные x1 и
x 2 должны удовлетворять условиям
 3x1  3x2  126

или
 x1  2 x2  48
 x1  4 x2  72
x1  0, x2  0
 x1  x2  42

 x1  2 x2  48 , (13)
 x1  4 x2  72
(14)
Поясним смысл первого неравенства системы (13). В левой части
записано количество сырья S1 , которое расходуется на выпуск x1 единиц
товара T1 и x 2 единиц товара T2 . Это количество не должно превышать
имеющегося запаса сырья S1 , т. е. 126 единиц. Аналогичный смысл
имеют второе и третье неравенства системы (13).
Прибыль, предприятия от реализации плана ( x1 , x 2 ) производства
товаров, очевидно, составит
F  25 x1  34 x2 .
В
интересах
предприятия
(15)
максимизировать
эту
прибыль.
Следовательно, чтобы составить план производства товаров, при котором
прибыль от их реализации будет максимальной нужно решить стандартную
ЗЛП: F  25 x1  34 x2  max при условиях (13) и (14):
 x1  x2  42
 x  2 x  48
 1
2

 x1  4 x2  72
 x1  0, x2  0
Пример 2. Экономико-математическая модель задачи о диете.
Имеются два вида продуктов: P1 и P2 . Содержание в 1 кг питательных
веществ A, B и C, ежесуточные потребности организма V в них и стоимость S
1 кг продуктов приведены в таблице 2
Таблица 2
Витамины
Продукты
P1
P2
V
Составить
такую
A
B
C
S
1
3
1
8
3
6
1
9
8
8
16
ежесуточную
диету,
которая
обеспечивает
необходимое количество питательных веществ при минимальных затратах на
продукты.
Решение.
Пусть
x1
и
x2
– искомые количества продуктов
P1
и
P2
соответственно. Их стоимость составляет
f  8 x1  16 x2
Общее количество питательного вещества A в обоих видах продуктов
равно x1  3x2 . Оно должно быть не меньше 6 единиц: x1  3 x2  6 .
Аналогичные неравенства составим для питательных веществ B и C:
3 x1  x2  9 и x1  8 x2  8 .
Очевидно, x1  0 и x2  0 .
Таким образом, получим следующую стандартную ЗЛП:
f  9 x1  12 x2  min
(16)
 x1  3x2  6
3x  x  9
1
2
x  8x  8
2
 1
 x1  0, x2  0
(17)
при условиях
Геометрический метод решения задач линейного
программирования.
Геометрический метод решения ЗЛП – простой и наглядный способ
решения стандартных ЗЛП с двумя переменными:
F  c1 x1  c2 x2  max min 
(18)
при условиях
ai1 x1  ai 2 x2  bi , i  1, , l ,


ai1 x1  ai 2 x2  bi , i  l  1, , m, (19)

x1  0, x2  0,
Рассмотрим следующие геометрические объекты.
Выпуклые множества и их свойства.
Множество
точек
называется
выпуклым,
если
оно
вместе
с
произвольными двумя своими точками содержит весь отрезок, соединяющий
эти точки.
Справедливо утверждение: пересечение любого числа выпуклых
множеств есть выпуклое множество.
Каждое
неравенство
системы
ограничений
(19)
геометрически
определяет полуплоскость с граничной прямой ai1 x1  ai 2 x2  bi , i  1, , m ,
или x1  0 , или x2  0 .
Поясним сказанное. Рассмотрим, например, неравенство 3x1  4 x2  12 .
Посмотрим прямую L: 3x1  4 x2  12 (см. рис.2).
Ï
À2
B1
B2
À4
À2
B1
B2
À3
À1
À1
Ñï ðàâ. ¹
x2
3
L
0
x1
4
ÊÎÌÏÀÑ-3D LT (ñ) 1989-2007 ÇÀÎ ÀÑÊÎÍ, Ðîññèÿ. Âñå ïðàâà çàùèùåíû.
Èí â. ¹ ï î äë.
Ï î äï . è äàò à
Âçàì . èí â. ¹ Èí â. ¹ äóáë.
Ï î äï . è äàò à
Рис. 2
Для того чтобы определить, какая полуплоскость удовлетворяет
заданному неравенству, необходимо выбрать любую точку, не лежащую на

1<
2 <
3
F=
L, и подставить ее координаты в неравенство. Если неравенство будет
данная
точка
является
допустимым
решением,
2
F=и

1
полуплоскость, содержащая точку, удовлетворяет неравенству. Как правило,
Подставим x1  x2  0 в заданное неравенство: 3  0  4  0  12 . Получим


в качестве «пробной» берут точку O0; 0  .

то

выполняться,
истинное утверждение. Следовательно, заданному неравенству соответствует
нижняя полуплоскость (заштрихованная на рис. 2), содержащая точку O0; 0 
.
Полуплоскости,
описываемые
неравенствами
(19)
–
выпуклые
Èçì . Ëèñò ¹ äî êóì . Ï î äï . Äàò à
Ðàçðàá.
множества. Их пересечение – область допустимых решений
ЗЛП, которая
Ï ðî â.
является также выпуклым множеством.
Ò.êî í ò ð.
Это множество называют также многоугольником
Он может
Í .êî í решений.
ò ð.
ò â.
быть точкой, отрезком, лучом, ограниченным Óили
неограниченным
ÊÎÌÏÀÑ-3D LT V9 (íåêîììåð÷åñêàÿ âåðñèÿ)
многоугольником. (Случай вырождения, когда система ограничений (19) –
пустое множество и ЗЛП не имеет решения, исключается).
Ввиду неравенств x1  0 и x2  0 многоугольник решений всегда
находится в первом квадранте координатной плоскости Ox1 x 2 .
Ê
Для нахождения экстремума целевой функции F воспользуемся
вектором набла  - градиентом F:
 F F 
  c1 , c2  .
  grad F  
,
 x1 x2 
Он показывает направление наискорейшего изменения целевой
функции F.
Прямая c1 x1  c2 x2   называется линией уровня функции F. Иными
словами на множестве всех точек
x1 , x2 
линии уровня функции F она
сохраняет постоянное значение  .
Алгоритм решения ЗЛП геометрическим методом.
1. Строится многоугольник решений.
2. Строится вектор набла, перпендикулярно ему проводятся линии
уровня и при этом учитывают, что оптимальное решение ЗЛП находится в
угловой точке многоугольника решений.
3. Первая точка встречи линии уровня с многоугольником решений
определяет минимум целевой функции.
4. Последняя точка встречи линии уровня с многоугольником решений
определяет максимум целевой функции.
5. Если линия уровня параллельна одной из сторон многоугольника
решений, то экстремум достигается во всех точках этой стороны A2 A3 . ЗЛП в
этом случае имеет бесконечное множество решений.
6. Для нахождения координаты точки экстремума решают систему из
двух уравнений прямых, дающих в пересечении эту точку.
Пример 1. Экономико-математическая модель задачи о планировании
производства.
Построим многоугольник решений. С этой целью запишем уравнения
границ полуплоскостей из (17) в виде
x1
 x1  x2  42

 x1  2 x2  48
 x1  4 x2  72
или
 x1 x2
 42  42  1
x
 1 x2
1
 
48
24

 x1  x2  1
 72 18
L1 
L2 
L3 
«Пробная» точка O0; 0  удовлетворяет всем неравенствам из (17) и
потому
многоугольник
решений
OA1 A2 A3 A4
расположен
в
нижних
полуплоскостях, порожденных прямыми L1 , L2 и L3 как показано на рис. 3
1
9 A2
координатами: x1  36 , x2  6 , являющимися решениями системы уравнений
 x1  x2  42 L1 
 x  2 x  48 L 
 1
2
2
L2
Подставив координаты точки A3 в целевую функцию, найдем
2 L1
Fmax  25  36  34  6  1104
1
0
x2
L3
A3
3
42
24
18 A1
L2





L1
A2
A3
0
A4
42 48
L3
72
x1
Рис. 3
Пример 2. Экономико-математическая модель задачи о диете.
Построим многоугольник решений. С этой целью запишем уравнения
границ полуплоскостей из (17) в виде

Построим вектор набла   25, 34  . Последней точкой встречи линии
x2 A
уровня с многоугольником решений будет точка A3 (см. рис.3) с
 x1 x2
 6  2  1 L1 
 x1  3x2  6
x
 1 x2

 1 L2 
3x1  x2  9 или  
3
9

 x1  8 x2  8
 x1  x2  1 L 
3
 8
1
«Пробная» точка O0; 0  удовлетворяет всем неравенствам из (17) и
потому многоугольник решений
A1 A2 A3 A4 A5 A6 расположен в верхних
полуплоскостях, порожденных прямыми L1 , L2 и L3 как показано на рис. 4
Построим вектор набла   8, 16  . Первой точкой встречи линии
уровня с многоугольником решений будет точка
A3 (см. рис. 4) с
координатами: x1  2,625 , x2  1,125 , являющимися решениями системы
уравнений:
L1 
L2 
 x1  3x2  6
3x  x  9
 1
2
Подставив координаты точки A3 в целевую функцию, найдем
f min  8  2,625  16  1,125  39
A2

9

A1



x2
L2
2
1
0
L1
L3
A3
A4
3
6
A5
8
A6
x1
Рис. 4




Симплекс-метод для решения задач линейного программирования.
A3
A4
42 48
L3
72
x1
С увеличением числа неизвестных геометрический метод решения ЗЛП
становится затруднительным при трех переменных и невозможным при
большем числе переменных.
Поэтому был разработан универсальный метод решения ЗЛП –
симплекс-метод, позволяющий решать ЗЛП в канонической форме.
Изложим суть симплекс-метода на примере задач с 5 неизвестными.
Пусть ЗЛП приведена к виду
F  c0  c1 x1  c2 x2  max
(20)
при ограничениях:
 x3  p 0  p1 x1  p2 x2

 x4  q 0  q1 x1  q2 x2 ,

 x5  r0  r1 x1  r2 x2
(21)
где p 0  0, q 0  0, r0  0 ,
x1  0, x2  0, x3  0, x4  0, x5  0
(22)
Про систему ограничений (21) говорят, что она имеет допустимый вид,
если одни неизвестные ( x3 , x4 , x5 ) выражаются через остальные ( x1 , x2 ),
причем
свободные
члены
этих
выражений
неотрицательны
(
p 0  0, q 0  0, r0  0 ).
Неизвестные x3 , x4 и x5 называются базисными, а неизвестные x1 , x2 –
свободными.
Возможны два принципиальных случая:
1 Все коэффициенты при свободных неизвестных в выражении для F
неположительны: c1  0 и c2  0 . Тогда для всякого неотрицательного
решения системы уравнений (21) имеем c1 x1  0 и c2 x2  0 , а потому
F  c0  c1 x1  c2 x2  c0 или max F  c0 .
Следовательно, базисное решение x1  0, x2  0, x3  p0 , x4  q0 , x5  r0
является оптимальными, т. е. задача решена.
2 Имеется свободное неизвестное, коэффициент при котором в
выражении для F положителен, а все коэффициенты при этом неизвестном в
уравнениях (21) – неотрицательны.
Для определенности положим c1  0, p1  0, q1  0, r1  0 . Исходя из
базисного решения, станем наращивать значение x1 , не меняя x2  0 . Тогда
значения базисных неизвестных будут оставаться неотрицательными:
x3  p 0  p1 x1  p0  0
x4  q 0  q1 x1  q0  0 ,
x5  r0  r1 x1  r0  0
а
значение
F  c0  c1 x1
будет
неограниченно
возрастать,
т.е.
max F   и задача решения не имеет.
Решения ЗЛП редуцируются к одному из случаев 1 или 2 путем
перехода к новому базису, в котором целевая функция не уменьшит своего
значения для базисного решения, а новая система ограничений должна иметь
допустимый вид. Преобразование базиса и перестройку целевой функции и
системы ограничений называют шагом в решении ЗЛП. Таким образом,
сделав нужное число шагов, решают ЗЛП (20) – (22).
Применим симплекс-метод к первой задаче.
I. Основная задача в примере 1 имеет вид
F  25 x1  34 x2  max
 x1  x2  42
 x  2 x  48
1
2
 x  4 x  72
2
 1
 x1  0, x2  0
Сначала приведем ее к каноническому виду, вводя балансовые
неизвестные x3  0 , x4  0 и x5  0 :
 x1  x2  x3  42

 x1  2 x2  x4  48
 x  4 x  x  72
2
5
 1
(23)
xi  0, i  1, 5
(24)
Теперь приведем (23) к допустимому виду – неизвестные x3 , x 4 и x5
выразим через x1 и x 2 , при этом свободные члены в правых частях
полученных уравнений неотрицательны:
 x3  42  x1  x2

 x4  48  x1  2 x2
 x5  72  x1  4 x2
(25)
Здесь x3 , x 4 и x5 – базисные неизвестные, а x1 и x 2 – свободные
неизвестные.
Шаг 1: положим в (25) x1  0 и x2  0 , тогда x3  42 , x4  48 , x5  72 .
Получим неотрицательное решение 0, 0, 42, 48, 72  системы уравнений (25).
Его называют базисным решением. Для него F  0 .
Шаг 2: положим в (25) x2  0 , а x1 начнем наращивать так, чтобы x3 ,
x 4 и x5 оставались неотрицательными, т. е.
x3  42  x1  0,
x4  48  x1  0,
x5  72  x1  0 .
Решая
неравенства,
найдем
эти
x1  min 42; 48; 72  42 . Тогда
наименьшее
x3  0 . Объявив
x2
неизвестными, приведем (25) к допустимому виду:
 x1  42  x2  x3

 x4  6  x2  x3
 x  30  3x  x
2
3
 5
(26)
и
x3
значение
свободными
Получим неотрицательное решение 42, 0, 0, 6, 30  системы уравнений
(26). Для него
F  25 x1  34 x2  25 42  x2  x3   34 x2  1050  9 x2  25 x3 (27)
примет значение F  1050 .
Сделаем выводы.
Во-первых, значение F по сравнению с 1-ым шагом увеличилось.
Во-вторых, в (27) коэффициент при
x3
отрицательный и для
дальнейшего увеличения значения F надо положить x3  0 и наращивать x 2 .
Шаг 3: положим в (26) x3  0 , а x 2 начнем наращивать так, чтобы x1 ,
x 4 и x5 оставались неотрицательными, т. е.
x1  42  x2  0,
x4  6  x2  0,
x5  30  3x2  0 .
30 

Откуда находим наименьшее значение x2  min 42; 6;   6 . Тогда
3

x4  0 . Объявив x3 и x 4 свободными неизвестными, приведем (27) к
допустимому виду:
 x1  36  2 x3  x4

 x2  6  x3  x4
 x5  12  2 x3  3x4
(28)
Получили неотрицательное решение 36, 6, 0, 0, 12  системы уравнений
(28). Для него
F  1050  9 6  x3  x4   25 x3  1104  16 x3  9 x4
(29)
примет значение F  1104 .
Сделаем выводы.
Во-первых, значение F по сравнению со 2-ым шагом увеличилось.
Во-вторых, в (29) оба коэффициента при свободных неизвестных
отрицательны и дальнейшее увеличение значения F невозможно:
Fmax  1104
при x3  x4  0 . Задача решена. Учитывая экономический смысл
неизвестных, приходим к выводу: предприятие получит наибольшую
прибыль 1104 единиц при изготовлении 36 единиц товара T1 и 6 единиц
товара T2 , при этом остатки ресурсов S1 и S 2 равны нулю ( x3  x4  0 ), а
остаток ресурса S 3 равен 12 единицам.
Если решается ЗЛП, в которой требуется найти минимум целевой
функции, то задачу либо сводят к рассмотренной выше задаче с целевой
функцией f   F , либо с помощью шагов приводят к одному из двух
принципиальных случаев:
1 Все коэффициенты при свободных неизвестных в выражении для F
неотрицательны:
c1  0
и
c2  0 .
Тогда
базисное
решение
x1  0, x2  0, x3  p0 , x4  q0 , x5  r0 является решением задачи.
2 Имеется свободное неизвестное, коэффициент при котором в
выражении для F (20) отрицателен, а все коэффициенты при этом
неизвестном в уравнениях (21) – неотрицательны. Тогда задача решения не
имеет.
Применим симплекс-метод ко второй задаче, Основная задача в
примере 2 имеет вид
f  8 x1  16 x2  min
 x1  3 x2
3 x  x
 1
2

 x1  8 x2
 x1  0,
6
9
8
x2  0
Сначала приведем ее к каноническому виду, вводя балансовые
неизвестные x3  0 , x4  0 и x5  0 :
 x1  3x2  x3  6

3x1  x2  x4  9
x  8x  x  8
2
5
 1
xi  0, i  1, 5
(30)
(31)
Приведем ограничения (30) к допустимому виду. Как показано выше, в
качестве базисных неизвестных следует выбирать такие неизвестные, каждая
из которых входит только в одно из уравнений системы ограничений (31),
при этом нет таких уравнений системы, в которые не входит ни одна из этих
неизвестных, и каждая базисная неизвестная имеет тот же знак, что и
свободный член.
Нетрудно видеть, что x3 , x 4 и x5 не могут быть базисными
неизвестными. Действительно,
 x3  6  x1  3x2

 x4  9  3x1  x2
 x  8  x  8 x
1
2
 5
(32)
и знаки x3 , x 4 и x5 противоположны знакам свободных членов.
Для выделения базисных неизвестных из системы ограничений (30)
необходима ее перестройка.
Полагая
в
(32)
x1  0
(или
x2  0 )
найдем
из
условий
неотрицательности x3 , x 4 и x5 :
x3  6  3x2  0,
x4  9  x2  0,
x5  8  8 x2  0 .
наибольшее значение x2  max 2; 9; 1  9 . Тогда x4  0 и систему (32)
запишем в виде
 x2  9  3x1  x4

 x3  21  8 x1  3x4
 x  64  23 x  8 x
1
4
 5
(33)
Получили систему ограничений, имеющую допустимый вид: x 2 , x3 и
x5 – базисные неизвестные, x1 и x 4 – свободные неизвестные. Перейдем к
процедуре шагов.
Шаг 1: положим в (33) x1  0 и x4  0 , тогда получим базисное
решение 0, 9, 21, 0, 64 , для которого целевая функция
f  8 x1  16 x2  8 x1  16 9  3x1  x4   144  40 x1  16 x4
(34)
примет значение f  144 .
В (5.15) коэффициент при x 4 положительный и для дальнейшего
уменьшения значения f надо положить x4  0 и наращивать x1 .
Шаг 2: положим в (33) x4  0 , а x1 начнем наращивать так, чтобы x 2 ,
x3 и x5 оставались неотрицательными, т. е.
x2  9  3x1  0,
x3  21  8 x1  0,
x5  64  23 x1  0 .
 9 21 64  21
Откуда находим x1  min  ; ;   . Тогда x3  0 . Объявив x3 и
 3 8 23  8
x 4 свободными неизвестными, приведем (33) к допустимому виду:
21 1
3

x


x

x4
1
3

8 8
8

9 3
1

 x 2   x3  x 4
8 8
8

29 23
5

 x5  8  8 x3  8 x 4

(35)
29 
 21 9
Из (35) получим базисное решение  ; ; 0; 0;  . Для него
8 
8 8
3 
 21 1
f  144  40   x3  x4   16 x4  39  5 x3  x4 (36)
8 
8 8
примет значение f  39 .
В (36) коэффициенты при свободных неизвестных положительны и
дальнейшее уменьшение значения f невозможно: f min  39 при x3  x4  0 .
Задача решена.
Учитывая экономический смысл неизвестных, приходим к выводу.
Ежесуточная
диета,
обеспечивающая
необходимое
количество
питательных веществ, состоит из x1  2,625 единиц продукта P1 , x2  1,125
единиц продукта P2 и ее минимальная стоимость F  39 единиц. При этом
потребности организма в питательных веществах A и B отвечают требуемым
минимальным объемам V  6 единиц и V  9 единиц соответственно (т.к.
x3  0 и x4  0 ), а потребности в питательном веществе С больше требуемого
минимального объема V  8 единиц на x5  3,625 единиц.
В заключение рассмотрим вопрос: всегда ли после конечного числа
шагов
симплекс-метод
закончится
либо
нахождением
оптимального
решения, либо установлением того факта, что задача не имеет решения.
Ответ утвердительный и содержится в следующей теореме.
Теорема. Если существует оптимальное решение ЗЛП, то существует и
базисное оптимальное решение. Последнее всегда может быть получено с
помощью симплекс-метода.
Симплекс-таблицы для решения ЗЛП.
Метод искусственного базиса (М-метод).
Описанный процесс решения ЗЛП симплекс-методом довольно
трудоемкий и требует выполнения однообразных преобразований. Причем с
возрастанием числа неизвестных растет и число шагов.
Оказывается,
эти
преобразования
можно
записать
в
виде
последовательности однотипно заполненных таблиц, называемых симплекстаблицами.
Изложим способ составления и преобразования таких таблиц на
примерах первой и второй основных задач .
I. Первая основная задача.
Для заполнения первой симплекс-таблицы необходимо переписать
целевую функцию F и систему ограничений в виде:
F  25 x1  34 x2  0
 x1  x2  x3  42

 x1  2 x2  x4  48
 x1  4 x2  x5  72
Заполним таблицу
Базисные Свободные
неизвестные
члены
x3
42
x4
48
x5
72
F
0
x1
x2
x3
x4
x5
1
1
1
–25
1
2
4
–34
1
0
0
0
0
1
0
0
0
0
1
0
В выражении для F выясняем, имеются ли в последней строке таблицы,
кроме столбца «свободные члены», отрицательные числа. Если таковых нет,
то задача решена. Если же есть, то выполняем преобразование: в столбце x1
имеем  25  0 (из двух отрицательных чисел –25 и –34 выбирают меньшее
по модулю), над этим элементом ищем положительные числа. Если таковых
нет, то задача не имеет решения. В нашем случае над –25 есть три
положительных числа: 1; 1 и 1.
Найдем
 42 48 72  42
min  , ,  
 42
1 1 1 1
Элемент, стоящий на пересечении строки ( x3 ) и столбца ( x1 ), называем
разрешающим. В нашем случае он равен 1. (Если разрешающий элемент
равен числу m  1, то всю строку делят на разрешающий элемент m, чтобы
получить 1). Неизвестная x1 вводится в базис, а неизвестная x3 выводится из
него.
Заполняем вторую симплекс-таблицу. Строка ( x3 ) из первой таблицы
становится в ней строкой ( x1 ). Далее преобразуем строки ( x 4 ), ( x5 ) и (F)
первой таблицы так, чтобы их элементы, стоящие в столбце ( x1 ), обратились
в 0. С этой целью
1)
вычтем элементы строки ( x1 ) из соответствующих элементов
строки ( x 4 ), и запишем полученные результаты в строку ( x 4 ) второй
таблицы;
2)
вычтем элементы строки ( x1 ) из соответствующих элементов
строки ( x5 ), и запишем полученные результаты в строку ( x5 ) второй
таблицы;
3)
умножим элементы строки ( x1 ) на 25, сложим с соответствующими
элементами строки (F), и запишем полученные результаты в строку (F)
второй таблицы.
В результате получим следующую симплекс-таблицу
Базисные Свободные
неизвестные
члены
x1
42
x4
6
x5
30
F
1050
x1
x2
x3
x4
x5
1
0
0
0
1
1
–1
–1
25
0
1
0
0
0
0
1
0
1
3
–9
В строке (F) есть отрицательное число –9. Поэтому продолжим поиск
оптимального решения. Над –9 есть три положительных числа: 1; 1 и 3.
Найдем
 42 6 30  6
min  , ,    6
1 1 3 1
Элемент, стоящий на пересечении строки ( x 4 ) и столбца ( x 2 )
разрешающий и равен 1. Неизвестная x 2 вводится в базис, а неизвестная x 4
выводится из него.
Заполняем третью симплекс-таблицу. Строка ( x 4 ) из второй таблицы
становится в ней строкой ( x 2 ). Далее преобразуем строки ( x1 ), ( x5 ) и (F)
второй таблицы так, чтобы их элементы, стоящие в столбце ( x 2 ), обратились
в 0. С этой целью
1)
вычтем элементы строки ( x 2 ) из соответствующих элементов
строки ( x1 ), и запишем полученные результаты в строку ( x1 ) третьей
таблицы;
2)
умножим элементы строки ( x 2 ) на 3, вычтем из соответствующих
элементов строки ( x5 ), и запишем полученные результаты в строку ( x5 )
третьей таблицы;
3)
умножим элементы строки ( x 2 ) на 9, сложим с соответствующими
элементами строки (F), и запишем полученные результаты в строку (F)
третьей таблицы.
В результате получим следующую симплекс-таблицу
Базисные Свободные
неизвестные
члены
x1
36
x2
6
x5
12
F
1104
x1
x2
x3
x4
x5
1
0
0
0
0
1
0
0
2
–1
2
16
–1
1
–3
9
0
0
1
0
В строке (F) нет отрицательных чисел. Получили оптимальное
решение:
Fmax  1104
при x1  36 , x2  6 , x3  x4  0 , x5  12 .
Замечание. Симплекс-таблицы удобнее «пристыковывать» друг к другу
по вертикали, что позволяет не писать многократно заглавную строку
II. Вторая основная задача.
Для заполнения первой симплекс-таблицы перепишем целевую
функцию F и систему ограничений (6.14), имеющую допустимый вид,
следующим образом:
F  40 x1  16 x4  144
3x1  x2  x4  9

8 x1  x3  3x4  21
23 x  8 x  x  64
4
5
 1
Заполним таблицу
Базисные Свободные
неизвестные
члены
x2
9
x3
21
x5
64
F
144
x2
1,125
x1
2,625
x5
3,625
F
39
x1
x2
x3
x4
x5
3
1
0
0
0
1
0
0
0
0
1
0
0
–0,375
0,125
–2,875
–5
–1
–3
–8
–16
0,125
–0,375
0,625
–1
0
0
1
0
0
0
0
0
8
23
40
0
1
0
0
В выражении для F выясняем, имеются ли в последней строке таблицы,
кроме столбца «свободные члены», положительные числа. Если таковых нет,
то задача решена. Если же есть, то выполняем преобразование: в столбце x1
имеем 40  0 . Над этим элементом ищем положительные числа. Если
таковых нет, то задача не имеет решения. В нашем случае над 40 есть три
положительных числа: 3; 8 и 23.
Найдем
 9 21 64  21
min  , ,    2,625
 3 8 23  8
Элемент, стоящий на пересечении строки ( x3 ) и столбца ( x1 )
разрешающий и равен 8. Неизвестная x1 вводится в базис, а неизвестная x3
выводится из него. Все элементы строки ( x3 ) разделим на разрешающий
элемент. Полученные результаты запишем в новую симплекс-таблицу в
строке ( x1 ).
Преобразуем строки ( x 2 ), ( x5 ) и (F) первой таблицы так, чтобы их
элементы, стоящие в столбце ( x1 ), обратились в 0. С этой целью
1) умножим элементы строки ( x1 ) на 3, вычтем из соответствующих
элементов строки ( x 2 ), и запишем полученные результаты в строку ( x1 )
второй таблицы;
2) умножим элементы строки ( x1 ) на 23, вычтем из соответствующих
элементов строки ( x5 ), и запишем полученные результаты в строку ( x5 )
второй таблицы;
3) умножим элементы строки ( x1 ) на 40, вычтем из соответствующих
элементов строки (F), и запишем полученные результаты в строку (F) второй
таблицы.
В строке (F) нет положительных чисел. Получили оптимальное
решение: Fmin  39
при x1  2,625 , x2  1,125 , x3  x4  0 , x5  3,625 .
Замечание. Первая симплекс-таблица второй основной задачи была
заполнена
с
учетом
того,
что
система
ограничений
(6.11)
была
предварительно сведена к допустимому виду (6.14), т.е. был найден
допустимый базис. Зачастую поиск такого базиса довольно затруднителен.
Рассмотрим следующий метод нахождения допустимого базиса, который
называют методом искусственного базиса или М-методом.
Метод искусственного базиса (М-метод).
Применительно к рассматриваемой задаче М-метод заключается в
следующем. В каждое уравнение системы ограничений (6.11), введем свою
новую искусственную неизвестную: y1  0 , y 2  0 и y3  0 . Включим их в
число базисных неизвестных и составим новую функцию цели
G  F  M  y1  y 2  y3  ,
где М – произвольно большое положительное число.
В результате получили следующую ЗЛП, приведенную к допустимому
виду
G  8 x1  16 x2  M  y1  y 2  y3   min
 y1  6  x1  3x2  x3

 y 2  9  3x1  x2  x4
 y  8  x  8x  x
1
2
5
 3
xi  0, i  1, 5,
y j  0,
y  1, 3 .
Эту задачу называют М-задачей.
Сформулируем
утверждения,
устанавливающие
связь
между
решениями исходной задачи и М-задачи.
1.
Если в оптимальном решении М-задачи все искусственные
переменные равны 0, то соответствующие значения остальных переменных
дают оптимальное решение исходной задачи (т.е.
Gmin  Fmin , если
y1  y 2  y3  0 ).
2.
Если имеется оптимальное решение М-задачи, в котором хотя бы
одна из искусственных переменных отлична от 0, то исходная задача не
имеет допустимого решения.
3.
Если М-задача не имеет оптимального решения, то исходная
задача неразрешима (т.е. если Gmin   , то либо Fmin   , либо нет ни
одного допустимого решения).
Из этих утверждений следует следующее правило решения M-задачи
симплекс-методом:
а) Необходимо выбирать последовательность шагов таким образом,
чтобы все искусственные неизвестные y1 , y 2 , y3 вышли из базиса, т.е. стали
свободными.
б) В симплекс-таблице отбросив столбцы для этих неизвестных,
получим симплекс-таблицу, дающую оптимальное решение исходной задачи.
в) Если при решении М-задачи получена симплекс-таблица, дающее
оптимальное решение, и в этой таблице хотя бы одна искусственная
переменная y i входит в базис, причем в строке для y i свободный член
положителен, то исходная задача не имеет ни одного допустимого решения.
Составим симплекс-таблицы решаемой задачи.
Базис Свобод
ные
ные
x1
x2
x3
неизв члены
ест
ные
y1
3
–1
6
1
y2
9
3
1
0
y3
8
1
0
8
5M  8 12 M  16  M
G
23M
58
x4
x5
y1
y2
y3
0
–1
0
0
0
–1
M
M
1
0
0
0
0
1
0
0
0
0
1
0
–1
0
0
–1
38
0
1
3 8
18
1
0
0
0
1 8
0
0
18
y1
y2
3
8
23 8
0
0
x2
1
18
1
11M  16
7M
6
2
0
M
M
M
2
2
29 23
0
1
0
0
–1
0
5 23
8 23
 8 23
1 23
G
y1
x1
64 23
1 8

3M
2
2
0
0
1
0
 5 23
 8 23
8 23
 1 23
x2
G
15 23
29 M  752
23
0
1
0
0
0
1 23
 3 23
0
M
5M  48
23
8M  40
23
0
58
1
23 8
5 8
–1
1 8
38
38
1 8
0
0
 M 1
M
 23 8
x5
29 8
0
0
x1
x2
21 8
0
1
18
3 8
98
1
0
3 8
18
0
0
G
39
0
0
–5
–1
0
M 5
 1 23

3 23
47 M  12   31M  40
23
23
Download