Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Представление вещественных решений в двоичной форме
Обобщим генетический алгоритм на случай вещественных чисел на следующем примере: f (x) = (1,85 - x)*cos(3,5x – 0,5) График функции представлен на следующем рисунке:
Необходимо найти вещественные аргументы функции, принадлежащие интервалу от -10 до +10,которые максимизируют функцию. Для представления вещественного решения хромосомы будем использовать двоичный вектор, который применялся в классическом простом генетическом алгоритме. Его длина зависит от требуемой точности решений, которой в данном примере положим 3 знака после запятой. Т.к. отрезок области решений имеет длину 20, для достижения данной точности отрезок [AC] = [-10;+10] должен быть разбит на равные части (отрезки), число которых должно быть достаточно большим. Для нашего примера 20*1000 = 20000. В качестве двоичного представления используем код номера маленького отрезка. Этот код позволяет определить соответствует ему вещественное число, если известны границы области решения. Отсюда следует, что двоичный вектор для кодирования вещественного решения должен иметь 15 бит, т.к. число 20000 находится в пределах 16384 = 214 < 20000 ≤ 215 = 32768. Это позволяет разбить отрезок от -10 до +10 на 32768 частей и обеспечить необходимую точность. Отображение из двоичного представления (b14, b13, b12…b0), где bi {0, 1}, в вещественное число из отрезка АС выполняется в 2 шага: 1. Перевод двоичного числа в десятичное: (< b14, b13, b12…b0 >)2 = ( bi 2i) = x' 3. Вычисление соответствующего вещественного числа x: x = a + x' * ' * , где -10 – левая граница области решения. Хромосомы все нули и все 15 единиц представляют границы отрезка [-10; +10]. При данном представлении вещественных чисел можно использовать классический генетический алгоритм. ГА в отличии от других оптимизирующих и поисковых процедур обладают следующими особенностями: 1. Работают не с параметрами, а с закодированным множеством параметров. 2. Осуществляет поиск из популяции точек, а не из единственной точки. 3. Использует целевую функцию непосредственно, а не ее приращение. 4. Использует не детерминированные, а вероятностные правила поиска решений. 5. Каждая новая популяция состоит из жизнеспособных особей (хромосом). 6. Каждая новая популяция лучше (в смысле целевой функции) предыдущей. 7. В процессе эволюции последующая популяция зависит только от предыдущей.
Использование кода Грея в ГА Рассмотренное двоичное представление вещественного числа, имеет существенный недостаток: расстояние между реальными числами (на числовой оси) часто не соответствует расстоянию (по Хеммингу) между их двоичными представлениями. Поэтому желательно получить двоичное представление, где близкие расстояния между хромосомами (двоичными представлениями) соответствовали близким расстояниям в проблемной области (в данном случае расстоянию на числовой оси). Это можно сделать, использовав код Грея. Приведем пример соответствия для 4-х битового представления и кода Грея.
Заметим, что в кодах Грея соседние двоичные представления отличаются на 1 бит (расстояние по Хеммингу равно 1). Рассмотрим алгоритмы преобразования двоичного числа в код Грея и наоборот: Procedure Binary-to-Gray() { g1 = b1 for k=2 to m do gk = bk-1 xor bk } Procedure Gray-to-Binary { value=g1 b1=value for k=2 to m do begin if gk= l then value=NOTvalue bk=value } end
Представление хромосомы может быть не обязательно двоичной. Рассмотрим диофантово (имеющее только целые решения) уравнение: a+2b+3c+4d=30, где a, b, c и d - некоторые положительные целые числа. Для начала выберем 5 случайных решений в диапазоне от 1 до 30: 1 =< a,b,c,d =< 30, сформируя таким образом начальную популяцию.
Таблица 1. 1-е поколение хромосом и их содержимое
Таблица 2. Коэффициенты выживаемости первого поколения хромосом (набора решений)
Таблица 3: Вероятность оказаться родителем
Таблица 4: Симуляция выбора потомков
В результате кроссинговера над выбранными парами получены потомки:
Таблица 5: Кроссинговер между потомками
Таблица 6: Симуляция кроссинговера хромосом потомков Теперь мы можем вычислить коэффициенты выживаемости (fitness) потомков.
Таблица 7: Коэффициенты выживаемости потомков (fitness)
Продолжая аналогичным образом, одна хромосома достигнет коэффициента выживаемости 0, то есть станет решением задачи.
Модификация генетических алгоритмов Раннее рассмотренная реализация относится к классической. Далее рассмотрим различные модификации для каждого функционального блока простого ГА.
Создание исходной популяции Существует основных 3 способа создания исходной популяции: 1. Стратегия "одеяла" - формирование полной популяции, содержащей все возможные решения. Например, для n - разрядной хромосомы мы имеем всего 2n вариантов решений, которые формируют полную популяцию. 2. Стратегия "дробовика" - генерация достаточно большого случайного подмножества решений. 3. Стратегия фокусировки - генерация подмножества решений, включающих разновидности одного решения. Первый подход (стратегия «одеяла») практически не реализуем даже для задач большой и средней размерности, вследствие больших вычислительных затрат. Популяция не может развиваться, т.к. в ней уже содержатся всевозможные решения. Третий способ используется тогда, когда есть предположение, что некоторое решение является вариацией известного значения. В этом случае время поиска оптимального решения существенно сокращается, т.к. алгоритм начинает работу в окрестности оптимального решения. Чаще всего применяют второй способ. В этом случае в результате эволюции есть возможность перейти в другие подобласти поиска. Эффективность ГА во многом зависит от качества и структуры начальной популяции. На практике часто применяют комбинацию второго и третьего способов. Сначала определяются особи с высокими значениями целевой функции, а затем случайно формируются начальные решения в этих подобластях.
Отбор родителей (селекция) Оператор отбора S порождает промежуточную популяцию tиз текущей популяции t → Р t. При отборе конкурентно-способных особей используют целевую (fitness) функцию, как единственно доступный источник информации о качестве решения. Рассмотрим наиболее распространенные методы решения: Пропорциональный отбор (метод "рулетки") Данный вид отбора чаще всего используется на практике. При этом особи представляются в виде отрезков на линии (или сектора рулетки) таким образом, что их размер пропорционален значению целевой функции для данной особи.
Здесь на отрезке [0,1] для каждой особи строятся отрезки, длины которых пропорциональны вероятностям выбора особей, как это показано на рисунке.
1 2 3 4 5 6 7 8
Рисунок - Вероятность выбора особей методом рулетки
Случайно генерируются числа от 0 до 1 и в промежуточную популяцию выбираются те особи, в "чей отрезок" попадают эти случайные числа. Данный метод имеет следующие недостатки: - зависимость от положительных значений целевой функции; - без модификации метод может использоваться без модификации только для максимизации функции; - простое добавление очень большой константы к целевой функции, может свести способ отбора практически к случайному выбору; - особи с очень маленькими значениями фитнесс-функции слишком быстро исключаются из популяции, что может привести к преждевременной сходимости ГА. Для устранения этих недостатков используют масштабирование относительно минимального значения в популяции или используется метод ранжирования. Для приведенного примера можно привести следующую гистограмму выбора особей.
Метод ранжирования
Отметим, что вероятность отбора для каждой особи будет зависит от ее позиции (номера) в этом упорядоченном множестве особей, а не от самого значения целевой функции. Этот метод отбора более устойчив, чем предыдущий. В основном, применяют линейное ранжирование, где вероятность отбора определяют следующим выражением:
Ps (ai) = , где 1 ≤ a ≤ 2 выбирается случайным образом; b = 2 – a; N – мощность популяции; i – номер особи в упорядоченном списке. Для приведенного примера гистограмма вероятностей выбора особей методом ранжирования, представлена на следующем рисунке. Высота "ступенек " в отличие от предыдущего выбора.
Иногда применяют нелинейное ранжирование. При этом вероятность отбора также определяется номером позиции в упорядоченном множестве особей, но при этом вид функции может быть сложнее. Достоинством метода ранжирования является возможность его применения при поиске как максимумов, так и минимумов функций. Этот метод также не требует масштабирования для предотвращения преждевременной сходимости в отличие от метода рулетки.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-12-15; просмотров: 45; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.25.32 (0.044 с.) |