- •Раздел 1. Генетические алгоритмы
- •Раздел 2. Решение задач с помощью генетических алгоритмов
- •Раздел 3. Проект внедрения системы
- •Раздел 1 Генетические алгоритмы
- •1.1 Определение га.
- •1.2 Применение га
- •1.4 История генетических алгоритмов.
- •1.5 Алгоритм работы
- •1.5.2 Скрещивание
- •1.5.3 Мутация
- •1.5.4 Критерии остановки
- •1.5.1 Отбор
- •Раздел 2. Решение задач с помощью генетических алгоритмов.
- •2.1 Программное обеспечение
- •2.1.1 Общие сведения
- •Работа с genetic algorithm tool, пример использования.
- •2.2 Математическая постановка задачи
- •2.3 Бинарное решение
- •2.4 Пример решения задачи в MatLab
- •Часть 3. Проект внедрения системы на предприятие
- •Обоснование необходимости внедрения системы
- •Организационная структура проекта
- •3.3 Декомпозиция проекта
- •3.2 Матрица ответственности
- •Ротштейн а.П. "Интеллектуальные технологии идентификации: нечеткая логика, генетические алгоритмы, нейронные сети" - Винница: универсум-Винница, 1999. - 320 с.
2.2 Математическая постановка задачи
Постановка задачи включает в себя множество допустимых решений и числовую функцию, определенную на этом множестве, которая называется целевой функцией.
Нельзя отождествлять критерий (критерии) оптимальности и целевую функцию.
Целевая функция - это аналитическая зависимость между критерием (критериями) оптимальности и подлежащими оптимизации параметрами с указанием направления экстремума.
Отличие понятий «критерий» и «целевая функция» состоит в следующем:
1. Целевая функция может включать в себя более одного критерия.
2. Для целевой функции всегда и обязательно указывается вид экстремума:
Различают два вида задач оптимизации:
1 Задачу минимизации.
2 Задачу максимизации.
Чтобы решить задачу минимизации функции на множестве, необходимо найти такой вектор (а также соответствующее значение целевой функции), чтобы неравенство: выполнялось для всех. При этом называют оптимальным решением (точнее здесь - минимальным решением), а - оптимумом (минимумом).
Чтобы решить задачу максимизации функции на множестве, необходимо найти такой вектор (а также соответствующее значение целевой функции), чтобы неравенство: выполнялось для всех. При этом называют оптимальным (максимальным ) решением, а- оптимумом ( максимумом ).
В общем виде находится именно вектор, т.к., например, при решении двухпараметрической задачи, он будет включать в себя два параметра, трехпараметрической - три параметра и т.д.
2.3 Бинарное решение
Отметим еще раз, что генетические алгоритмы – это процедура, которая исследует пространство строк определенной длины для нахождения хромосом с относительно высокой величиной пригодности. При подготовке использования ГА к частной проблеме первый шаг состоит в определении пути представления задачи на языке, подобном хромосомам. Алгоритм действий представлен на изображении 2.2.1
Рис. 2.3.1-Обобщенная структура генетического алгоритма
Один из примеров решения по данному алгоритму можно связать с нахождением наилучшей бизнес-стратегии. В этой задаче менеджеру необходимо выбрать лучшую стратегию среди возможных трех бинарных решений: – цена технологии (50 тысяч или 100.); – скорость внедрения (быстро или медленно); – скорость окупаемости (медленно, быстро). Цель заключается в нахождении комбинации этих трех решений (бизнес-стратегий), которая обеспечивает наибольший доход. Здесь имеются три переменные (цена, скорость, окупаемость), каждая из которых может принимать одно из двух значений. Тогда каждую возможную бизнес-стратегию можно представить в виде строки длиной m = 3 с алфавитом K = 2. Для каждой переменной значения 0 или 1 присваиваются одному из возможных вариантов выбора. Пространство поиска в этой задаче состоит из 8 возможных бизнес-стратегий. Мы будем рассматривать 5 из них (Табл.2.3.1).
Табл. 2.3.1 Первая популяция
Номер технологии |
Цена |
Скорость внедрения |
Скорость окупаемости |
Бинарное представление |
1 |
Высокая |
Высокая |
Высокая |
011 |
2 |
Высокая |
Высокая |
Низкая |
010 |
3 |
Высокая |
Низкая |
Высокая |
001 |
4 |
Низкая |
Высокая |
Низкая |
110 |
5 |
Низкая |
Низкая |
Низкая |
100 |
Выбор строки, состоящей из нулей и единиц, и отображения значений переменных в нули и единицы на определенных позициях строки, определяют схему представления для этой задачи. Предположим, что при решении задачи уровень знаний менеджера в этой области бизнеса крайне низок, в частности, он не знает:
- Какая из трех перемен наиболее важна;
- Каковы величины максимального дохода при оптимальном решении и потерь при ошибочном решении;
- Какая единственная переменная дает наибольшее изменение в доходе.
Менеджер также не знает, приближается ли он к глобальному максимуму путем ступенчатого изменения одной переменной, фиксируя ее при лучшем результате, а затем повторяя аналогичную процедуру с другой переменной и т. д. Возможно, переменные связаны некоторой зависимостью таким образом, что для достижения оптимума вначале необходимо идентифицировать и зафиксировать частную комбинацию двух переменных, а затем изменять оставшуюся. У менеджера есть единственная обратная связь с внешней средой – это доход, получаемый каждым рестораном еженедельно. Так как большей информации о внешней среде у менеджера нет, он может испытывать различные начальные случайные стратегии в каждом из четырех ресторанов. Стратегии, показанные в табл.2.2.1, можно использовать как начальные. В действительности менеджер работает так же, как и ГА. Работа ГА начинается с попыток узнать что-либо об окружающей среде тестированием ряда случайно выбранных точек в пространстве поиска. Выполнение ГА начинается с нулевой генерации, т. е. с популяции, состоящей из случайно созданных особей. В нашем случае размер популяции M = 5. В каждой генерации каждая строка (особь) оценивается с точки зрения приспособленности (пригодности) к внешней среде. Пригодностью в рассматриваемом примере может быть доход, прибыль, полезность и другие подобные характеристики. В табл. 2.3.2 показаны значения функции пригодности f(ai) для рассматриваемого примера, где в качестве f(ai) принят десятичный эквивалент бинарной строки
Табл. 2.3.2 Значения функции пригодности f(ai)
Номер строки |
Генерация 0 |
||
Строка аi |
f(ai) |
|
|
1 |
011 |
3 |
0,21 |
2 |
010 |
2 |
0,14 |
3 |
001 |
1 |
0,07 |
4 |
110 |
5 |
0,35 |
5 |
100 |
4 |
0,28 |
Сумма |
15 |
1,00 |
|
Лучшее значение |
5 |
||
Среднее значение |
3 |
||
Худшее значение |
1 |
||
Эта таблица показывает пригодность для каждой из восьми хромосом в случайной исходной популяции, разработанной для данной задачи. Анализируя табл. 2.2.2, менеджер узнает конкретные значения пригодности (дохода) для каждой из четырех точек (стратегий) в пространстве поиска. Единственной информацией, используемой менеджером при выполнении ГА, служит величина меры пригодности отдельных строк, представленных в популяции. ГА, как было изложено выше, преобразует одну популяцию в другую посредством генетических операторов. Применим к нулевой генерации вначале оператор селекции, который является аналогом дарвиновского оператора репродукции. Эту процедуру выполняем копированием строк текущей популяции в следующую генерацию с вероятностью, пропорциональной значению функции пригодности. Воспользуемся здесь алгоритмом рулетки, разделенной на восемь неравных частей, которые пропорциональны относительной пригодности каждой строки (см последний столбец табл. 2.2.2) и показаны на рис. 2.3.1. Поясним более подробно построение и селекцию в рассматриваемом примере.
Рис. 2.3.1-Диаграмма соотношения выживаемости членов популяции
Сумма значений пригодности всех строк составляет 15 единиц, при этом лучшая строка в текущей популяции имеет пригодность, равную 5. Следовательно, часть пригодности всей популяции, вносимой строкой 110, есть 0,35.
В этой схеме селекции хромосома 110 обладает вероятностью, равной 0,35, с которой она может быть отобрана на каждую из четырех позиций в новой популяции. Исходя из этого, можно ожидать, что строка 110 будет занимать две из пяти строк в новой генерации. Однако следует учесть, что ГА по своей природе носит вероятностный характер, поэтому есть шанс, что строка 110 может появиться три раза или один раз в новой популяции (есть гораздо меньший шанс появиться четыре раза или не появиться вовсе в новой генерации). Каждая строка в исходной популяции отображается сектором рулетки, чей размер пропорционален пригодности строки. Понятно, что последние строки с наименьшей пригодностью имеют меньшие шансы оказаться выбранными, а строка 1 – наибольшие. После пяти вращений колеса (поскольку размер популяции составляет M = 5) были отобраны такие строки: 1, 2, 5, 4 и 4. В результате селекции строка 3 не вошла в новую популяцию, а строка 4 попала дважды. Родительский пул (набор строк, из которых путем скрещивания будут создаваться потомки) после селекции показан в табл.2.2.3.
Таблица 2.3.3 Родительский пул
Номер строки |
Строка ai |
f(ai) |
1 |
011 |
3 |
2 |
010 |
2 |
4 |
110 |
5 |
4 |
110 |
5 |
5 |
100 |
4 |
Сумма |
19 |
|
Худшее значение |
2 |
|
Среднее значение |
3,8 |
|
Лучшее значение |
5 |
|
Результатом селекции является улучшение средней пригодности популяции (3,8 вместо 3 в исходной популяции). Кроме того, здесь худшее значение пригодности составляет две единицы, а в исходной популяции – одну единицу. Такие улучшения в популяции типичны для схем селекции, потому что особи с низкой пригодностью имеют тенденцию к исключению из популяции, в то время как строки с высокой пригодностью – к созданию дуплетов в новой генерации. Конечно, пригодность, связанная с наилучшей строкой в популяции, не может улучшиться в результате селекции, так как никаких новых хромосом в результате селекции не создается. Перейдем к оператору скрещивания, который позволяет создать новые особи. В результате применения этого оператора в пространстве поиска формируются новые точки, которые проверяются с точки зрения их пригодности. Оператор скрещивания создает двух потомков, которые обычно отличаются от своих родителей и друг от друга. Каждый потомок содержит некоторый генетический материал, приобретенный им от каждого родителя. Задаемся вероятностью скрещивания, например рс = 0,5, что означает: только две строки из пяти будут подвергаться скрещиванию. Допустим, что для этой процедуры отобраны первые две особи из родительского пула: 011 и 110. Точка скрещивания определяется случайно, к примеру, после второго бита, т. е. 01–1 и 11– 0. В результате скрещивания получили два потомка: 010 и 111.
Таблица 2.3.4 Родители и потомки
Номер строки |
Строка ai |
f(ai) |
1 |
011 |
3 |
2 |
110 |
6 |
3 |
010 |
2 |
4 |
111 |
7 |
5 |
101 |
5 |
Сумма |
23 |
|
Худшее значение |
2 |
|
Среднее значение |
4,6 |
|
Лучшее значение |
7 |
|
Пять строк в последней таблице представляют собой новую популяцию, созданную в результате применения селекции и скрещивания. Эти пять особей есть первая генерация при использовании ГА. Сравним результаты новой популяции с результатами исходной:
– средняя пригодность популяции увеличилась с 3 до 4,6;
– лучшая строка улучшилась с 5 до 7;
– худшая особь стала равной 2 вместо 1.
Лучшее решение, соответствующее строке 111, обеспечивает наибольший доход и является оптимальной стратегией. Таким образом, в этой задаче, не прибегая к еще одному оператору – мутации, добились оптимального результата, который приводит к бизнес-стратегии:
- Низкая цена технологии
- Быстрая скорость внедрения
- Быстрая окупаемость технологии.
