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

Системный анализ и исследование операций. Теория принятия решений

.pdf
Скачиваний:
6
Добавлен:
15.11.2022
Размер:
519.04 Кб
Скачать

Вматрице (k ) отмечаем элементы, соответствующие базисным

вновом решении (на рисунке помечены символом « »), максимальную оценку отмечаем особо. Далее строим цепочку выделения. Она строится с особо отмеченного элемента, который соединяют с отмеченными

вэтой строке. Затем отмеченные элементы, попавшие в цепочку, соединяют с отмеченными в их столбцах. Далее снова проводим соединение по строкам, итакдо тех пор, поканеоборвутся всеветви.

Элементы, попавшие в цепочку выделения, выделяют строку

истолбец за исключением особо отмеченного элемента – он выделяет только строку. К выделенным столбцам прибавляем, а из выде-

ленных строк вычитаем ∆kr , в результате получаем матрицу (k+1).

 

 

 

* *

 

 

 

 

( k )

 

 

 

=

 

*

 

 

 

*

 

+kr +kr

 

 

 

 

 

 

kr

 

 

 

 

kr

kr

*

kr (k+1)

*

 

 

 

 

 

*

kr

+kr

Можно вместо построения цепочки выделения вычеркивать строку, где есть максимальный элемент, и затем вычеркивать столбцы, где есть элементы, отмеченные символом « » в вычеркнутой строке, и т.д. Вычеркнутые строкиистолбцы являются выделенными.

Продолжим решение. Как следует из анализа матрицы ∆(I), решение x(I) не является оптимальным. Следующее решение получаем с помощью цикла, построенного на клетке (2,4), имеющей максимальную оценку. Перемещая по циклу θ0 = min(5,15) =5, получаем

 

 

0

0

0

10

Х

(II)

 

20

5

 

0

 

5

 

 

=

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

0

0

30

 

 

 

 

 

10

В новом плане перевозок транспортные затраты

L(II) =180 5 3 =165

31

Используя полученный план, преобразуем матрицы (I) в матрицу оценок (II). Результат представлен ниже.

 

 

 

 

 

 

 

 

 

 

 

 

6

 

8 6 0

3

(II)

 

 

0

 

 

 

 

3.

=

0

 

3 0

 

 

5

 

 

 

 

 

 

3

 

 

 

 

 

 

3

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+3

 

 

+3 +3

 

 

Из анализа этой матрицы следует, что план X (II) не является оптимальным. Находим в матрице (II) максимальный элемент, и на соответствующей этому элементу клетке в X (II) строим цикл пересчета.

Вычисляем по нечетным клеткам цикла θ0 = min(5,10) =5 и, перемещая полученное значение по циклу пересчета, приходим к сле-

дующему плану перевозок:

 

 

 

 

 

 

 

0

0

0

10

Х

(III)

 

20

0

0

 

 

=

10 .

 

 

 

0

5

30

 

 

 

 

5

По этому плану значение критерия L(III) =165 5 3 =150. Для выяснения статуса нового плана находим соответствующую ему матрицу оценокпутемпреобразованияматрицы(II), врезультатеимеем

 

 

11

6

 

6

0

 

0

3

3

 

(III) =

0 .

 

5

0

0

 

 

0

 

 

 

 

 

Матрица

(III)

не содержит положительных оценок, следова-

тельно, план

X (III)

является оптимальным. Согласно этому плану,

от 1-го поставщика надо поставить 10 ед. продукции 4-му потребителю, от 2-го поставщика – 20 ед. направить 1-му и 10 ед. – 4-му потребителям, от 3-го поставщика 5, 30 и 5 ед. – соответственно 2-му, 3-му и 4-му потребителям.

32

Контрольные вопросы к транспортной задаче

1.Что такое базисное решение задачи ЛП?

2.Сколько оптимальных решений имеет задача?

3.Чему равна размерность базиса в транспортной задаче?

4.Какнесбалансированную задачу привести к сбалансированной?

5.Как строится цикл пересчета?

6. К чему приведет перемещение по циклу, построенному на клетке с отрицательной оценкой?

7.В чем состоит признак оптимальности транспортной задачи?

8.Как интерпретировать результаты решения в случае несбалансированной задачи?

Второе задание. Решить задачу целочисленного программирования методом ветвей и границ. Корневую задачу решить симплексметодом, остальные графически. Построить дерево решений.

Для выполнения этого задания следует проработать материал гл. 7 в источнике [3], особенно подразд. 7.1 и 7.3, там же приведены примеры решения задач.

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

Варианты задания

 

L = 7x1 + 4x2 max

 

L = 2x1 + 3x2 min

№ 1

4x1 + x2 14

№ 2

7x1 + 20x2 140

3x1 + 2x2 12

2x1 + x2 18

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L =6x1 + 4x2 min

 

L = 6x1 + 9x2 max

№ 3

4x1 + 2x2 7

№ 4

5x1 + 7x2 35

x1 x2 1

4x1 + 9x2 36

 

 

 

xj 0, цел.

 

xj 0, цел.

33

 

L = 4x1 + 4x2 max

 

L = 2x1 + 7x2 max

№ 5

3x1 + 2x2 10

№ 6

4x1 + 5x2 20

x1 + 2x2 9

x1 + 2x2 1

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = 6x1 + 9x2 max

 

L = –2x1 – 3x2 min

№ 7

8x1 + 18x2 72

№ 8

5x1 + 7x2 35

5x1 + 7x2 35

4x1 + 9x2 36

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = 9x1 + 12x2 max

 

L = x1 + x2 min

№ 9

14x1 + 9x2 51

№ 10

2x1 + 4x2 7

– 6x1 + 3x2 1

10x1 + 3x2 15

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = 6x1 + 8x2 max

 

L = 9x1 + 12x2 max

№ 11

– 12x1 + 6x2 1

№ 12

–12x1 + 6x2 2

14x1 + 9x2 51

14x1 + 9x2 51

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = 14x1 + 8x2 max

 

L = 2x1 + 6x2 max

№ 13

6x1 + 4x2 24

№ 14

10x1 + 11x2 110

4x1 + x2 14

x1 + 2x2 7

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = 4x1 + 6x2 max

 

L = 6x1 + 8x2 max

№ 15

10x1 + 14x2 70

№ 16

6x1 –3x2 – 1

4x1 + 9x2 36

14x1 + 9x2 51

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = x1 + x2 max

 

L = 2x1 + 7x2 max

№ 17

2x1 + 5x2 16

№ 18

– 2x1 + 4x2 2

6x1 + 5x2 27

4x1 + 5x2 20

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = x1 + x2 max

 

L = 4x1 + 14x2 max

№ 19

4x1 + 5x2 18

№ 20

8x1 + 10x2 40

x1 + 2x2 1

– 2x1 + 4x2 2

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = 3x1 + 3x2 min

 

L = x1 + x2 max

№ 21

4x1 + 8x2 14

№ 22

2x1 + 11x2 38

10x1 + 3x2 15

4x1 –5x2 5

 

 

 

xj 0, цел.

 

xj 0, цел.

34

 

L = 7x1 + 2x2 max

 

L = x1 + x2 max

№ 23

4x1 + x2 14

№ 24

4x1 + 5x2 18

6x1 + 4x2 24

x1 + 2x2 1

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = 8x1 + 5x2 max

 

L = 5x1 + 9x2 max

№ 25

x1 + x2 6

№ 26

–6x1 + 3x2 1

9x1 + 5x2 45

2x1 + 5x2 28

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = x1 x2 min

 

L = 4x1 + 3x2 max

№ 27

2x1 + x2 6

№ 28

6x1 – 12x2 1

– 5x1 + 2x2 0

9x1 + 14x2 51

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = 3x1 + 2x2 min

 

L = x1 + x2 max

№ 29

20x1 + 7x2 140

№ 30

5x1 + 4x2 18

x1 + 2x2 18

 

2x1 x2 1

 

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = 2x1 + 3x2 max

 

L = 13x1 – 6x2 max

№ 31

5x1 + 7x2 70

№ 32

12x1 + 11x2 132

4x1 + 9x2 72

4x1 – 5x2 20

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = –11x1 + 6x2 min

 

L = 11x1 – 6x2 max

№ 33

12x1 + 11x2 132

№ 34

8x1 + 13x2 104

x1 + 2x2 2,2

x1 + 2x2 2

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = 7x1 + 3x2 max

 

L = 4x1 + 7x2 max

№ 35

5x1 + 2x2 20

№ 36

x1 + 4x2 14

4x1 + 2x2 19

2x1 + 3x2 12

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = x1 + x2 max

 

L = 5x1 + 1,6x2 max

№ 37

11x1 + 2 x2 38

№ 38

–0,6x1 + x2 2,5

–5x1 + 4x2 5

5x1

+ 1,5x2 22,5

 

 

 

xj 0, цел.

 

xj 0, цел.

 

L = 25x1 + 8x2 max

 

L = 5x1 + 2x2 max

№ 39

x1 + 0,3x2 4,5

№ 40

12x1 + 11x2 132

–1,2x1 + x2 5

x1 + 2x2 2,2

 

 

 

xj 0, цел.

 

xj 0, цел.

35

 

L = –11x1 + 6x2 min

 

L = 19x1 + 6x2 max

№ 41

12x1 + 11x2 132

№ 42

10x1 + 3x2

45

x1 + 2x2 2,2

–6x1 + 5x2

25

 

 

 

xj 0, цел

 

xj 0, цел.

 

L = x1 + 2x2 min

 

L = –x1 + 3x2 max

№ 43

5x1 + 7x2 17,5

№ 44

23x1 + 40x2

184

2x1 + 5,5x2 11

–11x1 + 10x2 22

 

 

 

xj 0, цел

 

xj 0, цел.

Контрольные вопросы к методу ветвей и границ

1.Как изменяется допустимое множество задачи ЛП при добавлении требования целочисленности переменных?

2.В каких случаях обрывается ветвь дерева решений?

3.При выполнении каких условий порождаются две новые задачи? В каком порядке эти условия проверяются?

4.Каково условие завершения работы алгоритма?

5.Что такое рекорд?

6.Что такое верхняя граница в задаче на максимум?

7. Как соотносятся допустимые множества задач, лежащих

вразных ветвях?

8.При каких исходных параметрах алгоритма не найдется решение разрешимой задачи?

9.От чего зависит число непрерывных задач, решаемых в методе ветвей и границ?

10.Как изменяется значение критерия задач при движении вниз по ветви и почему?

11.Алгоритм дает точное или приближенное решение целочисленной задачи?

12.Метод применяется для полностью целочисленных задач или для смешанных, или для тех и других?

13.По какому признаку можно быстро определить после завершения алгоритма, имеет ли задача решение?

14.Какое решение находит алгоритм: локальное или глобальное? Обоснуйте ответ.

15.Содержит ли метод ветвей и границ признак оптимальности?

36

Дополнительный материал к решению корневой задачи

Краткая теория и примеры решения задачи симплекс-методом (см. также работы [1, гл. 3], [3, подразд. 4.9])

Симплекс-метод является универсальным и наиболее распространенным методом. Идея метода состоит в последовательном продвижении по базисам опорных планов задачи, т.е. в последовательном улучшении планов задачи по заданному критерию до тех пор, пока не будет получено оптимальное решение.

Необходимо предварительно выполнить следующие шаги:

привести математическую модель к каноническому виду;

определить начальное базисное решение задачи;

заполнить начальную симплекс-таблицу по начальному базисному решению, для чего ввести в нее:

коэффициенты Cj при переменных x j в целевой функции;

векторы (переменные), которые входят в текущий базис;

значения базисных переменных в столбец А0 ;

элементы aij, i =1, ..., m, j =1, ..., n, матрицы условий задачи

Am×n (столбцы A1 , A2 , ..., An ).

Оценки ∆j , j =1, ...,n, соответствующие векторам A1, A2, …, An,

для начальной таблицы вычисляются по формуле

j = z j cj , z j

m

= ∑ci aij , j =1, ..., n.

 

i=1

Коэффициенты критерия сsi

при базисных переменных простав-

ляются в левый столбец таблицы соответственно векторам базиса. Значение целевой функции при текущем базисе

m

0 = ∑сi ai 0 заносится в последнюю строку столбца A.

i=1

37

Пример 1. Модель задачи

 

L = x1 + x2 max,

 

x

10,

 

 

1

+ 2 x2 20,

 

x1

 

x ,x

0.

 

 

1

2

 

Приведем заданную модель к каноническому виду, введя до-

полнительные

переменные x3

 

и

x4 , превращающие неравенства

в равенства:

 

 

 

 

 

L = x1

+ x2 max,

 

x1

+ x3

=10,

 

x1

+ 2 x2 + x4 = 20,

 

xj 0.

Начальное базисное решение построим на переменных x3 , x4 ,

соответственно

A3 , A4 образует начальный базис, а x1 , x2 становятся

небазисными переменными; A0

= (10,20) – вектор ограничений.

Заполняем симплекс-таблицу, соответствующую начальному базисному решению:

 

Таблица 0

0

1

 

1

0

0

 

i

Сsi

Базис

А0

А1

 

А2

А3

А4

θ

1

0

A3

10

1

 

0

1

0

10 min

 

 

 

 

 

 

 

 

 

 

2

0

A4

20

1

 

2

0

1

20

 

 

 

 

 

 

 

 

 

 

 

 

0

–1

 

–1

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

Z

0

0

 

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

min

 

 

 

 

38

Элементы строки рассчитаны по формулам:

2

1 = ∑сi ai1 c1 = 0 1+0 11 = −1;

i=1

2

2 = ∑сi ai 2 c2 = 0 0 +0 2 1 = −1;

i=1

2

3 = ∑сi ai 3 c3 = 0 1+0 0 0 = 0;

i=1

2

4 = ∑сi ai 4 c4 = 0 0 +0 10 = 0.

i=1

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

L = ∑ci ai 0 = 0 10 +0 20 = 0.

Поскольку имеются ∆j < 0, признак оптимальности в начальном

плане не выполняется. Приступаем к улучшению плана.

Первая итерация:

В базис будем вводить вектор A1, которому соответствует минимальное значение j , т.е. этот столбец становится направляю-

щим. Направляющая строка определяется по минимальному значениюθ. Величина θ находитсякакрезультатделенияэлементастолбцаA0 насоответствующийположительныйэлементнаправляющегостолбца

 

a

a

 

10

 

20

 

=10.

θ0

= minθi = min

30

;

40

 

= min

 

;

 

 

 

a41

1

1

 

a31

 

 

 

 

 

Минимум достигается в строке с А3, которая становится направляющей, а из базиса будет выведен вектор А3. Таким образом, элемент a31, расположенный на пересечении направляющих столбца и строки, будет направляющим (здесь индексы элемента соответствуют индексам векторов, выходящего и входящего в базис).

Заполняемтаблицу, соответствующуюновомубазисномурешению. Все элементы aij таблицы определяются по следующему рекур-

рентному соотношению:

39

 

 

 

 

 

 

l

 

 

aijl

arj

aikl ,i r ;

 

 

 

al +1

=

 

 

l

 

ark

ij

 

 

a

 

 

 

 

 

 

rj

,i = r

 

 

 

 

 

 

 

 

 

al

 

 

 

 

 

 

rk

 

 

 

где ark – направляющий элемент; l – номер итерации.

Из нижней части формулы следует, что элементы направляющей строки пересчитываются путем деления каждого ее элемента на направляющий. Верхняя часть формулы реализуется построением прямоугольника на элементе, новое значение которого хотим получить. Проектируя этот элемент на направляющую строку и направляющий столбец, получаем прямоугольник. В его вершинах находятся все четыре элемента, входящие в формулу (в вершине, противоположной вычисляемому элементу, всегда лежит направляющий элемент). После пересчета, называемого симплекс-преобразованием, получаем следующую таблицу:

 

Таблица 1

0

1

1

0

0

 

i

Сsi

Базис

А0

А1

А2

А3

А4

θ

1

1

А1

10

1

0

1

0

----

2

0

A4

10

0

2

–1

1

10 min

 

 

10

0

–1

1

0

 

 

 

Z

10

1

0

1

0

 

min

Приведем пример расчета нескольких элементов табл. 1:

a(2)

= a(1)

a30(1) a41(1)

= 20

10 1

=10.

a(1)

1

 

40

40

 

 

 

 

 

 

31

 

 

 

 

Этой формуле соответствует прямоугольник, построенный на элементе20 втабл. 0, другиееговершинынаходятсянаэлементах10, 1 и1.

a(2)

= a(1)

a33(1) a41(1)

= 0

1 1

= −1.

a(1)

1

 

43

43

 

 

 

 

 

 

 

31

 

 

 

 

 

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]