Генетические алгоритмы как перспективный метод оптимизации
Описание применения генетического алгоритма для решения комбинаторных задач или оптимизации различного рода функций. Моделирование эволюции естественного процесса и его применение для решения задач оптимизации как первостепенная задача направления.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 15.08.2020 |
Размер файла | 357,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Генетические алгоритмы как перспективный метод оптимизации
Лоскутов И.В.
Шульгин А.О.
The article describes a genetic algorithm application for the decision of combinatory tasks or optimization various kind of functions. The feature of genetic algorithms is based on natural evolution in the nature and started with principles of inheritance and evolutionary selection. The modeling of natural process evolution and its application for the decision of optimization problems is a paramount problem for the given direction. The genetic algorithm is the most recent product of the artificial intelligence techniques.
генетический алгоритм комбинаторный
Одна из основных проблем в науке и технике сегодня - это разработка теории, математических методов и моделей для эффективного принятия решения в сложных системах. Сложность систем, их уникальность приводит к необходимости поиска новых направлений моделирования и синтеза. Эти направления в настоящее время активно разрабатываются и составляют основу понятия “искусственный интеллект”. Именно на пути применения перспективных интеллектуальных технологий большинство исследователей надеется найти решение стоящих перед учеными и инженерами проблем и задач. При этом важнейшими задачами являются оптимизация сложных систем, построение интеллектуальных искусственных систем поддержки принятия решений, моделирование процессов эволюционного развития природы.
В последние два десятилетия при оптимизации сложных систем исследователи все чаше применяют природные механизмы поиска наилучших решений. Эти механизмы обеспечивают эффективную адаптацию флоры и фауны к окружающей среде па протяжении миллионов лет. Сегодня интенсивно разрабатывается научное направление Natural Computing “Природные вычисления”, объединяющее методы с природными механизмами принятия решений.
Целью настоящей статьи является изложение теоретических основ и примеров практического применения генетических алгоритмов (ГА) как нового перспективного метода оптимизации. Статья состоит из трех частей: в первой части излагается теория генетических алгоритмов, во второй - описывается пример генетической оптимизации, в третьей части дается обзор применения генетических алгоритмов.
История эволюционных вычислений началась с разработки ряда независимых моделей, среди которых были генетические алгоритмы и классификационные системы, созданные американским исследователем Дж. Холландом. Он предложил использовать методы и модели развития органического мира на Земле в качестве механизма комбинаторного перебора вариантов при решении оптимизационных задач [1]. Этот алгоритм, послуживший основой для дальнейших исследований в теории ГА, относился к классу последовательных алгоритмов, не обладал адаптивными свойствами, оперировал простыми бинарными строками и одной функцией соответствия. Компьютерные реализации этого механизма получили название “генетические алгоритмы”.
Согласно репродуктивному плану Холланда [1], генетические схемы поиска оптимальных решений включают следующие этапы процесса эволюции:
Конструируется начальная популяция. Вводится начальная точка отсчета поколений t=0. Вычисляются приспособленность хромосом популяции (целевая функция) и средняя приспособленность всей популяции.
Устанавливается значение t=t+1. Выбираются два родителя (хромосомы) для скрещивания. Выбор осуществляется случайным образом пропорционально жизнеспособности хромосом, которая характеризуется значениями целевой функции.
Формируется генотип потомка. Для этого случайным образом выбирается один из потомков A(t), который сохраняется как член новой популяции. Далее к потомку A(t) последовательно с заданными вероятностями применяются операторы инверсии и мутации. Полученный в результате генотип потомка сохраняется как A'(t).
Обновление текущей популяции путем замены случайно выбранной хромосомы на A'(t).
Определение приспособленности A'(t) и пересчет средней приспособленности популяции.
Если t = t*, где t* - заданное число шагов, то выполняется переход к этапу 7, в противном случае - переход к этапу 2.
Конец работы.
Основная идея эволюции, заложенная в различные конструкции генетических алгоритмов, проявляется в способности “лучших” хромосом оказывать большее влияние на состав новой популяции за счет длительного выживания и более многочисленного потомства.
Простой генетический алгоритм [1] включает операцию случайной генерации начальной популяции хромосом и ряд операторов, обеспечивающих генерацию новых популяций на основе начальной. Этими операторами являются кроссовер, инверсия, мутация (рис. 1). Воздействуя с некоторой вероятностью на генотипы родительских особей, каждый из них, с одной стороны, обеспечивает передачу потомству жизненно важных признаков, а с другой - поддерживает на протяжении эволюционно значимого периода достаточно высокий уровень его изменчивости.
Мутация - это фоновая операция, производящая случайное изменение в различных хромосомах. Наипростейший вариант мутации состоит в случайном изменении одного или более генов [2].
Скрещивание является главной генетической операцией. Эта операция выполняется над двумя хромосомами - родителями и создает потомка путем комбинирования особенностей обоих родителей [3].
Рисунок 1 - Применение генетических операторов
Рассмотрим нелинейную целевую функцию с ограничениями:
, где , .
Требуется найти: .
1. Для реализации генетического алгоритма необходимо закодировать оптимизируемые параметры в двоичные строчки. Длина строчки зависит от требуемой точности. Например, пусть переменная xj имеет интервал изменения [aj, bj], и требуемая точность - пять знаков после запятой. В этом случае интервал изменения переменной xj должен быть разбит как минимум на квантов. Требуемое число битов mj, необходимых для кодирования, находится по формуле:
(1),
где - интервал изменения переменной, k - требуемая точность. Тогда по (1): m1=16, m2=19. Суммарная длина хромосомы, для кодирования параметров: , m=35 бит. Генерируется 10 случайных популяций, где каждая хромосома имеет длину 35 бит: v1 =[01000001010100101001101111011111110],
v2 =[10001110101110011000000010101001000],…,
v10 =[01111101001110101010000010101101010].
2. Вычисляются по сгенерированным популяциям значения переменных x1 и x2:
(2).
Для первой популяции десятичные значения: x1 - 16722, x2 - 319230, тогда по (2): , x1=0.6531,, x2= 3.19198.
Соответствующие значения переменных: v1=[x1,x2]=[0.653097, 3.191983], v2=[x1,x2]=[0.834511,2.809287],…, v10=[x1, x2]=[0.793504,3.259521].
3.Следующим шагом оценивается функция соответствия для каждой хромосомы: eval(v1)=f(0.653097,3.191983)=20.432394, eval(v2)=f(0.834511,2.809287)= -4.133627,…, eval(v10)=f(0.793504,3.259521)=6.201905. Очевидно, что хромосома v3 наиболее сильная, а хромосома v6 наиболее слабая.
4. Наибольшее распространение на практике получил подход, называемый колесо рулетки [3]. Отбор осуществляется на основе некоторой функции распределения, которая строится пропорционально вычисленным функциям соответствия сгенерированных вариантов - хромосом.
4.1 Вычисляем общую функцию соответствия популяции:
(3),
F=242.208919.
4.2 Вычисляем вероятность отбора pk для каждой хромосомы vk:
F (4),
p1=0.181398, p2=0.079973,…, p10=0.122645.
4.3 Вычисляем совокупную вероятность qk для каждой хромосомы vk:
(5),
где k =1,…,размер популяции. q1=0.181398, q2=0.181398,…, q10=0.181398.
4. Вращаем колесо рулетки 10 раз и каждый раз отбираем одну хромосому для новой популяции. Генерируем случайное число r из интервала [0,1]. Случайная последовательность из интервала [0,1] имеет вид: 0.301431, 0.322062, …, 0.197577. Если , то выбираем первую хромосому v1; иначе выбираем k-ю хромосому такую, что. Первое число r1=0.301431 больше чем q2 и меньше чем q3. Это означает, что отбирается хромосома v3. Второе число r2=0.322062 также больше чем q2 и меньше чем q3. Следовательно, опять отбираем хромосому v3 для новой популяции и так далее. Получим новую популяцию:
v?1 =[11111000111000001000010101001000110] (v3),
v?2 =[11111000111000001000010101001000110] (v3),...,
v?10 =[10001110101110011000000010101001000] (v2).
5. Применяем оператор мутации, тем самым изменяем один или несколько генов с вероятностью, равной коэффициенту мутации. Зададим коэффициенту мутации значение pm=0.01, так что в среднем 1% всех битов популяции подвергнется операции мутации. Число битов во всей популяции составляет бит. Поэтому в среднем в каждом поколении мутирует 3.5 бита. Каждый бит имеет одинаковый шанс подвергнуться мутации. Таким образом, генерируется последовательность случайных чисел rk, где (k=1…350) из интервала [0,1]. Предполагая, что мутируют следующие гены: Номера хромосом - 4, 5, 7, 10; Позиции бита в хромосоме - 6, 32, 1, 32.
После применения оператора мутации получается следующая популяция:
v??1=[11111000111000001000010101001000110], v??2=[11111000111000001000010101001000110],…, v??10=[10001110101110011000000010101000000].
Соответствующие десятичные значения переменных x1 и x2 , а так же значения функции соответствия имеют вид: eval(v?1)=f(1.083310,2.874312)=28.978472, eval(v?2)=f(1.083310,2.874312)=28.978472,…, eval(v?10)=f(0.834511,2.809232)=-4.138564. Таким образом, завершена одна итерация генетического алгоритма. Проделав 1000 итераций, получаем наилучшую хромосому в 419-м поколении: v*=[01000011000100110110010011011101001], eval(v*)=f(0.657208,2.418399)=31.313555. Получаем .
Рассмотрим основные направления применения генетических алгоритмов. К ним в первую очередь относятся: нахождение экстремумов математических функций, аппроксимация функций, параметрическая идентификация, решение задач управления сложными объектами, синтез и обучение нейронных сетей. Основные преимущества генетических алгоритмов приведены ниже в таблице:
Таблица 1 - Преимущества генетических алгоритмов
№ п/п |
Достоинства генетического алгоритма |
Применение |
|
1 |
Нахождение субоптимальных решений |
Для целого ряда реальных задач отсутствует практическая необходимость получения оптимального решения. Достаточно получить близкое к оптимальному решение, удовлетворяющее заданным условиям. При решении такого рода задач генетический алгоритм значительно эффективнее классических методов оптимизации, а особенности с точки зрения скорости и ресурсоемкости расчетов. |
|
2 |
Использование неформализованных целевых функций |
Во многих задачах целевую функцию невозможно выразить в виде формализованной математической зависимости. Оценка полученного решения определяется не путем подстановки некоторых параметров в заданную функцию, а при помощи специальных алгоритмов и моделей. В ряде случаев функциональная зависимость выходных параметров от входных величин известна, но неизвестен характер поведения функции. Генетический алгоритм позволяет использовать в качестве целевой функции любого вида. |
|
3 |
Нахождение глобальных экстремумов |
Генетический алгоритм в большинстве случаев позволяет обойти проблему попадания в локальный экстремум. Это достоинство особенно актуально при решении задач оптимизации многоэкстремальных функций. |
|
4 |
Решение задач большой размерности |
ГА традиционно ориентирован на работу с многопараметрическими функциями и задачами большой размерности. Использование ГА для решения такого рода задач требует значительно меньших затрат по сравнению, как с классическими оптимизационными алгоритмами, так и по сравнению с современными интеллектуальными технологиями. |
Такой список достоинств, проверенных при практическом решении целого ряда задач, подтверждает перспективность использования генетических алгоритмов [3].
Генетические алгоритмы опираются на естественную эволюцию в природе и исходят из принципов наследования и эволюционного отбора. Моделирование процесса естественной эволюции и его применение для решения задач оптимизации - это первостепенная задача для данного направления. В статье на примере задачи нахождения экстремума функции показано, как в алгоритмы решения задач оптимизации реализовать на языке генетических алгоритмов: случайность, многократность взаимодействия, основные генетические операторы. Проведенный нами анализ показывает, что эффективность генетических алгоритмов увеличивается с ростом размерности задачи оптимизации.
ЛИТЕРАТУРА
1. Holland J.H. Adaptation in natural and artificial systems. An introductory analysis with application to biology, control, and artificial intelligence. - London: Bradford book edition, 1994. - 211 с.
2. Вороновский Г.К. Генетические алгоритмы, искусственные нейронные сети и проблемы виртуальной реальности / Г. К. Вороновский, К. В. Махотило, С. Н. Петрашев, С. А. Сергеев. - X. : ОСНОВА, 1997. - 112 с.
3. Букатова И.Л. Эволюционное моделирование и его приложения / И. Л. Букатова. - М. : Наука, 1979. - 231 с.
Размещено на Allbest.ru
...Подобные документы
Задачи оптимизации. Ограничения на допустимое множество. Классическая задача оптимизации. Функция Лагранжа. Линейное программирование: формулировка задач и их графическое решение. Алгебраический метод решения задач. Симплекс-метод, симплекс-таблица.
реферат [478,6 K], добавлен 29.09.2008Исследование типовых примеров задач оптимизации. Реализация программы в среде MatLab для их решения. Изучение функций нелинейной оптимизации. Определение оптимума целевой функции одной или нескольких переменных. Поиск оптимальных настроек регулятора.
лабораторная работа [188,8 K], добавлен 07.12.2016Описание генетических алгоритмов. Применение генетического алгоритма для решения задачи коммивояжера. Постановка задачи безусловной оптимизации. Изучение распространения генетических алгоритмов на модель с несколькими взаимодействующими популяциями.
дипломная работа [979,1 K], добавлен 30.05.2015Оптимизация решения задачи с помощью алгоритма отжига. Анализ теории оптимизации как целевой функции. Метод градиентного спуска. Переменные и описание алгоритма отжига. Представление задачи коммивояжера через граф. Сведение задачи к переменным и решение.
курсовая работа [784,0 K], добавлен 21.05.2015Программа для обучения графическому методу решения задач линейной оптимизации (ЗЛО). Необходимое серверное и клиентское программное обеспечение. Графический метод решения ЗЛО для произвольной задачи. Организационно-экономическое обоснование проекта.
курсовая работа [996,3 K], добавлен 14.10.2010Сущность задач оптимизации и методы их решения с ориентацией на современные средства компьютерной техники. Область допустимых решений. Структура оптимизационной модели. Проверка правильности нахождения точек координат методом половинного деления.
курсовая работа [2,4 M], добавлен 25.04.2015Первые работы по симуляции эволюции. Основные понятия генетических алгоритмов. Постановка задачи и функция приспособленности. Инициализация, формирование исходной популяции. Выбор исходной популяции для генетического алгоритма, решение задач оптимизации.
курсовая работа [714,1 K], добавлен 31.03.2015Постановка и решение дискретных оптимизационных задач методом дискретного программирования и методом ветвей и границ на примере классической задачи коммивояжера. Этапы построения алгоритма ветвей и границ и его эффективность, построение дерева графов.
курсовая работа [195,5 K], добавлен 08.11.2009Программирование численных методов одномерной оптимизации. Решение одномерных задач оптимизации методами последовательного поиска. Градиентные методы и их применение для оптимизации на ЭВМ математических моделей объектов. Методы нулевого порядка.
контрольная работа [257,9 K], добавлен 15.01.2009Основные генетические операторы. Схема функционирования генетического алгоритма. Задачи, решаемые с помощью генетических алгоритмов. Математическая постановка задачи оптимизации. Решение Диофантова уравнения. Программная реализация. Создание пособия.
курсовая работа [391,4 K], добавлен 20.02.2008Разработка программы "Задача о строевой записке" для автоматизации процесса решения задач оптимизации. Основные задачи и функции подлежащие автоматизации. Требования к параметрам технических средств. Описание процесса отладки и испытания программы.
курсовая работа [23,1 K], добавлен 28.04.2009Оптимизация показателей эффективности функционирования технологического контура системы управления космическим аппаратом, исследование свойств его показателей. Настройка нейронной сети, гибридизация генетического алгоритма с алгоритмами локального поиска.
дипломная работа [4,5 M], добавлен 02.06.2011Построение и использование математических и алгоритмических моделей для решения линейных оптимизационных задач. Освоение основных приемов работы с инструментом "Поиск решения" среды Microsoft Excel. Ввод системы ограничений и условий оптимизации.
лабораторная работа [354,7 K], добавлен 21.07.2012Теоретические основы задач оптимизации. Математическое и линейное программирование. Дифференциальные и разностные уравнения в экономико-математических моделях. Решение задач, подчиняющих закону естественного роста в пакете Maple. Программа MS Excel.
курсовая работа [2,1 M], добавлен 07.05.2014"Рой частиц" как наиболее простой метод эволюционного программирования, основанный на идеи о возможности решения задач оптимизации с помощью моделирования поведения групп животных. Схема работы алгоритма, составление кода программы и блок-схемы.
курсовая работа [38,5 K], добавлен 18.05.2013Обзор и сравнительный анализ современных математических пакетов. Вычислительные и графические возможности системы MATLAB, а также средства программирования в среде MATLAB. Основные возможности решения задач оптимизации в табличном процессоре MS Excel.
дипломная работа [6,6 M], добавлен 04.09.2014Математические основы оптимизации. Постановка задачи оптимизации. Методы оптимизации. Решение задачи классическим симплекс методом. Графический метод. Решение задач с помощью Excel. Коэффициенты целевой функции. Линейное программирование, метод, задачи.
реферат [157,5 K], добавлен 21.08.2008Краткие сведения о системах принятия решения в режиме показа формул и в режиме пользователя. Принципы решения задач оптимизации. Построение математической модели. Диаграмма "Оптимизация плана перевозок". Создание таблицы БД в Access: база данных, запросы.
курсовая работа [482,3 K], добавлен 12.08.2012Оптимизации внутренних бизнес-процессов на промышленном предприятии ООО "Брянскпромбетон" с использованием пакета прикладных программ "КИС: Бюджетирование". Анализ программных продуктов для решения задач. Логическая последовательность бюджетирования.
дипломная работа [7,0 M], добавлен 25.05.2008Теоретические основы метода оптимизации. Разработка компьютерной системы для решения задач многомерной безусловной оптимизации методом Хука-Дживса с минимизацией по направлению. Описание структуры программы и результаты ее отладки на контрольных примерах.
курсовая работа [595,4 K], добавлен 13.01.2014