Общие рекомендации к программной реализации ГА

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

Стоит отметить, что большую гибкость и расширяемость программной реализации не только ГА, но и любого другого алгоритма, можно достичь, грамотно применяя объектно-ориентированный подход и паттерны проектирования [6].

Таблица

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

Окончание таблицы

Компонент ГА Процедурный подход Объектно-ориентированный подход
Популяция Двумерный массив, в котором i-я строка содержит гены i-й особи. Типизированный класс «Популяция», содержащий коллекцию «особей». В роли параметра-типизатора может выступать класс «особь», если типов особей несколько и в каждом типе – своя логика вычислений
Оценка популяции Подпрограмма оценки строк массива популяции в соответствии с выбранной целевой функцией. Метод управляющего класса, оценивающий популяцию в соответствии с выбранной целевой функцией.
Приспособленность популяции Одномерный массив, в котором i-й элемент соответствует приспособленности i-й особи. Свойство в классе «особь», характеризующее приспособленность данной особи
Особи, выбранные для скрещивания Двумерный массив, строки которого соответствуют хромосомам особей, выбранным для скрещивания. Объект класса «популяция», содержащий объекты класса «особь», соответствующие выбранным особям
Реализация скрещивания, мутации, формирования нового поколения Подпрограммы, обрабатывающие элементы массива, представляющего популяцию особей, а также популяцию особей, выбранных для скрещивания. Методы управляющего класса, работающие с основной популяцией и выборкой особей для скрещивания.

Список литературы

1. Holland J. H., Adaptation in Neural and Artificial Systems, University of Michigan Press: Ann Arbor, 1975.

2. Whitley D. L., Genetic Algorithms and Evolutionary Computing, Van Nostrand's Scientific Encyclopedia, Princeton: New Jersey, 2002.

3. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы: Пер. с польск. И. Д. Рудинского – М.: Горячая линия – Телеком, 2006. – 452 с.

4. В. В. Емельянов, В. В. Курейчик, В. М. Курейчик Теория и практика эволюционного моделирования. – М.: ФИЗМАТЛИТ, 2003. – 432 c.

5. De Jong K. An analysis of the behavior of a class of genetic adaptive systems. Doctoral dissertation. – University of Michigan: Ann Arbor. – University Microfilms No. 76-9381. – 1975.

6. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. – СПб: Питер, 2001. – 368 с.

Справочные материалы

· http://basegroup.ru/, интернет-ресурс BaseGroup Labs (теория ГА, исходные тексты программ)

· http://www.gotai.net/, интернет- ресурс, посвященный технологиям искусственного интеллекта (теория, публикации, исходные тексты программ, примеры)

· http://www.exponenta.ru/soft/Mathcad/Mathcad.asp, интернет-ресурс компании AXOFT, посвященный описанию различных пакетов математического и физического моделирования, в частности MathCAD.

· Chonoles M.J., Schardt J.A. UML 2 for Dummies, Hungry Minds, 2003 г. - 412 с

[1] http://ru.wikipedia.org/wiki/UML, интернет-ресурс Wiki, посвященный UML-нотации.

[2] См. там же

[3] Г. Д. Дмитревич, А. И. Ларистов, В. А. Павлушин Программирование методов оптимизации: Методические указания к лабораторным работам. СПб.: Изд-во СПбГЭТУ «ЛЭТИ», 2004. – 24-31 сс.

Наши рекомендации