Дискретная математика & математическая логика
..pdfПодставляем в правую часть первого уравнения вместо х2 второе уравнение, а во второе вместо х1 – первое:
|
= − |
1 |
(−2x1 |
− 4x3 + x5 |
+ 3000) − 3x3 |
+ x4 + 2000, |
|||
5x1 |
|
|
|||||||
5 |
|||||||||
|
|
|
|
|
|
|
|||
|
|
|
2 |
|
|
|
|
||
5x2 |
= − |
|
|
(−x2 |
− 3x3 + x4 |
+ 2000) − 4x3 |
+ x5 + 3000, |
||
5 |
|||||||||
|
|
|
|
|
|
|
|||
f = x1 + x2 + x3 → min. |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Упрощаем, умножая левую и правую части первых двух |
|||||||||
уравнений на 5: |
|
|
|
|
|
|
|
25x1 = 2x1 + 4x3 − x5 − 3000 −15x3 + 5x4 + 10 000, |
||
|
|
+ 6x3 − 2x4 − 4000 − 20x3 + 5x5 + 15 000, |
25x2 = 2x2 |
||
|
= x1 + x2 |
+ x3 → min. |
f |
||
Далее |
|
|
|
23x1 = −11x3 − x5 + 5x4 + 7000, |
|
|
|
|
|
23x2 = −14x3 − 2x4 + 5x5 + 11 000, |
|
|
|
= x1 + x2 + x3 → min. |
|
f |
Таким образом, упорядочивая переменные, получим
|
= |
|
1 |
(7000 |
−11x3 |
+ 5x4 |
− x5 ), |
||
x1 |
|
|
|||||||
|
23 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
x2 |
= |
|
|
|
(11 000 |
−14x3 − 2x4 + 5x5 ), |
|||
|
|
||||||||
|
|
|
23 |
|
|
|
|
||
f |
= x1 + x2 + x3 → min. |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Подставим первые два уравнения в третье:
141
|
= |
1 |
|
(7000 |
−11x3 |
+ 5x4 − x5 ), |
|
|
|
|
||||||||
x1 |
|
|
|
|
|
|
|
|
||||||||||
23 |
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
x2 |
= |
|
|
|
|
|
(11 000 −14x3 − 2x4 + 5x5 ), |
|
||||||||||
|
|
|
|
|
|
|||||||||||||
|
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
= |
1 |
(7000 |
−11x3 |
+ 5x4 − x5 ) + |
1 |
(11 000 |
−14x3 − 2x4 + 5x5 ) + x3 → min. |
||||||||||
f |
|
|
|
|||||||||||||||
|
|
|||||||||||||||||
|
|
23 |
|
|
|
|
|
|
|
|
|
23 |
|
|||||
|
Преобразуем f: |
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
= |
1 |
|
(7000 −11x3 + 5x4 |
− x5 ), |
|||||
|
|
|
|
|
|
|
|
x1 |
|
|
|
|||||||
|
|
|
|
|
|
|
|
23 |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
x2 |
= |
|
|
|
(11 000 |
−14x3 − 2x4 + 5x5 ), |
||||
|
|
|
|
|
|
|
|
23 |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
= |
1 |
|
(18 000 − 2x3 + 3x4 |
+ 4x5 ) → min. |
|||||
|
|
|
|
|
|
|
|
f |
|
|
|
|||||||
|
|
|
|
|
|
|
|
23 |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Легко видеть, что при данном значении х3 наименьшее f получим при нулевых х4, х5. Это очевидно, поскольку х4, х5 – количество лишних заготовок. При возрастании х3 f будет убывать, но рост х3 ограничивается требованием положительности х4, х5.
Пусть х4 = х5 = 0:
|
= |
|
|
1 |
(7000 −11x3 ), |
|||||||||
x1 |
|
|
|
|
||||||||||
|
23 |
|||||||||||||
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
= |
|
|
|
(11 000 −14x3 ), |
|||||||||
x2 |
|
|
|
|
|
|||||||||
|
23 |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||
или |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
7000 |
|
|
||||||
x1 = |
|
|
|
( |
|
|
− x3 ), |
|||||||
|
23 |
|
11 |
|||||||||||
|
|
|
|
|
14 11000 |
|
||||||||
|
|
= |
− x3 ). |
|||||||||||
x2 |
|
|
|
|
|
( |
|
|
||||||
23 |
14 |
|
||||||||||||
|
|
|
|
|
|
|
|
|
При возрастании х3 отрицательное значение примет прежде всего х1, так как
142
7000 |
|
11000 |
||||
|
|
|
< |
|
|
. |
|
11 |
14 |
|
|||
|
|
|
|
|||
Сделаем х1 свободной, а х3 – |
зависимой переменной. |
|||||
Вернёмся к уравнениям |
|
|
|
|
||
5x1 + x2 + 3x3 − x4 |
= 2000, |
|||||
|
|
|
|
|
|
|
2x1 + 5x2 + 4x3 − x5 = 3000, |
||||||
|
+ x2 + x3 → |
min |
||||
f = x1 |
||||||
и выразим х2, х3 через х1, х4, х5: |
|
|
|
|
x2 |
= 2000 − 5x1 |
− 3x3 + x4 , |
4x3 = 3000 − 2x1 − 5x2 + x5 , |
||
|
= x1 + x2 + x3 |
→ min. |
f |
Необходимо убрать в первом уравнении х3, во втором – х2. Подставляем в правую часть первого уравнения вместо х3 второе уравнение, а во второе вместо х2 – первое:
|
= 2000 − 5x1 − |
3 |
(3000 − 2x1 − 5x2 + x5 ) + x4 |
, |
||
x2 |
|
|||||
4 |
||||||
|
|
|
|
|
||
4x3 = 3000 − 2x1 − 5(2000 − 5x1 − 3x3 + x4 ) + x5 , |
||||||
|
= x1 + x2 + x3 → |
min. |
|
|||
f |
|
|||||
|
|
|
|
|
|
|
Преобразуем: |
|
|
|
|
||
4x2 |
= 8000 − 20x1 − 9000 + 6x1 +15x2 − 3x5 + 4x4 , |
|||||
|
= 3000 − 2x1 −10 000 + 25x1 +15x3 − 5x4 + x5 , |
|||||
4x3 |
||||||
|
|
|
min. |
|
||
f = x1 + x2 + x3 → |
|
|||||
Получаем |
|
|
|
|
||
|
−11x2 |
= −14x1 −10001 − 3x5 + 4x4 , |
|
|||
|
|
= −7000 + 23x1 − 5x4 + x5 , |
|
|||
|
−11x3 |
|
||||
|
|
+ x2 |
+ x3 → min, |
|
||
|
f = x1 |
|
143
т.е. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
= |
1 |
|
(1000 |
+14x1 |
|
− 4x4 + 3x5 ), |
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x2 |
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x3 |
= |
|
|
|
|
|
(7000 |
− 23x1 |
|
+ 5x4 − x5 ), |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f |
= x1 + x2 + x3 → |
|
min. |
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Подставим первые два уравнения в третье: |
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
|
= |
1 |
|
(1000 +14x1 |
− 4x4 + 3x5 ), |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
x2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
x3 |
|
= |
|
|
|
|
|
|
(7000 − 23x1 + 5x4 − x5 ), |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
= x1 |
+ |
1 |
(1000 +14x1 − 4x4 + 3x5 ) + |
1 |
|
(7000 − 23x1 + 5x4 − x5 ) → |
|
min. |
|||||||||||||||||||||||||||||||||
f |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|||||||||
|
|
|
|
|
Преобразуем f: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
= |
|
1 |
|
(1000 +14x1 − 4x4 + 3x5 ), |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
x2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
x3 |
= |
|
|
|
|
|
|
(7000 − 23x1 + 5x4 − x5 ), |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
= |
11 |
|
|
|
|
+ |
1 |
(1000 +14x1 − 4x4 + 3x5 ) + |
|
1 |
(7000 − 23x1 |
+ 5x4 |
− x5 ) |
→ |
min. |
|||||||||||||||||||||||||||
f |
|
|
|
|
|
|
x1 |
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
11 |
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|||||||||||||||
|
|
|
|
|
Окончательно получаем |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
= |
1 |
|
|
(1000 |
+14x1 |
− 4x4 + 3x5 ), |
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x2 |
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x3 |
= |
|
|
|
|
(7000 |
− 23x1 |
|
+ 5x4 − x5 ), |
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f = |
|
|
|
|
(8000 + 2x1 + x4 |
|
+ 2x5 ) → min. |
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144
Видим, что минимальное значение f получим в случае, если х1 = х4 = х5 = 0, при этом зависимые переменные х2, х3 будут положительны:
x |
= |
|
1 |
|
(1000), |
||||
|
|
|
|||||||
|
2 |
|
11 |
|
|||||
|
|
|
|
||||||
|
|
= |
1 |
|
|
|
|||
x3 |
|
|
|
(7000), |
|||||
|
|
||||||||
|
|
|
11 |
|
|
||||
|
|
= |
1 |
(8000) |
= min. |
||||
f |
|
|
|||||||
|
|
||||||||
|
|
11 |
|
|
|
Таким образом, решение имеет вид
x |
= 0, |
|||||
|
1 |
|
|
|
1 |
|
x |
= |
|
|
|||
|
||||||
|
2 |
11 |
||||
|
|
= |
1 |
|||
x |
||||||
|
|
|||||
|
3 |
11 |
||||
x |
= 0, |
|||||
|
4 |
|
|
|
|
|
x5 = 0, |
||||||
|
|
|
|
1 |
||
|
f |
= |
||||
|
||||||
|
|
11 |
(1000) = 90,9...,
(7000) = 636,3...,
(8000) = min.
Но нам нужно целочисленное решение! Нетрудно убедиться, что для такого решения
f ≥ 1 (8000)= 727, 2..., 11
или даже f ≥ 728, так как число листов должно быть целым.
Можно ожидать, что такое решение мы получим, если немного изменим решение:
145
|
x1 = 0, |
|
x2 = 91, |
|
x3 = 637, |
|
x4 = 0, |
|
x5 = 0, |
|
|
|
f = 728 = min. |
|
|
Проверим: |
|
5 |
0 + 91 + 3 637 − 0 = 2002 > 2000, |
|
0 + 5 91 + 4 637 − 0 = 3003 > 3000, |
2 |
|
|
= 0 + 91 + 637 = 728. |
f |
Таким образом, для выполнения заказа необходимо доставить со склада 728 листов и 91 из них кроить по второму, а остальные – по третьему способу.
4.5. ГЕНЕТИЧЕСКИЙ АЛГОРИТМ ОПТИМИЗАЦИИ
Генетический алгоритм оптимизации – это эвристический алгоритм поиска, используемый для решения задач оптимизации
имоделирования путем последовательного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоминающих биологическую эволюцию [5]. Генетический алгоритм является разновидностью эволюционных вычислений. Отличительной особенностью генетического алгоритма является акцент на использование оператора «скрещивание», который производит операцию рекомбинации решений-кандидатов, что аналогично скрещиванию в живой природе.
Отцом-основателем генетических алгоритмов считается Джон Холланд (John Holland), книга которого «Адаптация в естественных
иискусственных системах» является основополагающим трудом в этой области исследований.
146
Задача кодируется таким образом, чтобы ее решение могло быть представлено в виде вектора («хромосомы»). Случайным образом создается некоторое количество начальных векторов («начальная популяция»). Они оцениваются с использованием «функции приспособленности», в результате чего каждому вектору присваивается определенное значение («приспособленность»), которое определяет вероятность выживания организма, представленного данным вектором. После этого с использованием полученных значений приспособленности выбираются векторы («селекция»), допущенные к «скрещиванию». К этим векторам применяются «генетические операторы» (в большинстве случаев «скрещивание» – crossover и «мутация» – mutation), создавая таким образом следующее «поколение». Особи следующего поколения также оцениваются, затем производится селекция, применяются генетические операторыит.д.
Так моделируется «эволюционный процесс», продолжающийся несколько жизненных циклов (поколений), пока не будет выполнен критерий остановки алгоритма. Таким критерием может быть:
–нахождение глобального либо субоптимального решения;
–исчерпание числа поколений, отпущенных на эволюцию;
–исчерпание времени, отпущенного на эволюцию. Генетические алгоритмы служат главным образом для поиска
решений в очень больших, сложных пространствах поиска.
Таким образом, можно выделить следующие этапы генети-
ческого алгоритма:
–создание начальной популяции;
–вычисление функций приспособленности для особей популяции (оценивание);
–начало цикла;
–выбор индивидов из текущей популяции (селекция);
–скрещивание и/или мутация;
–вычисление функций приспособленности для всех особей;
–формирование нового поколения.
Если выполняются условия остального, то «конец цикла», иначе «начало цикла».
147
Чтобы применить генетический алгоритм к задаче, сначала выбирается метод кодирования решений в виде строки. По существу, такая кодировка соответствует разбиению пространства параметров на гиперкубы, которым соответствуют уникальные комбинации битов встроке-хромосоме. Для установления соответствия между гиперкубами разбиения области и бинарными строками, описывающими номера таких гиперкубов, кроме обычной двоичной кодировки использовался рефлексивный код Грея. Код Грея предпочтительнее обычного двоичного тем, что обладает свойством непрерывности бинарной комбинации: изменение кодируемого числа на единицу соответствует изменениюкодовойкомбинациитольководномразряде.
Рассмотрим пример кодирования для генетического алгорит-
ма (табл. 4.1).
Таблица 4 . 1
Пример кодирования вариантов для генетического алгоритма
|
Двоичное кодирование |
|
Кодирование по коду Грея |
||||
D |
|
B |
|
H |
D |
B |
H |
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 |
13 |
|
1101 |
|
Dh |
11 |
1011 |
Bh |
14 |
|
1110 |
|
Eh |
9 |
1001 |
9h |
15 |
|
1111 |
|
Fh |
8 |
1000 |
8h |
148
Стандартные операторы для всех типов генетических алгоритмов – это селекция, скрещивание и мутация.
Оператор селекции (reproduction, selection) осуществляет от-
бор хромосом в соответствии со значениями их функции приспособленности. Существуют как минимум два популярных типа оператора селекции: рулетка и турнир.
Метод рулетки (roulette-wheel selection) отбирает особей с помощью n запусков рулетки. Колесо рулетки содержит по одному сектору для каждого члена популяции. Размер i-го сектора пропорционален соответствующей величине Psel(i), вычисляемой по некоторой формуле.
Турнирный отбор (tournament selection) реализует n турни-
ров, чтобы выбрать n особей. Каждый турнир построен на выборке k элементов из популяции и выбора лучшей особи среди них. Наиболее распространен турнирный отбор с k = 2.
Оператор скрещивания (crossover) осуществляет обмен частями хромосом между двумя (может быть и больше) хромосомами в популяции. Может быть одноточечным или многоточечным. Одноточечный кроссовер работает следующим образом. Сначала случайным образом выбирается одна из (l −1)-x точек разрыва. Точка
разрыва – участок между соседними битами в строке. Обе родительские структуры разрываются на два сегмента по этой точке. Затем соответствующие сегменты различных родителей склеиваются – и получаются два генотипа потомков.
Одноточечный оператор скрещивания (точка разрыва равна трем) показан на рис. 4.11.
Рис. 4.11. Одноточечный оператор скрещивания
149
Мутация (mutation) – стохастическое изменение части хромосом. Каждый ген строки, которая подвергается мутации, с вероятностьюPmut (обычнооченьмаленькой) меняетсяна другойген(рис. 4.12).
Рис. 4.12. Мутация
Алгоритм работы классического генетического алгоритма приведен на рис. 4.13.
Рис. 4.13. Классический генетический алгоритм
В 1992 году была предложена идея генетического программирования. Оно строится с опорой на концепцию генетических алгоритмов. В отличие от генетических алгоритмов, в генетическом программировании все операции производятся не над строками, а над деревьями. При этом используются те же операторы – селекция, скрещивание и мутация [5].
150