Генетические алгоритмы - Основные генетические операторы1) из популяции выбираются две особи, которые будут родителями; 2) определяется (обычно случайным образом) точка разрыва; 3) потомок определяется как конкатенация части первого и второго родителя. Рассмотрим функционирование этого оператора:
Хромосома_1: 0000000000 Хромосома_2: 1111111111
Допустим, разрыв происходит после 3-го бита хромосомы, тогда
Хромосома_1: 0000000000 >> 000 1111111 Результирующая_хромосома_1 Хромосома_2: 1111111111 >> 111 0000000 Результирующая_хромосома_2
Затем с вероятностью 0,5 определяется одна из результирующих хромосом в качестве потомка. Следующий генетический оператор предназначен для того, чтобы поддерживать разнообразие особей с популяции. Он называется оператором мутации. При использовании данного оператора каждый бит в хромосоме с определенной вероятностью инвертируется. Кроме того, используется еще и так называемый оператор инверсии, который заключается в том, что хромосома делится на две части, и затем они меняются местами. Схематически это можно представить следующим образом:
000 1111111 >> 1111111 000
В принципе для функционирования генетического алгоритма достаточно этих двух генетических операторов, но на практике применяют еще и некоторые дополнительные операторы или модификации этих двух операторов. Например, кроссовер может быть не одноточечный (как было описано выше), а многоточечный, когда формируется несколько точек разрыва (чаще всего две). Кроме того, в некоторых реализациях алгоритма оператор мутации представляет собой инверсию только одного случайно выбранного бита хромосомы.
Читайте также:
|
