ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ Область применения Нахождение экстремумов функций 1.

advertisement
ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ
Область применения
1. Нахождение экстремумов функций
2. Решение задач размещения ресурсов
3. Решение задач экономического планирования
Пример.
max f(x), где D = {x = (x1, x2, :, xN) | xi на [ai, bi], i=1, 2,:N}
x из D
Решение задачи - вектор x = (x1, x2, :, xN).
3D Surface Plot (lab1_15 14v*50c)
ALV1_MVP = Distance Weighted Least Squares
Поиск
глобального
оптимума
ГА = (P0, , l, s, р, f, t)
200
150
100
50
0
-50
-100
Формальное описание ГА
ГА = (P0, , l, s, р, f, t)
где P0 = (a01, ..., a0) - исходная популяция, где,
a0i - решение задачи, представленное в виде
хромосомы;
 - целое число ( размер популяции);
l - целое число (длина каждой хромосомы
популяции);
s - оператор отбора;
p - отображение, определяющее рекомбинацию
(кроссовер, мутация, инверсия);
f - функция оптимальности;
t - критерий остановки.
ОСОБЬ – ОДНО ИЗ ВОЗМОЖНЫХ РЕШЕНИЙ ПОСТАВЛЕННОЙ
ЗАДАЧИ
ПОПУЛЯЦИЯ – СОВОКУПНОСТЬ ОСОБЕЙ
ОСОБЬ
ИЛИ
ХРОМОСОМА
1101
1100
0101
Х1
Х2
Х3
1001
1000
0111
Х1
Х2
Х3
………………
1000
1010
ГЕН ОСОБИ
1011
1010
ПОПУЛЯЦИЯ
ПРИНЦИПЫ КОДИРОВАНИЯ ГЕНОВ
Двоичное кодирование
Кодирование по коду Грея
Десяти
чны
й
код
Двоич.
значе
ние
Шестн.
значе
ние
Десят.
код
Двоич.з
начен
ие
Шестн.
значен
ие
0
0000
0h
0
0000
0h
1
0001
1h
1
0001
1h
2
0010
2h
3
0011
3h
3
0011
3h
2
0010
2h
4
0100
4h
6
0110
6h
5
0101
5h
7
0111
7h
6
0110
6h
5
0101
5h
7
0111
7h
4
0100
4h
8
1000
8h
12
1100
Ch
9
1001
9h
13
1101
Dh
10
1010
Ah
15
1111
Fh
11
1011
Bh
14
1110
Eh
12
1100
Ch
10
1010
Ah
1001
1000
0111
Х1
Х2
Х3
1011
1010
Как выбрать длину гена в
соответствии с точностью??
Пример. Функция от двух переменных x1 и x2, определенной
на прямоугольной области D = {0 <x1<1; 0<x2<1},
Требуется локализовать решение x* с точностью по каждому
из параметров 10-6.
1 алгоритм решения задачи выбора длины
гена
Пространство параметров дискретизируется равномерной
сеткой с (bi-ai)/(10-6)= 1/10-6 = 1000000 узлами.
Количество узлов кодируется l = 20 бит, где l - 106 < 2l+1.
Общая длина бинарной строки кодировки для двумерной
задачи составит 2X20 = 40 бит.
2 алгоритм решения задачи выбора длины
гена и кодировки для чисел с плавающей
точкой
1. Разбивают весь интервал допустимых значений
признака на участки с требуемой точностью.
2. Принимают значение гена как целочисленное число,
определяющее номер интервала (используя код Грея).
3. В качестве значения параметра принимают число,
являющиеся серединой этого интервала.
Допустим, что значения признака лежат в интервале [0,1].
При кодировании использовалось разбиение участка на 256
интервалов.
Для кодирования их номера нам потребуется таким образом 8 бит.
Допустим значение гена: 00100101bG.
Найдем соответствующий ему номер интервала: 25hG->36h->54d.
Получаем интервал [0,20703125, 0,2109375].
Значит значение нашего параметра будет
(0,20703125+0,2109375)/2=0,208984375.
3 алгоритм решения задачи выбора длины
гена и кодировки для чисел с плавающей
точкой
1. Каждый интервал [ai, bi] разбиваем на k отрезков равной
длины. Определяем шаг hi = (bi - ai) / k, i = 1, 2, :N.
2. Покроем i-ый интервал [ai, bi] сетью si из (k+1) узла с
постоянным шагом hi. xi,j = ai + jhi, j = 0, 1, : k.
3. Длина кода q выбирается таким образом, чтобы k < 2q.
Наиболее целесообразно и экономично использовать сетку
с k = 2q-1.
Символьная запись j-ого узла по i-ой координатной оси
в двоичном коде
b 1i
b 2i
...
B qi
После дискретизации по всем N координатным осям,
s = b11 b21
...
b q1
...
b 1N b 2N
особь
Пример.
f(x) = 10 + x sin(x), х [0, 10].
Пусть q=3. Тогда 23=8- отрезков.
Шаг h=10:8=1,25.
...
b qN
Пусть у объекта имеется 5 признаков,
каждый закодирован геном длинной в 4 элемента.
Тогда длина особи будет 5*4=20 бит
Определение. Приспособленность особи – значение
соответственной целевой функции f(x)
Например. Имеем функцию y=3 x2+ 5x3. Необходимо
на участке х[1; 5] найти ее максимум.
1. Задаем популяцию особей согласно алгоритмам.
2. Рассчитываем приспособленность особей и всей
популяции.
Пусть 1 особь = 1, 2 особь – 2 и т.д.
Приспособленность 1 особи 1= 8, 2=52 и т.д.
Приспособленность всей популяции (1+ 2+….+ n)\n
Генетические операторы
МУТАЦИЯ
1
0
1
0
1
1
ИНВЕРСИЯ
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
ПОТОМКИ
КРОССОВЕР
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
ПЛАН РАЗВИТИЯ ПОПУЛЯЦИИ ХОЛЛАНДА
Шаг 1.Инициализация начальной популяции.
Ввести точку отсчета эпох t=0. Инициализировать случайным
образом М генотипов особей и сформулировать из них начальную
популяцию b 0  A1 0 ,..., AM 0
  
 
Вычислить приспособленность особей популяции
 0    1 0 ,..., M 0 
a потом — среднюю приспособленность популяции
~0     h 0  / M
M
h 1
Шаг 2. Выбор родителей для скрещивания
2.1. Увеличить номер эпохи на единицу t=t+1.
Определить случайную переменную Randt , на
множестве М = {1,..., М}, назначив вероятность
выпадения любого h  М пропорциональной
 h t  / ~ t 
2.2. Сделать одно испытание Randt , и вычислить
результат i(t}, который определит номер первого
родителя .
Ai t  t 
2.3. Повторным испытанием определить номер второго
родителя i(t).
Шаг 3. Формирование генотипа потомка.
3.1. С вероятностью кроссовера - Рс произвести
над выбранными родителями кроссовер.
3.2. Выбрать одного из потомков и сохранить его
как 1A(t).
3.3. Последовательно применить к 1A(t) оператор
инверсии (с вероятностью Рі,),
а потом - мутации (с вероятностью Pт).
3.4. Полученный генотип потомка сохранить как
A' ( t )
Шаг 4. Отбор особи на элиминирование и замена ее
потомком.
4.1. С равной вероятностью 1/М для всех h  М
определить случайным образом номер j(t)
особи в популяции, которую заменит
потомок.
4.2. Обновить текущую популяцию b(t) путем замены
A t на A' ( t )
i t 

Шаг 5. Определение приспособленности потомков.
5.1. Вычислить приспособленность потомка Е(
^

A' ( t )).
5.2. Обновить значение средней приспособленности
(t) и вектор приспособленностей v(t).
Шаг 6. Перейти к шагу 2.
Download