5.2.4.       Схема работы

Модель ПГА выполняет итерации, включающие расшифровку битовой строки и расчет значения функций пригодности для всех особей, воспроизведение, скрещивание и мутацию. Отдельный блок предназначен для гене-

радии первого поколения. В рассматриваемом примере программа заканчивает работу, сгенерировав заданное число поколений (задается константой Кол и чество_ поколений).

Для описания ПГА использовано 12 продукционных правил. Каждый блок, кроме блока скрещивания, реализован двумя правилами, блок скрещивания — тремя. Еще одно правило добавлено для уничтожения старых поколений по мере генерации новых, что позволяет уменьшить время вычислений. Это последнее правило записано так, что всегда сохраняются несколько последних поколений для возможного детального анализа эволюции популяции (количество сохраняемых поколений задается константой Скол ько_поколений_хра нить).

В каждом блоке, описанном двумя правилами, одно правило реализует собственно действия данного блока над очередной особью, а. другое переключает режим работы ПГА, если действия данного блока произведены над всеми особями. В блоке скрещивания используется та же схема, но основное действие блока реализуется двумя правилами.

Для реализации общего цикла ПГА и циклов по особям внутри каждого блока используются два параметра ресурса Система, а. именно — Режим и Счетчик. Рассмотрим эту схему подробнее на примере блока генерации первого поколения. В начальный момент значение параметра Счетчик равно нулю, параметра Режим — Инициализация. Правило Генерация _первой_популяции создает одну за другой особи первого поколения. Чтобы это правило применялось, необходимо одновременное выполнение трех условий:

•    текущий номер поколения должен быть меньше или равен заданному количеству поколений (это условие присутствует почти во всех правилах и введено для остановки ПГА, когда сгенерировано требуемое количество поколений; остановка происходит потому, что ни одно правило не может быть применено, когда текущий номер поколения превысил требуемое количество поколений);

•    текущий режим работы ПГА должен быть равен Инициализация;

•    значение параметра Счетчик должно быть меньше заданного размера поколения, это говорит о том, что еще не все особи первого поколения сгенерированы:

Choice from Общи й.Номер_ поколения <= Кол и чество_ покол ен и й and Общий.Режим = Инициализация and Общий.Счетчик < 0бщий.Размер_поколения

Здесь Общий — это имя релевантного ресурса для ресурса Система (это имя используется во всех правилах).

В конверторе правила значение параметра Счетчик увеличивается на 1.

Это правило применяется по следовательно до тех пор, пока не перестанет выполняться третья часть предусловия, т. е. пока значение параметра Система.Счетчик не станет больше или равно значению параметра Систе- ма.Размер_поколения. Таким образом будет создано нужное количество особей первого поколения.

Предусловие второго правила блока генерации первого поколения Конец^ генерации _первого_ поколения отличается только тем, что значение параметра Счетчик должно быть равно заданному размеру поколения, это говорит о том, что все особи первого поколения сгенерированы:

Choice from Общи й.Номер_ поколения <= Кол и чество_ поколений and Общий.Режим = Инициализация and Общий.Счетчик = Общи й.Размер_ поколения

В конверторе этого правила параметр Система.Счетчик обнуляется, и значение параметра Систем а. Режим устанавливается равным Расшифров- ка_и_расчет_ФП (ПГА переходит к блоку расшифровки битовой строки- хромосомы и расчета функции пригодности). Заметим, что здесь рассмотрены не все действия, выполняемые правилами блока генерации первого поколения, а. лишь часть, связанная с организацией вычислений.

В общем случае правила, выполняющие основные функции блоков, увеличивают значение счетчика особей и применяются до тех пор, пока значение счетчика не станет равным заданному количеству особей в поколении. Правила, заканчивающие текущий блок, обнуляют параметр Счетчик для его корректного использования в следующем блоке и изменяют режим, после чего начинают выполняться условия применимости

правил другого блока. Параметр С и схема. Режим может принимать пять значений, каждое из которых соответствует блоку ПГА: «Инициализация», «Расшифровка и расчет ФП», «Воспроизведение», «Скрещивание», «Мутация». Структурная схема ПГА с указанием имен правил (образцов) и режимов приведена на рисунке (рис. 5.7).