Изучение пакета Genetic Algorithm из системы Matlab 7.01 (Лабораторная работа № 7), страница 2

·  Генерации  -  алгоритм  достиг  установленного  числа  генераций.

·  Время  -  алгоритм  запускается  на  определенный  временной  интервал  (в  секундах).

·  Предел  фитнесс-функции  -  лучшая  величина  фитнесс -функции  меньше  или  равно  определенного (-му)  значения (-ю).

·  Остановка  генераций  -  алгоритм  вычисляет  определенное  число  генераций  и  останавливается,  если  не  происходит улучшения  фитнесс-функции.

·  Остановка  времени  -  алгоритм  выполняется  некоторый  интервал  времени и  останавливается,  если  не  происходит улучшения  фитнесс-функции.

В  рассматриваемом  примере  критерии  остановки,  указанные  в  правой   части  панели,  приведены  на  рис.4.

Рис.4. Критерии остановки  ГА  (Обозначение  Inf  определяет  бесконечно  большое число)

          5.  Графические  изображения

          Панель  графиков,  расположенная  ниже  первых  двух  строк,  позволяет  отобразить  различные  графики  результатов  ГА  (см. рис.5).

Рис.5. Панель  графиков

          Опишем  различные  возможности  графических  отображений:

·  Best fitness (@gaplotbestf)  отображает  лучшее  значение  функции  в  зависимости  от  номера  генерации.

·  Expectation (@gaplotexpectation)  показывает  ожидаемое  число  потомков  в  зависимости  от  значения  функции  при  каждой генерации.

·  Score diversity (@gaplotscorediversity)  определяет  гистограмму  значений функции  на  каждой генерации.

·  Stopping (@plotstopping)  показывает  уровни  критериев  остановки.

·   Best individual (@gaplotbestindiv)  отображает  значение  особи  с  лучшим  значением  ФФ  на  каждой  генерации.

·  Genealogy (@gaplotgenealogy)  определяет  генеалогию  особей.  Линии  от  одной  генерации  к  следующей  окрашены  разными  цветами:  красные  линии  обозначают  потомков  после  мутации;  голубые  линии  -  потомков после  скрещивания;  черные  -  элитные  особи.

·  Scores (@gaplotscores)  отображает  значение  особи  на  каждой  генерации.

·  Distance (@gaplotdistance)  показывает среднее  расстояние  между  особями  на  каждой  генерации.

·   Range (@gaplotrange)  дает  минимальное,  максимальное  и  среднее  значения  ФФ  при  каждой   генерации.

·  Selection (@gaplotselection)  отображает гистограмму  родителей.

·  Custom function  позволяет  использовать  графики  функций  по  собственному  выбору.

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

6. Установка  опций  в генетическом  алгоритме

Опции  популяций  позволяют  определить  параметры  популяции,  которые  использует ГА.

·  Populationtype (PopulationType)  (Тип  популяции)  -  определяет  тип данных  для  входа  в  фитнесс-функцию.  Могут  быть  указаны  следующие  типы:

- DoubleVector ('doubleVector')  (Двойной  вектор) – этот  тип данных  применяется, если  особи  в популяции  имеют  тип double.

- Bitstring ('bitstring')  (Битовая строка)   –  применяется, если особи представляют  собой  битовые  строки.

- Custom ('custom')  (Обычный)  - используется   для  создания  популяции,  чей  тип  данных  не является  ни  одним  из  предыдущих.   

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

·  Populationsize (PopulationSize)  (Размер  популяции)  - определяет  число  особей  в  каждой генерации.  При  большом  размере  популяции  ГА  исследует  пространство  решений  более  полно,  снижая тем  самым  вероятность того,  что  алгоритм  найдет локальный минимум  вместо   глобального.  Однако  большой  размер  популяции  приводит  к  более  медленной  работе  ГА.  

·  Creationfunction (CreationFcn)  (Функция  генерации)  -  определяет функцию,  которая  создает  начальную  популяцию  для  ГА. Могут  быть выбраны следующие  типы:

- Uniform (@gacreationuniform)  (Равномерная)  -  создает начальную  случайную  популяцию  с  равномерным  распределением.

-Custom  (Обычная)  -  позволяет  создать  свою  собственную  функцию  генерации.

Дополнительные  параметры  для  определения  функции

·  Initialpopulation (InitialPopulation)   (Начальная  популяция)  - определяет начальную  популяцию  для  ГА. 

·  Initialscores (InitialScores)  (Начальные  значения)  - определяет  начальные  значения  для  исходной  популяции.

·  Initialrange (PopInitRange)  (Начальный диапазон)  - определяет  диапазон  векторов  в  начальной  популяции.  Можно определить  начальный  диапазон  в  виде  матрицы с  двумя строками  и  числом  столбцами  «Начальная  длина». Первая  строка  содержит  нижние границы  для  значений  векторов  в  начальной популяции,  в  то время  как  вторая  -  верхние  границы. 

Примечание.  Если  приблизительно  известно  ориентировочная величина  решения,  то  начальный диапазон  можно  определить  так,  что  он  будет содержать  это  предположение.  Однако  ГА  может  найти   решение  даже  в  том  случае, если  оно  не  лежит  в  начальном  диапазоне. 

          В  окне  выполнения  ГА  имеется  ряд опций  (всего  их  11),  которые  определяют  специфические  особенности  работы   ГА.  На  рис.6  приведена  часть  окна  с  этими  опциями.  Нажатие  значка  (+)  в  левой  части  строки  с  названием  опции  активизирует  всплывающее  окно  с  возможными  вариантами  выбора  значения  опции.  На  правом  поле  окна  имеются  краткие  разъяснения  по  выбору  вариантов  опций,  используя  которые  можно  выбрать  наиболее  подходящий  вариант  выполнения  ГА  для конкретной  задачи. 

Рис.6.   Опции  при  работе  ГА