Библиотека генетических алгоритмов - часть 1 - Библиотека генетических алгоритмов

ОГЛАВЛЕНИЕ

Библиотека генетических алгоритмов

Это краткое введение в устройство и структуру библиотеки генетических алгоритмов. Библиотека является набором классов C++, представляющих собой составляющие генетических алгоритмов.

Структура библиотеки

Следующая схема показывает основную структуру библиотеки генетических алгоритмов:

 

Схема - Структура библиотеки генетических алгоритмов

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

Кроме этих универсальных возможностей, библиотека предоставляет более специфичные для генетических алгоритмов вещи на низшем уровне, такие как классы для отслеживания статистических данных генетических алгоритмов и слежения за каркасом. Интерфейсы для объектов генетических операций и параметров также определены на этом уровне.

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

Часть среднего уровня разбита на три пространства имен, как показано на схеме. Большинство ключевых возможностей библиотеки реализовано на этом уровне.

Прежде всего, пространство имен Chromosome содержит набор интерфейсов и классов, используемых для представления хромосом в библиотеке и для определения их базового поведения в системе. Это пространство имен содержит объявление интерфейсов для 4 типов генетических операций: кроссовер, мутация, операция пригодности и сравнитель пригодности.

Второе пространство имен - Population. Основной класс этого пространства имен – класс, управляющий популяцией хромосом, хранит статистические данные и отслеживает лучшие и худшие хромосомы. Интерфейсы для операций селекции, спаривания, замены и масштабирования определены в этом пространстве имен.

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

Эти два уровня являются ядром библиотеки.

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

 

Схема – Пространства имен