Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11642
Последний выпуск: 19.06.2015

Генетические алгоритмы

Использованы материалы сайта http://www.ai.tsi.lv/ru/index.html

Генетические алгоритмы (ГА) - это стохастические, эвристические оптимизационные методы, впервые предложенные Холландом (1975). Они основываются на идее эволюции с помощью естественного отбора, выдвинутой Дарвином (1857).

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

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

ГА состоит из следующих компонент:

  • Хромосома
  • . Решение рассматриваемой проблемы. Состоит из генов.
  • Начальная популяция
  • хромосом.
  • Набор операторов
  • для генерации новых решений из предыдущей популяции.
  • Целевая функция
  • для оценки приспособленности (fitness) решений.

2. Операторы ГА

Стандартные операторы для всех типов генетических алгоритмов это: селекция, скрещивание и мутация.

2.1 Селекция

Оператор селекции (reproduction, selection) осуществляет отбор хромосом в соответствии со значениями их функции приспособленности. Существуют как минимум два популярных типа оператора селекции: рулетка и турнир.

  • Метод рулетки
  • (roulette-wheel selection) - отбирает особей с помощью n "запусков" рулетки. Колесо рулетки содержит по одному сектору для каждого члена популяции. Размер i-ого сектора пропорционален соответствующей величине Psel(i) вычисляемой по формуле:

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


Рис. 1. Оператор селекции типа колеса рулетки с
пропорциональными функции приспособленности секторами
  • Турнирный отбор
  • (tournament selection) реализует n турниров, чтобы выбрать n особей. Каждый турнир построен на выборке k элементов из популяции, и выбора лучшей особи среди них. Наиболее распространен турнирный отбор с k=2.

Скрещивание

Оператор скрещивание (crossover) осуществляет обмен частями хромосом между двумя (может быть и больше) хромосомами в популяции. Может быть одноточечным или многоточечным. Одноточечный кроссовер работает следующим образом. Сначала, случайным образом выбирается одна из l-1 точек разрыва. Точка разрыва - участок между соседними битами в строке. Обе родительские структуры разрываются на два сегмента по этой точке. Затем, соответствующие сегменты различных родителей склеиваются и получаются два генотипа потомков.


Рис. 2. Одноточечный оператор скрещивания (точка разрыва равна трем)

Мутация

Мутация (mutation) - стохастическое изменение части хромосом. Строке, которая подвергается мутации, каждый бит с вероятностью Pmut (обычно очень маленькой) меняется на другой.


Рис. 3. Оператор мутации (четвертый ген мутировал)

Алгоритм работы ГА

Работа ГА представляет собой итерационный процесс, который продолжается до тех пор, пока не выполнятся заданное число поколений или какой-либо иной критерий останова. На каждом поколении ГА реализуется отбор пропорционально приспособленности, кроссовер и мутация.

Алгоритм работы простого ГА выглядит следующим образом:


Рис. 4. Алгоритм работы классического ГА

4. Реализация программы

Для поиска угла произвольной фигуры создадим множество особей, “гены” которых будут хранить координаты особи. Для упрощения задачи, но без нарушения ГА, особь рождается на месте только что погибшей. Особь погибает в возрасте от 0 до N лет. Причем чем старше особь, тем больше вероятность ее смерти. Вероятность смерти особи в N лет – 100%, а в 1 год – 1%.

В программе максимальный возраст особи пользователь может изменять по своему усмотрению.

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

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

Значение фитнесс функции – это расстояние до ближайшего края объекта. То место, где пересекается наибольшее количество краев (угол) и станет решением задачи.

Близость точки T до края объекта (ABC) в случае треугольника рассчитывается следующим образом:



s=AB-TA-TB;

Естественно, учитывается и то, что край треугольника – отрезок, а не прямая.

Ниже приведен внешний вид программы:




Скачать исходник

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
66K
02 декабря 2010 года
muread30
0 / / 02.12.2010
+1 / -1
Мне нравитсяМне не нравится
2 декабря 2010, 09:04:31
Вопрос... у меня задача "Алгоритм реализации операции скрещивания" и его необходимо применить к решению задачи прогнозирования землетрясения...Для этого дана обучающая матрица,в котором имеется "сейсмические группы" и "классы землетрясения" Таблица заполнена 0 и 1...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог