Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PrZn-Six-Mod-Print-2007.doc
Скачиваний:
50
Добавлен:
04.11.2018
Размер:
2.29 Mб
Скачать

5.7. Общие рекомендации к программной реализации генетического алгоритма

Программную реализацию ГА можно создать, используя как объектно-ориентированный, так и структурный подход. Ниже предлагается способ реализации различных компонентов генетического алгоритма с использованием обоих подходов (табл. 5.2).

Табл. 5.2. Варианты реализации компонентов ГА

Компонент генетического алгоритма

Структурный подход

Объектно-ориентированный подход

Особь

Одномерный массив для записи значений генов. Размерность массива совпадает с количеством генов у одной особи (количество генов равно числу настраиваемых параметров)

Класс «Особь», содержащий массив генов

Популяция

Двумерный массив, в котором i-я строка содержит гены i-й особи

Отдельный класс «Популяция», содержащий одномерный массив объектов класса, представляющего особь

Оценивание популяции

Подпрограмма оценки строк массива популяции в соответствии с выбранной целевой функцией

Метод управляющего класса, оценивающий популяцию в соответствии с выбранной целевой функцией

Приспособленность популяции

Одномерный массив, в котором i-й элемент соответствует приспособленности i-й особи

Одномерный массив со значениями ошибок особей, входящий в управляющий класс

Особи, выбранные для скрещивания

Двумерный массив, строки которого соответствуют хромосомам особей, выбранным для скрещивания

Объект класса «Популяция», содержащий объекты класса «Особь», соответствующие выбранным особям

Реализация скрещивания, мутации, формирования нового поколения

Подпрограммы, обрабатываю­щие элементы массива, представляющего популяцию особей, а также популяцию особей, выбранных для скрещивания

Методы управляющего класса, работающие с основной популяцией и популяцией особей для скрещивания

Приведенный в табл. 5.2 способ реализации генетического алгоритма не является эталонным и, вполне возможно, далек от идеала. Данные в табл. 5.2 могут служить в качестве «опорных» для конкретной реализации генетического алгоритма. Отметим, что бóльшую гибкость и расширяемость программной реализации не только генетического алгоритма, но и любого другого алгоритма и системы вообще можно достичь, используя компонентно-ориентированный подход и паттерны проектирования [35].

5.8. Задания для лабораторных работ

  1. Аппроксимировать набор точек линейной функцией:

.

Вариант А) Использовать целочисленное кодирование.

Вариант Б) Использовать вещественное кодирование.

  1. Аппроксимировать набор точек экспоненциальной функцией:

.

Вариант А) Использовать целочисленное кодирование.

Вариант Б) Использовать вещественное кодирование.

  1. Найти минимум функции:

Вариант А) Использовать целочисленное кодирование.

Вариант Б) Использовать вещественное кодирование.

  1. Найти максимум функции:

x [– 4; 0).

Вариант А) Использовать целочисленное кодирование.

Вариант Б) Использовать вещественное кодирование.

  1. Найти точку перегиба функции:

f(х) = (x–1.5)3 + 3.

Вариант А) Использовать целочисленное кодирование.

Вариант Б) Использовать вещественное кодирование.

  1. Найти точку пересечения функции с осью Ох.

f(х) = ln (x+1) – 2,25, x > –1.

Вариант А) Использовать целочисленное кодирование.

Вариант Б) Использовать вещественное кодирование.

  1. Сгенерировать с помощью генетического алгоритма слово “МИР”.

  2. Найти с помощью генетического алгоритма особь, гены которой соответствуют, в формате RGB, фиолетовому цвету (96, 96, 159).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]