Методические_рекомендации_Методы_оптимизации
.pdf
|
|
|
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* |
Символом (*) обозначены последовательные рекорды. Поскольку все решения второго уровня допустимы, следующие за ними ветви дерева решений можно не рас-
сматривать.
Басараб М.А., Вельц С.В. Методы оптимизации и исследование операций в информационной безопасности