Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы теории эволюционных вычислений. Научная монография

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
сравниваются и обмениваются информацией друг с другом. Поэтому эволюционные вычисления способны выдать фантастический скачок производительности по сравнению со случайным поиском и «перемолоть» самые трудные задачи. Казалось бы, типичное случайное решение в среднем ничего интересного из себя не представляет, и эффективность его крайне низка. Но стоит только множеству решений в процессе эволюционных вычислений начать взаимодействовать между собой, как хорошее решение быстро появляется и прогрессирует.
Конечно, ход естественной эволюции гораздо сложнее и эффективнее, нежели любой эволюционный алгоритм. Тем не менее, эволюционный алгоритм может находить эффективные решения в самых разных областях, когда даже неизвестно, как искать правильное решение. В пользу эволюционных вычислений говорит то обстоятельство, что жизнь на Земле (и разум), вероятно, появилась именно по таким принципам [Вернадский, 2006; Дарвин, 2003]. Эволюционные вычисления становятся ещё более эффективными, если популяция решений и операторы, их преобразующие, учитывают внешние данные и внутреннее состояние системы в текущий момент. Поскольку оценка и принятие решений при эволюционных вычислениях производятся на каждом шаге эволюции, то это выгодно отличает их от процедурных алгоритмов поиска оптимального решения.
Несмотря на кажущуюся хаотичность, процедура эволюционного поиска является очень устойчивой. Главное, чтобы у нас был хоть какой-то критерий оценки качества получаемых решений, т.е. признак, на основании которого производится сравнительная оценка возможных решений и выбор наилучшего. Этого достаточно, чтобы эволюционный алгоритм заработал. Для реальных практических задач такой критерий обычно имеется.
Оценка решений в процессе эволюционных вычислений должна быть кумулятивной, т.е. накапливаться, давая каждому
11
решению некоторую отсрочку, чтобы эволюционировать. Хорошие решения в ходе эволюции обычно с большей вероятностью клонируются. Эта особенность любой разновидности эволюционных вычислений.
Разновидностями моделей эволюционных вычислений являются модели поведения роя, модели отжига, табуированного поиска, меметики и некоторые другие. Предлагаемая таксономия является обобщением существующих разновидностей эволюционных вычислений, инспирированных природными системами, включает алгоритмы Монте-Карло, эволюционные алгоритмы, алгоритмы меметики, гармоничного поиска, роевого интеллекта (колонии муравьев, стаи птиц, пчелиного роя) и др.
Алгоритмы Монте-Карло представляют собой общее название группы численных методов, основанных на получении большого числа реализаций случайного процесса, который формируется таким образом, чтобы его вероятностные характеристики совпадали с аналогичными величинами решаемой задачи. Они используются для решения разнообразных задач в областях физики, математики, экономики, оптимизации, теории управления и включают в себя моделирование отжига, табуированный поиск, пороговые и потоковые алгоритмы, алгоритмы рекордных оценок, слепой случайный поиск и др.
Эволюционные алгоритмы также представляют собой общее название группы методов, которые моделируют базовые
положения теории биологической эволюции − процессы отбора, мутации и воспроизводства. Согласно этой теории поведение особей, множество которых принято называть популяцией, определяется окружающей средой, правилами отбора в соответствии с целевой функцией пригодности, причём размножаются только наиболее пригодные виды, а рекомбинация и мутация позволяют особям изменяться и приспособляться к среде. К таким алгоритмам с адаптивным поисковым механизмом относятся генетические алгоритмы, генетическое
12
программирование, эволюционные стратегии и эволюционное программирование.
Алгоритмы меметики представляют собой подход к эволюционным моделям передачи информации, который основывается на концепции мемов, рассматривающей идеи как единицы культурной информации, распространяемые между людьми посредством имитации, обучения и др.
Алгоритмы гармоничного поиска также основаны на универсальных законах природных систем, характеризуют их структурную организацию и включают метод золотого сечения, Фибоначчи и некоторые другие.
Алгоритмы роевого (группового) интеллекта основаны на моделировании поведения социальных насекомых (муравьев, птиц, пчёл). Они в отличие от людей обходятся без руководящего центра, причём групповой интеллект роя часто превосходит умственные способности одной особи и позволяет решать задачи, немыслимые для одной особи: находить кратчайший путь к источнику пищи, распределять обязанности, защищать территорию, строить, собирать ресурсы и т.п.
Эволюционные вычисления пока не включают модели и системы, которые, возможно, являются биологически более реалистичными, но которые не оказались полезными в прикладном смысле. Речь идет о системах так называемой искусственной жизни (термин чаще всего применяется к компьютерному моделированию жизненных процессов). Они больше похожи на биологические системы и менее направлены на решение технических задач, они обладают сложным и интересным поведением, и, видимо, в будущем получат практическое применение [Редько, 2005].
Классификационная схема (таксономия) существующих разновидностей эволюционных вычислений, инспирированных природными системами, имеет вид, представленный на рис. 1.
13
поиска
классификаторы
программирование
прогр
аммирование
Мягкие
вычисления
Вычислительный
интеллект
ЭВОЛЮЦИОННЫЕ ВЫЧИСЛЕНИЯ
Искусственный
интеллект
Алгоритмы Монте-Карло
Моделирование отжига
Табуированный поиск
Пороговые алгоритмы
Потоковые алгоритмы
Алгоритмы рекордов
……………….
Случайный поиск
Генетические алгоритмы
Обучающие
Эволюционное
Эволюционные стратегии
Генетическое
Эволюционные
алгоритмы
Алгоритмы
меметики
Алгоритмы
гармонич-
ного
Алгоритмы
роевого
интеллекта
Рис. 1. Классификационная схема (таксономия) эволюционных
вычислений
В свою очередь, эволюционные вычисления являются основой научных направлений, называемых «мягкие вычисления» и «вычислительный интеллект», сформировавшихся в последние 20 лет, и включающих также нечеткую логику, искусственные нейронные сети и ряд примыкающих дисциплин.
1.2. Модель генетических алгоритмов
Д. Холланд для объяснения механизмов адаптации систем предложил использовать так называемые репродуктивные планы, которые в дальнейшем стали называть генетическими алгоритмами (ГА), поскольку они были основаны на идеях биологической эволюции, инспирированных природными
14
системами [Holland, 1975]. В настоящее время развитие ГА, как разновидности ЭВ, идёт по пути непрерывного усложнения их поведения, когда главным становится смысловое содержание параметров управления эволюцией [Гладков, 2006].
Формализуем модель генетических алгоритмов.
Формализованная модель генетических алгоритмов
включает следующую систему отношений, имитирующих эволюцию исследуемого объекта [Родзин, 2005]. ГА работает с множеством (популяцией) искусственных хромосом (индивиды или стринги). Каждая хромосома ā состоит из L бит (генов):
ā = (а
, а2, … аL), где а
1
∈
{0, 1} − аллель. Хромосомы могут
i
состоять из n отдельных сегментов (n ≤ L), каждому из которых может соответствовать некоторая переменная в рассматриваемой задаче. Сегмент j (j = 1, 2,…, n) содержит при двоичном способе кодирования значение переменной, причем длина сегментов может различаться.
Предположим, что в рассматриваемой задаче необходимо
максимизировать целевую функцию F(Ū), где Ū = (u
, u2,…, un ) –
1
переменные, от которых зависит функция. При двоичном кодировании стринги имеют конечную длину, так как каждая переменная uj (j = 1, 2,…, n) принимает значения в интервале
[u
jmin
, u
], что делает пространство поиска решения
jmax
ограниченным, т.е.
n
maxmin
1
=
j
jj
+
→∏RuuF
,],[:
где R+ - множество положительных вещественных чисел. Тогда при заданной функции декодирования вида
L
n
→Γ
∏
=
j
1
uu
],[}1,0{:
jj
maxmin
можно получить декодируемое значение переменной ū = Г(ā) из двоичного стринга.
Действительно, рассмотрим j-й сегмент. Его длина в битах
равна Lj, он кодирует переменную uj. Обозначим через ajz бит с
15
номером z (z = 1, 2,…, L
), принадлежащий j-ому сегменту
j
стринга. Тогда декодирование происходит следующим образом:
L
uu
−
minmax
),...,(
uaaГ
+=
min1 j
jjLjj
j
jj
L
j
12
−
   
∑
z
=
j
1
( )
zLj
+−
j
1
z
−
,2
ua
⋅⋅
1
=
 
при этом вещественные числа в двоичном коде можно представить с ограниченной точностью. Например, для двоичного представления вещественных переменных в интервале
−1≤ u ≤2 с шагом 0,1 требуется не менее L = 5 бит. Числу u = −1 будет соответствовать стринг 00000, числу u = 2 – стринг 11111, а стрингу а1а2а3а4а5 = 11001 будет соответствовать декодируемое значение:
−−
1
+−=
5
au
∑
12
−
=
z
15
+−
z
1
1
−
z
⋅⋅
 
3
12
.4,125
≈⋅+−=
31
5
)1(2
В ГА это служит одной из причин того, что при поиске оптимального значения функций от вещественных переменных оптимум достигается лишь приблизительно.
Таким образом, формализованная модель ГА включает в себя следующие элементы:
− инициализация. Случайно генерируется исходная популяция Р(t = 0), состоящая из µ хромосом āi (i = 1, 2,…, µ), где обычно 30≤ µ ≤500. Это означает, что двоичные значения битов отдельных хромосом, входящих в популяцию, устанавливаются равновероятно и независимо друг от друга;
− оценка хромосом, которая необходима для оценки качества хромосом, входящих в популяцию и последующей их селекции. Хромосомы декодируются, и оценивается их функция качества (фитнесс-функция) Ф, исходя из целевой функции F и функции декодирования Г: Ф(āi) = F◦Г(āi);
− стохастическая селекция и репликация. Вычисляется вероятность селекции хромосомы āi∈Р
µ
ΦΦ=
1∑=
j
.)(/)()(
aaap
jiiS
16
Это пропорциональная (не дискриминационная или рулеточная) селекция, так как все родительские хромосомы имеют отличную от 0 вероятность потенциального участия в производстве потомков. Выбранная таким образом хромосома копируется в первоначально пустой список родителей, предназначенных для производства потомства. Селекция проводится µ раз, при этом математическое ожидание того, как часто хромосома ā
выбирается в качестве родительской
i
хромосомы, равно µ◦ps(āi). Результатом является список родительских хромосом;
− генерация потомков, когда, например µ/2 раз,
производятся следующие действия:
1)
случайный выбор с вероятностью 1/µ пары партнеров ā1 и ā2 для кроссинговера (скрещивания) и мутации;
2)
кроссинговер. В ГА обычно применяется одноточечный оператор кроссинговера с вероятностью рк. Например, из двух родителей вида 00│000 и 11│111 образуются два потомка вида 00111 и 11000, где символ
«│» обозначает точку скрещивания;
3)
мутация. В ГА обычно применяется оператор мутации с вероятностью рm от 0,01 до 0,001. Например, из родителя вида 01│011 образуется потомок вида
00111;
4)
оценка потомков Ф(āi') = F(Г(āi')) и формирование новой популяции путем выбора µ лучших хромосом.
− переход на пункт 3 до тех пор, пока не будет выполняться
условие останова алгоритма (заданное число шагов эволюции
t
, качество решения, время работы алгоритма и т.п.).
max
Представим нотацию формализованной модели ГА на
псевдокоде, который имеет следующий вид:
выбор параметров ГА (µ, u
jmin
, u
, L, рк, рm);
jmax
t:=0;
17
инициализация ā
∈
(i = 1, 2,…, µ)→Р(t);
i
определение Ф(āi) для всех ā
i
Р(t);
repeat t: = t+1 ;
Р(t): = Ø ; Р(t)
: = Ø;
раб
for i = 1 to µ begin
стохастическая селекция хромосом из Р(t−1) с вероятностью ps(āi); репликация Р(t)
: = Р(t)
раб
раб∪ āi
;
end for i = 1 to µ/2 begin
стохастическая селекция двух хромосом из множества
Р(t)
с вероятностью ps = 1/µ;
раб
кроссинговер выбранной пары с вероятностью рк ; мутация выбранной пары с вероятностью рm ; определение функции качества Ф полученных потомков; формирование популяции Р(t) из лучших потомков и родителей;
end
проверка условий останова алгоритма.
С целью упрощения можно использовать следующее представление формализованной модели генетического алгоритма [Гладков, 2009]:
ГА = (P где P
o
- исходная популяция хромосом (альтернативных
i
решений), P
o
, N, P
i
, T, Lj, A, (ЦФ, ОГР, ГУ), ГО, t),
iT,k
o
= (P
i
io1
, P
,…, P
io2
), P
ion
io1
∈
o
P
– хромосома
i
(альтернативное решение), принадлежащая i-й исходной популяции; N – мощность популяции, т.е. число входящих в нее
хромосом, N = |P
T
i
|; P
iTk
∈
T
P
– k-я хромосома, принадлежащая i-й
i
популяции, находящейся в T поколении эволюции (иногда число
18
поколений связывают с числом генераций генетического алгоритма, обозначаемых буквой G); L
– длина i-й хромосомы
j
(альтернативного решения), т.е. число генов (элементов, входящих в закодированное решение, представленное в заданном алфавите) (например, |P
T
| = Lj, A – произвольный абстрактный
i
алфавит, в котором, кодируются хромосомы); ЦФ, ОГР, ГУ – целевая функция, ограничения и граничные условия, которые определяются на основе модели ЭВ; ГО – генетические операторы; t – критерий окончания работы ГА.
1.3. Модель генетического программирования
Проблемы компьютерного синтеза программ стали одним из направлений искусственного интеллекта примерно в конце 50­х годов. Первые попытки автоматизации программирования привели к достаточно скромным результатам, что вполне объяснимо тогдашним состоянием компьютерной техники. Начиная с середины 80-х годов, интерес исследователей к данной проблематике резко возрос благодаря работам по ГП, представленным в рамках первой и последующих международных конференций по ЭВ. Наиболее значительными следует признать работы Д. Коза [Koza, 1992].
Формализуем модель генетического программирования.
Формализованная модель генетического программирования включает следующую систему отношений,
имитирующих эволюцию исследуемого объекта, которым является программа. Поскольку ГП ориентировано в основном на решение задач автоматического синтеза программ на основе обучающих данных путем индуктивного вывода, то хромосомы или структуры ГП являются математическими выражениями, представляющими компьютерные программы различной величины и сложности. Эти программы автоматически генерируются с помощью генетических операторов, имеют древовидную структуру, узлами которой являются функции, переменные и константы. Исходная популяция P(0) хромосом в
19
ГП образуется случайно и состоит из программ, которые включают в себя элементы множества проблемно­ориентированных элементарных функций (function set), а также проблемно-ориентированные переменные и константы (terminal set). Множества function set и terminal set являются основой для эволюционного синтеза программы, способной наилучшим образом решать поставленную задачу. Одновременно устанавливаются правила выбора элементов из указанных множеств в пространстве всех потенциально синтезируемых программ. Множества terminal set и function set, а также правила их обработки оказывают серьезное влияние на размерность пространства поиска наилучшего решения и на качество результатов, получаемых алгоритмом ГП.
Для описания древовидных структур обычно применяется язык Лисп, обладающий для этого всеми необходимыми свойствами:
• Лисп является синтаксически простым функциональным языком, программа на котором представляет собой рекурсивную функцию символьных выражений, состоящих из элементарных функций, условных операторов и операторов суперпозиции;
• обработка данных в программе на Лисп сводится к объединению, делению и перегруппировке информации;
• языковые конструкции Лисп представляются древовидной структурой, форма и величина которой может динамически изменяться.
Однако применение ГП нельзя связывать лишь с языком Лисп, немало примеров, когда для целей ГП применяются другие языки, например C, Smalltalk, C++.
Настройка модели ГП предусматривает выполнение следующих действий:
• установка множества terminal set;
• установка множества function set;
• определение подходящего вида функции качества;
• установка параметров эволюции;
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]