Московский государственный университет путей сообщения
Опубликован: 10.10.2014 | Доступ: свободный | Студентов: 869 / 193 | Длительность: 22:10:00
Лекция 4:

Параллельные генетические алгоритмы

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

4.1. Структуризация ГА

Для нетривиальных задач выполнение одного репродуктивного цикла – поколения в ГА требует значительных вычислительных ресурсов. При решении многих задач используется не двоичное представление особи – решения проблемы, а более сложные структуры – массивы (матрицы) действительных чисел, связные списки, деревья, графы [1] и т.д. Поэтому вычисление значения фитнесс-функции для каждой особи, потенциального решения проблемы, часто является самой трудоемкой операцией в ГА. Для повышения эффективности разрабатываются новые методы кодирования особей, генетические операторы кроссинговера и мутации, гибридные алгоритмы, параллельные алгоритмы и т.п.[2,3,4].

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

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

а) Простой ГА, б) Распределенный ГА, в) Модель островов, г) Клеточный ГА.

Рис. 4.1. а) Простой ГА, б) Распределенный ГА, в) Модель островов, г) Клеточный ГА.

При заданной структуризации ГА реализуется собственно распараллеливание ГА. При этом ожидаются следующие преимущества:

  1. поиск альтернативных решений одной и той же проблемы;
  2. параллельный поиск из различных точек в пространстве решений;
  3. допускают хорошую реализацию в виде островов или клеточной структуры;
  4. большая эффективность поиска даже в случае реализации не на параллельных вычислительных структурах;
  5. хорошая совместимость с другими эволюционными и классическими процедурами поиска;
  6. существенное повышение быстродействия на многопроцессорных системах.

Рассмотрим основные современные методы распараллеливания ГА.