Проектирование общих операционных технологий в редакторе технологических процессов РТП2000. Белашов В.А - 22 стр.

UptoLike

Кроме того, используется еще и так называемый оператор инверсии, который
заключается в том, что хромосома делится на две части, и затем они меняются
местами. Схематически это можно представить следующим образом:
000 1111111 >> 1111111 000
В принципе для функционирования генетического алгоритма достаточно этих
двух генетических операторов, но на практике применяют еще и некоторые
дополнительные операторы или модификации этих двух операторов. Например,
кроссовер может быть не одноточечный (как было описано выше), а
многоточечный, когда формируется несколько точек разрыва (чаще всего две).
Кроме того, в некоторых реализациях
алгоритма оператор мутации представляет
собой инверсию только одного случайно выбранного бита хромосомы.
3.1.7. Схема функционирования генетического алгоритма
Теперь, зная как интерпретировать значения генов, перейдем к описанию
функционирования генетического алгоритма. Рассмотрим схему
функционирования генетического алгоритма в его классическом варианте.
1. Инициировать начальный момент времени t=0. Случайным образом
сформировать начальную популяцию, состоящую из k особей. B
0
=
{A
1
,A
2
,…,A
k
)
2. Вычислить приспособленность каждой особи F
Ai
= fit(A
i
) , i=1…k и
популяции в целом F
t
= fit(B
t
) (также иногда называемую термином
фиттнес). Значение этой функции определяет насколько хорошо подходит
особь, описанная данной хромосомой, для решения задачи.
3. Выбрать особь A
c
из популяции. A
c
= Get(B
t
)
4. С определенной вероятностью (вероятностью кроссовера P
c
) выбрать вторую
особь из популяции А
c1
= Get(B
t
) и произвести оператор кроссовера A
c
=
Crossing(A
c
,A
c1
).
5. С определенной вероятностью (вероятностью мутации P
m
) выполнить
оператор мутации. A
c
= mutation(A
c
).
6. С определенной вероятностью (вероятностью инверсии P
i
) выполнить
оператор инверсии A
c
= inversion(A
c
).
7. Поместить полученную хромосому в новую популяцию insert(B
t+1
,A
c
).
8. Выполнить операции, начиная с пункта 3, k раз.
9. Увеличить номер текущей эпохи t=t+1.
    Кроме того, используется еще и так называемый оператор инверсии, который
заключается в том, что хромосома делится на две части, и затем они меняются
местами. Схематически это можно представить следующим образом:

                   000       1111111     >>     1111111      000

    В принципе для функционирования генетического алгоритма достаточно этих
двух генетических операторов, но на практике применяют еще и некоторые
дополнительные операторы или модификации этих двух операторов. Например,
кроссовер может быть не одноточечный (как было описано выше), а
многоточечный, когда формируется несколько точек разрыва (чаще всего две).
Кроме того, в некоторых реализациях алгоритма оператор мутации представляет
собой инверсию только одного случайно выбранного бита хромосомы.

    3.1.7. Схема функционирования генетического алгоритма

    Теперь, зная как интерпретировать значения генов, перейдем к описанию
функционирования         генетического    алгоритма.      Рассмотрим    схему
функционирования генетического алгоритма в его классическом варианте.

  1. Инициировать начальный момент времени t=0. Случайным образом
     сформировать начальную популяцию, состоящую из k особей. B0 =
     {A1,A2,…,Ak)
  2. Вычислить приспособленность каждой особи FAi = fit(Ai) , i=1…k и
     популяции в целом Ft = fit(Bt) (также иногда называемую термином
     фиттнес). Значение этой функции определяет насколько хорошо подходит
     особь, описанная данной хромосомой, для решения задачи.
  3. Выбрать особь Ac из популяции. Ac = Get(Bt)
  4. С определенной вероятностью (вероятностью кроссовера Pc) выбрать вторую
     особь из популяции Аc1 = Get(Bt) и произвести оператор кроссовера Ac =
     Crossing(Ac,Ac1).
  5. С определенной вероятностью (вероятностью мутации Pm) выполнить
     оператор мутации. Ac = mutation(Ac).
  6. С определенной вероятностью (вероятностью инверсии Pi) выполнить
     оператор инверсии Ac = inversion(Ac).
  7. Поместить полученную хромосому в новую популяцию insert(Bt+1,Ac).
  8. Выполнить операции, начиная с пункта 3, k раз.
  9. Увеличить номер текущей эпохи t=t+1.