Читайте также:
|
|
Для представления вещественного решения (хромосомы) будем использовать двоичный вектор, который применяется в классическом простом ГА. Его длина зависит от требуемой точности решения, которую в данном случае положим 3 знака после запятой.
Поскольку отрезок области решения имеет длину 20, для достижения заданной точности отрезок [a,c]= [-10,+10] должен быть разбит на равные части (маленькие отрезки), число которых должно быть не менее 20*1000. В качестве двоичного представления используем двоичный код номера (маленького) отрезка. Этот код позволяет определить соответствующее ему вещественное число, если известны границы области решения. Отсюда следует, что двоичный вектор для кодирования вещественного решения должен иметь 15 бит, поскольку
16384= <20000
Это позволяет разбить отрезок [-10,+10] на 32768 частей и обеспечить необходимую точность. Отображение из двоичного представления () (
) в вещественное число из отрезка [a,c]=[-10,+10] выполняется в два шага.
1) Перевод двоичного числа в десятичное:
2) Вычисление соответствующего вещественного числа х:
, где (– 10) левая граница области решения. Естественно хромосомы
(000000000000000) и (111111111111111) представляют границы отрезка –10 и +10 соответственно.
На следующих рисунках представлено расположение особей - потенциальных решений на различных этапах ГА в процессе поиска решения. На первом рисунке показана начальная популяция потенциальных решений, которая равномерно покрывает область поиска решения.
«Конденсация» особей в окрестностях эксремумов
Далее явно видно, как постепенно с увеличением номера поколения особи "конденсируются" в окрестностях экстремумов и в конечном счете находится лучшее решение.
Дата добавления: 2015-09-11; просмотров: 84 | Поможем написать вашу работу | Нарушение авторских прав |