Программная реализация генетических алгоритмов

реклама
Министерство образования Российской Федерации
Лицей при уфимском государственном нефтяном техническом
университете
Школа № 83
КУТУКОВ НИКИТА
УФА 2003
2
СОДЕРЖАНИЕ
Стр.
Введение
3
Эволюционная теория
4
Естественный отбор и генетическое наследование
4
Приложение генетической теории в математике
6
Генетические операторы
8
Пример построения и использования генетического алгоритма.
12
Задача коммивояжера
16
Программная реализация генетических алгоритмов
18
Заключение
21
Список использованных источников
22
3
ВВЕДЕНИЕ
Решение нелинейных многопараметрических уравнений и их систем,
нахождение максимума и минимума сложных функциональных зависимостей
требует разработки новых специализированных методов.
Самым
простым
является
перебор
всех
возможных
значений
параметров и переменных, удовлетворяющих условию задачи. Но это самый
трудоёмкий метод.
Для
функций
заданных
аналитическим
образом
существуют
аналитические и графические методы (не более трёх переменных). Широко
применяется метод последовательных приближений, метод Ньютона, метод
наикратчайшего спуска. Но для очень сложных функций (точечных,
многомодальных) получить решения этими способами бывает сложно и не
всегда возможно. Для этих функций применяются другие методы, например
Монте-Карло (случайного поиска), но он не гарантирует нахождение
решения. Одним из современных методов решения подобных задач являются
генетические алгоритмы.
Генетические алгоритмы – это имитация механизмов естественной
эволюции и популяционной генетики в поиске решений в многомерном
пространстве значений аргументов и параметров, поэтому терминология
метода заимствована из биологии.
4
ЭВОЛЮЦИОННАЯ ТЕОРИЯ
Зарождение генетики, как науки о механизмах наследственности и
изменчивости живых организмов в процессе их эволюционного развития
обязано учителю математики и биологии Грегори Менделю. Более чем
столетие спустя идеи генетики
стимулировали зарождение нового
направления в математике – генетические алгоритмы.
Эволюционная теория утверждает, что жизнь на нашей планете
возникла вначале лишь в простейших ее формах - в виде одноклеточных
организмов. Эти формы постепенно усложнялись, приспосабливаясь к
окружающей среде и порождая новые виды, и только через многие миллионы
лет появились первые животные и люди. Можно сказать, что каждый
биологический вид с течением времени улучшает свои качества так, чтобы
наиболее эффективно справляться с важнейшими задачами выживания,
самозащиты, размножения и т. д. Таким путем возникла защитная окраска у
многих рыб и насекомых, панцирь у черепахи, яд у скорпиона и многие
другие полезные приспособления.
С
помощью
эволюционных
механизмов
природа
постоянно
оптимизирует живой организм, находя подчас самые неординарные решения.
С первого взгляда неясно, за счет чего происходит этот прогресс, однако ему
есть научное объяснение. Дать это объяснение можно, основываясь всего на
двух биологических механизмах - естественного отбора и генетического
наследования.
ЕСТЕСТВЕННЫЙ ОТБОР И ГЕНЕТИЧЕСКОЕ НАСЛЕДОВАНИЕ
Ключевую роль в эволюционной теории играет естественный отбор.
Его суть состоит в том, что наиболее приспособленные особи лучше
выживают и приносят больше потомства, чем менее приспособленные.
Заметим, что сам по себе естественный отбор еще не обеспечивает развития
биологического вида. Действительно, если предположить, что все потомки
5
рождаются примерно одинаковыми, то различные поколения будут
отличаться только по численности, но не по приспособленности. Поэтому
очень важно изучить, каким образом происходит наследование, т. е. как
свойства потомка зависят от свойств родителей.
Основной закон наследования интуитивно понятен каждому - он
состоит в том, что потомки похожи на родителей. В частности, потомки
более приспособленных родителей будут, скорее всего, одними из наиболее
приспособленных в своем поколении. В процессе своего развития любой
организм подвергается воздействию не только признаков наследственности,
но и механизмов изменчивости. Согласно определению, данному ещё в 1859
г. великим английским натуралистом Чарльзом Дарвином в его известной
книге “Происхождение видов”, наследственность – это свойство организма
передавать свои признаки и особенности развития следующим поколениям.
Изменчивость – это свойство организмов приобретать новые признаки в
процессе индивидуального развития.
В современных представлениях реализация этих тенденций связана с
генетической теорией наследования. Почти в каждой клетке любого
животного имеется набор хромосом, несущих информацию об этом
животном.
Основная
часть
хромосомы
-
нить
ДНК
(молекула
дезоксирибонуклеиновой кислоты), которая состоит из четырех видов
специальных
соединений
-
нуклеотидов,
идущих
в
определенной
последовательности. Нуклеотиды обозначаются буквами A, T, C и G, и
именно порядок их следования кодирует все генетические свойства данного
организма. Другими словами, можно утверждать о том, что всё живое на
Земле подчиняется единому генетическому коду, описываемому алфавитом
из 4-х букв.
Ген - это отрезок цепи ДНК, отвечающий за определенное свойство
особи, например за цвет глаз, тип волос, цвет кожи и т. д. Вся совокупность
генетических признаков человека кодируется посредством примерно 60 тыс.
генов, суммарная длина которых составляет более 90 млн. нуклеотидов.
6
Поскольку
характеризуется
условия
жизнеобитания
существенным
разбросом
каждого
и
организма
действием
различных
возмущающих факторов, то это неизбежно сказывается на генетической
структуре молекулы ДНК, т. е. приводит к изменению генотипа организма.
Соответствующие изменения, происходящие в хромосомах под влиянием
факторов внешней или внутренней среды, называется мутациями.
Мутация – это важный фактор, влияющий на наследственность,
который выражается в изменении некоторых участков ДНК. Мутации
случайны и могут быть вызваны различными внешними факторами, такими
например, как радиоактивное облучение.
Если мутация произошла в половой клетке, то измененный ген может
передаться потомку и проявиться в новых свойствах потомка. Считается, что
именно мутации являются причиной появления новых биологических видов,
а кроссинговер определяет уже изменчивость внутри вида (например,
генетические различия между людьми). При мейозе парные хромосомы
клетки сближаются вплотную, затем их нити ДНК разрываются в нескольких
случайных местах и хромосомы обмениваются своими частями (рисунок 2).
Этот процесс обеспечивает появление новых вариантов хромосом и
носит название “кроссинговер”. Каждая из вновь появившихся хромосом
окажется затем внутри одной из половых клеток, и ее генетическая
информация может реализоваться в потомках данной особи.
ПРИЛОЖЕНИЕ ГЕНЕТИЧЕСКОЙ ТЕОРИИ В МАТЕМАТИКЕ
Естественный отбор гарантирует, что наиболее приспособленные особи
дадут
достаточно
большое
потомство,
а
благодаря
генетическому
наследованию мы можем быть уверены, что часть этого потомства не только
сохранит высокую приспособленность родителей, но будет обладать и
некоторыми новыми свойствами. Если эти новые свойства окажутся
полезными, то с большой вероятностью они перейдут и в следующее
7
поколение. Таким образом, происходит накопление полезных качеств и
постепенное повышение приспособляемости биологического вида в целом.
Зная, как решается задача оптимизации видов в природе, мы теперь
применим похожий метод для решения различных математических задач.
Представим себе искусственный мир, населенный множеством существ
(особей), причем каждое существо - это некоторое решение нашей задачи.
Будем
считать
особь
тем
более
приспособленной,
чем
лучше
соответствующее решение отвечает условиям задачи (чем большее значение
целевой функции оно дает). Тогда задача поиска наиболее приспособленного
существа сводится к максимизации целевой функции. Конечно, мы не можем
поселить в наш виртуальный мир все существа сразу, так как их очень много.
Вместо этого мы будем рассматривать много поколений, сменяющих друг
друга. Теперь, если мы сумеем ввести в действие естественный отбор и
генетическое наследование, то полученный мир будет подчиняться законам
эволюции.
Заметим,
что,
в
соответствии
с
нашим
определением
приспособленности, целью этой искусственной эволюции будет как раз
создание наилучших решений. Очевидно, эволюция - бесконечный процесс, в
ходе
которого
приспособленность
особей
постепенно
повышается.
Принудительно остановив этот процесс через достаточно долгое время после
его начала и выбрав наиболее приспособленную особь в текущем поколении,
мы получим не абсолютно точный, но близкий к оптимальному ответ.
Такова, вкратце, идея генетического алгоритма. Перейдем теперь к точным
определениям и опишем работу генетического алгоритма более детально.
Для того чтобы говорить о генетическом наследовании, нужно
снабдить
хромосома
наши
-
существа
это
хромосомами.
некоторый
числовой
В
генетическом
вектор,
алгоритме
соответствующий
подбираемому параметру, а набор хромосом данной особи определяет
решение задачи. Какие именно векторы следует рассматривать в конкретной
задаче, решает сам пользователь. Каждая из позиций вектора хромосомы
называется ген.
8
Определим теперь понятия, соответствующие отбору, мутации и
кроссинговеру в генетическом алгоритме.
ГЕНЕТИЧЕСКИЕ ОПЕРАТОРЫ
Отбор (selection)
В качестве метода отбора в стандартном генетическом алгоритме
используется так называемый метод “колеса рулетки”. При этом методе
отбора хромосомы – кандидаты из t-го поколения S(t) выбираются для
выживания в следующем (t+1)-м поколении S(t+1) путём использовании
колеса рулетки, где каждая хромосома si(t) в популяции представлена на
колесе в виде сектора, ширина которого пропорциональна соответствующему
значению функции пригодности f(si). Таким образом, те хромосомы , которые
имеют большую пригодность, соответствуют большому сектору на колесе, а
хромосомы с меньшей пригодностью – сравнительно малому сектору на
колесе рулетки.
Таблица 1 - Ширина сектора колеса рулетки
s1
Хромосома
si
10110
Пригодность
f(s1)
2,23
Относительная
пригодность fi
0,14
s2
11000
7,27
0,47
s3
11110
1,05
0,07
s4
01001
3,35
0,21
s5
00110
1,69
0,11
S(0)
Процедура отбора сводится к вращению колеса рулетки M раз и
принятием в качестве кандидатов в следующем поколении тех хромосом
которые будут выделены по завершению вращения.
9
3
5
2
1
4
Рисунок 1- Колесо рулетки
В определённых случаях используется метод селекции. Селекция –
оператор генетического алгоритма, реализующий принципы Ч.Дарвина
«Выживает наиболее приспособленный» («Survives the fittest»). Оценка
годности индивидов в родительской и дочерней популяциях производится
вычислением значения fitness функций f(s) всех хромосом, после чего
определяется средняя годность полученной популяции (fit):
fit 
 f s 
N
На этапе селекции оставляются в популяции индивиды, годность
которых больше средней по всей популяции:
f s   fit
Селекцией из получившегося множества родительских и дочерних
хромосом
формируется
новая
популяция
с
исходным
количеством
индивидов, с которыми процедура повторяется до тех пор, пока значение
функции пригодности лучшей хромосомы не останется в заданном
количестве поколений неизменной.
Кроссинговер (crossingover)
В литературе по генетическим алгоритмам также употребляется
название кроссовер или скрещивание - это операция, при которой из двух
10
хромосом порождается одна или несколько новых
хромосом. В
простейшем случае кроссинговер в генетическом алгоритме реализуется так
же, как и в биологии.
Дочерние особи
Родительские особи
Рисунок 2 - Кроссинговер
При этом хромосомы разрезаются в случайной точке и обмениваются
частями между собой. Например, если хромосомы (1, 2, 3, 4, 5) и (0, 0, 0, 0, 0)
разрезать между третьим и четвертым генами и обменять их части, то
получатся потомки (1, 2, 3, 0, 0) и (0, 0, 0, 4, 5).
Мутация (mutation)
Оператор
мутации
состоит
в
случайном
изменении
на
противоположное значения каждого бита с определённой вероятностью, т.е
для каждого бита (гена) хромосомы его значение меняется с 0 на 1, или с 1 на
0 с заданной вероятностью Pмут.
Рисунок 3 - Мутация
11
Допустим в качестве примера, что Pмут = 0.1 и хромосома
s =
{11100} должна подвергнутся мутации. Самый легкий способ для того чтобы
определить, какие биты (если это необходимо) требуется изменить, это
выбрать независимо случайное число rj[0,1] для каждого бита хромосомы.
Если окажется, что rj  Pмут, то j-й бит следует изменить, иначе значение j-го
бита сохраняется. Допустим, что для вышеприведённого вектора s получили
следующие случайные числа: r1=9.91, r2=0.43, r3=0.03, r4=0.67, r5=0.29. Тогда
результатом мутации является:
 до мутации:
11100;
 после мутации:11000,
т. е. изменённым оказался только 3-й бит.
Применяя отбор на основе метода колеса рулетки, очевидно, что только
хромосомы с пригодностью выше среднего будут претендовать на
выживание в успешных популяциях. Казалось бы почему бы просто не
удалить все хромосомы с функцией пригодности ниже среднего? Ответ
основан на допущении генетического поиска, согласно которой даже
хромосомы с низкой пригодностью могут содержать полезную частную
информацию для поиска. По этой причине, хотя они имеют малую
вероятность выживания, эти хромосомы не должны отбрасываться совсем во
время поиска.
Из перечисленных выше трёх операторов оператор кроссинговера
является наиболее критическим с точки зрения получения глобальных
результатов.
информации,
Кроссинговер
содержащейся
отвечает
в
прежде
хромосомах
всего
за
популяции.
смешивание
Исходя
из
эмпирических соображений было установлено, что наиболее приемлемыми
значениями вероятности кроссинговера являются: 0.6Pкр0.99.
В отличие от двух предыдущих операторов, которые используются для
улучшении структуры хромосом, целью оператора мутации является
диверсификация, т. е. повышения разнообразия поиска и введение новых
хромосом в популяцию для того, чтобы более полно исследовать
12
пространство поиска. Таким образом, мутация инициирует разнообразие в
популяции, позволяя просматривать больше точек в пространстве поиска и
преодолевать таким образом локальные экстремумы в ходе поиска.
Мутация, однако, представляет собой “обоюдоострый меч”. Слишком
частое применение мутации приводит к разрушению хромосом с высокой
приспособленностью в популяции, что влияет на сходимость решения.
Именно поэтому применение мутации обычно осуществляется с малой
вероятностью порядка 0.001Pмут0.01.
Цикл функционирования генетического алгоритма в рамках одного
поколения особей в популяции приведена на рисунке 4.
Создание
Мутация
начальной
Кроссинговер
популяции
Вычисление
функции
пригодности
Отбор
Ответ
Рисунок 4 - Блок-схема поиска оптимальных решений
ПРИМЕР ПОСТРОЕНИЯ И ИСПОЛЬЗОВАНИЯ ГЕНЕТИЧЕСКОГО АЛГОРИТМА
Рассмотрим далее следующий пример. Допустим, что требуется найти
глобальный минимум функции
y=x-sin(1/x)
на отрезке x[0.05;0.5].
График данной функции приведён на рисунке 5. Поскольку множество
поиска в данном случае представляет собой отрезок [0.05;0.5] на
вещественной оси, то для перехода к множеству двоичных хромосом
13
требуется кодирование переменной x по определённому правилу. Будем
полагать, что множество пространства поиска состоит из 8-битовых
хромосом, т. е. n=8, а декодирующее преобразование задаётся формулой
d (s)
(0.5  0.05),
26  1
V ( s )  0.05 
где d(s) – обычное десятичное представление 8-битовой двоичной
хромосомы.
Например, десятичное представление s={00000011} – это 3, тогда
V(00000011)=0.055; а границы отрезка V[0.05;0.5] отображаются
следующим образом: V(00000000)=0.05 и V(11111111)=0.5.
В качестве функции пригодности F(s) будем рассматривать функцию
F(s)=sin(1/x)-x.
При этом учитывается, что минимум функции y(x) соответствует
максимуму функции F(s).
1.213
y
2
Максимум
функции
1.213
1
y( x)
0
Минимум
функции
 0.929
-0.9251
0.05
0.05
0.1
x
0.2
0.3
x
Рисунок 5 - График функции
0.4
0.5
0.5
14
Прежде всего необходимо выбрать значения Pкр и Pмут в диапазонах
0.6Pкр0.99 и 0.001Pмут0.01 соответственно. Как показывают результаты
исследований, число M (т. е. количество хромосом) можно выбирать, исходя
из следующих рекомендаций: nM2n.
Кроме выбора этих параметров, требуется задать также некоторый
критерий остановки или сходимости процедуры генетического алгоритма.
Хотя в принципе для этой цели могут использоваться различные критерии,
ниже в качестве этого критерия воспользуемся условием, когда в популяции
явно доминирует одна хромосома. В данном случае считается, что
сходимость достигнута, если не менее 90% хромосом в популяции
совпадают, т. е. имеют один и тот же вид.
Пусть M=10; Pкр=0.8;
Pмут=0.01. Тогда, как уже отмечалось,
использование генетических алгоритмов для максимизации F(s) сводится к
генерированию начальной популяции хромосом S(0), а затем – к
последовательному
применению
генетических
операторов
отбора,
кроссинговера и мутации до тех пор, пока не будет достигнута сходимость
процесса поиска. Результаты моделирования генетических алгоритмов,
включающие список популяций для 4-х последовательных поколений
хромосом, приведён в таблице 2
Как видно из таблицы после 4-х итераций в популяции доминирует
хромосома
s=00001100.
параметра x=0.071.
Ей
соответствует
декодированное
значение
15
Таблица 2 - Результат работы генетического алгоритма
Время
Популяция
(t)
S (t)
t=0
t=1
t=2
t=3
Количество
хромосом
Декодированное
значение
MS
V (s)
Значение
функции
F (s)
11001011
1
0,408
-0,230
11111101
1
0,496
-0,407
01111101
1
0,271
0,797
01100001
1
0,221
1,203
00111111
1
0,274
0,240
11011111
1
0,444
-0,332
00010110
1
0,089
1,055
01000010
1
0,166
0,439
10100010
1
0,336
0,172
10011001
1
0,320
0,303
00101111
4
0,133
-0,812
11111111
2
0,500
-0,409
11111110
2
0,498
-0,408
11111101
1
0,496
-0,407
00100111
1
0,119
-0,727
00001100
5
0,071
-0,925
00101100
1
0,128
-0,872
00001011
3
0,069
-0,894
00100111
1
0,119
-0,727
00001100
9
0,071
-0,925
00001011
1
0,069
-0,894
16
ЗАДАЧА КОММИВОЯЖЕРА
Выше была изложена лишь общая схема, объясняющая принцип
работы стандартного генетического алгоритма. Существует огромное
количество различных
вариантов построения генетических алгоритмов,
отличающихся особенностями реализации, эффективностью применения,
учётом специфики решаемых задач. Рассмотрим некоторые из них на
примере задачи оптимизации.
Задачи оптимизации - наиболее распространенный и важный для
практики класс задач. Их приходится решать каждому из нас либо в быту,
распределяя свое время между различными делами, либо на работе,
добиваясь максимальной скорости работы программы или максимальной
доходности компании - в зависимости от должности. Среди этих задач есть
решаемые простым путем, но есть и такие, точное решение которых найти
практически невозможно.
Классический
пример
такой
задачи,
известный
как
“задача
коммивояжера” (Traveling Salesman Problem, TSP), формулируется так:
коммивояжеру требуется объехать несколько городов, побывав в каждом
один раз, и вернуться в исходную точку. Нужно найти кратчайший маршрут.
Самый простой способ найти оптимальное решение - перебрать все
возможные значения параметров. При этом не нужно делать никаких
предположений о свойствах целевой функции, а задать ее можно просто с
помощью таблицы. Однако, чтобы решить таким способом задачу
коммивояжера хотя бы для 20 городов, потребуется перебрать около 10 19
маршрутов, что совершенно нереально ни для какого вычислительного
центра. Таким образом, возникает необходимость в каком-либо новом методе
оптимизации, пригодном для практики.
Чтобы использовать генетический алгоритм для решения практических
задач, необходимо рассматривать более сложные варианты введенных выше
понятий. Поясним это на примере задачи коммивояжера для 20 городов. В
17
качестве
индивидуумов
будем
рассматривать
маршруты
обхода.
Информацию о маршруте можно записать в виде одной хромосомы - вектора
длины 20, где в первой позиции стоит номер первого города на пути
следования, затем - номер второго города и т. д. Первое затруднение
возникает, когда мы пытаемся определить мутации для таких хромосом стандартная
операция,
изменяющая
только
одну
позицию
вектора,
недопустима, так как приводит к некорректному маршруту. Но можно
определить мутацию как перестановку значений двух случайно выбранных
генов (рисунок 3). При таком преобразовании путь следования меняется
только в двух городах.
По условию задачи в рассматриваемых хромосомах каждый ген (номер
города) должен встречаться только один раз. Такая разновидность хромосом
называется “перечислимые хромосомы с уникальными генами” и часто
используется в комбинаторных задачах. Стандартная операция скрещивания
для этого типа хромосом опять же некорректна, поэтому здесь используется
более сложная схема двухточечного скрещивания.
На рисунке 6 изображен результат работы генетического алгоритма в
задаче коммивояжера (использована демонстрационная программа к пакету
GeneHunter).
Расположение 20 городов
Рисунок 6 - Кратчайший маршрут, найденный генетическим
алгоритмом
18
Найденный маршрут, вероятно, не является самым оптимальным, но
близок к нему по длине - как правило, генетические алгоритмы “ошибаются”
не более чем на 2-3%. Этот недостаток компенсируется для комбинаторных
задач относительно высокой скоростью работы - в нашем примере ответ был
получен за 15 секунд. На практике генетические алгоритмы нередко
используют совместно с другими методами, которые позволяют повысить их
точность.
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ
Программную реализацию генетического алгоритма можно найти в
следующих пакетах прикладных программ:
Genesis - один из наиболее распространенных пакетов прикладных
программ,
реализующих
ГА,
написанный
на
языке
Си
Джоном
Грефенштетте. Данный пакет оказал значительное стимулирующее влияние
на разработку приложений ГА и породил ряд последующих его версий
(расширений): GENEsYs, PARAGenesis, GAs и др.;
Genitor – пакет, имеющий модульную структуру, позволяет работать с
данными в виде чисел с плавающей запятой, целых чисел или двоичных
кодов, допускает использование многоточечных операторов кроссинговера,
моделирование поведения субпопуляций, т.е. групп близких по своему
составу индивидуумов внутри популяции и т.д.;
SGA-C - написанное на языке Си расширение первоначального пакета
Simple Genetic Algorithm (SGA), приведенного на языке Паскаль в
приложении к книге Давида Гольдберга;
Splicer - пакет прикладных программ ГА, созданный по заказу Центра
космических исследований NASA. Поддерживает дружественный интерфейс
со встроенной библиотекой стандартных подпрограмм, предоставляя
пользователю возможность выбора различных вариантов кодирования
данных, представления функций пригодности, генерирования начальной
19
популяции, задания вида и параметров генетических операций (метода
отбора, кроссинговера, мутаций), графического отображения основных
этапов реализации ГА;
GALOPPS - (Genetic Algorithm Optimized for Portability and Parallelism) универсальный пакет программ для реализации ГА на языке Си, имеющий ту
же структуру, что и SGA. Пользователь имеет возможность выбрать: тип и
размерность задачи (изменение характера данных); один из 7 возможных
вариантов выполнения кроссинговера и 4 вариантов мутации (или же
предложить свой вариант); один из 6 методов отбора; требуемые значения
вероятностей при реализации генетических операторов; критерии останова и
т.д. Пакет GALOPPS предусматривает также возможность различного
представления данных в каждой субпопуляции, контроля за процессами
генерации потомков, отбора элитных индивидуумов и др.;
Genie - пакет программ для решения задач моделирования и
прогнозирования на основе ГА. Используя данный пакет, можно построить
модель окружающей среды и затем оценить влияние различных факторов
(возмущений)
на
изменение
состояния
этой
среды,
в
том
числе,
спрогнозировать такие необходимые воздействия на среду, которые приведут
к достижению желаемого ее состояния в будущем;
Matlab - GAOT (Genetic Algorithm Optimization Toolbox) - пакет
программ многопараметрической оптимизации, позволяющий использовать
стандартный ГА в среде Matlab 5.x. Оптимизируемая функция оформляется в
виде отдельного файла. В число основных настраиваемых параметров ГА
входят: размер популяции, вероятности реализации операторов ГА,
максимальное количество поколений и т.д. Мощные средства Matlab
позволяют визуально контролировать процесс оптимизации.
Имеется значительное число пакетов и демонстрационных программ,
предназначенных
для
функционирования
ГА,
решения
визуализации
задач,
изучения
процесса
поиска
особенностей
оптимальных
20
решений (нередко, в игровой форме) - BUGS, ComputerAnts, Dougal,
GAMusic, PGA, GA Workbench и др.
21
ЗАКЛЮЧЕНИЕ
Основные преимущества генетических алгоритмов - параллельность
процесса поиска; вовлечение в соответствующую процедуру сразу большего
числа
индивидуумов
(кандидатов
на
решение)
и
большего
числа
исследуемых областей пространства поиска. В отличие от обычных методов
оптимизации, здесь не предъявляется каких-либо особых требований к
целевой функции (т. е. функции пригодности); не требуется информации о её
градиенте; функции могут быть любой сложности. Метод обеспечивает
нахождение приближённо оптимального глобального решения задачи, не
встречая затруднений при решении проблемы локальных экстремумов.
В силу указанных достоинств, генетические алгоритмы находят всё
более
широкое
нетрадиционные
применение
задачи
в
различных
оптимального
приложениях,
управления
включая
сложными
динамическими объектами. Как показывают исследования, выполненные
многими авторами, эффективность применения генетических алгоритмов
значительно возрастает в случае их комбинированного использования с
другими методами искусственного интеллекта.
22
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1.
Васильев
В.И.,
Ильясов
Б.Г.
Интеллектуальные
системы
с
использованием нечеткой логики. Учебное пособие. Уфа: УГАТУ, 1995. –
101 с.
2. Тимофей Струнков. Что такое генетические алгоритмы. PC Week RE,
1999.
3. Береснев В. Л., Гимади Э. Х., Дементьев В. Т. Экстремальные задачи
стандартизации. Новосибирск: Наука, 1978.
4. Гэри В., Джонсон Д. Вычислительные машины и труднорешаемые
задачи. М.: Мир, 1982.
5. Таунсенд К., Фохт Д. Проектирование и программная реализация
экспертных систем на персональных ЭВМ: Пер с англ. – М.: Финансы и
статистика, 1990. – 320 с. ил.
Скачать