Решение многокритериальных задач.

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

Проблема.

  1. большой размер парето-оптимальной области,
  2. количество недоминируемых (несравнимых) особей в репродукционной группе больше, чем размер популяции

Цель

Построить метод селекции, направленный на равномерное (в евклидовом пространстве параметров) покрытие Парето - оптимальной области нужным количеством недоминируемых особей.

Метод.

1.Использовать параметр - радиус, задаваемый вручную, и очерчивающий окрестность решения, так чтобы "соседи" этого решения, попавшие в эту окрестность, не "выживали" при отборе. Плюсы: простота реализации. Минусы: сложно вычислить такой радиус, чтобы оставить нужное количество особей; радиус будет меняться на каждом поколении.

На рисунке представлен алгоритм выделения точек для равномерного покрытия. Было 16 решений, осталось - 8.

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

Алгоритм

  1. Rmin = минимальное расстояние между любыми двумя точками.
  2. Rmax = максимальное расстояние между любыми двумя точками.
  3. Если Rmax = Rmin, то поиск не имеет смысла - все решения совпадают. Выход.
  4. R = (Rmax + Rmin) : 2.
  5. Посчитать, сколько особей "выживет" с таким R.
  6. Если выживет больше, чем нужно (>n) - сделать Rmax = R. Переход к п.4.
  7. Если выживет меньше, чем нужно (<n) - сделать Rmin = R. Переход к п.4.
  8. Нужное R - найдено.

Замечание. n - размер популяции. Процесс может зациклится, если k решений совпадают и k>n или слишком велика плотность особей в парето-оптимальной области (сложно определить R, поскольку величина колебания R не поддается машинной арифметике). Поэтому нужно предварительно проверить эти условия.

Тестовые задачи

Задача ╪1.

Размерность = 1.
f1 (x) = -x2 -> max
f2 (x) = -(x-2)2 -> max
-6 <= x <= 6

На рисунке показано распределение 20 особей после 200 оценок целевых функций
Горизонтальная ось - x,
Вертикальная ось - f(x)

Задача ╪2.

Размерность = 2.
f1 (x, y) = -1/(x2+y2+1) -> max
f2 (x, y) = -(x2+3y2+1) -> max
-3 <= x, y <= 3

На рисунке показано распределение 500 особей после 2000 оценок целевых функций
Горизонтальная ось - x,
Вертикальная ось - y

Задача ╪3.

Размерность = 2.
f1 (x, y) = -(x+y+1) -> max
f2 (x, y) = -(x2+2y-1) -> max
-3 <= x, y <= 3

На рисунке показано распределение 200 особей после 2000 оценок целевых функций
Горизонтальная ось - x,
Вертикальная ось - y

К началу документа



Исаев Сергей
e-mail: sergey.isaev @ mailcity.com
web: http://www.chat.ru/~saisa