Введение

Функция пригодности – это особый тип целевой функции, используемый для обобщения, в виде единой метрики, насколько близко данное проектное решение к достижению поставленных целей. Функции пригодности используются в эволюционных алгоритмах (ЭА), таких как генетическое программирование и генетические алгоритмы, для направления симуляций к оптимальным проектным решениям. В области ЭА каждое проектное решение обычно представляется в виде строки чисел (именуемой хромосомой). После каждого раунда тестирования или моделирования идея заключается в удалении n наихудших проектных решений и создании n новых из лучших проектных решений. Следовательно, каждому проектному решению необходимо присвоить метрику, чтобы указать, насколько близко оно подошло к выполнению общей спецификации, и она генерируется путем применения функции пригодности к результатам тестирования или моделирования, полученным для этого решения. Существуют два основных класса функций пригодности: один, в котором функция пригодности не изменяется, как при оптимизации фиксированной функции или тестировании с фиксированным набором тестовых примеров; и другой, в котором функция пригодности изменяема, как при нишевой дифференциации или совместной эволюции набора тестовых примеров. Другой способ рассмотрения функций пригодности – это с точки зрения ландшафта пригодности, который показывает пригодность для каждой возможной хромосомы. В дальнейшем предполагается, что пригодность определяется на основе оценки, которая остается неизменной в течение процесса оптимизации. Функция пригодности не обязательно должна вычислять абсолютное значение, поскольку иногда достаточно сравнить кандидатов для выбора лучшего. Относительного показателя пригодности (кандидат a лучше, чем b) достаточно в некоторых случаях, таких как турнирный отбор или оптимизация Парето.

Требования к оценке и функциональной пригодности

Качество оценки и вычисления функции пригодности (фитнес-функции) имеет фундаментальное значение для успешной оптимизации эволюционного алгоритма (ЭА). Она реализует принцип Дарвина о "выживании наиболее приспособленных". Без механизмов отбора, основанных на пригодности, для выбора партнеров и принятия потомства, поиск ЭА был бы слепым и едва отличимым от метода Монте-Карло. При разработке фитнес-функции всегда следует помнить, что она должна охватывать не только описание желаемого целевого состояния, но и максимально поддерживать эволюционный поиск на пути к оптимуму (см. также раздел о вспомогательных целях), если это еще не реализовано самой фитнес-функцией. Плохо спроектированная фитнес-функция может привести к сходимости алгоритма к нежелательному решению или к затруднениям со сходимостью вообще. Определение фитнес-функции во многих случаях не является тривиальной задачей и часто выполняется итеративно, если получаемые ЭА наиболее приспособленные решения не соответствуют желаемым. Интерактивные генетические алгоритмы решают эту проблему, перекладывая оценку на внешних агентов, обычно людей.

Оптимизация для нескольких целей

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

Функции взвешенной суммы и штрафов

При оптимизации с помощью взвешенной суммы отдельные значения целевых функций сначала нормализуются для обеспечения возможности их сравнения. Это можно сделать с помощью стоимостей или путем задания целевых значений и определения текущего значения как степени достижения цели. Затем стоимости или степени достижения цели могут быть сопоставлены друг с другом и, при необходимости, отображены на единую шкалу пригодности. Без ограничения общности, предполагается, что пригодность представляет собой значение, которое необходимо максимизировать. Каждой целевой функции присваивается вес в виде процентного значения, чтобы общая необработанная пригодность могла быть вычислена как взвешенная сумма: нарушение ограничений может быть учтено в определенной таким образом пригодности в виде штрафных функций. Для этого для каждого ограничения может быть определена функция, возвращающая значение между 0 и 1 в зависимости от степени нарушения, при этом результат равен 0 при отсутствии нарушения. Ранее определенная необработанная пригодность умножается на функцию (функции) штрафа, и результат является окончательной пригодностью:

Было признано на раннем этапе, что генетические алгоритмы (ГА) с их одновременно рассматриваемым множеством решений хорошо подходят для поиска решений в одном прогоне, которые достаточно хорошо покрывают фронт Парето. Помимо SPEA2, NSGA II и NSGA III зарекомендовали себя как стандартные методы. Преимущество парето-оптимизации заключается в том, что, в отличие от взвешенной суммы, она предоставляет все альтернативы, эквивалентные по целевым функциям, в качестве общего решения. Недостатком является то, что визуализация альтернатив становится проблематичной или даже невозможной при более чем четырех целевых функциях. Кроме того, вычислительные затраты увеличиваются экспоненциально с ростом числа целевых функций. Если целевых функций больше трех или четырех, некоторые из них необходимо объединять с использованием взвешенной суммы или других методов агрегирования. Это иллюстрируется смежным рисунком слева. Точка на зеленом фронте Парето достигается весами α и β, при условии, что ГА сходится к оптимуму. Направление с наибольшим приростом пригодности в множестве решений показано нарисованными стрелками. Однако в случае невыпуклого фронта невыпуклые участки фронта недостижимы с помощью взвешенной суммы. На смежном изображении справа это участок между точками A и B. Это можно частично исправить, используя расширение взвешенной суммы – каскадную взвешенную сумму. В дополнение к основным целевым функциям, вытекающим из самой задачи, может потребоваться включение вспомогательных целевых функций в оценку для поддержки достижения одной или нескольких основных целевых функций. Для иллюстрации используется пример задачи планирования. Цели оптимизации включают не только общее быстрое выполнение всех заказов, но и соблюдение крайнего срока завершения. Последнее особенно важно для планирования срочных заказов. Вторая цель не достигается исходным образцовым расписанием, как показано на смежном рисунке. Последующая мутация не меняет этого, но планирует рабочий шаг d раньше, что является необходимым промежуточным шагом для более раннего начала последнего рабочего шага e заказа. Однако, пока оценивается только крайний срок завершения заказа, пригодность измененного расписания остается неизменной, хотя это и представляет собой важный шаг к достижению цели своевременного выполнения заказа. Это можно исправить, например, путем дополнительной оценки задержки рабочих шагов. Новая целевая функция является вспомогательной, поскольку она была введена в дополнение к фактическим целевым функциям оптимизации для поддержки их достижения. Более подробное описание этого подхода и другой пример можно найти в [ссылка].