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

Методические_рекомендации_Методы_оптимизации

.pdf
Скачиваний:
106
Добавлен:
10.02.2015
Размер:
1.1 Mб
Скачать

 

 

 

21

 

 

X X *

и

X X *

1,

 

 

 

 

 

 

соответствующие двум новым задачам ЦЛП, решение которых осуществляется анало-

гично.

Таким образом, строится двоичное дерево решений. В конце процесса сравни-

ваются между собой все найденные целочисленные решения, соответствующие терми-

нальным вершинам дерева, и выявляется оптимальное решение исходной задачи ЦЛП

(3.1), (3.2).

Пример выполнения работы

Рассмотрим задачу ЦЛП

F 12x1 x2 max,

6x1 x2 122x1 5x2 20

x1 , x2 Z 0 .

Оптимальное решение задачи ЛП имеет вид:

X * (2,5, 3),

F ( X * ) 12x1* x2* 27.

Всего имеется 13 допустимых целочисленных решений:

(0, 4)

 

 

(0, 3)

(1, 3)

(2, 3)

(0, 2)

(1, 2)

(2, 2)

(0,1)

(1,1)

(2,1)

(0, 0)

(1, 0)

(2, 0)

Полный перебор всех вариантов дает решение как крайнюю в направлении век-

тора (12, –1) точку:

X ** (2, 0),

F ( X ** ) 24.

Решим исходную задачу ЛП. Сменим знак ЦФ, введем фиктивные переменные

x3, x4:

F 12x1 x2 min,

x3 12 (6x1 x2 )x4 20 (2x1 5x2 )

x1 , x2 , x3 , x4 Z 0 .

Пусть x3, x4 – базисные переменные, а x1, x2 – свободные переменные.

Басараб М.А., Вельц С.В. Методы оптимизации и исследование операций в информационной безопасности

22

Исходная симплекс-таблица имеет вид

 

 

 

 

 

 

x1

x2

 

 

x

12

 

 

6

 

 

 

 

 

 

 

 

 

 

1

 

3

 

 

 

 

 

 

 

 

 

 

 

.

x

20

 

 

2

 

 

5

 

 

4

 

 

 

12

 

 

 

F

0

 

1

 

Конечная симплекс-таблица

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x3

 

x4

 

 

 

 

1

 

15

 

 

1

 

 

x

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

96

 

 

32

 

 

 

 

 

 

 

1

 

3

 

.

x

3

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

16

16

 

 

 

 

 

 

 

 

15

 

3

 

 

F

27

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

16

 

Решение задачи ЛП симплекс-методом:

x1 2, 5,

x2 3,

x3 x4 0,

F 27.

 

 

Осуществим ветвление по переменной x1: x1 2 ; x1 3 .

1. Введем новое ограничение, x1 2 , и получим задачу ЦЛП:

F 12x1 x2 min,

6x1 x2 x3 122x1 5x2 x4 20x1 x5 2

x1 , x2 , x3 , x4 , x5 Z 0 .

Соответствующая симплекс-таблица имеет вид:

 

 

 

 

 

 

 

x3

 

 

x4

 

 

 

 

1

 

15

 

 

 

 

1

 

 

x

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

 

96

 

32

 

 

 

 

 

 

 

 

 

1

 

 

 

3

 

 

x

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

16

16

 

.

 

 

 

1

 

 

15

 

 

1

 

x5

 

 

 

 

 

 

 

 

 

 

 

2

 

96

32

 

 

 

 

 

 

 

 

 

 

 

F

 

27

1

15

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

16

 

 

 

Басараб М.А., Вельц С.В. Методы оптимизации и исследование операций в информационной безопасности

23

После применения симплекс-метода конечная симплекс-таблица имеет вид:

x1x2

x4F

 

x3

x5

 

 

 

 

 

2

...

...

0

...

... .

 

 

 

 

16

...

...

24

...

...

 

 

Получили целочисленное решение:

 

x1 2,

x2 0,

F(x1 , x2 ) 24.

2) Введем новое ограничение x1 3 и получим задачу ЦЛП:

F 12x1 x2 min,

6x1 x2 x3 122x1 5x2 x4 20x1 x5 3

x1 , x2 , x3 , x4 , x5 Z 0 .

Исходная симплекс-таблица имеет вид:

 

 

 

 

 

x3

 

 

x4

 

 

 

 

1

 

15

 

1

 

x

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

 

96

 

32

 

 

 

 

 

 

1

3

 

x

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

16

16

.

 

 

 

1

 

15

 

1

 

x5

 

 

 

 

 

 

 

 

 

 

 

2

 

96

 

32

 

 

 

 

 

 

 

F

27

1

15

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

16

 

 

Поскольку в строке x5 свободный член отрицателен, а остальные элементы по-

ложительные, то решения не существует.

Оптимальное решение

x1 2,

x2 0,

F(x1 , x2 ) 24.

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

 

*

 

 

*

(3,3)

– недопустимое решение;

 

x

3 X

 

 

 

1

 

 

 

 

 

 

 

*

 

 

*

(2,3)

*

) 21).

x

2 X

 

– неоптимальное решение ( F ( X

 

1

 

 

 

 

 

 

Басараб М.А., Вельц С.В. Методы оптимизации и исследование операций в информационной безопасности

24

Варианты работы

1.

c:

 

 

 

 

2.

c:

 

 

 

 

3.

c:

 

 

 

 

 

[5

6

4]

 

 

 

[2

5

3]

 

 

 

[2

8

3]

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

[[

1.

1.

1.

]

 

[[

2.

1.

2.

]

 

[[

2.

1.

1.

]

 

[

1.

3.

0.

]

 

[

1.

2.

0.

]

 

[

1.

2.

0.

]

 

[

0.

0.5

4.

]]

 

[

0.

0.5

1.

]]

 

[

0.

0.5

1.

]]

 

b:

 

 

 

 

 

b:

 

 

 

 

 

b:

 

 

 

 

 

[7

8

6]

 

 

 

[6

6

2]

 

 

 

[4

6

2]

 

 

4.

c:

 

 

 

 

5.

c:

 

 

 

 

6.

c:

 

 

 

 

 

[3

1

4]

 

 

 

[3

3

7]

 

 

 

[2

6

7]

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

[[

2.

1.

1.

]

 

[[

1.

1.

1.

]

 

[[

3.

1.

1.

]

 

[

1.

4.

0.

]

 

[

1.

4.

0.

]

 

[

1.

2.

0.

]

 

[

0.

0.5

1.

]]

 

[

0.

0.5

3.

]]

 

[

0.

0.5

2.

]]

 

b:

 

 

 

 

 

b:

 

 

 

 

 

b:

 

 

 

 

 

[6

4

1]

 

 

 

[3

5

7]

 

 

 

[3

8

1]

 

 

7.

c:

 

 

 

 

8.

c:

 

 

 

 

9.

c:

 

 

 

 

 

[6

6

6]

 

 

 

[1

5

5]

 

 

 

[5

6

1]

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

[[

4.

1.

1.

]

 

[[

4.

1.

1.

]

 

[[

2.

1.

1.

]

 

[

1.

2.

0.

]

 

[

1.

1.

0.

]

 

[

1.

2.

0.

]

 

[

0.

0.5

4.

]]

 

[

0.

0.5

4.

]]

 

[

0.

0.5

1.

]]

 

b:

 

 

 

 

 

b:

 

 

 

 

 

b:

 

 

 

 

 

[5

3

8]

 

 

 

[6

5

5]

 

 

 

[5

3

8]

 

 

10.

c:

 

 

 

 

11.

c:

 

 

 

 

12.

c:

 

 

 

 

 

[7

5

3]

 

 

 

[7

3

4]

 

 

 

[7

4

4]

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

[[

4.

1.

1.

]

 

[[

2.

1.

1.

]

 

[[

4.

1.

1.

]

 

[

1.

2.

0.

]

 

[

1.

4.

0.

]

 

[

1.

2.

0.

]

 

[

0.

0.5

1.

]]

 

[

0.

0.5

2.

]]

 

[

0.

0.5

3.

]]

 

b:

 

 

 

 

 

b:

 

 

 

 

 

b:

 

 

 

 

 

[4

3

2]

 

 

 

[3

6

1]

 

 

 

[3

3

5]

 

 

13.

c:

 

 

 

 

14.

c:

 

 

 

 

15.

c:

 

 

 

 

 

[8

6

2]

 

 

 

[1

3

8]

 

 

 

[6

8

5]

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

[[

2.

1.

1.

]

 

[[

1.

1.

1.

]

 

[[

4.

1.

1.

]

 

[

1.

4.

0.

]

 

[

1.

1.

0.

]

 

[

1.

3.

0.

]

 

[

0.

0.5

1.

]]

 

[

0.

0.5

2.

]]

 

[

0.

0.5

3.

]]

 

b:

 

 

 

 

 

b:

 

 

 

 

 

b:

 

 

 

 

 

[4

3

6]

 

 

 

[7

2

4]

 

 

 

[3

4

5]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16.

c:

 

 

 

 

17.

c:

 

 

 

 

18.

c:

 

 

 

 

 

[5

3

8]

 

 

 

[7

4

3]

 

 

 

[7

7

6]

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

[[

2.

1.

1.

]

 

[[

3.

1.

1.

]

 

[[

2.

1.

1.

]

 

[

1.

1.

0.

]

 

[

1.

1.

0.

]

 

[

1.

2.

0.

]

 

[

0.

0.5

2.

]]

 

[

0.

0.5

4.

]]

 

[

0.

0.5

4.

]]

 

b:

 

 

 

 

 

b:

 

 

 

 

 

b:

 

 

 

 

 

[3

6

3]

 

 

 

[5

2

6]

 

 

 

[8

2

6]

 

 

19.

c:

 

 

 

 

20.

c:

 

 

 

 

21.

c:

 

 

 

 

 

[7

8

8]

 

 

 

[7

8

3]

 

 

 

[4

3

8]

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

[[

1.

1.

1.

]

 

[[

3.

1.

1.

]

 

[[

2.

1.

1.

]

 

[

1.

4.

0.

]

 

[

1.

4.

0.

]

 

[

1.

3.

0.

]

 

[

0.

0.5

1.

]]

 

[

0.

0.5

2.

]]

 

[

0.

0.5

4.

]]

 

b:

 

 

 

 

 

b:

 

 

 

 

 

b:

 

 

 

 

 

[4

6

2]

 

 

 

[4

7

8]

 

 

 

[8

4

3]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Басараб М.А., Вельц С.В. Методы оптимизации и исследование операций в информационной безопасности

25

22.

c:

 

 

 

 

23.

c:

 

 

 

 

24.

c:

 

 

 

 

 

[1

5

5]

 

 

 

[6

1

1]

 

 

 

[5

3

6]

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

[[

4.

1.

1.

]

 

[[

1.

1.

1.

]

 

[[

1.

1.

1.

]

 

[

1.

4.

0.

]

 

[

1.

1.

0.

]

 

[

1.

3.

0.

]

 

[

0.

0.5

4.

]]

 

[

0.

0.5

2.

]]

 

[

0.

0.5

2.

]]

 

b:

 

 

 

 

 

b:

 

 

 

 

 

b:

 

 

 

 

 

[5

7

6]

 

 

 

[6

2

1]

 

 

 

[7

3

3]

 

 

25.

c:

 

 

 

 

26.

c:

 

 

 

 

27.

c:

 

 

 

 

 

[2

2

1]

 

 

 

[5

3

8]

 

 

 

[6

8

5]

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

[[

4.

2.

1.

]

 

[[

2.

1.

1.

]

 

[[

4.

1.

1.

]

 

[

2.

5.

1.

]

 

[

1.

1.

0.

]

 

[

1.

3.

0.

]

 

[

2.

2.

1.

]]

 

[

0.

0.5

2.

]]

 

[

0.

0.5

3.

]]

 

b:

 

 

 

 

 

b:

 

 

 

 

 

b:

 

 

 

 

 

[2

3

2]

 

 

 

[3

6

3]

 

 

 

[3

4

5]

 

 

28.

c:

 

 

 

 

29.

c:

 

 

 

 

30.

c:

 

 

 

 

 

[1

3

8]

 

 

 

[8

6

2]

 

 

 

[7

4

4]

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

A:

 

 

 

 

 

[[

1.

1.

1.

]

 

[[

2.

1.

1.

]

 

[[

4.

1.

1.

]

 

[

1.

1.

0.

]

 

[

1.

4.

0.

]

 

[

1.

2.

0.

]

 

[

0.

0.5

2.

]]

 

[

0.

0.5

1.

]]

 

[

0.

0.5

3.

]]

 

b:

 

 

 

 

 

b:

 

 

 

 

 

b:

 

 

 

 

 

[7

2

4]

 

 

 

[4

3

6]

 

 

 

[3

3

5]

 

 

Требования к отчету

Отчет должен содержать: титульный лист; цель работы; постановку задачи; решение задачи ЦЛП методом полного перебора; решение исходной задачи ЛП симплекс-

методом; канонические формы и исходные симплекс-таблицы для каждого шага ветв-

ления; найденное целочисленное решение; сравнение полученного решения с решени-

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

Контрольные вопросы

1.Постановка задач ЦЛП.

2.Интерпретации задач ЦЛП.

3.Методы решения задач ЦЛП.

4.Основная схема метода ветвей и границ.

Басараб М.А., Вельц С.В. Методы оптимизации и исследование операций в информационной безопасности

26

4 Лабораторная работа № 4

Булево программирование. Метод Балаша

Цель работы

Изучить постановку задач булева программирования (БП); научиться применять метод Балаша для поиска оптимального решения.

Постановка задачи и методические указания

 

 

 

Постановка задачи. Найти

среди n-мерных

булевых векторов

x (x1 , x2 ,..., xn ) ,

( xi {0,1} для i 1,..., n ), удовлетворяющих системе

 

 

a11 x1

a12 x2

... a1n xn

b1

 

 

 

 

a22 x2

... a2n xn

b2

 

a21 x1

(4.1)

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

a

x

a

x

... a

x

b

 

 

m1

1

m2

2

 

mn n

m

 

такой, для которого достигается минимум ЦФ

 

 

 

min F c1 x1

c2 x2 ... cn xn .

(4.2)

Задача БП (4.1) – (4.2) может быть сформулирована, как «задача о рюкзаке», а

также как задача о покрытии.

Возможная интерпретация задачи БП в области информационной безопасности

(ИБ) следующая. Пусть M {1,..., m} – множество угроз ИБ; N {1,..., n} – множество контрмер; (c1 ,..., cn ) – стоимость реализации контрмер. Требуется минимизировать суммарную стоимость выбранных контрмер (4.2) при соблюдении условий покрытия

угроз:

a11 x1

a12 x2

... a1n xn

1

 

 

 

a22 x2

... a2n xn

1

a21 x1

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

a

x

a

x

... a

x

1

 

m1

1

m2

2

mn

n

 

где aij коэффициенты покрытия, такие что

1, если j - я контрмера покрывает i - ю угрозу, aij 0, в противном случае.

Распространенные методы решения задачи БП следующие:

Басараб М.А., Вельц С.В. Методы оптимизации и исследование операций в информационной безопасности

27

-полный перебор;

-«жадные» алгоритмы;

-улучшенный перебор (метод Фора–Мальгранжа, метод Балаша);

-эвристические методы (генетические алгоритмы, нейронные сети и др.).

Метод Балаша. Будем считать, что коэффициенты ЦФ неотрицательные:

n

F c j x j min,

j 1

c j 0, j 1,..., n.

Область ограничений:

 

n

 

:

aij x j bi ,

(i 1,..., m),

j1

xj {0,1} ( j 1, 2,..., n).

Введем перестановку индексов, так, что

cn cn 1 ... c2 c1 0

Решение – это множество

{x j : x j 1,

j J1 ,

x j 0,

j J0 J \ J1},

где J {1,..., n} .

 

 

 

Допустимое решение – это решение, удовлетворяющее ограничениям .

Допустимое решение X доминирует допустимое решение Y, если

F( X ) F(Y ) .

Для недопустимого решения полагается

F ( X )

или

F( X ) M 1.

Рекорд – лучшее найденное допустимое решение.

Количество всех возможных решений задачи БП:

N 2n .

Разобьем множество всех решений на (n 1) подмножество решений с номерами k 0,..., n .

Каждое k-е подмножество содержит все решения, в которых k переменных рав-

ны 1, а остальные (n k) переменных равны 0.

Количество решений уровня k:

Басараб М.А., Вельц С.В. Методы оптимизации и исследование операций в информационной безопасности

28

 

 

 

n

 

n!

 

N (k )

 

 

 

.

k !(n k)!

k

 

 

Удобно все решения представлять в виде дерева, каждый уровень которого со-

ответствует k-му подмножеству (рис. 1).

 

 

 

 

 

 

0 0 0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0 0 1

 

0 0 1 0

 

 

0 1 0 0

 

1 0 0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0 1 1

 

0 1 0 1

 

1 0 0 1

 

 

0 1 1 0

 

1 0 1 0

 

1 1 0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

0 1 1 1

 

1 0 1 1

 

 

1 1 0 1

 

1 1 1 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 1 1 1

 

 

 

 

 

 

 

 

Рис. 1. Дерево решений (при n = 4)

 

 

 

Если на дереве существует путь из вершины U в вершину V, то говорят ,что U

предшествует V (или V следует за U).

Схема алгоритма. Работы начинается с вершины 0. Затем осуществляется перебор вер-

шин (спуск по дереву) на основе следующих правил (I) – (IV).

Правило I. Так как cn cn 1 ... c2 c1 0 , то ЦФ растет при переходе к следующим решениям. Следовательно, если некоторое решение допустимое, то следующие за ним ветви дерева отбрасываются.

Правило II. Пусть F * – текущий рекорд. FU – значение ЦФ в вершине U , где

x j

1,

j J1

 

j J0

 

0,

Если r J0 : FU cr F * , то проверять нужно только следующие за U вер-

шины V, в которых

 

 

 

xj 0

j J0 и

j r

(в силу cn ... c1

0).

Правило III. Пусть в вершине U

 

 

 

x j

1,

j J1

 

j J0

 

0,

Басараб М.А., Вельц С.В. Методы оптимизации и исследование операций в информационной безопасности

29

Значит, все следующие за U вершины должны иметь фиксированные перемен-

ные x j 1, j J1 ; остальные переменные – свободные.

Вершины V могут быть исключены из-за недопустимости решения. Например,

если

Например,

x1 x2 x3 x4 1,

J1 {1, 2}.

Очевидно, что все вершины за (0011) могут быть исключены.

Правило VI. Если для вершины U

i :

ai, j

min{ai, j , 0} bi ,

 

j J1

j J

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

Видоизмененная постановка задачи БП. Если задана задача максимизации:

n

 

 

 

F c j x j

max,

c j 0,

j 1,..., n ,

j 1

 

 

 

то с помощью замены переменных, x ' j 1 x j , ее можно преобразовать к задаче на минимум ЦФ:

n

c j x j min .

j 1

Итоговая задача БП примет вид:

 

n

 

 

 

c j x ' j

min

 

j 1

 

 

 

 

n

 

 

 

 

a 'ij

x ' j b 'i ,

i 1,..., m,

 

j 1

 

 

 

где

a 'ij aij ,

n

b 'i bi aij .

j 1

Пример выполнения работы

Рассмотрим реализации различных стратегий решения на примере следующей задачи БП с одним ограничением:

Басараб М.А., Вельц С.В. Методы оптимизации и исследование операций в информационной безопасности

30

5

сi xi 80x1 250x2 70x3 100x4 150x5 max

i 1

 

 

 

 

 

5

 

 

 

 

 

ai xi

800x1 1100x2

400x3 500x4

600x5

2500,

i 1

 

 

 

 

 

x j {0, 1},

j 1,..., 5.

 

 

 

Согласно «жадному» алгоритму, будем последовательно включать в план пере-

менные в порядке убывания значений коэффициентов ci до тех пор, пока удовлетворя-

ется ограничение. В итоге получим «жадное» решение:

x1 x3 0, x2 x4 x5 1;

F500.

Вданном случае, это же решение будет и оптимальным, в чем нетрудно убе-

диться с помощью полного перебора вариантов.

Если же попытаться реализовать жадный алгоритм исходя из максимально воз-

можного количества переменных, равных 1 (включенных в план), то решение окажется хуже:

x2 0, x1 x3 x4 x5 1; F 400.

Приведем теперь схему Балаша (без предварительной сортировки коэффициен-

тов) для решения указанной задачи, видоизменив ее исходя из условия максимизации ЦФ. Сначала возьмем «корневую» вершину уровня 0: (11111) . Легко убедиться, что такое решение недопустимо.

Из вершин уровня 1 допустимым будет только решение (10111) с ЦФ F = 400 (текущий рекорд). Следующие за ней вершины вида (*0***) можно отбросить.

Значения ЦФ для рассматриваемых вершин уровня 2 приведены в таблице.

Решение

Значение ЦФ

(11100)

400

(11010)*

430*

(10110)

250

(01110)

420

(11001)*

480*

(10101)

300

(01101)

470

(10011)

330

(01011)*

500*

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

сматривать.

Басараб М.А., Вельц С.В. Методы оптимизации и исследование операций в информационной безопасности