Параллельные генетические алгоритмы
4.1. Структуризация ГА
Для нетривиальных задач выполнение одного репродуктивного цикла – поколения в ГА требует значительных вычислительных ресурсов. При решении многих задач используется не двоичное представление особи – решения проблемы, а более сложные структуры – массивы (матрицы) действительных чисел, связные списки, деревья, графы [1] и т.д. Поэтому вычисление значения фитнесс-функции для каждой особи, потенциального решения проблемы, часто является самой трудоемкой операцией в ГА. Для повышения эффективности разрабатываются новые методы кодирования особей, генетические операторы кроссинговера и мутации, гибридные алгоритмы, параллельные алгоритмы и т.п.[2,3,4].
Первые работы в этом направлении появились в 60-х годах, но только в 80-е годы, когда были разработаны доступные средства параллельной реализации, исследования ПГА приняли систематический массовый характер и практическую направленность. В этом направлении разработано множество моделей и реализаций, некоторые из которых представлены ниже.
Прежде всего, необходимо отметить, что в основе ПГА лежит структуризация популяции (множества потенциальных решений) – его разбиения на несколько подмножеств (подпопуляций). Это разбиение можно сделать различными способами, которые и определяют различные виды ПГА. Согласно современной классификации различают глобальные ПГА, распределенные ГА (РГА), клеточные ГА (КГА) и коэволюционные ГА (КЭГА). В простом ГА, графически представленном на рис. 4.1а), используется одна популяция особей, каждая из которых может взаимодействовать с любой другой особью. На рис. 4.1а) каждая особь представлена точкой. Глобальный ПГА реализуется фактически по схеме "клиент - сервер" (рис. 4.1б)), где на сервере, в основном, выполняется генетический алгоритм, а клиенты выполняют "черновую работу" - оценку значений фитнесс-функции всех особей популяции, которая требует больших вычислительных ресурсов. В РГА популяция разбивается на множество подпопуляций, каждая из которых эволюционирует независимо (согласно ПГА) и обменивается через некоторое "время изоляции" с соседними подпопуляциями по определенной схеме, что графически представлено на рис. 4.1в. В КГА имеется множество подпопуляций, каждая из которых состоит только из одной особи. В один момент времени данная особь может взаимодействовать только с соседними особями. Отношение соседства задается в виде некоторой регулярной структуры – сетки, что графически представлено на рис. 4.1г.
При заданной структуризации ГА реализуется собственно распараллеливание ГА. При этом ожидаются следующие преимущества:
- поиск альтернативных решений одной и той же проблемы;
- параллельный поиск из различных точек в пространстве решений;
- допускают хорошую реализацию в виде островов или клеточной структуры;
- большая эффективность поиска даже в случае реализации не на параллельных вычислительных структурах;
- хорошая совместимость с другими эволюционными и классическими процедурами поиска;
- существенное повышение быстродействия на многопроцессорных системах.
Рассмотрим основные современные методы распараллеливания ГА.