русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Простой генетический алгоритм


Дата добавления: 2015-08-06; просмотров: 924; Нарушение авторских прав


Для применения ГА необходимо:

1. выделить совокупность свойств объекта, характеризуемых внутренними параметрами и влияющих на его полезность, т.е. выделить множество управляемых параметров среди могут быть величины различных типов (real, integer, Boolean, enumeration). Наличие нечисловых величин (enumeration) обусловливает возможность решения задач не только параметрической, но и структурной оптимизации;

2. сформулировать количественную оценку полезности вариантов объекта — функцию полезности . Если в исходном виде задача многокритериальна, то такая формулировка означает выбор скалярного (обобщенного) критерия;

3. разработать математическую модель объекта, представляющую собой алгоритм вычисления для заданного вектора ;

4. представить вектор в форме хромосомы — записи следующего вида (см. рис. 1).

Рис. 1. Хромосома

В ГА используется такая терминология:

· ген — управляемый параметр ;

· аллель — значение гена;

· локус (позиция) — позиция, занимаемая геном в хромосоме;

· генотип — экземпляр хромосомы, генотип представляет совокупность внутренних параметров проектируемого с помощью ГА объекта;

· генофонд — множество всех возможных генотипов;

· функция полезности (приспособленности) — целевая функция;

· фенотип — совокупность значений критериев, получаемых после декодирования хромосомы, под фенотипом часто понимают совокупность выходных параметров синтезируемого с помощью ГА объекта.

Вычислительный процесс начинается с генерации исходного поколения — множества, включающего хромосом, — размер популяции. Генерация выполняется случайным выбором аллелей каждого гена.

Далее организуется циклический процесс смены поколений:

for (k=0; k<G; k++){ for (j=0; j<N; j++) { Выбор родительской пары хромосом; Кроссовер; Мутации; Оценка функции полезности F потомков; Селекция; } Замена текущего поколения новым;}

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



Рассмотрим алгоритмы выполнения операторов в простом генетическом алгоритме.

1. Выбор родителей.

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

(1)

где — наихудшее значение целевой функции среди экземпляров (членов) текущего поколения, — значение целевой функции -го экземпляра.

Правило (1) называют правилом колеса рулетки. Если в колесе рулетки выделить секторы, пропорциональные значениям , то вероятности попадания в них суть , определяемые в соответствии с (1).

Пример 1

Пусть , значения и приведены в табл. 1.

Таблица 1

0,5
0,1
0,4

 

2. Кроссовер (скрещивание).

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

Таблица 2

Хромосома Ген 1 Ген 2 Ген 3 Ген 4 Ген 5 Ген 6 Ген 7 Ген 8
Родителя A f a c d g k v e
Родителя B a b c d e f g h
Потомка C f a c d g f g h
Потомка D a b c d e k v e

 

3. Мутации.

Оператор мутации выполняется с некоторой вероятностью , т.е. с вероятностью происходит замена аллеля случайным значением, выбираемым с равной вероятностью в области определения гена. Именно благодаря мутациям расширяется область генетического поиска.

4. Селекция.

После каждого акта генерации пары потомков в новое поколение включается лучший экземпляр пары.

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



<== предыдущая лекция | следующая лекция ==>
Эволюционные методы | Кроссовер


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.227 сек.