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

2629

.pdf
Скачиваний:
3
Добавлен:
15.11.2022
Размер:
73.01 Mб
Скачать

Рис. 4.1. Задача о рюкзаке или ранце

х1

х2

х3

х4

х5

А

С

0

0

0

0

0

0

0

0

 

1

 

 

 

 

 

 

31

1

1

1

1

20 > 15

30

1

1

1

1

0

14

29

29

1

1

1

0

1

15

27

28

1

1

0

1

1

16 > 15

33

21

1

0

1

0

1

13

22

Рис. 4.2. Таблица вариантов задачи о рюкзаке

«Рюкзачное» шифрование [32]

В криптографии используется также специальное шифрование по «рюкзачному» вектору:

A (a1, ... an ).

81

Пусть А = (3,4,6,7,10,11), n = 6.

Текст разбивают на блоки длины n и шифруют с помощью «рюкзачного» вектора (рис. 4.3)

Текст

111110

 

001100

000000

000001

«Рюкзачный»

3,4,6,7,10,11

 

3,4,6,7,10,11

3,4,6,7,10,11

3,4,6,7,10,11

вектор

 

 

 

 

 

 

Шифротекст

3 + 4 + 6 + 7 + 10

= 30

6 + 7 = 13

0

11

Рис. 4.3. Шифрование с помощью «рюкзачного» вектора

4.3. Венгерский метод

Венгерский метод или алгоритм – алгоритм оптимизации,

решающий задачу оптимизации (например, назначениях) за полиномиальное время. Он был разработан и опубликован американским математиком Харолдом Куном (Harold William Kuhn, 1925–2014) в 1955 г. [32]. Автор дал ему имя «венгерский метод» в связи с тем, что алгоритм в значительной степени основан на более ранних работах двух венгерских математиков Кёнига и Эгервари.

Алгоритм основан на двух идеях: 1) если из всех элементов некой строки или столбца вычесть одно и то же число y, общая стоимость уменьшится на y, а оптимальное решение не изменится; 2) если есть решение нулевой стоимости, оно оптимально.

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

Рассмотрим пример задачи о назначениях: Иванов, Пётров и Сидоров вызвались выполнить срочное задание, состоящее из трёх видов работ по обеспечению информационной безопасности – A, B, C. Добровольцы запросили следующую оплату их услуг (рис. 4.4).

Решение венгерским методом имеет следующий вид

(рис. 4.5).

82

Работник

 

Работа

 

 

А

В

С

Иванов

10.000

20.000

30.000

Петров

30.000

30.000

30.000

Сидоров

30.000

30.000

20.000

Рис. 4.4. Матрица стоимостей

 

 

 

 

Работник

 

Работа

 

 

А

В

С

Иванов

0

10.000

20.000

Петров

0

0

0

Сидоров

10.000

10.000

0

Рис. 4.5. Матрица стоимостей преобразованная, полученная венгерским методом

Венгерский метод даёт ответ: Иванову – работу А, Петрову – работу В, Сидорову – работу С.

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

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

4.4. Алгоритм имитации отжига

Алгоритм или метод имитации отжига (Simulated annealing) – общий алгоритмический метод решения задачи глобальной оптимизации, особенно дискретной и комбинаторной оптимизации [33]. Один из примеров методов Монте-Карло.

Алгоритм основывается на имитации вероятностных характеристик реального физического процесса, который происходит при кристаллизации вещества, в том числе при так называемом отжиге металлов. (Этот алгоритм также называется алгоритмом Н. Метрополиса, по имени его автора – американского математика греческого происхождения).

83

Николас Константин Метрополис
(англ. Nicholas Constantine Metropolis; 1915–1999)

Метрополис окончил Чикагский университет в

1937, там же в 1941 г. за-

щитил диссертацию. По приглашению Роберта Оппенгеймера некоторое вре-

мя (1943–1948) работал в Лос-Аламосе над Манхэттенским атомным проектом. Является одним из создателей метода МонтеКарло, руководителем проектов по созданию первых электронных компьютеров

MANIAC I, MANIAC II

и MANIAC III. С 1957 по

1965 г. он был профессором физики Чикагского университета и одним из основателей и руководителем Института компьютерных исследований, где под его руководством был построен компьютер MANIAC III.

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

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

84

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

4.5. Задача коммивояжёра

Ранее в курсе дискретной математики в теме «Основы теории графов» уже рассматривалась задача коммивояжёра (англ.

Travelling salesman problem, сокращённо TSP) – задача нахожде-

ния «кратчайшего» гамильтонова цикла (если он или они вообще есть), проходящего по всем вершинам графа [23, 27].

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

Рассмотрим неграфическую интерпретацию задачи коммивояжёра.

Пусть задана матрица стоимостей:

C

cij

; i, j 1...n; (i j) cij 0

«проезда» от объекта i до объекта j (всего n объектов), причём при i = j стоимость нулевая – типа из города N-ска в город N-ск не надо «ехать».

Равны нулю и некоторые стоимости при i j – между соответствующими объектами может не быть непосредственной «транспортной» связи.

Задан начальный или исходный объект, например первый. Требуется найти такую последовательность «смежных» стоимостей «объезда» с ненулевыми элементами (например, с целью охраны или проверки системы охраны) всех объектов,

начиная с первого и заканчивая первым:

85

c1jcjμcμχ...c 1; j, μ, χ, ... {2, 3, 4 ... n},

сумма элементов которой была бы минимальной: c1j cjμ cμχ ... c 1 min.

Таким образом, надо, вообще говоря, найти все такие последовательности, которых может быть меньше, чем (n – 1)! (это случай связности объектов «каждый – с каждым»), но всё равно очень, оченьмногоприбольшихn, ивыбратьнаименьшуюпостоимости.

Тем не менее в дальнейшем в дисциплине «Теория графов и её приложения» мы вновь рассмотрим графическое решение этой задачи.

4.6. Градиентный метод [34]

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

Показатель вероятности безотказной работы системы S, состоящей из n подсистем, определяется как произведение вероятностей безотказной работы подсистем:

Ps P1 P2 ...Pn .

Ясно, что если не предпринять специальных мер резервирования, то Ps min Pi .

Причём вероятности зависят от времени t работы, так называемых интенсивностей отказов оборудования λ, способа резервирования , определяемого так называемой структурной схемой надёжности ССН:

n

n

Ps Pi (t, , ) Pi (t, ).

i 1

i 1

86

Но резервирование денег стоит – С, кроме того, оно отрицательно сказывается на быстродействии (производительности), энергопотреблении, габаритах, весе оборудования. Возникает типичная оптимизационная задача, но нелинейная.

Используется метод градиентного спуска – нахождение локального минимума (максимума) функции с помощью движения вдоль так называемого градиента.

Поиск точки максимума нелинейной функции итеративно производится вдоль «наилучшего» направления. Не ясно, какое направление является «наилучшим», но известно, что направление градиента является направлением наискорейшего возрастания функции.

Две постановки задачи оптимизации имеют вид: 1) Найти способ резервирования , такой, что:

Cs → min при Ps(t, λ) ≥ Psзад(t).

2) Найти способ резервирования , такой, что:

Ps(t, λ) → max при Cs Csзад.

Итеративное определение того, в какой подсистеме необходимо увеличить резервы, осуществляется итеративно по наибольшему приращению вероятности безотказной работы на единицу стоимости в соответствии с выражением для градиента [34]:

 

 

 

 

P j 1

(t, λ, η) P j (t, λ, η)

 

j )* max{δj } для i 1,n , δj

,

i

 

 

i

 

C

P 1

(t, λ, η)

i

i

 

i

 

 

 

 

 

 

 

i

i

 

 

где j – номер итерации.

Подробное изучение и применение этого метода, изложенного в [35, 36], выносится на курсовую работу по дисциплине.

4.7. Динамическое программирование

Мы уже знакомились с методом динамического программирования Беллмана в курсе дискретной математики (задача

87

о Ханойской башне). Поэтому просто рассмотрим ещё один пример [19].

Задача набора высоты и скорости. Самолёт летит на высо-

те h0 со скоростью v0. Необходимо изменить его скорость до v1 и скорость до h1 так, чтобы расход горючего был минимальным.

Процесс изменения v и h изобразим на плоскости (v, h), проведя дискретизацию переменных на 4 диапазона каждую. Дискретные состояния объекта изображаются узлами сетки. Считаем, что в каждом узле возможно применение двух управлений:

ui 0 – изменение только скорости v; ui 1 – изменение только высоты h.

Таким образом, область допустимых стратегий:

U {0,1}.

Даны затраты на изменения v и h – изображены на рис. 4.6.

Рис. 4.6. Граф затрат на изменения v и h

Одна из допустимых стратегий набора высоты и скорости u = (01011001) изображена на рис. 4.7.

88

Рис. 4.7. Одна из допустимых стратегий u = (01011001)

Для каждой стратегии указан расход топлива. Это и есть целевая функция Q(x,u), где х – номер шага. Для u = (01011001)

получим: 4 + 4 + 7 + 5 + 7 + 8 + 9 + 8 = 52 (у.е.).

Выполним разметку графа (рис. 4.8).

Рис. 4.8. Разметка методом Беллмана

89

Выбираем стратегию (рис. 4.10).

Рис. 4.9. Оптимальный набор высоты и скорости

Получаем uопт = (11000110) = 3 + 2 + 3 + 2 + 5 + 6 + 7 + 9 =

=37 (у.е.). Однако, ощутимая разница с 52 (у.е.)!

5.ТЕОРИЯ ИГР (GAME THEORY). РЕШЕНИЕ ИГР

5.1. Понятие о теории игр [37]

Теория игр – это математическая теория конфликтов. Конфликт – ситуация, в которой сталкиваются интересы сторон, происходит борьба интересов. Война – конфликт. Говорят, «военный конфликт». Другие примеры конфликтов – игры: шашки, шахматы, спортивные игры. Они отличаются тем, что ведутся по определённым правилам: перечень возможных ходов и результаты, к которым приводит некоторая совокупность ходов.

Далеко не каждый конфликт протекает по правилам («бои без правил», «русские воюют не по правилам»…). Для математического анализа конфликта необходимо представить кон-

90

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