Интеллектуальные информационные системы. Дубровин А.Д. - 176 стр.

UptoLike

Составители: 

211
улучшения
популяции
включить
только
две
пары
комбинаций
(1-6)
и
(2-7).
Запишем
их
в
таблицу
7.5.2-3.
Таблица
7.5.2-3
пара
комбинаций
коды
хромосом
вклад
хромосом
в
ЦФ
результат
мутации
новые
десятичные
значения
кодов
хромосом
новые
вклады
хромосом
в
ЦФ
(1-6)
1 0 1 0
0
1 0 1
0 1 1 1
0 0 1 0
ЦФ
(10)=21
ЦФ
(5)= 11
ЦФ
(7)= 15
ЦФ
(2)= 5
1 0 1 0
1
1 0 1
0 1 1 1
0 0 1 0
10
13
7
2
ЦФ
(10)= 21
ЦФ
(13)= 27
ЦФ
(7)= 15
ЦФ
(2)= 5
(2-7)
1 1 1 0
0
0 0 1
0 1 1 1
0 0 0 1
ЦФ
(14)=29
ЦФ
(1)= 3
ЦФ
(7)= 15
ЦФ
(1)= 3
1 1 1 0
1
0 0 1
0 1 1 1
0 0 0 1
14
9
7
1
ЦФ
(14)= 29
ЦФ
(9)= 19
ЦФ
(7)= 15
ЦФ
(1)= 3
Из
трех
левых
столбцов
таблицы
видно
,
что
после
кроссовера
результат
исходной
популяции
улучшен
только
в
комбинации
(1-6),
поскольку
комбинация
(2-7)
показала
тот
же
результат
,
что
и
исходная
популяция
.
В
принципе
,
на
этом
можно
было
бы
закончить
улучшение
исходной
популяции
и
остановиться
на
выборе
комбинации
(1-6).
Но
попробуем
,
находясь
на
шаге
7,
совершить
операцию
мутации
,
изменив
код
первого
гена
во
второй
хромосоме
обеих
комбинаций
.
Результат
мутации
отражен
в
таблице
.
В
итоге
получилось
,
что
разность
между
«
качеством
»
этих
двух
комбинаций
даже
уменьшилась
(
до
введения
мутации
она
составляла
(53-50) = 3,
после
(68-66) = 20.
Налицо
признак
инцухта
,
поэтому
генетический
синтез
новых
популяций
целесообразно
прекратить
.
Важно
понять
,
за
счет
чего
генетический
алгоритм
на
несколько
порядков
превосходит
по
быстроте
случайный
поиск
во
многих
задачах.
Дело
здесь
в
том
,
что
большинство
живых
систем
состоят
из
достаточно
самостоятельных
(
и
в
этом
смысле
могущих
считаться
независимыми
)
подсистем
.
Вследствие
этого
,
при
обмене
генетическим
материалом
нередко
возникают
ситуации
,
когда
от
каждого
из
родителей
берутся
гены
,
соответствующие
наиболее
удачному
варианту
определенной
подсистемы
(
остальные
«
вырожденцы
» -
постепенно
вымирают
).
Другими
словами
,
генетический алгоритм
позволяет накапливать удачные решения для систем, состоящих из относительно
независимых подсистем
(
таковыми
являются
большинство
современных
сложных
технических
систем
,
и
все
известные
живые
организмы
).
Эта
особенность
генетического
алгоритма
позволяет
предсказать
,
когда
вероятнее
всего
он
может
дать
«
сбой
» (
или
,
по
крайней
мере
,
не
покажет
особых
преимуществ
перед
другими
методами
).
Если
данные
,
которые
закодированы
в
генотипе
,
эмулировать
в
систему
команд
процессора
некой
виртуальной
машины
,
то
можно
считать
такую
машину
автоматом
,
способным
исполнять
программы
эволюционных
или
генетических
алгоритмов
.
Иначе
говоря
,
появляется
понятие
(
феномен
)
«эволюционное или генетическое
программирование»
.
В
простейшем
случае
,
для
составления
генетической
программы
в
генетическом
алгоритме
даже
ничего
не
придется
менять
.
Современные
алгоритмы
для
генетического
программирования
распространяют
принцип
рассмотренного
генетического
алгоритма
на
системы
с
переменной
длиной
генотипа
.
В
рассмотренном
примере
мы
не
использовали
некоторые
другие
операции
управления
процессом
,
например
,
инверсию
.
Практика
генетического
программирования
определила
некоторые
существенные
рекомендации
техники
подобного
анализа
.
К
ним
относятся
:
улучшения популяции включить только две пары комбинаций (1-6) и (2-7). Запишем их в
таблицу 7.5.2-3.
                                                       Таблица 7.5.2-3
   пара          коды   вклад     результат    новые    новые вклады
комбинаций хромосом хромосом мутации десятичные           хромосом
                        в ЦФ                  значения      в ЦФ
                                                 кодов
                                             хромосом
              1010     ЦФ(10)=21 1 0 1 0     10         ЦФ(10)= 21
   (1-6)      0101     ЦФ(5)= 11 1 1 0 1     13         ЦФ(13)= 27
              0111     ЦФ(7)= 15 0 1 1 1       7         ЦФ(7)= 15
              0010     ЦФ(2)= 5 0 0 1 0        2         ЦФ(2)= 5
              1110     ЦФ(14)=29 1 1 1 0     14         ЦФ(14)= 29
   (2-7)      0001     ЦФ(1)= 3 1 0 0 1        9         ЦФ(9)= 19
              0111     ЦФ(7)= 15 0 1 1 1       7         ЦФ(7)= 15
              0001     ЦФ(1)= 3 0 0 0 1        1         ЦФ(1)= 3

       Из трех левых столбцов таблицы видно, что после кроссовера результат исходной
популяции улучшен только в комбинации (1-6), поскольку комбинация (2-7) показала тот же
результат, что и исходная популяция. В принципе, на этом можно было бы закончить
улучшение исходной популяции и остановиться на выборе комбинации (1-6). Но попробуем,
находясь на шаге 7, совершить операцию мутации, изменив код первого гена во второй
хромосоме обеих комбинаций. Результат мутации отражен в таблице. В итоге получилось,
что разность между «качеством» этих двух комбинаций даже уменьшилась (до введения
мутации она составляла (53-50) = 3, после – (68-66) = 20. Налицо признак инцухта, поэтому
генетический синтез новых популяций целесообразно прекратить.
        Важно понять, за счет чего генетический алгоритм на несколько порядков
превосходит по быстроте случайный поиск во многих задачах. Дело здесь в том, что
большинство живых систем состоят из достаточно самостоятельных (и в этом смысле
могущих считаться независимыми) подсистем. Вследствие этого, при обмене генетическим
материалом нередко возникают ситуации, когда от каждого из родителей берутся гены,
соответствующие наиболее удачному варианту определенной подсистемы (остальные –
«вырожденцы» - постепенно вымирают). Другими словами, генетический алгоритм
позволяет накапливать удачные решения для систем, состоящих из относительно
независимых подсистем (таковыми являются большинство современных сложных
технических систем, и все известные живые организмы). Эта особенность генетического
алгоритма позволяет предсказать, когда вероятнее всего он может дать «сбой» (или, по
крайней мере, не покажет особых преимуществ перед другими методами).
       Если данные, которые закодированы в генотипе, эмулировать в систему команд
процессора некой виртуальной машины, то можно считать такую машину автоматом,
способным исполнять программы эволюционных или генетических алгоритмов. Иначе
говоря,    появляется   понятие     (феномен)     «эволюционное      или    генетическое
программирование». В простейшем случае, для составления генетической программы в
генетическом алгоритме даже ничего не придется менять. Современные алгоритмы для
генетического программирования распространяют принцип рассмотренного генетического
алгоритма на системы с переменной длиной генотипа.
       В рассмотренном примере мы не использовали некоторые другие операции
управления процессом, например, инверсию. Практика генетического программирования
определила некоторые существенные рекомендации техники подобного анализа. К ним
относятся:



                                                                                     211