В компьютерном программировании генетическое представление — это способ представления решений/индивидуумов в эволюционных методах вычислений . Этот термин охватывает как конкретные структуры данных , так и типы данных, используемые для реализации генетического материала кандидатов на решения в форме генома, а также отношения между пространством поиска и пространством задач. В простейшем случае пространство поиска соответствует пространству задач (прямое представление). [1] Выбор представления задачи связан с выбором генетических операторов , оба из которых оказывают решающее влияние на эффективность оптимизации. [2] [3] Генетическое представление может кодировать внешность, поведение, физические качества индивидуумов. Различие в генетических представлениях является одним из основных критериев, проводящих границу между известными классами эволюционных вычислений. [4] [5]
Терминология часто аналогична естественной генетике . Блок компьютерной памяти, представляющий одно возможное решение, называется индивидуумом. Данные в этом блоке называются хромосомой . Каждая хромосома состоит из генов. Возможные значения конкретного гена называются аллелями . Программист может представлять всех индивидуумов популяции, используя двоичное кодирование , перестановочное кодирование , кодирование деревом или любое из нескольких других представлений. [6] [7]
Генетические алгоритмы (ГА) обычно являются линейными представлениями; [8] они часто, но не всегда, [9] [10] [11] двоичными. [10] Первоначальное описание ГА Холланда использовало массивы битов . Массивы других типов и структур могут использоваться по сути таким же образом. Основное свойство, которое делает эти генетические представления удобными, заключается в том, что их части легко выравниваются из-за их фиксированного размера. Это облегчает простую операцию кроссинговера. В зависимости от приложения, представления переменной длины также успешно использовались и тестировались в эволюционных алгоритмах (ЭА) [12] [13] в целом и генетических алгоритмах [14] [15] в частности, хотя реализация кроссинговера в этом случае более сложна.
Стратегия эволюции использует линейные вещественные представления, например, массив вещественных значений. Она использует в основном гауссовскую мутацию и смешивание/усреднение кроссовера. [16]
Генетическое программирование (ГП) стало пионером в области древовидных представлений и разработало генетические операторы, подходящие для таких представлений. Древовидные представления используются в ГП для представления и развития функциональных программ с желаемыми свойствами. [17]
Генетический алгоритм на основе человека (HBGA) предлагает способ избежать решения сложных проблем представления, передав все генетические операторы внешним агентам, в данном случае людям. Алгоритму не нужно знание конкретного фиксированного генетического представления, пока есть достаточно внешних агентов, способных обрабатывать эти представления, что позволяет использовать свободные и развивающиеся генетические представления.
Аналогично биологии, ЭА различают проблемное пространство (соответствует фенотипу ) и поисковое пространство (соответствует генотипу ). Проблемное пространство содержит конкретные решения решаемой проблемы, в то время как поисковое пространство содержит закодированные решения. Отображение из поискового пространства в проблемное пространство называется отображением генотип-фенотип . Генетические операторы применяются к элементам поискового пространства, и для оценки элементы поискового пространства отображаются на элементы проблемного пространства с помощью отображения генотип-фенотип. [18] [19]
Важность правильного выбора поискового пространства для успеха приложения EA была осознана на раннем этапе. [20] [21] [22] Следующие требования могут быть предъявлены к подходящему поисковому пространству и, следовательно, к подходящему сопоставлению генотипа и фенотипа: [23] [24]
Все возможные допустимые решения должны содержаться в пространстве поиска.
Когда существует больше возможных генотипов, чем фенотипов, генетическое представление EA называется избыточным . В природе это называется вырожденным генетическим кодом . В случае избыточного представления возможны нейтральные мутации . Это мутации, которые изменяют генотип, но не влияют на фенотип. Таким образом, в зависимости от использования генетических операторов , может быть фенотипически неизмененное потомство, что может привести к ненужным определениям приспособленности, среди прочего. Поскольку оценка в реальных приложениях обычно составляет львиную долю времени вычислений, она может замедлить процесс оптимизации . Кроме того, это может привести к тому, что популяция будет иметь более высокое генотипическое разнообразие, чем фенотипическое разнообразие, что также может препятствовать эволюционному прогрессу.
В биологии Нейтральная теория молекулярной эволюции утверждает, что этот эффект играет доминирующую роль в естественной эволюции. Это побудило исследователей в сообществе ЭА изучить, могут ли нейтральные мутации улучшить функционирование ЭА [25] , предоставив популяциям, которые сошлись к локальному оптимуму, способ избежать этого локального оптимума посредством генетического дрейфа . Это обсуждается спорно, и нет никаких окончательных результатов по нейтральности в ЭА. [26] [27] С другой стороны, существуют другие проверенные меры для управления преждевременной конвергенцией .
Локальность генетического представления соответствует степени, в которой расстояния в пространстве поиска сохраняются в проблемном пространстве после сопоставления генотипа и фенотипа. То есть представление имеет высокую локальность именно тогда, когда соседи в пространстве поиска также являются соседями в проблемном пространстве. Для того чтобы успешные схемы не были разрушены сопоставлением генотипа и фенотипа после незначительной мутации , локальность представления должна быть высокой.
При отображении генотип-фенотип элементы генотипа могут быть масштабированы (взвешены) по-разному. Простейший случай — равномерное масштабирование: все элементы генотипа имеют одинаковый вес в фенотипе. Распространенное масштабирование — экспоненциальное. Если целые числа закодированы в двоичной системе, то отдельные цифры полученного двоичного числа имеют экспоненциально разные веса в представлении фенотипа.
По этой причине экспоненциальное масштабирование имеет эффект случайной фиксации «задних» положений в генотипе до того, как популяция достаточно приблизится к оптимуму , чтобы учесть эти тонкости.
При сопоставлении генотипа с оцениваемым фенотипом можно использовать доменно-специфические знания для улучшения фенотипа и/или обеспечения соблюдения ограничений. [28] [29] Это широко используемый метод для улучшения производительности EA с точки зрения времени выполнения и качества решения. Он проиллюстрирован ниже двумя из трех примеров.
Очевидное и часто используемое кодирование для задачи коммивояжера и связанных с ней задач — это последовательная нумерация городов, которые необходимо посетить, и сохранение их в виде целых чисел в хромосоме . Генетические операторы должны быть соответствующим образом адаптированы, чтобы они изменяли только порядок городов (генов) и не вызывали делеций или дупликаций. [30] [31] Таким образом, порядок генов соответствует порядку городов, и существует простое взаимно-однозначное отображение.
В задаче планирования с неоднородными и частично альтернативными ресурсами, которые должны быть назначены набору подзадач, геном должен содержать всю необходимую информацию для отдельных операций планирования или должна быть возможность вывести их из него. В дополнение к порядку выполнения подзадач, это включает информацию о выборе ресурсов. [32] Затем фенотип состоит из списка подзадач с их временем начала и назначенными ресурсами. Чтобы иметь возможность создать это, должно быть создано столько матриц распределения , сколько ресурсов может быть выделено для одной подзадачи максимум. В простейшем случае это один ресурс, например, одна машина, которая может выполнить подзадачу. Матрица распределения представляет собой двумерную матрицу, в которой одно измерение является доступными единицами времени, а другое — ресурсами, которые должны быть выделены. Пустые ячейки матрицы указывают на доступность, в то время как запись указывает на номер назначенной подзадачи. Создание матриц распределения гарантирует, во-первых, что нет недопустимых множественных распределений. Во-вторых, из него можно прочитать время начала подзадач, а также назначенные ресурсы. [33]
Распространенным ограничением при планировании ресурсов для подзадач является то, что ресурс может быть выделен только один раз за единицу времени, и что резервирование должно быть на непрерывный период времени. [34] Чтобы достичь этого своевременно, что является общей целью оптимизации, а не ограничением, можно использовать простую эвристику : выделяйте требуемый ресурс на желаемый период времени как можно раньше, избегая дублирования резервирования. Преимущество этой простой процедуры двойное: она избегает ограничения и помогает оптимизации.
Если проблема планирования изменяется до планирования рабочих процессов вместо независимых подзадач, то по крайней мере некоторые из рабочих этапов рабочего процесса должны быть выполнены в заданном порядке. [35] Если ранее описанная эвристика планирования теперь определяет, что предшественник рабочего этапа не завершен, когда он должен быть запущен сам, может помочь следующий механизм исправления: отложить планирование этого рабочего этапа до тех пор, пока не будут завершены все его предшественники. [33] Поскольку генотип остается неизменным, а исправление выполняется только на уровне фенотипа, его также называют фенотипическим исправлением .
Следующая задача планирования макета [36] призвана проиллюстрировать иное использование эвристики в картировании генотипа-фенотипа: на прямоугольной поверхности различные геометрические типы объектов должны быть расположены таким образом, чтобы как можно меньше площади оставалось неиспользованной. Объекты могут вращаться, не должны перекрываться после размещения и должны быть полностью расположены на поверхности. Связанным применением будет минимизация отходов при резке деталей из стальной пластины или тканевого листа.
Координаты центров объектов и угол поворота, сведенные к возможным изоморфизмам геометрии объектов, можно рассматривать как переменные, которые необходимо определить. Если это делается напрямую с помощью ЭА, вероятно, будет много перекрытий. Чтобы избежать этого, ЭА определяет только угол и координату одной стороны прямоугольника. Каждый объект теперь поворачивается и позиционируется на краю этой стороны, при необходимости сдвигая его так, чтобы он оказался внутри прямоугольника, когда он будет впоследствии перемещен. Затем он перемещается параллельно другой стороне, пока не коснется другого объекта или не достигнет противоположного конца прямоугольника. Таким образом, перекрытия избегаются, и неиспользуемая область уменьшается на размещение, но не в целом, что оставлено для оптимизации. [37]