Генетический алгоритм и его сущность
Автор работы: Пользователь скрыл имя, 04 Декабря 2009 в 18:15
Описание работы
Курсовая работа
Файлы: 1 файл
основной.docx
— 677.71 Кб (Скачать файл)Содержание.
Введение…………………………………………………………
Описание Генетического Алгоритма……………………………………3
Результаты тестирования…………………
Заключение……………………………………………………
Список литературы…………………………………
Приложение……………………………………………………
Введение.
В наше время перед человечеством каждый день возникает огромное множество проблем. И человечество нашло большое количество разных способов их решения. Одним из способов оптимизации, который хорошо себя зарекомендовал, является Эволюционный Алгоритм, и как его частный случай Генетический Алгоритм. Этот алгоритм основан на принципах биологической эволюции. Он способен отыскивать решения практически при полном отсутствии предположений о характере исследуемой функции. На сегодняшний день генетические алгоритмы доказали свою конкурентноспособность при решении многих NP-трудных задач и особенно в практических приложениях, где математические модели имеют сложную структуру и применение стандартных методов динамического или линейного программирования крайне затруднено.
Основной
механизм эволюции - это естественный
отбор. Его суть состоит в том,
что более приспособленные
Меня
очень заинтересовали генетические
алгоритмы, т.к. ранее я не встречалась
с алгоритмами решающими практически
любую оптимизационную задачу. Целью моей
работы было рассмотреть различные модификации
алгоритма на тестовых функциях и проанализировать,
при какой модификации алгоритм для всех
тестовых функций показывает хорошие
результаты.
Описание Генетического Алгоритма.
Генетический
алгоритм- это метод поиска решений
практически любой
Генетический алгоритм состоит из нескольких этапов:
- Инициализация
- Выращивание
- Оценивание
- Селекция
- Скрещивание
- Мутация
Рассмотрим каждый из этих этапов подробно.
На первом этапе (Инициализация
Выращивание
- это второй шаг алгоритма, который подразумевает
восстановление индивида (фенотипа) по
известному генотипу, например - перевод
из двоичной системы в десятичную систему
исчисления. Выращивание может проводиться,
как для целых, так и для вещественных
чисел.
Следующий
этап это Оценивание. Он подразумевает
вычисление значений функции пригодности
индивидов (качества решений-кандидатов).
Селекция - во время этого шага выбираются особи из текущей популяции и заносятся в популяцию родителей, из которых в свою очередь отбирается пара индивидов, которые, в конце концов, будут скрещиваться (важно заметить, что всё это происходит случайным образом). Для имитации естественной селекции индивиды с более высокой пригодностью должны выбираться с большей вероятностью. Существует большое число различных видов селекции.
- Турнирная селекция. Для отбора индивида создается группа из N (N ³ 2) индивидов, выбранных случайным образом. Индивид с наибольшей пригодностью в группе отбирается, остальные - отбрасываются (турнир). N- размер турнира. Преимущества турнирной селекции заключаются в том, что нет преждевременной сходимости, нет стагнации, не требуется явное вычисление функции пригодности. Более того турнирная селекция имеет глубокие аналоги в биологии.
- Пропорциональная селекция. Пропорциональная селекция работает приблизительно следующим образом: складываются значения пригодности всех индивидов, получается f, затем для каждого индивида значение его пригодности делится на f и получается доля этого индивида, которая переводится в проценты, а потом каждому индивиду отводится один из последовательных интервалов, размер которого пропорционален его пригодности. После всего этого случайным образом выбирается число, лежащее в одном из интервалов. Преимущества такой селекции то, что у лучших индивидов больше шансов быть отобранными, но в тоже время шанс остается и у худших индивидов. Но, тем не менее, у пропорциональной селекции есть и недостатки, такие как преждевременная сходимость и стагнация.
Пятый этап называется Скрещивание. Оно также бывает нескольких видов.
- При Одноточечном скрещивании случайным образом выбирается точка разрыва родительской хромосомы, затем в одного из потомков копируется первая часть первого родителя и вторая часть второго, а во второго потомка первая часть второго родителя и вторая часть первого родителя. После чего случайным образом выбирается выживший потомок. Можно сделать и несколько иначе: так же случайным образом находится точка разрыва, после чего случайным образом выбирается, чья часть будет первой и чья соответственно второй, затем выбранные части копируются в потомка.
- При Двухточечном скрещивании случайным образом выбираются две точки разрыва, после чего в одного потомка копируются первая и третья части случайным образом выбранного родителя и вторая часть второго родителя. Либо в первого потомка копируются первая и третья части первого родителя и вторая второго, а во второго потомка первая и третья части второго родителя и вторая часть первого, и после этого случайным образом выбирается выживший потомок. Не следует оценивать обоих потомков, до того как выбран выживший, так как их пригодность не влияет на выбор, а её вычисление является наиболее долгим процессом.
- При Равномерном скрещивании случайным образом (для каждого гена) выбирается номер (первый, второй) родителя, чей ген и записывается в потомка. В этом случае родителей может быть больше двух, в том числе возможно участие всей популяции родителей в целом.
И последний этап это Мутация. Мутация состоит из выполнения(обычно небольших) изменений в значениях одного или нескольких генов в хромосоме. В двоичных хромосомах мутация состоит в инвертировании случайным образом выбранного бита генотипа, например 1010101010 --> 1011101010.В генетических алгоритмах мутация рассматривается как метод восстановления потерянного генетического материала (а не как поиск лучшего решения). В генетических алгоритмах мутация применяется к генам с низкой вероятностью. Можно выбирать вероятность в зависимости от длины хромосомы pm = , где M - число бит в хромосоме.
Генетический
алгоритм- это итерационный процесс.
После мутации алгоритм снова
возвращается ко второму шагу (Выращивание).
Так повторяется некоторое
Результаты тестирования.
Функция 1.
-65
,
50 индивидов
10 поколений
100 прогонов
Описание: Решение функции находили в целых числах.
| Селекция | Мутация | Скрещивание | ||
| 1-точечное | 2-точечное | равномерное | ||
| турнирная |
Высокая | 0,45 | 0,45 | 0,44 |
| Средняя | 0,51 | 0,59 | 0,64 | |
| Низкая | 0,55 | 0,53 | 0,68 | |
| пропорциональная |
Высокая | 0,84 | 0,78 | 0,75 |
| Средняя | 0,63 | 0,8 | 0,77 | |
| Низкая | 0,39 | 0,57 | 0,42 | |
Таблица 1.
Функция 2. Функция Растригина.
,
Точность=0,1
50 индивидов
100 поколений
100 прогонов
Описание: Вокруг глобального
минимума находится еще несколько
локальных минимумов. Поэтому для
улучшения результатов поиска, приходится
увеличивать ресурсы (количество поколений).
| Селекция | Мутация | Скрещивание | ||
| 1-точечное | 2-точечное | равномерное | ||
| турнирная |
Высокая | 0,12 | 0,09 | 0,03 |
| Средняя | 0,27 | 0,19 | 0,11 | |
| Низкая | 0,36 | 0,42 | 0,3 | |
| пропорциональная |
Высокая | 0,58 | 0,48 | 0,37 |
| Средняя | 0,63 | 0,64 | 0,56 | |
| Низкая | 0,41 | 0,45 | 0,4 | |
Таблица 2.
Функция 3. Функция Розенброка.
,
Точность=0,1
50 индивидов
10 поколений
100 прогонов
Описание: Вокруг глобального минимума, находится область, на которой значения функции достаточно близки к значению минимума, но т.к. явных локальных минимумов нет, алгоритм работает достаточно хорошо и при меньших ресурсах.
| Селекция | Мутация | Скрещивание | ||
| 1-точечное | 2-точечное | равномерное | ||
| турнирная |
Высокая | 0,2 | 0,36 | 0,29 |
| Средняя | 0,29 | 0,33 | 0,25 | |
| Низкая | 0,3 | 0,23 | 0,26 | |
| пропорциональная |
Высокая | 0,29 | 0,34 | 0,4 |
| Средняя | 0,15 | 0,25 | 0,32 | |
| Низкая | 0,14 | 0,19 | 0,35 | |