УДК 583
АЛГОРИТМЫ МЕТАЭВРИСТИК В ЗАДАЧАХ ОПТИМИЗАЦИИ КОНТЕНТА ДЛЯ ТЕХНОЛОГИЙ WEB-ЭКОНОМИКИ
Акинина Людмила Николаевна, старший преподаватель КФУ имени В.И. Вернадского
e-mail: akininal18@mail.ru
Попов Виталий Борисович, кандидат физико-математических наук, доцент КФУ имени В.И. Вернадского e-mail: pvb55@mail.ru
Медведев Дмитрий Сергеевич, магистрант КФУ имени В.И. Вернадского e-mail: dmi3ymrdvedev@hotmail.ru
Аннотация: в работе рассматриваются вопросы разработки и программирования метаэвристических алгоритмов задач комбинаторной оптимизации и их приложение для решения экономических задач.
Ключевые слова: дискретная оптимизация, оптимизация контента, метаэвристики, дискретные задачи экономики с неделимыми товарами.
METAHEURISTICS ALGORITHMS IN PROBLEMS ОPTIMIZING CONTENT FOR THE TECHNOLOGY WEB-ECONOMCS
Akinina Lyudmila, V.I. Vernadsky Crimean Federal University, Simferopol, Crimea, Russia
e-mail: akininal18@mail.ru
Popov Vitali, V.I. Vernadsky Crimean Federal University, Simferopol, Crimea, Russia
e-mail: pvb55@mail.ru
Medvedev Dmitriy, master student, V.I. Vernadsky Crimean Federal University, Simferopol, Crimea, Russia
e-mail: dmi3ymrdvedev@hotmail.ru
Annotation: we survey metaheuristic algorithms that perform directed random searches of possible solutions of combinatorial optimization problems, optimal or near optimal, until a particular termination condition is met or after a predefined number of iterations. Metaheuristics combine basic heuristic methods in higher level frameworks aimed at efficiently and effectively exploring a search space. Metaheuristics fall in two categories: local search metaheuristics and evolutionary algorithms. In this paper, we describe the major solution methods: Local Search Metaheuristics (Simulated Annealing, Tabu Search, Greedy Randomized Adaptive Search Procedure (GRASP), Variable Neighborhood Search) and Evolutionary Algorithms (Genetic Algorithms, Ant Colonies Optimization).
Keywords: metaheuristic algorithms, discrete optimization, content optimization, metaheuristics, discrete tasks economy indivisible goods.
Дискретная комбинаторная оптимизация сформировалась как самостоятельная и важная часть математического моделирования в середине двадцатого столетия. Возникающие в этой области экстремальные задачи имеют ряд особенностей, которые существенно отличают их от таких стандартных задач математического анализа, как линейные, выпуклые или многокритериальные задачи оптимизации. Основная задача дискретной оптимизации заключается в выборе наилучшего решения из конечного, и почти всегда в реальных приложениях, очень большого их числа.
Дискретная оптимизация (discrete optimization) - раздел математики на пересечении методов дискретной математики и математического
программирования, связанный с исследованием методов нахождения экстремумов функций на «дискретных», в частности, конечных множествах. Класс задач дискретной оптимизации весьма многообразен и включает целочисленное программирование, экстремальные комбинаторные задачи, задачи комбинаторной геометрической оптимизации, оптимизационные задачи на графах и гиперграфах, булево программирование.
Задачи дискретной оптимизации очень часто встречаются в таких областях науки и техники, как корпоративные информационные системы (Enterprise Resource Planning, ERPII), интегрированные производственные системы, задачи оптимального управления технологическими процессами, информационные компьютерные технологии, приложения нейронных сетей в финансовом анализе и банковских технологиях. Кроме этого большое количество задач возникает в таких областях как оптимизация в экономике, исследование операций, системный анализ, автоматизация проектирования, автоматизация технологической подготовки производства и др.
В самом начале своего развития дискретная оптимизация сводилась, в основном, к целочисленному программированию и поэтому большинство работ было посвящено распространению на дискретные задачи проблематики линейного программирования. Одним из примеров являются методы отсечения. Например, метод ветвей и границ изначально был сформулирован, как обобщение методов линейного программирования. Однако еще в период становления была осознана специфика дискретной оптимизации по сравнению с другими направлениями математического программирования.
В научной литературе отмечается, что важное место в комбинаторной оптимизации занимает проблематика целочисленного программирования, которая включает вопросы, связанные с теорией двойственности, полиэдральным подходом, методами отсечения, ветвей и границ,
декомпозиции, множителей Лагранжа, выпуклым и невыпуклым программированием, устойчивостью решений и т.д.
В результате исследований были созданы универсальные схемы решения задач дискретной оптимизации: последовательный анализ [1-4], метод построения последовательности планов [5-11], метод вектора спада [12]. С другой стороны, благодаря фундаментальным работам Ю. И. Журавлева [13], О. Б. Лупанова, А. А. Ляпунова [14], С. В. Яблонского [15] по теоретической кибернетике было положено начало качественным исследованиям градиентных и локальных алгоритмов. Существенный прогресс в решении экстремальных задач на перестановках связан с алгебраическим подходом Д. А. Супруненко.
Значительный вклад в качественную теорию дискретной оптимизации был положен работами Ж. Эдмондса [16], указавшего пути применения матроидов в дискретной оптимизации, Д. Р. Фалкерсона [17], заложившего основу теории двойственности в дискретной оптимизации и Кука С., Карпа Р., Гэри М., Джонсона Д., Пападимитриу Х. [18-22], предложивших одну из наиболее распространенных моделей сложности к сводимости задач.
Получила развитие качественная теория дискретной оптимизации в работах Ю. Ю. Червака, Б. А. Перепелицы, В. Л. Берсенева, В. П. Гришухина, В.К. Леонтьева, В. С. Танаева, В. А. Трубина, С. В. Яковлева. Качественная теория дискретной оптимизации есть по существу теория анализа алгоритмов. В последнее время исследуются условия оптимальности алгоритмов и устойчивости решений, оценки точности и трудоемкости, получили развитие работы по созданию выпуклого дискретного анализа, теории полиэдральной комбинаторики [23, 24-27].
Анализ литературы позволяет сделать вывод, что принципиальная трудность задач дискретной оптимизации делает, по-видимому, невозможным построение эффективных точных алгоритмов для большинства классов задач. К тому же задачи дискретной оптимизации, как математические модели
практических ситуаций выбора наилучших решений не тождественны ситуации, а являются ее приближенным описанием, поэтому и решать задачи дискретной оптимизации разумно с той же степенью приближения к экстремуму.
Перечисленные обстоятельства привели к тому, что в последние годы исследование эффективности алгоритмов стало основным направлением в дискретной оптимизации, в котором можно выделить следующие проблемы: выбор меры эффективности приближений (различные метризации либо области значений критерия, либо допустимой области, либо пространства данных), вероятностный анализ алгоритмов (пионерские результаты в этом направлении получены Э. Гимади и В. А. Перепелицей. Дальнейшие шаги на пути создания качественной теории дискретной оптимизации связаны с широким применением идей и методов дискретной математики. По существу, в настоящее время дискретная оптимизация уже сложилась в самостоятельный раздел дискретной математики. Одно из направлений применений дискретной математики в дискретной оптимизации - матроидный подход анализа эффективности алгоритмов. Основу матроидного подхода составляют: метод частичных порядков, концепция выпуклости в частично упорядоченных множествах, схемы построения серий градиентных алгоритмов и методики оценки их эффективности.
Несмотря на большое количество результатов, полученных в области комбинаторной оптимизации, потребность в дальнейших исследованиях не уменьшается. Это связано как с постоянным возникновением новых задач, так и со сложностью их решения. Многие задачи комбинаторной оптимизации являются КР-трудными, и построение оптимального решения требует значительных временных затрат даже при сравнительно низких размерностях исходных данных. В таких ситуациях возникает необходимость в более глубоком анализе задач с позиций теории вычислительной сложности,
позволяющей оценить перспективы разработки алгоритмов с заданными характеристиками (время вычислений, требуемый объем памяти, точность и др.) и в итоге найти подход к решению задачи. Что касается эффективности приближенных алгоритмов в дискретной оптимизации, то несмотря на все увеличивающиеся число исследований по этой проблематике она находится все еще в стадии становления.
Цель данной работы разработка и программирование метаэвристических алгоритмов задач комбинаторной оптимизации и их приложение для решения экономических задач.
Анализ последних исследований и публикаций в оптимизации показывает, что использование моделей и алгоритмов комбинаторной оптимизации (Combinatorial Optimization problem) позволяет решать многие практические задачи, поскольку дискретные оптимизационные модели адекватно отражают нелинейные зависимости, неделимость объектов, учитывают ограничения логического типа и всевозможные технологические, в том числе и имеющие качественный характер, требования. Метаэвристики являются мощным и чрезвычайно популярным классом оптимизационных методов, позволяющих находить решения для широкого круга задач из различных приложений. Эффективность метаэвристик состоит в их способности решения сложных задач без знания пространства поиска, именно поэтому эти методы дают возможность решать трудноразрешимые задачи оптимизации. Упрощенно можно рассматривать метаэвристики как алгоритмы, реализующие прямой случайный поиск возможных решений задачи, оптимальных или близких к оптимальным, пока не будет выполнено некое условие или достигнуто заданное число итераций.
Метаэвристики - это общие эвристики, позволяющие находить близкие к оптимальным решения различных задач оптимизации за приемлемое время.
Следующие утверждения позволяют сформулировать и обосновать некоторые фундаментальные свойства, которыми характеризуются метаэвристики:
• Метаэвристики - это стратегии, которые управляют процессом поиска решения.
• Цель метаэвристики состоит в эффективном исследовании пространства поиска для нахождения (почти) оптимальных решений.
• Метаэвристические алгоритмы варьируют от простых процедур локального поиска до сложных процессов обучения.
• Метаэвристические алгоритмы являются приближенными и, как правило, недетерминированными.
• Метаэвристические алгоритмы могут включать механизмы избегания попадания в ловушку в ограниченной области пространства поиска.
• Метаэвристики могут быть описаны на абстрактном уровне (т.е. они не предназначены для решения конкретных задач).
• Метаэвристики могут использовать предметно-ориентированных знания в виде эвристик, которые находятся под контролем стратегии верхнего уровня.
Современные метаэвристики используют сохраненный в памяти опыт поиска решения для управления поиском.
Методы оптимизации направлены на нахождение такого способа распределения ресурсов, при котором обеспечивается минимальное или максимальное значение интересующего показателя. Они нашли широкое применение в экономике, поскольку множество экономических задач требуют оптимальное в рамках заданных критериев распределение имеющихся ресурсов для достижения результата. Следовательно, возникает задача оптимизации. Однако большинство реальных задач оптимизации в экономике - нелинейные и мультимодальные, с различными сложными ограничениями, а их цели могут
противоречить друг другу. При этом даже когда цель одна, оптимального решения может не существовать. То есть, нахождение оптимального решения или даже субоптимальных решений становится нелегким делом, и традиционные методы оптимизации зачастую для этого не подходят. Одним из наиболее перспективных направлений для решения таких сложных задач, с которыми традиционные методы не справляются, являются так называемые метаэвристические методы. Все метаэвристические методы используют определенный компромисс между рандомизацией и локальным поиском. И если качественные решения сложных проблем оптимизации могут быть найдены в разумные сроки, то нет никакой гарантии, что они окажутся оптимальными.
Автоматизация процессов фирмы по регенерации картриджей, путем внедрения сайта ведет к экономии рабочего времени и усилий как сотрудников, так и клиентов компании. Это дает предприятию определенные конкурентные преимущества на рынке, как следствие, увеличение прибыли.
Объектом исследования является процесс заказа услуг фирмы и их выполнения. Предметом исследования является комплекс инструментов и методов с помощью которых осуществляется веб-разработка. В данной работе были использованы среда разработки Visual Studio 2012 и язык программирования C #.
Для достижения поставленной цели необходимо было выполнить ряд задач. Проанализировать и охарактеризовать объект и задачу автоматизации. Далее необходимо поставить задачу автоматизации, для этого нужно было исследовать поставленную задачу и описать состояние ее автоматизации, сформулировать требования к системе, смоделировать прецеденты и разработать техническое задание к системе.
Следующей проблемой является разработка проекта автоматизированной системы, она включает в себя разработку архитектуры и обоснование
технологий автоматизированной системы, моделирование данных, разработку алгоритмов, моделирование состояния и поведения, а также проектирование структуры классов и компонентов системы.
Далее необходимо разработать прототип автоматизированной системы. Разработка прототипа предусматривает разработку интерфейса, реализацию программного кода и качества, создание документации по проекту и оценку количественных характеристик проекта и ожидаемого эффекта от его применения.
Разработка архитектуры и обоснование технологий проекта включает в себя шаблон проектирования (англ. Software design patterns) - это эффективные способы решения задач проектирования программного обеспечения. Шаблон не является законченным образцом, который можно непосредственно транслировать в программный код. Объектно-ориентированный шаблон чаще всего является образцом решения проблемы и отражает отношение между классами и объектами, без указания на то, как будет в конечном итоге реализовано это отношение.
При создании сайта был использован шаблон MVC (Model-viewcontroller). MVC - архитектурный шаблон, который используется при проектировании и разработке программного обеспечения.
Этот шаблон разделяет систему на части: модель данных, вид данных и вид управления. Он применяется для отделения данных (модель) от интерфейса (вида) так, чтобы изменения интерфейса минимально влияли на работу с данными, а изменения в модели данных могли осуществляться без изменений интерфейса.
Цель шаблона - гибкий дизайн программного обеспечения, который должен облегчать дальнейшие изменения или расширения программ, а также предоставлять возможность повторного использования отдельных компонент программы. Кроме того, использование этого шаблона в больших системах
приводит к определенной упорядоченности их структуры и делает их более понятными благодаря уменьшению сложности.
Для быстрого создания контроллеров был применен метод скаффолдинг.
Скаффолдинг («scaffolding», в переводе с англ. «Строительные леса») -метод метапрограммирования для создания веб-приложений, взаимодействующих с БД.
Этот метод поддерживается некоторыми MVC-фреймворками такими, как Grails, Yii, Ruby on Rails, Django, Code Igniter, CakePHP, Symfony, ASP.NET MVC начиная с 3-й версии.
Разработчик в них задает спецификации, по которым в дальнейшем генерируется программный код для операций создания определенных записей в БД, их чтения, обновления и удаления.
Визуальное оформление сайта на основе шаблона Twitter Bootstrap.
Twitter Bootstrap - это набор инструментов от Twitter (относится к классу инструментов: CSS-фреймворк), созданный для облегчения разработки web приложений и сайтов. Он включает CSS и HTML для типографии, форм, кнопок, таблиц, сеток, навигации и т.д., а также дополнительные расширения JavaScript.
Разработка математического обеспечения заключалась в следующем. Математическая модель в проекте должна определять кратчайший маршрут от офиса компании к клиентам, то есть решать задачу коммивояжера.
Задача коммивояжера (коммивояжер - бродячий торговец) заключается в нахождении наиболее выгодного маршрута, проходящего через указанные города хотя бы по одному разу. В условиях задачи указываются критерий выгодности маршрута (кратчайший, самый дешевый, совокупный критерий и т.д.) и соответствующие матрицы расстояний, стоимости и т. Обычно задано, что маршрут должен проходить через каждый город только один раз, в таком случае решение находится среди гамильтоновых циклов.
Задача сводится к решению задачи линейного программирования:
min(mcöOF
(1)
где С1 - весовые коэффициенты,
■V - искомые значения,
п - Количество переменных.
при выполнении:
N
bi (i = Lm)
(2)
- целые числа.
где т - количество ограничений,
а у - коэффициенты в ограничениях,
- свободные члены. Алгоритм решения задачи.
1. Симплексным методом решить задачу оптимизации (1) (без требований целочисленности переменных). Если среди элементов условно-оптимального плана нет дробных чисел, то это решение является оптимальным планом задачи целочисленного программирования. Если задача (1) не имеет решения (целевая функция ограничена, или система ограничений несовместима), то задача (1) - (2) также не решения.
2. Когда в условно-оптимальном плане дробные значения, то выбирают одну из не целочисленных переменных х, и определяют ее целую часть [х,]
3. Записывают два ограничения, отсекающие не целочисленные решения (3):
xt $ И +1
4. Каждое из полученных неравенств присоединяют к ограничениям исходной задачи. В результате получают две новые целочисленные задачи линейного программирования.
5. В любой последовательности решают обе задачи. В случае, когда получено целочисленный решение хотя бы одной из задач, значение целевой функции этой задачи сопоставляют с начальным значением. Если разница не больше заданного числа е, то процесс решения может быть закончен. В случае, когда целочисленное решение получено в обеих задачах, то с решением начальной сопоставляется то, которое дает лучшее значение целевой функции. Если же в обоих задачах получено не целочисленное решение, то для дальнейшего ветвления выбирают ту задачу, для которой получено лучшее значение целевой функции и осуществляют переход к шагу 2.
Для программной реализации задачи коммивояжера был использован сервис Google Мaps.
Также математическая модель рассчитывает общую сумму заказанных услуг, в зависимости от количества выполненной работы и рассчитывает маршрут с минимальным путем.
Рассмотрим алгоритм муравьиная колония. Программа позволяет решить задачу коммивояжера используя алгоритм оптимизации подражанием муравьиной колонии (ant colony optimization, ACO). Входные данные задаются в двух файлах. Первый файл содержит матрицу, отображающую стоимости переходов между вершинами графа (храниться в файле c://EOD/weights.txt). Если переход отсутствует, то в соответствующую ячейку устанавливается - 1. Значение 0 исключается из допустимых значений стоимости перехода. Второй файл - содержит значения феромонов. Храниться в файле c://EOD/pheromones.txt. За считывание данных отвечает метод Initialize(), - он вызывается в конструкторе класса ACO. В конструктор также передается значения параметров Alpha и Beta, отвечающих за сходимость алгоритма.
После инициализации входящих данных вызывается рекурсивный метод CalculatePerVertex, который рассчитывает последующую вершину пути. Для каждого возможного выхода из текущей вершины рассчитывается вероятность перехода, при этом исключаются вершины, которые уже были посещены. В методе GetNextVertex вероятности переходов проецируются на единичный отрезок и случайным образом выбирается часть отрезка, соответствующая вершине. Чем больше была вероятность перехода - тем выше шанс выбора именно этой вершины. После прохождения всех вершин, результирующий путь выводится на экран (метод Print). Далее для искомого пути увеличивается значение феромона (метод UpdatePheromones) и алгоритм повторяется заданному числу итераций.
В настоящей статье сделано краткое понятие метаэвристических алгоритмов, рассмотрены алгоритмы оптимизации муравьиной колонии. Метаэвристики являются мощным и чрезвычайно популярным классом оптимизационных методов, позволяющих находить решения для широкого круга задач комбинаторной оптимизации из различных приложений.
Метаэвристические методы оптимизации представляют собой средства для решения существующих проблем в экономике. Этому способствуют следующие факторы:
• Алгоритмы не делают никаких предположений и не требуют априорной информации о целевой функции.
• Не требуется, чтобы целевая функция была непрерывной или дифференцируемой.
Они справляются со сложными моделями с ограничениями.
• Почти все из них имеют варианты для решения непрерывных и комбинаторных задач.
• Практически все методы решения задач оптимизации имеют расширения для многокритериальных задач.
• Все известные метаэвристики поддерживают распараллеливание, что
позволяет решать огромные по масштабу проблемы [28].
Таким образом, можно сделать вывод, что метаэвристические методы, способные в огромном по масштабу пространстве решений находить оптимальные или близкие к оптимальным глобальные решения, используя малое количество ресурсов, подходят для решения большинства сложных задач оптимизации - задач, приближенных к реалиям современной экономики.
Актуальной задачей остается процесс создания библиотек программ, реализующих алгоритмы метаэвристик. Использование при этом современных технологий программирования позволяет создавать более эффективные программные средства.
Список литературы:
1. Шор Н. З. Алгоритмы последовательной и негладкой оптимизации.
Сборник избранных трудов / Н. З. Шор // Кишинэу. - Эврика. - 2012. - 269 с.
2. Шор Н. З. Методы недифференцируемой оптимизации и сложные экстремальные задачи / Н. З. Шор // Кишинэу. - Эврика. - 2008. - 270 с.
3. Михалевич В.С., Трубин В.А., Шор Н.З. Оптимизационные задачи производственно-транспортного планирования. Модели, методы, алгоритмы / В.С. Михалевич, В.А. Трубин, Н.З. Шор // М. - Наука. - 1986.
4. Михалевич В. С., Кукса А. И. Методы последовательной оптимизации в дискретных сетевых задачах оптимального распределения ресурсов / В. С. Михалевич, А. И. Кукса - М., 1983.
5. Емеличев, В.А. Устойчивость в векторных комбинаторных задачах оптимизации / В.А. Емеличев, К.Г. Кузьмин, А.М. Леонович // Автоматика и телемеханика. - 2004. - № 2. - С. 79-92.
6. Емеличев, В.А. О радиусе устойчивости эффективного решения одной векторной задачи булева программирования в метрике 1\ / В.А. Емеличев, К.Г. Кузьмин // Доклады РАН. - 2005. - Т. 401, № 6. - С. 733-735.
7. Emelichev, V.A. Stability analysis of the Pareto optimal solution for some vector Boolean optimization problem / V.A. Emelichev, K.G. Kuz'min, Yu.V. Nikulin // Optimization. Berlin. - 2005. - Vol. 54, № 6. - P. 545-561.
8. Емеличев В.А. Конечные коалиционные игры с параметрической концепцией равновесия в условиях неопределенности / В.А. Емеличев, К.Г. Кузьмин // Известия РАН. Теория и системы управления. - 2006. - № 2. - С. 117-122.
9. Емеличев, В.А. Мера устойчивости эффективного решения векторной задачи целочисленного линейного программирования в случае монотонной нормы / В.А. Емеличев, К.Г. Кузьмин // Доклады НАН Беларуси. -2007. - Т. 51, № 5. - С. 5-8.
10. Емеличев, В.А. Об устойчивости векторной комбинаторной задачи с критериями вида MINMIN / В.А. Емеличев, К.Г. Кузьмин // Дискретная математика. - 2008. - Т. 20, вып. 4. - С. 3-7.
11. Емеличев, В.А. О радиусе устойчивости векторной задачи целочисленного линейного программирования в случае в случае регулярности нормы в критериальном пространстве / В.А. Емеличев, К.Г. Кузьмин // Кибернетика и системный анализ. - 2010. - № 1. - С. 82-89.
12. Сергиенко И.В., Лебедева Т.Т., Рощин В.А. Приближенные методы решения дискретных задач оптимизации / Сергиенко И.В., Лебедева Т.Т., Рощин В.А // Киев. - Наукова думка. - 1980. - 276 с.
13. Ю. И. Журавлёв. Избранные научные труды / Ю. И. Журавлёв // -М.: Магистр, 1998. - 420 с.
14. Ляпунов А.А. О математических проблемах кибернетики / А. А. Ляпунов // Изв. вузов. Математика. - 1958. - № 5. - с. 166-174
15. Яблонский С. В. Введение в дискретную математику / С. В. Яблонский // - М.: Наука, 1979. - С. 272.
16. Edmonds J. Paths, trees, and flowers / J. Edmonds // Canadian Journal of Mathematics. - 1965. - Vol.17. - P.449-467.
17. Форд Л.Р., Фалкерсон Д. Р. Потоки в сетях / Л.Р. Форд, Д. Р. Фалкерсон- М.: Мир, 1965.
18. Karp R.M., Papadimitriou C.H. On linear characterization of combinatorial optimization problem / R.M. Karp, C. H. Papadimitriou // SIAM Journal on Computing, 11, 1982. pp. 620-632.
19. Пападимитриу X., Стайглиц К. Комбинаторная оптимизация: Алгоритмы и сложность / Пападимитриу X., Стайглиц К. // М.: Мир, 1985. 512с.
20. Карп P.M. Сводимость комбинаторных проблем / Р. М. Карп // Сб.: Кибернетический сборник, новая серия. М.: Мир. 1975. Вып. 12. С. 16-38.
21. Кристофидес Н. Теория графов. Алгоритмический подход / H. Кристофидес // М.: Мир, 1978. 432с.
22. Кук С.А. Сложность процедур вывода теорем / С.А. Кук // Сб.: Кибернетический сборник, новая серия. М.: Мир. 1975. Вып. 12. С. 5-15.
23. Danilov V., Koshevoy G., Murota K. Discrete convexity and equilibria in economies with indivisible goods and money/ V. Danilov, G. Koshevoy, K. Murota // Mathematical Social Science 41. 2001. - pp. 251-273.
24. Ковалев М. М. Матроиды в дискретной оптимизации / М. М. Ковалев // УРСС. - М.: - 2003г. - 224с.
25. Van Laarhoven P.J.M., Aarts E.H.L. Simulated Annealing / P.J.M. van Laarhoven, E.H.L. Aarts // Theory and Applications. - Dordrecht. - Springer, 1987.
26. Dueck G., Scheuer T. Threshold Accepting: a general purpose optimization algorithm / G. Dueck, T. Scheuer // Journal of Computational Physics. -1990. - 90 - P. 161-175.
27. Dueck G. New optimization heuristics: the great deluge algorithm and the record-to-record travel / G. Dueck // Journal of Computational Physics. - 1993. -104 - P. 86-92.
28. Yilmaz A. E., Weber G.-W. Why You Should Consider Nature-Inspired Optimization Methods in Financial Mathematics / A. E. Yilmaz, G.-W. Weber // Nonlinear and Complex Dynamics. - New York : Springer, 2011. - Pp 241-255.