Функция приспособленности — это особый тип целевой функции , которая используется для обобщения как единого показателя качества того, насколько близко данное проектное решение к достижению поставленных целей. Фитнес-функции используются в эволюционных алгоритмах (EA) , таких как генетическое программирование и генетические алгоритмы, для направления моделирования к оптимальным проектным решениям. [1]
В области советников каждое проектное решение обычно представляется в виде строки чисел (называемой хромосомой ) . Идея состоит в том, чтобы после каждого раунда тестирования или моделирования удалить n худших проектных решений и создать n новых из лучших проектных решений. Таким образом, каждому проектному решению необходимо присвоить показатель качества, чтобы указать, насколько близко оно соответствует общей спецификации, и это создается путем применения функции пригодности к результатам испытаний или моделирования, полученным на основе этого решения. [2]
Существуют два основных класса функций приспособленности: один, в котором функция приспособленности не меняется, как при оптимизации фиксированной функции или тестировании с фиксированным набором тестовых случаев; и тот, где функция приспособленности изменчива, как при дифференциации ниши или совместном развитии набора тестовых случаев. [3] [4] Другой способ взглянуть на функции приспособленности — с точки зрения ландшафта приспособленности , который показывает приспособленность для каждой возможной хромосомы. Далее предполагается, что пригодность определяется на основе оценки, которая остается неизменной во время выполнения оптимизации.
Функция приспособленности не обязательно должна уметь вычислять абсолютное значение, поскольку иногда достаточно сравнить кандидатов, чтобы выбрать лучшего. В некоторых случаях, [5] например, при выборе турнира или оптимизации Парето, достаточно относительного показателя приспособленности (кандидат a лучше, чем b) .
Качество оценки и расчета фитнес-функции имеет основополагающее значение для успеха оптимизации советника. Он реализует принцип Дарвина «выживает сильнейший». Без механизмов отбора на основе приспособленности для выбора партнера и принятия потомства поиск EA был бы слепым и вряд ли отличался бы от метода Монте-Карло . При настройке фитнес-функции всегда следует помнить, что речь идет не только о описании желаемого целевого состояния. Скорее, эволюционный поиск на пути к оптимуму также должен поддерживаться в максимально возможной степени (см. также раздел о вспомогательных целях), если и поскольку это еще не сделано одной лишь функцией приспособленности. Если функция приспособленности спроектирована плохо, алгоритм либо сходится к неподходящему решению, либо вообще испытывает трудности со сходимостью.
Определение функции приспособленности во многих случаях не является простым и часто выполняется итеративно, если наиболее подходящие решения, полученные советником, не соответствуют желаемым. Интерактивные генетические алгоритмы решают эту проблему, передавая оценку внешним агентам, которыми обычно являются люди.
Функция приспособленности должна не только тесно коррелировать с целью проектировщика, но и быть эффективной в вычислительном отношении. Скорость выполнения очень важна, поскольку типичный генетический алгоритм должен повторяться много раз, чтобы получить полезный результат для нетривиальной задачи.
Приближение пригодности [6] [7] может быть целесообразным, особенно в следующих случаях:
В качестве альтернативы или в дополнение к аппроксимации пригодности расчеты пригодности также могут быть переданы на параллельный компьютер, чтобы сократить время выполнения. В зависимости от используемой популяционной модели ЭА, как сам ЭА, так и расчеты приспособленности всех потомков одного поколения могут выполняться параллельно. [9] [10] [11]
Практическое применение обычно направлено на оптимизацию множества и, по крайней мере, частично противоречивых целей. Для этой цели часто используются два принципиально разных подхода: оптимизация по Парето и оптимизация на основе приспособленности, рассчитываемой с использованием взвешенной суммы . [12]
При оптимизации с использованием взвешенной суммы отдельные значения целей сначала нормализуются, чтобы их можно было сравнить. Это можно сделать с помощью затрат или путем указания целевых значений и определения текущего значения как степени выполнения. Затем затраты или степень выполнения можно сравнить друг с другом и, при необходимости, отобразить на единой шкале пригодности. Без потери общности предполагается, что приспособленность представляет собой ценность, которую необходимо максимизировать. Каждой цели присваивается вес в виде процентного значения, так что общую исходную пригодность можно рассчитать как взвешенную сумму:
Нарушение ограничений может быть включено в определяемую таким образом приспособленность в виде штрафных функций . С этой целью для каждого ограничения можно определить функцию , которая возвращает значение между степенью нарушения и в зависимости от него, а результатом является отсутствие нарушения. Ранее определенная необработанная пригодность умножается на штрафную функцию(и), и результатом становится окончательная пригодность : [13]
Этот подход прост и имеет то преимущество, что позволяет сочетать любое количество целей и ограничений. Недостаток заключается в том, что разные цели могут компенсировать друг друга и что веса необходимо определить до оптимизации. [12] Кроме того, некоторые решения могут быть не получены, см. раздел о сравнении обоих видов оптимизации .
Решение называется Парето-оптимальным, если улучшение одной цели возможно только при ухудшении хотя бы одной другой цели. Набор всех оптимальных по Парето решений, также называемый набором Парето, представляет собой набор всех оптимальных компромиссов между целями. На рисунке ниже справа показан пример набора Парето из двух целей , которые необходимо максимизировать. Элементы множества образуют фронт Парето (зеленая линия). Из этого набора человек, принимающий решения, должен впоследствии выбрать желаемое компромиссное решение. [12] Ограничения включены в оптимизацию Парето, поскольку решения без нарушений ограничений сами по себе лучше, чем решения с нарушениями. Если каждое из двух сравниваемых решений имеет нарушения ограничений, решающее значение имеет соответствующая степень нарушений. [14]
Ранее было признано, что советники с их одновременно рассматриваемым набором решений хорошо подходят для поиска решений за один проход, которые достаточно хорошо покрывают фронт Парето. [14] [15] Помимо SPEA2, [16] NSGA-II [17] и NSGA-III [18] [19] зарекомендовали себя как стандартные методы.
Преимущество оптимизации по Парето состоит в том, что в отличие от взвешенной суммы она предоставляет все альтернативы, эквивалентные с точки зрения целей, в качестве общего решения. Недостатком является то, что визуализация альтернатив становится проблематичной или даже невозможной, начиная с четырех целей. Кроме того, усилия возрастают экспоненциально с увеличением количества целей. [13] Если целей больше трех или четырех, некоторые из них необходимо объединить с помощью взвешенной суммы или других методов агрегирования. [12]
С помощью взвешенной суммы можно получить полный фронт Парето путем подходящего выбора весов при условии, что он выпуклый . [20] Это иллюстрирует соседний рисунок слева. Точка на зеленом фронте Парето достигается весами и при условии, что советник сходится к оптимуму. Направление с наибольшим выигрышем в приспособленности в наборе решений показано нарисованными стрелками.
Однако в случае невыпуклого фронта участки невыпуклого фронта недостижимы взвешенной суммой. На соседнем изображении справа это участок между точками и . В ограниченной степени это можно исправить, используя расширение взвешенной суммы — каскадную взвешенную сумму . [13]
Сравнивая оба подхода к оценке, использование оптимизации Парето, безусловно, выгодно, когда мало что известно о возможных решениях задачи и когда количество целей оптимизации можно сузить до трех, максимум четырех. Однако в случае многократной оптимизации вариантов одной и той же задачи желаемые пути компромисса обычно известны и попытка определить весь фронт Парето уже не оправдана. Это также верно, когда после оптимизации никакое человеческое решение не желательно или невозможно, например, в автоматизированных процессах принятия решений. [13]
В дополнение к основным целям, вытекающим из самой задачи, может оказаться необходимым включить в оценку вспомогательные цели для поддержки достижения одной или нескольких основных целей. В целях иллюстрации используется пример задачи планирования. Цели оптимизации включают не только общую быструю обработку всех заказов, но и соблюдение сроков выполнения. Последнее особенно необходимо при планировании срочных заказов. Вторая цель не достигается с помощью примерного первоначального графика, как показано на рисунке рядом. Следующая мутация не меняет этого, но назначает рабочий шаг d раньше, что является необходимым промежуточным шагом для более раннего начала последнего рабочего шага e заказа. Однако пока оценивается только самое позднее время завершения, пригодность измененного графика остается неизменной, даже если он представляет собой важный шаг на пути к цели своевременного завершения заказа. Это можно исправить, например, путем дополнительной оценки задержки рабочих этапов. Новая цель является вспомогательной, поскольку она введена в дополнение к реальным целям оптимизации для поддержки их достижения. Более подробное описание этого подхода и еще один пример можно найти в [21] .
{{cite book}}
: |work=
игнорируется ( помощь )