Решение комбинаторных задач методами эволюционных вычислений

Международный научный журнал «ИННОВАЦИОННАЯ НАУКА»_ISSN 2410-6070_№ 4/2015

УДК 681.3.001.63

Т.В. Любимова

старший преподаватель Кафедра «Экономические и естественно-научные дисциплины» Северо-кавказский филиал федерального государственного бюджетного образовательного учреждения высшего профессионального образования "Белгородский государственный технологический

университет им. В.Г. Шухова" г. Минеральные Воды, Российская Федерация

РЕШЕНИЕ КОМБИНАТОРНЫХ ЗАДАЧ МЕТОДАМИ ЭВОЛЮЦИОННЫХ ВЫЧИСЛЕНИЙ

Аннотация

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

Ключевые слова

Генетический алгоритм, оптимизация, задача коммивояжера, популяция, мутация, кроссинговер,

приспособленность, функции экстремума.

Эволюционные алгоритмы — направление в искусственном интеллекте, которое использует и моделирует процессы естественного отбора.

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

Генетические алгоритмы (ГА) привлекали свое внимание с давних времен. Благодаря работе Джона Холланда в начале 70-х годов и его книге «Адаптация в естественных и искусственных системах» они стали более популярны. Область ГА оставались теоретическими до середины 80-х годов. Лишь с ростом вычислительной технике их можно было применить практически. ГА представляют собой интеллектуальную эксплуатацию случайного поиска, используемой для решения задач оптимизации. В настоящее время с помощью ГА решаются разные задачи, но большое призвание получили задачи оптимизации.

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

ГА свойственны следующие понятия:

Хромосома — вектор или строка каких-либо чисел. Каждая позиция хромосомы называется геном.

Особь — набор хромосом. Обычно особь состоит из одной хромосомы.

Кроссинговер — операция обмена частями между хромосомами. Например, 1100 л 1010 ^ 1110 л 1000.

Мутация — случайное изменение позиций в хромосоме. К примеру, 1010011 ^ 1010001.

Популяция — совокупность особей.

Приспособленность — критерий или функция, экстремум которой следует найти.

Из приведенных определений следует, что терминология ГА представляет собой синтез генетических и искусственных понятий.

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

Международный научный журнал «ИННОВАЦИОННАЯ НАУКА»_ISSN 2410-6070_№ 4/2015

представление определяется способом кодирования. Существуют два основных способа кодирования генов: бинарное и вещественное.

В ГА используют четыре основные операции:

1. отбор;

2. выбор пар для скрещивания;

3. скрещивание;

4. мутация.

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

На начальной стадии инициализации популяции случайным образом выбирается популяция хромосом. Как правило, эта случайность распространяется на равномерном распределении. Из выше сказано построим алгоритм работы генетического алгоритма, представленный на рисунке 1.

Рисунок 1 - Алгоритм работы генетического алгоритма

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

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

Международный научный журнал «ИННОВАЦИОННАЯ НАУКА»_ISSN 2410-6070_№ 4/2015

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

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

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

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

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

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

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

Генетический алгоритм представляет собой комбинацию переборного и градиентного методов. Механизмы кроссинговера (скрещивания) и мутации реализуют переборную часть, а отбор лучших решений - градиентный спуск, т.е., если на некотором множестве задана сложная функция от нескольких переменных, тогда генетический алгоритм является программой, которая за допустимое время находит точку, где значение функции находится довольно близко к максимально возможному значению. Выбирая приемлемое время расчета, получаем лучшие решения, которые можно получить за это время. Использование эволюционных вычислений для решения оптимизационных задач ориентировано на задачи комбинаторной оптимизации, успешное решение которых, также как и прогнозирование, позволяет повысить эффективность принятия решений в интеллектуальных системах [2, с.152].

Комбинаторная оптимизация

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

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

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

Международный научный журнал «ИННОВАЦИОННАЯ НАУКА»_ISSN 2410-6070_№ 4/2015

Сформируем задачу коммивояжера: дан полный взвешенный граф G(X,V) порядка n , где X = {xj...xn} - множество вершин; V XхX - множество ребер, в нем необходимо найти Гамильтонов цикл,

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

Решением задачи является перестановка из n вершин, количество возможных перестановок равно n! Количество различных решений задачи с учетом направления обхода и сдвига начальных вершин будет (n - 1)!

2 . Задача не имеет алгоритма, позволяющего найти решение за приемлемое время и решения эвристическими методами.

Естественной формой кодирования для задачи коммивояжера является перестановка, т.е. n -арное кодирование, где n — количество вершин графа. При этом способе кодирования в 1 -й позиции кодирующей строки стоит номер вершины, проходимой 1 -ой по порядку в цикле. Очевидно, что этот способ кодирования не является ортогональным[3, с 12].

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

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

Вывод

Продолжающее усовершенствование производительности вычислительных систем сделало их привлекательными для задач оптимизации. Так же генетические алгоритмы применяются и в дискретных, и в комбинаторных задачах. Они менее подвержены получения локальных оптимумов, чем градиентные методы поиска. Есть три аспекта использования ГА: 1) определение целевой функции, 2) определение и реализация ГА, 3) определение и реализация генетических операторов.

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

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

Список использованной литературы:

1. Электронный ресурс: http://algolist.manual.ru/ai/ga/ga1.php

2. Рутковская Д., Пилиньский М., Рутковский Л.Нейронные сети, генетические алгоритмы и нечеткие системы: Пер. с польск. И.Д. Рудинского. -М.: Горячая линия -Телеком, 2006. -452с.

3. Д.И. Батищев, Е.А. Неймарк, Н.В. Старостин. Применение генетических алгоритмов к решению задач дискретной оптимизации, 2007

© Т В. Любимова, 2015

Международный научный журнал «ИННОВАЦИОННАЯ НАУКА»

ISSN 2410-6070

№ 4/2015

УДК 004.832.22, 681.324:612.82, 681.3.07

Т.В. Любимова

старший преподаватель Кафедра «Экономические и естественно-научные дисциплины» Северо-кавказский филиал федерального государственного бюджетного образовательного учреждения высшего профессионального образования "Белгородский государственный технологический

университет им. В.Г. Шухова" г. Минеральные Воды, Российская Федерация

А.В. Горелова Преподаватель

Кафедра «Экономические и естественно-научные дисциплины» Северо-кавказский филиал федерального государственного бюджетного образовательного учреждения высшего профессионального образования "Белгородский государственный технологический

университет им. В.Г. Шухова" г. Минеральные Воды, Российская Федерация

РЕШЕНИЕ ЗАДАЧИ ПРОГНОЗИРОВАНИЯ С ПОМОЩЬЮ НЕЙРОННЫХ СЕТЕЙ

Аннотация

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

Ключевые слова

Нейронная сеть, прогнозирование, временной ряд, аппроксимация функции, точность прогноза,

ошибка прогнозирования.

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

Ьхпдаой слой I Ьнутрошай свай Ллг/тргшжА икА Вшадной слой

Рисунок 1 - Искусственная нейронная сеть Основной принцип работы нейронной сети состоит в настройке параметров нейрона таким образом, чтобы поведение сети соответствовало некоторому желаемому поведению. На рисунке 2 показана общая структура обучения нейронной сети.

Входы Синапсы

Рисунок 2 - Общая структура обучения нейронной сети