Роль генетических алгоритмов в вопросах моделирования

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Аннотация

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

История создания и сущность генетических алгоритмов

Генетические алгоритмы ставят своей целью преодоление существующих проблем решения оптимизационных задач, таких как проблема преждевременной сходимости и проблема затраты времени на проведение вычислений. Генетические алгоритмы впервые предложены в 1975 году — Джоном Холландом, основаны на принципах естественного отбора Ч. Дарвина, относятся к группе стохастических методов. Определение генетического алгоритма можно дать, следующим образом, это адаптивный метод поиска, который используется для решения задач оптимизации, основанные на механизме генетического наследования, позаимствованный у природы. Так же генетический алгоритм представляет собой  последовательность  управляющих  действий  и  операций, моделирующий  эволюционные  процессы  на  основе  аналогов  механизмов  генетического наследования и естественного отбора. Степень адаптации зависит от набора хромосом, полученных от родителей [6].

Генетические алгоритмы позволяют строить модели сложных систем (экономических, инженерных, математических и т.д.). Расширение области поиска решений в сравнении со стандартными подходами, возникает за счет наличия механизма скрещивания. Естественный отбор избирает только лучшие решения, позволяя им развиваться дальше, за счет скрещивания друг с другом. Поэтому генетические алгоритмы позволяют решать задачи оптимизации для n-мерных систем нелинейных уравнений.

Генетический  алгоритм  является  алгоритмом направленного  поиска, поэтому в отличие  от  алгоритма  полного  перебора,  рассматривающего  все  возможные варианты  решения,  алгоритм  направленного  поиска стремится отыскать окрестность  оптимального  решения.  Следовательно, решение займет меньше времени, чем в случае полного перебора вариантов потенциальных решений. Однако, практика использование генетических алгоритмов для решения NP-полных  задач  имеет множество трудностей возникающих вследствие стремления  алгоритма  направленного  поиска  к локально оптимальному решению. Данная проблема вытекает из отсутствия информации у алгоритма о  локальности  или  глобальности  обнаруженного  оптимума,  из-за  чего алгоритмы  направленного  поиска  не  гарантируют  нахождение  глобально оптимального решения.

Операторами генетического алгоритма являются: оператор выбора родителей;  оператор скрещивания; оператор мутации; оператор селекции, их последовательное выполнение обеспечивает работу алгоритма. Задачами данных операторов являются манипуляции с данными таким образом, чтобы полученные решения качественно улучшались, вплоть до достижения необходимого уровня качества [1].

Эффективность работы генетического алгоритма

В исследовании Федорова Е.А. наглядно показано преимущество генетического алгоритма над алгоритмом полного перебора при численности популяции более 20 особей. При количестве особей в популяции более 20 алгоритм полного перебора имеет экспоненциальный рост времени на поиск решения, время работы генетического алгоритма продолжает увеличиваться линейно [7].

Любой найденный вариант решения и сохраненный в памяти генетического алгоритма, называется индивидом. Множество таких решений в памяти алгоритма, называется популяцией. Индивид имеет степень приспособленности, что детерминирует его в качестве решения задачи. Степень пригодности выражается в виде действительного числа. Количество индивидов в популяции не ограничено теоретически, но на практике бесконечно большая популяция не реализуема в техническом плане. Для поддержания мощности популяции в приемлемых масштабах используют оператор селекции, удаляющего из популяции столько же индивидов старшего поколения, сколько было добавлено новых.

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

Индивид  состоит  из  хромосом,  которые  содержат гены.  Данная организация позволяет легко представить вариант решения некоторой задачи в виде, приемлемом для генетического алгоритма. Если операторы, связанные с выбором  индивидов  из  популяции,  оперируют  целыми  индивидами  и  не изменяют  их  содержимого,  то  операторы  скрещивания  и  мутации  должны редактировать содержимое генов.  Содержимое генов и их набор в хромосоме сильно зависят от задачи, тем не  менее, существуют  три  основных  типа  генов:  действительный, целочисленный  и  логический.  Действительный  ген  реализован  одним действительным  числом,  целочисленный  –  целым  числом,  а  логический  – логической  переменной.  Генетический  алгоритм  допускает  применение собственных генов, однако необходимо предоставить реализации операторов скрещивания и мутации, способные обрабатывать данный вид генов [2].

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

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

Операторы  выбора  родителей  и  селекции управляют  множеством индивидов,  переходящих  из  одного  поколения  в  следующее.  Так  на  основе выбранных родителей будут созданы потомки, а выбранные  в ходе селекции жертвы  будут  удалены  из  популяции.  Предполагается,  что  родителями выбираются такие индивиды, которые потенциально приведут к образованию лучше  приспособленного  потомка,  а  жертвами  –  потенциально  тормозящие развитие популяции. Основной сложностью разработки оператора выбора родителей является незнание генетическим  алгоритмом  таких индивидов, которые наилучшим образом подошли бы  в качестве родителей  [3].

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

Оператор  скрещивания  служит  для  обработки  индивидов-родителей  и создания  на  их  основе  потомков.  Целью  оператора  скрещивания  является создание таких потомков, которые бы превосходили своих родителей в степени приспособленности. Для повышения  эффективности  получаемых  решений  применяется  усложненный оператор  скрещивания,  создающий  несколько  вариантов  потомков.  В  таком случае происходит сравнение различных потомков между собой, после чего из них выбирается наилучший. С другой стороны, применение такого оператора скрещивания  может  значительно  замелить  алгоритм  в  случае  работы  с медленной функцией приспособленности.

Работа оператора мутации заключается в редактировании значений генов у создаваемых потомков. Данный оператор служит для внесения в популяцию новых вариантов значений генов. Если бы данный оператор отсутствовал, то новые  гены  создавались  бы  только  в  результате  генерации  начальной популяции или при некоторых вариантах реализации оператора скрещивания, что привело бы к неприемлемому сужению области поиска и выводу в качестве решения заведомо некачественного результата. Реализация данного оператора сильно зависит от конкретной задачи, так как она связана с редактированием содержимого  генов. Как  правило, в  основе  оператора  мутации  лежит случайная  величина,  определяющая  степень  изменения  полученных  после скрещивания значений. Чем сильнее оператор мутации изменяет  содержимое генов, тем он считается мощнее [4].

После  получения  алгоритмом  решения  приемлемого  качества, необходимо  остановить  работу  поискового  цикла.  Условие,  при  котором популяция  начинает  обладать  необходимым решением,  называется  условием остановки  генетического  алгоритма.  Существуют  различные  признаки,  на которые может опираться условие остановки:   достижение необходимой точности решения; уменьшение изменения состояния популяции;  превышение лимита количества поколений; превышение лимита затраченного времени [5].

Пример построения генетического алгоритма

Рассмотрим пример работы генетического алгоритма на примере решения задачи оптимизации по нахождению максимума. Задача формулируется следующим образом:

где n – размер популяции.

Первичная популяция представляет собой формируемое случайно пространство потенциальных решений имеющейся задачи. Генетический алгоритм посредством операторов будет преобразовывать данную популяцию до тех пор, пока не будет, достигнут критерий остановки, или будет достигнуто максимальное количество поколений. Индивиды каждого поколения отбираются исходя из их уровня приспособленности. Функцией приспособленности является целевая функция поставленной задачи. Затем гены индивидов попарно скрещиваются и получаются индивиды нового поколения, далее новые индивиды подвергаются мутации. Полученное таким  образом  решение  добавляется  к  популяции  и  отбрасывается  то значение, для которого целевая функция имеет наименьший показатель.

Представим работу генетического алгоритма в виде схемы:

         1. Выбираем исходную популяцию

Источник: https://habr.com/ru/post/693742/


Интересные статьи

Интересные статьи

В данной статье мы рассмотрим систему аутентификации пользователей и внешних систем в личном кабинете через сервер аутентификации Blitz Identity Provider. Согласно требованиям проекта, который мы...
Привет, меня зовут Инга. Я работаю в digital-агентстве Alente. В отделении разработки мы ведём проекты по созданию сайтов с нуля. И на первом этапе мы очень тщательно готовимся. Проведение аналит...
Отечественное ЖКХ, изначально ориентировалось на дешевые энергоносители. Оно и теперь продолжает оставаться колоссальной ресурсозатратной отраслью, неэффективность работы...
Введение Протокол Kerberos 5 сейчас активно используется для аутентификации. Особенностью данного протокола является то, что он осуществляет аутентификацию, базируясь на четырех китах: Симм...
Здравствуйте. Я уже давно не пишу на php, но то и дело натыкаюсь на интернет-магазины на системе управления сайтами Битрикс. И я вспоминаю о своих исследованиях. Битрикс не любят примерно так,...