ВВЕДЕНИЕ 4
Глава 1 Введение в генетический алгоритм 9
1.1 Назначение генетического алгоритма 9
1.2 Понятие генетического алгоритма 10
1.3 Представление данных в генетическом алгоритме 11
1.4 Генерация начальной популяции 12
1.5 Оценка индивидов функцией приспособленности 13
1.6 Оператор выбора родителей и оператор селекции 14
1.7 Оператор скрещивания 15
1.8 Оператор мутации 16
1.9 Остановка генетического алгоритма 17
1.10 Трудности разработки генетического алгоритма 18
Глава 2 Математическая модель элементов генетического алгоритма 20
2.1 Популяция 20
2.2 Генератор начальной популяции 21
2.3 Операторы выбора родителей и жертв 23
2.3.1 Панмиксия и метод ранжирования 23
2.3.2 Метод рулетки 24
2.3.3 Турнирный отбор 26
2.3.4 Инбридинг и аутбридинг 27
2.4 Оператор скрещивания 28
2.4.1 Кроссинговер 28
2.4.2 Дискретная рекомбинация 30
2.5 Оператор мутации 31
2.6 Моделирование случайной величины 33
2.7 Проблемы поиска конфигурации генетического алгоритма 34
Глава 3 Реализация системы испытания генетического алгоритма 35
3.1 Описание системы испытания генетического алгоритма 35
3.2 Абстрактный генетический алгоритм 38
3.3 Элементы генетического алгоритма и его операторы 40
3.4 Проектирование базы данных 43
3.5 Реализация операций с данными 47
3.6 Средство составления сводных таблиц 50
3.7 Исполнитель задач с большой нагрузкой 52
3.8 Пользовательский интерфейс 54
3.9 Применение системы испытания генетического алгоритма 55
Глава 4 Тестовые задачи для методов оптимизации 56
4.1 Задача поиска минимума тестовой функции 56
4.2 Задача упаковки рюкзака. 59
4.3 Испытание генетического алгоритма 63
Глава 5 Варианты улучшения характеристик генетического алгоритма 65
5.1 Способы оценки генетического алгоритма 65
5.2 Подбор размера популяции 66
5.3 Подбор мощности мутации 69
5.4 Подбор оператора выбор родителей 72
5.5 Приближение эволюционной траектории математической моделью ... 77
5.6 Адаптивные генетические операторы 84
5.7 Рекомендации по разработке генетических алгоритмов 87
ЗАКЛЮЧЕНИЕ 89
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 91
Существует множество задач, решение которых связано с перебором всех возможных вариантов решения. При решении такой задачи каждый сгенерированный вариант решения оценивается, а после завершения перебора из полученного множества решений выбирается самое пригодное в качестве ответа. Особенностью таких задач является то, что имеющихся знаний для ее решения хватает только на генерацию очередного варианта решения и его оценку. Под оценкой в данном случае понимается некоторая величина, позволяющая сравнить два варианта между собой, чтобы затем объявить один из них лучшим (или оба равносильными). При этом из оценки не может следовать вариант решения, равно как ответ на задачу не может следовать из условия рассматриваемой задачи.
Одной из математических моделей для решения таких задач является генетический алгоритм. Данный алгоритм относится к алгоритмам направленного поиска. Как правило, в его реализации участвуют случайные величины, поэтому его можно также называть стохастическим алгоритмом направленного поиска. Генетический алгоритм моделирует естественный процесс эволюции. Данный алгоритм является эффективным способом оптимизации решений с большим числом параметров. Наиболее частым промышленным применением генетического алгоритма является составление расписаний, так как данный алгоритм успешно справляется с задачами планирования и составления расписаний.
Помимо составления расписаний, генетический алгоритм может быть использован для решения различных комбинаторных задач, к которым относятся задачи компоновки, задачи на графах и прочие. В связи с ростом производительности вычислительных устройств и последующим увеличением популярности алгоритмов искусственного интеллекта вообще, генетический алгоритм теперь применяется и для ускорения настройки нейронных сетей.
Исследования, связанные с повышением эффективности генетического алгоритма, являются крайне актуальными по двум причинам. Во-первых, генетический алгоритм можно легко реализовать для решения той или иной оптимизационной задачи. Например, для обнаружения экстремума некоторой функции, алгоритму понадобятся только сама функция, область поиска и тип экстремума (минимум или максимум). Во -вторых, на текущем этапе развития теории данный вариант генетического алгоритма способен эффективно решать только конкретную задачу, под которую он приспособлен. То есть не существует единого варианта генетического алгоритма, способного одинаково эффективно решать любую задачу поиска.
Научная проблема заключается в том, что получение качественного генетического алгоритма является долгим и трудоемким процессом, обращающим обыкновенную разработку в научную работу с применением эвристик. Разработки, позволяющие упростить процесс создания качественного вариант генетического алгоритма, могут быть полезны во всех областях, связанных с применением данного алгоритма. Расширение знаний о работе генетического алгоритма позволит проще и быстрее решать поисковые задачи с большим числом параметров.
Объект исследования - генетический алгоритм и ход его работы.
Предмет исследования - высокая сложность разработки генетических алгоритмов.
Цель исследования - выявить закономерности между различными настройками генетического алгоритма и качеством его работы, найти способы модификации генетического алгоритма, приводящие к повышению качества его работы, найти способы оптимизации процесса разработки генетического алгоритма.
Гипотеза - подробный анализ хода работы различных генетических алгоритмов на различных задачах позволит выявить полезные закономерности, на которые можно будет опереться при разработке генетического алгоритма для некоторой задачи.
Задачи исследования:
1. Изучить классический генетический алгоритм и его операторы, составить необходимые математические модели.
2. Выявить трудности практического применения классического генетического алгоритма и определить критерии, оценивающие качество работы генетического алгоритма.
3. Реализовать такой вариант генетического алгоритма, который бы позволял легко и быстро тестировать различные конфигурации генетического алгоритма.
4. Реализовать инструмент для испытания и исследования конфигураций генетического алгоритма, позволяющий хранить ход работы алгоритма при данной конфигурации, предоставлять данные, полученные в ходе испытания конфигураций генетического алгоритма, в удобном для последующего анализа виде.
5. Разработать и испытать различные варианты генетических операторов путем составления из них конфигураций генетического алгоритма, найти закономерности между настройками данных операторов и качеством получаемого результата.
6. Провести анализ собранных данных, выявить наиболее успешные варианты конфигурации генетического алгоритма, найти закономерности между конфигурациями генетического алгоритма и качеством получаемого результата, разработать рекомендации по созданию генетического алгоритма с качественной конфигурацией.
7. Оформить выводы и результаты исследования.
Текущий процесс разработки генетических алгоритмов строится на верном и подтвержденном практикой предположении, что алгоритм следует приспосабливать к конкретной задачи. Независимая разработка нового генетического алгоритма при помощи перебора различных конфигураций была единственным доступным способом получения эффективных алгоритмов на
заре развития генетических алгоритмов. Сейчас, когда уже разработано множество генетических алгоритмов для решения широкого спектра задач и есть возможность использования ранее полученных достижений, поэтому необходимо развивать знания о процессе получения производительных конфигураций. Источники [3-6,10-17] акцентируют внимание на готовых конфигурациях, игнорируя процесс их получения. Из -за такого взгляда на генетические алгоритмы возникает недостаток знаний о способах получения производительных конфигураций.
В данной работе предлагается подход к решению возникшей проблемы, основанный на проведении абстрактных (от реально возникающих на практике) испытаний генетического алгоритма на тестовых задачах для методов оптимизации. Полученные эмпирические выборки, описывающие ход работы алгоритма, позволят выявить полезные опорные явления, на которые может ориентироваться разработчик генетических алгоритмов. В основу данного исследования положена визуализация полученных данных в виде эволюционных траекторий, подробно описывающих состояние алгоритма в различные моменты времени.
Научная новизна данной работы заключается в уточнении данных о разработке новых генетических алгоритмов. Предлагаются правила выбора генетических операторов, позволяющие сократить время подбора эффективной конфигурации. Предлагается способ прогнозирования работы генетического алгоритма, также позволяющий существенно сократить время подбора качественной конфигурации генетического алгоритма.
Установлено, что размер популяции следует подбирать в зависимости от сложности задачи. Разработано правило выбора размера популяции в зависимости от сложности решаемой задачи. Установлено, что оператор выбора родителей следует подбирать в зависимости от сложности задачи. Разработано правило выбора оператора выбора родителей в зависимости от сложности решаемой задачи, разработан вариант оператора выбора родителей. Установлено, что мощность мутации следует подбирать в зависимости от сложности задачи. Разработано правило выбора мощности мутации в зависимости от сложности задачи. Установлена обратная зависимость между скоростью получения решения и его точностью, для борьбы с данной особенностью разработан адаптивный вариант оператора мутации. Разработана функция, чья форма схожа с эволюционной траекторией, разработан способ ее получения по первоначальному участку эволюционной траектории.
Объем и структура диссертации: диссертационное исследование состоит из введения, 5 глав, заключения, библиографии (30 наименований). Работа изложена на 94 страницах, содержит 26 рисунков.
В рамках данной работы было проведено исследование способов и особенностей получения производительных конфигураций генетического алгоритма, основанное на анализе эволюционных траекторий. Изучение классического генетического алгоритма и составление математических моделей генетических операторов позволило выявить трудности, связанные с поисковым характером составления качественной конфигурации. С целью автоматизации процесса подбора генетических операторов был реализован генетический алгоритм с каркасной архитектурой, способный также собирать данные о динамике состояния популяции.
Процесс испытания конфигурации генетического алгоритма включает в себя реализацию генетического алгоритма при данной конфигурации, его запуск и одновременный сбор данных о ходе работы алгоритма. Стохастическая природа генетического алгоритма усложняет подобные испытания тем, что пусков необходимо делать много, а собранные данные усреднять. Для упрощения такого способа исследования разработана и описана система испытания генетических алгоритмов, принимающая в качестве входных данных конфигурации генетического алгоритма и форматы сводных таблиц, а выдающая в качестве результата сводные таблицы с данными о ходе работы алгоритма при некоторой конфигурации. Реализована возможность импорта в виде таблиц и в виде графиков.
Решение основной проблемы, связанной с высокой сложностью разработки генетических алгоритмов из -за поискового характера данного процесса, представлено в виде правил по настройке генетического алгоритма, основанных на сложности решаемой задачи: разработаны две стратегии по выбору размера популяции, оператора выбора родителей и мощности оператора мутации для простых и сложных задач. Обозначена обратная зависимость между точностью найденного решения и скоростью его получения. Описан способ борьбы с данной зависимостью при помощи адаптивного оператора мутации, применение которого позволило быстро получить точное решение простой задачи. Разработана функция, способная аппроксимировать эволюционную траекторию показателя наилучшей степени приспособленности в поколении. Также предоставлены результаты попыток прогнозирования формы эволюционной траектории при помощи данной функции. Полученные результаты позволят сократить время поиска качественной конфигурации за счет уменьшения как числа пробуемых конфигураций (применение правил выбора генетических операторов), так и за счет сокращения времени моделирования генетического алгоритма (применение формы аппроксимирующей функции вместо реальной работы алгоритма).
1. Архипов, И.В. Применение генетического алгоритма для многокритериальной задачи календарного планирования // Научно -технический вестник информационных технологий, механики и оптики, Т. 15, № 3, 2015. - С. 525-531.
2. Гончаров, Е.Н. Генетический алгоритм для задачи календарного планирования с ограниченными ресурсами // Автомат. и телемех., № 6, 2017. - С. 173-189.
3. Гончаров, Е.Н. Стохастический жадный алгоритм для задачи календарного планирования с ограниченными ресурсами // Дискретный анализ и исследование операций, Т. 21, № 3, 2014. - С. 11-24.
4. Губайдуллин, И. М. Применение разрывного метода Галеркина для решения обратной задачи диффузии лекарственных веществ из хитозановых пленок // Журнал Средневолжского математического общества., Т. 18, № 2,
2016. — С. 94-105.
5. Дивеев, А.И. Вариационный генетический алгоритм для решения задачи оптимального управления // Современные проблемы науки и образования, № 1, 2014. http://www.science-education.ru/ru/article/view7idM1474
6. Дивеев, А.И. Метод бинарного генетического программирования для поиска математического выражения // Вестник Российского университета дружбы народов. Серия: Инженерные исследования, Т. 18, № 1, 2017. - С. 125—134.
7. Дунаев, М.П. Параметрическая оптимизация системы управления насосной станцией с помощью генетического алгоритма // Наука и Образование: Научное издание, № 8, 2014. - С. 194-205.
8. Евсютин, О.О. Алгоритм встраивания информации в сжатые цифровые изображения на основе операции замены с применением оптимизации // Компьютерная оптика, Т. 41, № 3, 2017. - С. 412-421.
9. Ершов, Н.М. Неоднородные клеточные генетические алгоритмы // Компьютерные исследования и моделирование, Т. 7, № 3, 2015. - С. 775-780.
10. Жукович, Я.П. Генетические алгоритмы // Образование и наука в современных условиях: материалы IX Междунар. науч.-практ. конф., № 4,
2016. - С. 145-149.
11. Караев, А.Д. Применение генетического алгоритма для имитации искусственного интеллекта в игре // Студенческая наука: современные реалии : материалы II Междунар. студенч. науч. -практ. конф., 2017. - С. 53-60.
12. Коваленко, Ю.В. О сложности оптимальной рекомбинации для задач составления расписаний в многостадийной системе поточного типа // Дискретн. анализ и исслед. опер., № 2, 2016. - С. 41-62
13. Королёва, А.С. Генетический алгоритм решения задачи о ранце // Студенческая наука XXI века : материалы VI Междунар. студенч. науч.-практ. конф., № 3, 2015. - С. 83-84.
14. Кошев, А.Н. Разработка генетического алгоритма с адаптивными
мутациями для определения глобального экстремума функции n-переменных // Интернет-журнал «НАУКОВЕДЕНИЕ», Т. 8, № 6, 2016.
http ://naukovedenie. ru/PDF /32TVN616. pdf
15. Матвиенко, Г.Г. Моделирование переноса излучения методом Монте- Карло и решение обратной задачи на основе генетического алгоритма по результатам эксперимента зондирования аэрозолей на коротких трассах с использованием фемтосекундного лазерного источника // Квантовая электроника, № 2, 2015. - С. 145-152.
16. Урбан, А.Р. Решение задачи поиска оптимального столбца в условиях оптимального раскроя бумажного полотна // Вестник СПбГУ. Серия 10. Прикладная математика. Информатика. Процессы управления, № 1, 2015. - С. 100-106.
17. Шрейдер, М.Ю. Проектирование систем физической защиты с помощью генетического алгоритма // Интернет-журнал «НАУКОВЕДЕНИЕ», Т. 9, № 4,
2017. http://naukovedenie.ru/PDF/94TVN417.pdf
18. Шумков, Е.А. Использование генетических алгоритмов для обучения нейронных сетей // Политематический сетевой электронный научный журнал Кубанского государственного аграрного университета, № 91, 2013. - С. 455¬464.
19. Ahmed F.A., Mohamed A.T., A hybrid particle swarm optimization and
genetic algorithm with population partitioning for large scale optimization problems // Ain Shams Engineering Journal. 2016.
http://www.sciencedirect.com/science/article/pii/S2090447916301101
20. Aibinua A.M., Bello Salaub H., Najeeb Arthur R., Nwohud M.N., Akachukwue C.M., A novel Clustering based Genetic Algorithm for route optimization // Engineering Science and Technology, an International Journal. 2016. http://www.sciencedirect.com/science/article/pii/S2215098616300738
21. Divo D.S., Consorcia E.R., Felino P.L., Rolando G.P., Nathaniel C.B., Using
Genetic Algorithm Neural Network on Near Infrared Spectral Data for Ripeness Grading of Oil Palm (Elaeis guineensis Jacq.) Fresh Fruit // Information Processing in Agriculture. 2016.
http://www.sciencedirect.com/science/article/pii/S2214317316300427
22. Esraa A. Abdelhalim, Ghada A. El Khayat, A Utilization-based Genetic Algorithm for Solving the University Timetabling Problem (UGA) // Alexandria Engineering Journal. Vol. 55(2). 2016. P. 1395-1409.
23. Marcos V.G., Juan P.C., M. Angeles L.C., Analyzing the determinants of the voting behavior using a genetic algorithm // European Research on Management and Business Economics. Vol. 22(3). 2016. P. 162-166.
24. Maryam H., Fatemeh S., Exergy analysis and optimization of a high temperature proton exchange membrane fuel cell using genetic algorithm // Case Studies in Thermal Engineering. 2016. Vol. 8. P. 207-217.
25. Mohamed A.Y., Mohamed T.L., The path planning of cleaner robot for coverage region using Genetic Algorithms // Journal of Innovation in Digital Ecosystems. Vol. 3(1). 2016. P. 37-43.
26. Mohammad G., Ghasem Z., Hooshang J.R., Prediction of asphaltene precipitation using support vector regression tuned with genetic algorithms // Petroleum. Vol. 2(3). 2016. P. 301-306.
27. Nikolaidis A., Low overhead reversible data hiding for color JPEG images // Multimedia Tools and Applications. 2016. Vol. 75(4). P. 1869-1881.
28. Salari N., Shohaimi S., Najafi F., A Novel Hybrid Classification Model of Genetic Algorithms, Modified k-Nearest Neighbor and Developed Backpropagation Neural Network // National Center of Biotechnology Information. 2014. https://www.ncbi. nlm. nih. gov/pmc/articles/PMC4242540
29. Ying L., Haibo D., Niels L., Sanja P., A multi-objective genetic algorithm for optimisation of energy consumption and shop floor production performance // International Journal of Production Economics. Vol. 179. P. 259-272.
30. Younes A., Barzegar G., Pishvaiec M.R., Moradid R., Monfaredc M.S., Optimal control of batch cooling crystallizers by using genetic algorithm // Case Studies in Thermal Engineering. Vol. 8. 2016. P. 300-310.