Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Линейное программирование

.pdf
Скачиваний:
14
Добавлен:
10.04.2015
Размер:
402.21 Кб
Скачать

x2

5

 

x5 ,

 

x3 18 x1 3 5 x5 ,

 

x4

16

2x1

5 x5 ,

(17)

x6 21 3x1,

F 2x1 3 5 x5 ,

или

x2

5

 

x5 ,

 

 

 

 

 

x3 3

x1 3x5 ,

 

 

x4

11

2x1

x5 ,

(18)

x6

21

3x1,

 

 

 

F 0; 5; 3; 11; 0; 21 15 2x1

3x5.

Здесь вновь в скобках записано базисное решение. Линейная функция возросла на величину ∆F = 3х= 3∙5 = 15 единиц. Однако решение не является оптимальным, так как линейную функцию можно увеличить на величину ∆F = 2х, если х1 перевести из свободной переменной (где в базисном решении она принимает значение равное нулю) в базисные. Система уравнений (18) определяет наибольшее возможное значение для х1: х1 = min{∞; 3/1; 11/2; ∞} = 3. Второе уравнение является разрешающим, переменная х3 переходит в свободные, при этом ∆F = 2х= 2∙3 = 6.

Далее. Базисные переменные: х1, х2, х4, х6. Свободные переменные: х3, х5. Выражаем новые базисные переменные через новые свободные переменные, начиная с разрешающего уравнения (его используем при записи выражения для х1). После преобразований получаем:

x1 3

x3 3x5 ,

 

x2 5

 

x5

,

 

 

 

 

 

 

 

 

x4 5

2x3

5x5

,

 

(19)

x6 12

3x3

9x5 ,

 

F 3; 5; 0; 5;

0; 12 21 2x3

3x5.

Третье допустимое базисное решение (3; 5; 0; 5; 0; 12) тоже не является оптимальным, поскольку при свободной переменной х5 в выражении линейной функции (19) содержится положительный коэффициент. Переводим х5 в базисные переменные. При определении наибольшего возможного значения для х5

11

следует обратить внимание на первое уравнение в системе (19), которое не дает ограничений на рост х5, так как свободный член и коэффициент при х5 имеют одинаковые знаки. Поэтому х5 = min{∞; 5; 1; 12/9} = 1. Третье уравнение является разрешающим, и переменная х4 переходит в свободные; ∆F = 3х= 3∙1 = 3.

Базисные переменные: х1, х2, х5, х6. Свободные переменные: х3, х4. После преобразований запишем:

x 6

 

1

 

x

 

 

3

 

x ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

5

 

 

3

 

5

 

 

4

 

 

 

 

 

x

4

 

 

2

x

 

 

 

 

1

x ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

5

3

 

5

4

 

 

 

 

 

x

1

2

 

x

 

1

 

x ,

 

 

 

 

(20)

 

 

 

 

 

 

 

 

5

 

5

 

 

 

3

 

5

 

 

 

4

 

 

 

 

 

x

3

 

3

x

 

 

 

9

x ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

5

 

3

 

5

 

4

 

 

 

 

 

F 6; 4; 0; 0; 1; 3 24

4

x

 

3

x .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

3

 

5

4

Коэффициенты перед свободными переменными в правой части линейной функции (19) отрицательные, поэтому больше увеличивать значение функции невозможно. Максимальное значение функции F = 24 достигается в допустимом базисном решении (6; 4; 0; 0; 1; 3) соответствующем угловой точке многогранника допустимых решений.

П р и м е р 3. Решить симплексным методом задачу

 

Z = 18y1 + 16y2 + 5y3 + 21y4 →min

(21)

при ограничениях:

 

y1 2 y2 3y4 2,

 

3y1 y2 y3 3,

(22)

yi 0, i 1,2,3,4.

 

Р е ш е н и е. Введем дополнительные неотрицательные переменные у5 и у6 со знаком «минус», так как неравенства имеют вид «≥». Получим систему уравнений:

y1 2 y2 3y4 y5

2,

(23)

3y1 y2 y3 y6 3.

 

Если в начале в качестве базисных взять дополнительные переменные, то получим недопустимое базисное решение: (0; 0; 0; 0; -2; -3). В данном случае в

12

качестве базисных удобно взять переменные у3 и у4. Каждая из этих переменных входит только в одно уравнение и коэффициенты перед ними положительны, поэтому в качестве первоначального получим допустимое базисное решение.

Базисные переменные: у3, у4. Свободные переменные: у1, у2, у5, у6. Выражаем базисные переменные через свободные:

y3 3 3y1 y2 y6

,

 

 

y

 

 

 

2

 

1

y

 

 

2

y

 

 

 

 

1

y ,

(24)

 

 

 

 

 

 

 

 

 

 

 

4

3

3

 

1

 

 

3

 

2

 

3

5

 

Z

 

0; 0; 3;

 

2

; 0; 0

 

29 4 y1 3 y2

7 y5 5 y6.

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В правой части линейной функции (24) перед свободными переменными есть отрицательные коэффициенты, следовательно, значение функции Z можно уменьшить на величину равную ∆Z = – 4у, если у1 перевести из свободной переменной в базисную. Наибольшее возможное значение: у1 = min{1; 2} = 1, т.е. первое уравнение является разрешающим; у3 становится свободной перемен-

ной, ∆Z = – 4∙1 = – 4.

Далее. Базисные переменные: у1, у4. Свободные переменные: у2, у3, у5, у6. После преобразований:

y 1

 

1

 

y

 

 

 

1

y

 

1

y ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

3

 

2

 

 

 

 

3

3

 

3

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

1

 

 

5

y

 

 

 

 

1

y

 

1

y

1

y

 

,

 

 

 

 

 

 

(25)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

3

9

 

 

2

 

 

 

 

9

 

3

 

 

 

3

5

 

9

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

25

5

 

 

 

4

 

7 y5

 

11

 

Z

1; 0; 0;

 

 

 

 

; 0; 0

 

 

 

 

y2

 

y3

 

 

y6.

 

3

 

3

3

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Переменную у2 переводим в базисные, так как коэффициент перед ней в линейной функции (25) отрицательный. Наибольшее возможное значение у2 = min{3; 3/5} = 3/5, второе уравнение разрешающее у4 переходит в свободные пе-

ременные; ∆Z = (– 5/3)∙3/5 = – 1.

Базисные переменные: у1, у2. Свободные переменные: у3, у4, у5, у6. Получим после преобразований:

13

y

4

 

2

y

3

 

y

 

 

1

y

2

 

y ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

5

 

 

 

5

 

3

5

 

 

4

 

5

 

5

5

 

6

 

 

y

 

 

3

 

 

1

y

 

9

y

 

 

 

3

y

 

1

y

,

(26)

 

 

 

 

 

 

 

 

 

2

 

 

5

 

 

 

5

3

5

 

4

 

5

5

5

 

6

 

 

 

 

4

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

24 y3 3y4 6 y5 4 y6.

 

Z

 

 

 

;

 

 

 

; 0; 0; 0; 0

 

 

 

 

 

5

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решение (26) оптимальное, поскольку в выражении для Z нет свободных переменных у3, у4, у5, у6 с отрицательными коэффициентами.

2. Двойственные задачи

Каждой задаче линейного программирования соответствует другая задача, называемая двойственной или сопряженной по отношению к исходной. Двойственная задача к двойственной задаче образует исходную задачу линейного программирования.

В общем случае задачу линейного программирования можно записать в стандартной форме (4):

F x c1x1 c2 x2

cn xn max,

 

a11x1 a12 x2

a1n xn b1,

 

a21x1 a22 x2

a2n xn b2 ,

(27)

 

 

 

 

 

am1x1 am2 x2

amn xn bm ,

 

 

 

 

 

xi 0, i

1, n

.

 

 

 

Если воспользоваться матричной формой записи задачи (27), то это выражение можно записать в виде:

a

a

a

 

b

 

 

 

 

 

 

 

11

12

1n

1

 

 

 

a21

a22

a2n

 

b2

 

 

 

 

 

 

 

 

 

,

(28)

 

 

 

 

 

 

 

 

 

am1

am2

amn

bm

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c1

c2

cn

 

F

 

 

 

 

 

где полностью опущены переменные величины, неравенства заменены вертикальной линией и линейная (целевая) функция записана внизу.

Транспонируем матрицу (28) и элемент F заменим на Z, получим:

14

a

a

a

 

c

 

 

 

 

 

11

21

n1

1

 

 

a12

a22

an2

 

c2

 

 

 

 

 

 

 

.

(29)

 

 

 

 

 

 

 

 

a1m

a2m

anm

 

cn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b1

b2

bm

 

Z

 

 

 

Заменяя неотрицательные переменные х на неотрицательные переменные у, неравенства вида «≤» (27) на неравенства противоположного смысла «≥», восстановим по матрице (29) двойственную задачу к задаче линейного программирования (27):

Z y b1 y1 b2 y2

bm ym min,

 

a11 y1 a21 y2

am1 ym c1,

 

a12 y1 a22 y2

am2 ym c2 ,

(30)

 

 

 

 

 

a1n y1 a2n y2

amn ym cn ,

 

yi 0, i

1, m

.

 

 

 

Для дальнейшего изучения задачи линейного программирования и двойственной к ней задачи, с помощью символов суммирования, запишем их в иной форме. Получим задачу линейного программирования:

 

 

n

 

F x c j x j max,

 

 

 

j1

 

n

 

 

 

 

 

 

 

 

 

 

 

aij x j

 

 

 

 

 

 

 

 

bi , i

1, m

,

(31)

j1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x j

0,

j

1, n

;

 

 

 

 

и двойственную к ней задачу:

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

Z y bi yi min,

 

 

 

i1

 

m

 

 

 

 

 

 

 

 

 

 

 

aij yi

 

 

 

 

c j , j

1, n

,

(32)

i1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yi

0,

i

1, m.

 

2.1. Основное неравенство двойственности

Каждое неравенство в системе (31) умножим на соответствующее уi, и сложим все эти неравенства:

15

m

n

m

 

aij x j yi

bi yi .

(33)

i1

j1

i1

 

Аналогично, каждое неравенство в системе (32) умножим на соответствующее хj и сложим все эти неравенства. Получим:

n

m

n

 

aij yi x j

c j x j .

(34)

j1

i1

j1

 

Левые части неравенств (33) и (34) одинаковые по величине. Обозначим эту величину символом А. Можем записать:

n

m

 

c j

x j A bi yi

(35)

j1

i1

 

Учитывая транзитивные свойства неравенств и вид линейных функций

(31), (32), получим:

 

 

 

F x Z y .

(36)

Мы получили теорему, в которой х и у представляют собой допустимые векторы.

Теорема 5. Для всех допустимых значений переменных линейная функция не превышает линейной функции двойственной задачи, т.е. справедливо неравенство: F(x) ≤ Z(y).

2.2.Первая теорема двойственности

Взадаче (27) отыскивается максимум функции F. Предположим, что допустимый вектор х представляет собой оптимальный вектор, т.е. такой при котором достигается максимальное значение линейной функции. Это значит, что для любых допустимых х справедливо неравенство F(х ) ≥ F(х). Аналогично, для двойственной задачи. Если у – допустимое оптимальное решение, то для любого допустимого вектора у справедливо неравенство Z(y ) ≤ Z(у).

Теорема 6. Если х и у допустимые решения взаимно двойственных задач, для которых выполняется равенство

F(х ) = Z(y )

(37)

то х – оптимальное решение исходной задачи (27), а у

– двойственной за-

дачи (30).

 

Действительно, пусть х любое допустимое решение исходной задачи (27), тогда, в силу основного неравенства двойственности (37), можем записать F(х)

16

Z(y ) = F(х ). Отсюда следует неравенство F(х) ≤ F(х ), доказывающее оптимальность решения х . Аналогично показывается оптимальность решения y .

Первая (основная) теорема двойственности. 7. Если одна из взаимно двойственных задач имеет оптимальное решение, то его имеет и другая, причем оптимальные значения их линейных функций равны: F(х ) = Z(y ).

Если линейная функция одной из задач не ограничена, то условия другой задачи противоречивы.

Рассмотренные выше примеры (13) и (21) подтверждают первое предложение данной теоремы. Задачи в этих примерах взаимно двойственные.

2.3. Вторая теорема двойственности.

Для рассмотрения второй теоремы двойственности, взаимно двойственные задачи (31) и (32) приведем к канонической форме, превратив системы неравенств в системы уравнений дополнением неотрицательных переменных, получим исходную каноническую задачу:

 

n

 

 

 

 

 

F x c j x j

max,

 

 

j 1

 

 

 

 

 

n

 

 

 

 

 

 

 

aij x j

xn i bi , i 1, m,

(38)

j 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x j 0, j 1, n, xn i 0, i 1, m;

 

и двойственную к ней каноническую задачу:

 

 

m

 

 

 

 

 

Z y bi yi

min,

 

 

i 1

 

 

 

 

 

m

 

 

 

 

 

 

 

aij yi

ym j

c j , j 1, n,

(39)

i 1

yi 0, i 1, m, ym j 0, j 1, n.

Каждое уравнение в системе (38) умножим на соответствующее уi, и сложим все эти уравнения:

m n

m

m

 

aij x j yi

xn i yi

bi yi .

(40)

i 1 j 1

i 1

i 1

 

Аналогично, каждое уравнение в системе (39) умножим на соответствующее хj и сложим все эти уравнения, получим:

17

n

m

n

n

 

aij yi x j

ym j x j

c j x j .

(41)

j1

i1

j1

j1

 

Равенства (40) и (41) справедливы для всех допустимых значений переменных. Оптимальные решения являются допустимыми переменными, следовательно, данные равенства справедливы для оптимальных решений. Первые слагаемые в равенствах (40) и (41) одинаковые по величине числа. Правые части равенств (40) и (41) при оптимальных решениях, согласно первой теореме двойственности, равны. Равенство (41) умножим на минус единицу и сложим его с равенством (40), учитывая сказанное, получим:

m

n

 

 

 

 

 

 

xn* i

yi* ym* j x*j 0,

 

 

 

 

i

1, m

, j

1, n

.

(42)

i1

j1

 

 

 

 

 

 

Все множители и все слагаемые в равенстве (42) неотрицательные числа. Для того чтобы сумма неотрицательных слагаемых была равна нулю необходимо потребовать равенства нулю каждого слагаемого. Получаем теорему.

Теорема 8. Положительным (ненулевым) компонентам оптимального решения одной из взаимно двойственных задач соответствуют нулевые компоненты оптимального решения другой задачи, т.е. для любых i = 1, 2,

…, m и j = 1, 2, …, n:

если x*

 

> 0, то y*

0;

 

n i

i

 

 

если y*

> 0, то x*

0;

 

i

 

n i

 

(43)

если y*

 

> 0, то x* 0;

 

 

m j

j

 

 

если x*

> 0, то y*

0.

 

j

 

m j

 

 

Переменные, являющиеся сомножителями в каждом слагаемом в равенстве (42) и для каждой пары, которых рассматриваются условия (43), называются соответствующими переменными.

Вторая теорема двойственности. 9. Компоненты оптимального решения двойственной задачи равны абсолютным значениям коэффициентов при соответствующих переменных линейной функции исходной задачи, выраженной через свободные переменные её оптимального решения.

Для взаимно двойственных задач (13) и (21, 22) запишем соответствующие переменные:

18

x1

x2

x2 1

x2 2

x2 3

x2 4

 

 

 

 

 

(44)

y4 1

y4 2

y1

y2

y3

y4

и выпишем их линейные функции при оптимальных решениях. Получим:

 

 

 

F 6; 4; 0; 0; 1; 3 24

4

x

 

3

x ;

(45)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

3

 

5

4

 

 

4

 

3

 

 

24 y3

3y4

6 y5 4 y6.

(46)

Z

 

;

 

 

; 0; 0; 0; 0

 

5

5

 

 

 

 

 

 

 

 

 

 

 

 

Сравнивая равенства (45) и (46) обнаруживаем справедливость последней теоремы.

2.4. Третья теорема двойственности

Предположим, что двойственная задача имеет геометрическое решение, соответствующее рис. 2. Линейная функции при оптимальных решениях равна:

Z * b y* b y* .

(47)

1

1

2

2

 

Изменяя величины b1 и b2, мы можем менять значение линейной функции. При этом изменяется наклон линии уровня. Изменение этого наклона должно быть ограниченным. Если линия уровня коснется другой угловой точки, то оптимальное решение мо-

жет уйти из данной точки (см. рис. 2). Иными словами возможно в некоторых пределах изменять величины b1 и b2 не изменяя оптимального решения, но изменяя значение линейной функции (47). В выражении (47) функцию Z можно заменить на функцию F , согласно, с первой теоремой двойственности. Тогда значение «игреков» в выражении (47) (и в более общем выражении, когда количество слагаемых больше) будет равно частным производным по соответствующим величинам b. Справедлива теорема:

Третья теорема двойственности. 10. Компоненты оптимального решения двойственной задачи равны значениям частных производных линейной функции F по соответствующим аргументам, т.е.

 

F

*

 

 

 

y*

, i 1, m.

(48)

 

i

bi

 

 

 

 

19

 

 

 

Компонента оптимального решения двойственной задачи показывает величину изменения линейной функции F с изменением соответствующего значения b на одну единицу и называется объективно обусловленной оценкой этой величины b.

П р и м е р 4. Для изготовления четырех видов продукции используется три вида сырья. Запасы, нормы его расхода и прибыль от реализации каждого продукта приведены в таблице.

Тип

 

Нормы расхода сырья

 

Запасы

сырья

 

 

 

 

сырья

А

Б

В

Г

 

 

 

 

 

 

1

2

1

0,5

4

2400

 

 

 

 

 

 

2

1

5

3

0

1200

 

 

 

 

 

 

3

3

0

6

1

3000

 

 

 

 

 

 

Ц. изд-я

7

3

6

12

 

 

 

 

 

 

 

При решении задачи на максимум общей стоимости выпускаемой продукции были получены следующие результаты: х 1 = 0, х 2= 0, х 3= 400, х 4 = 550. Требуется: 1) Сформулировать прямую оптимизационную задачу на максимум общей стоимости продукции, указать оптимальную производственную программу (пояснить, почему х 1 и х 2 не вошли в оптимальный план); 2) Сформулировать двойственную задачу и найти ее оптимальный план; 3) Проанализировать использование ресурсов в оптимальном плане; 4) Как изменится общая стоимость выпускаемой продукции и план ее выпуска, если запас сырья первого вида увеличить на 100 кг, а второго — уменьшить на 150кг? 5) Целесообразно ли выпускать изделие "Д" ценой 10 единиц, если нормы затрат сырья 2, 4 и 3 кг?

Р е ш е н и е. Сформулируем прямую оптимизационную задачу на максимум общей стоимости продукции. Обозначим х1, х2, х3, х4 количество единиц выпускаемой продукции вида А, Б, В, Г соответственно. Если нормы расхода сырья на одну единицу продукции умножить на количество единиц выпускаемой продукции и сложить по всем видам продукции, то получим расходы сырья по производственной программе, которые не должны превышать запасов соответствующего сырья, т.е. получим систему неравенств:

20