- •Теория принятия решений
- •Часть 2 нелинейное программирование, теория игр, многокритериальные задачи принятия решений
- •Введение
- •4. Нелинейное программирование
- •4.1. Характеристика задач
- •4.2. Условия оптимальности
- •4.3. Квадратичное программирование
- •4.4. Сепарабельное программирование
- •4.5. Задачи дробно-линейного программирования
- •4.6. Методы спуска
- •4.7. Методы одномерной минимизации
- •4.7.3. Метод деления интервала пополам
- •4.7.4. Метод золотого сечения
- •4.7.6. Метод первого порядка
- •4.8. Многомерный поиск безусловного минимума
- •4.8.1. Метод Гаусса – Зейделя (покоординатного спуска)
- •4.8.2. Метод Хука – Дживса (метод конфигураций)
- •4.8.3. Симплексный метод
- •4.8.4. Градиентные методы
- •4.8.6. Методы сопряженных направлений
- •4.8.7. Методы случайного поиска
- •Алгоритм с возвратом при неудачном шаге
- •Алгоритм с обратным шагом
- •Алгоритм наилучшей пробы
- •Алгоритм статистического градиента
- •4.8.8. Генетические алгоритмы
- •Исходная популяция
- •Результаты работы оператора скрещивания
- •Популяция первого поколения
- •4.9. Методы условной оптимизации
- •4.9.2. Метод проектирования градиента
- •4.9.3. Метод штрафных функций
- •Минимизация по методу Ньютона
- •4.9.4. Метод барьерных функций
- •Результаты поиска алгоритмом барьерных функций
- •4.9.5. Другие методы условной оптимизации
- •5. Методы теории игр в управлении
- •5.1. Теория игр в контексте теории принятия решений
- •5.2. Матричные игры с нулевой суммой
- •Использование линейной оптимизации при решении матричных игр. Пусть игра не имеет оптимального решения в чистых стратегиях, т.Е. Седловая точка отсутствует .
- •5.3. Игры с природой
- •5.4. Критерии, используемые для принятия решений
- •В играх с природой. Критерии, основанные
- •На известных вероятностях стратегий природы
- •Иногда неопределенность ситуации удается в некоторой степени ослабить с помощью нахождения вероятностей состояний на базе данных статистических наблюдений.
- •5.5. Оценка необходимости эксперимента
- •6. Многокритериальные задачи принятия решений
- •6.1. Основы многокритериальный оптимизации
- •6.2. Принцип оптимальности Парето.
- •6.3. Принцип равновесия по Нэшу
- •6.4. Конфликты, переговоры и компромиссы
- •6.5. Краткий обзор методов решения задачи векторной оптимизации
- •Значения компонентов вектор-функции
- •1. Оптимальность по Парето
- •Исходные данные для задачи оптимизации по Парето
- •Эффективность операции
- •2. Принятие решений в условиях неопределенности
- •Исходные данные для задачи принятия решения в условиях неопределенности
- •3. Многокритериальная оптимизация
- •Заключение
- •Библиографический список
- •Оглавление
- •Теория принятия решений
Исходная популяция
№ строки |
Экз. кода |
y1 |
y2 |
x1 |
x2 |
f |
pi |
1 |
011001010 |
12 |
10 |
17 |
12 |
702 |
0,1199 |
2 |
100001101 |
16 |
13 |
21 |
15 |
579 |
0,0989 |
3 |
110011100 |
25 |
12 |
30 |
14 |
319 |
0,0545 |
4 |
001011010 |
5 |
10 |
10 |
12 |
751 |
0,1283 |
5 |
010001011 |
8 |
11 |
13 |
13 |
727 |
0,1242 |
6 |
011101000 |
14 |
8 |
19 |
10 |
694 |
0,1186 |
7 |
101010111 |
21 |
7 |
26 |
9 |
528 |
0,0902 |
8 |
111010001 |
29 |
1 |
34 |
3 |
220 |
0,0376 |
9 |
001101110 |
6 |
14 |
11 |
16 |
678 |
0,1158 |
10 |
100010010 |
17 |
2 |
22 |
4 |
655 |
0,1119 |
Действия оператора отбора, использующего распределение pi, привели к выбору родительских пар (2,7), (5,10), (6,9), (1,4), (4,9). В каждой паре точки разбиения выбираются независимо с помощью датчика целых случайных чисел от 1 до 8 с равными вероятностями. Результаты работы оператора скрещивания приведены в табл. 4.2. Точки разбиения показаны косой чертой. Значения аргументов и функции даны для потомков.
Таблица 4.2
Результаты работы оператора скрещивания
№ строки |
Экз. кода родителей |
Экз. кода потомков |
y1 |
y2 |
x1 |
x2 |
f |
2 7 |
100/001101 101/010111 |
100010111 101001101 |
17 20 |
7 13 |
22 25 |
9 15 |
640 475 |
5 10 |
0100010/11 1000100/10 |
010001010 100010011 |
8 17 |
10 3 |
13 22 |
12 5 |
742 656 |
6 9 |
01110/1000 00110/1110 |
011101110 001101000 |
14 6 |
14 8 |
19 11 |
16 10 |
598 774 |
1 4 |
01/1001010 00/1011010 |
011011010 001001010 |
13 4 |
10 10 |
18 9 |
12 12 |
687 750 |
4 9 |
00101/1010 00110/1110 |
001011110 001101010 |
5 6 |
14 10 |
10 11 |
16 12 |
679 750 |
Теперь предположим, что оператор мутации сработал для 7 потомка, поменяв местами биты 1 и 2. Код этого потомка сменился с 011101110 на 101011010, значение функции стало 495. Расширенная популяция включает 10 исходных особей и 10 потомков. Сокращаем популяцию до принятого размера, отбрасывая особи с меньшими значениями функции. Полученная после этого популяция первого поколения представлена в табл. 4.3. В ней только первые 4 особи из исходной популяции.
Таблица 4.3
Популяция первого поколения
№ строки |
Экз. кода |
x1 |
x2 |
f |
1 |
011001010 |
17 |
12 |
702 |
2 |
001011010 |
10 |
12 |
751 |
3 |
010001011 |
13 |
13 |
727 |
4 |
011101000 |
19 |
10 |
694 |
5 |
010001010 |
13 |
12 |
742 |
6 |
001101000 |
11 |
10 |
774 |
7 |
011011010 |
18 |
12 |
687 |
8 |
001001010 |
9 |
12 |
750 |
9 |
001011110 |
10 |
16 |
679 |
10 |
001101010 |
11 |
12 |
750 |
Из сравнения данных в табл. 4.1 и 4.3 видно, что новая популяция лучше исходной. Если среднее значение целевой функции на начальной популяции было равно 585,3, то на новом поколении оно возросло до 725,6.
Следующий шаг заключается в проверке условия окончания поиска. Оно может быть представлено в разных вариантах: min fi > fmin или max fi – min fi < f, или n nзадан. В первом варианте все особи должны быть лучше заданного уровня качества, во втором критерием выступает близость особей, в третьем – число поколений (итераций). Если предположить, что выбранное условие выполняется на первом поколении, то поиск на этом заканчивается. За решение принимаем лучший результат: x1 = 11, x2 = 10, f = 774. Оптимальному решению соответствуют значения: x1 = 10, x2 = 5, f = 800. Сравнение показывает, что по значению критерия получено неплохое приближение к оптимуму. Понятно, что продолжение итераций приведет к дальнейшему улучшению популяции и получению более близкого к оптимальному решения.
Из описанной схемы генетического алгоритма и приведенного примера можно сделать вывод, что самым важным этапом применения алгоритма является определение генотипа (структуры кода), и для каждой задачи он индивидуален. Кроме того, специфика задачи может диктовать и требования к работе операторов. Например, в задаче коммивояжера оператор скрещивания не должен порождать потомков, в коде которых один пункт представлен более одного раза. Таким образом, по своей сути генетические алгоритмы являются эвристическими.