Автор: Пользователь скрыл имя, 14 Ноября 2011 в 15:54, статья
Различные типы экстремальных задач рассматриваются во многих математических, экономических курсах и курсах по различным прикладным дисциплинам. При изучении алгоритмов решения этих задач, как обучающим, так и обучаемым желательно иметь специальное (учебное) программное обеспечение (ПО).
Различные
типы экстремальных задач рассматриваются
во многих математических, экономических
курсах и курсах по различным прикладным
дисциплинам. При изучении алгоритмов
решения этих задач, как обучающим,
так и обучаемым желательно иметь специальное
(учебное) программное обеспечение (ПО).
Это ПО должно удовлетворять ряду требований,
среди которых, по мнению авторов, главными
являются следующие:
Авторам известен только один пример учебного ПО, которое удовлетворяет первым пяти требованиям из перечисленных выше – это программа TORA. Студенческая версия этой программы распространяется вместе с, видимо, самым популярным в мире учебником по исследованию операций Х. Тахи ([4]). Однако возможность проводить тестирование алгоритмов (п.6) также является важным элементом обучения. Имея результаты тестирования, можно, например, сравнивать алгоритмы и оценивать увеличение времени решения задач с ростом их размерности. Что касается генераторов задач (п. 7), то они предназначены, прежде всего, преподавателям. Их использование существенно упрощает процесс составления большого числа индивидуальных заданий и их проверку.
Работы по созданию ПО, удовлетворяющего всем перечисленным выше требованиям, проводятся в течение ряда лет на кафедре исследования операций СПбГУ под руководством В. В. Бухваловой. Так как при создании ПО, ориентированного на решение слишком широкого класса оптимизационных задач, как это сделано, например, в надстройке Excel «Поиск решения», трудно выполнить требования, перечисленные выше, было принято решение создать несколько программ (пакетов). Каждый из пакетов предназначен для решения определенного класса экстремальных задач. К настоящему моменту создано три пакета для решения оптимальных задач следующих классов:
В качестве платформы, на базе которой создается ПО, была выбрана программа Microsoft Excel со встроенным в нее языком программирования Visual Basic for Applications (VBA, [6]). Этот выбор был обусловлен тем, что программа Microsoft Office установлена на большинстве компьютеров, работающих под управлением операционной системы Windows. Таким образом, наличие программы Microsoft Excel и является основным системным требованием. Установка на компьютере любого из созданных пакетов предельно проста – достаточно открыть главный xls-файл пакета в режиме, когда допускается использование макросов. Для размещения пакетов (полного набора файлов) на компьютере требуется совсем немного памяти: 1. 90 Мб для пакета FinPlus, 1.07 Мб для пакета GP и 670 Кб для пакета ORP.
Еще
раз подчеркнем, что создано ПО,
предназначенное, прежде всего, для
использования в учебном
Все
пакеты имеют одинаковый дизайн. В качестве
примера на рис. 1 приведено главное меню
пакета FinPlus. Выбор языка программирования
VBA позволяет в полной мере использовать
принцип модульности, который упрощает
модификацию ПО и использование ранее
разработанных модулей при создании нового
ПО.
О пакете FinPlus ([1]). Стандартные курсы, посвященные экстремальным задачам, одними из первых рассматривают задачи линейного программирования (ЛП), а как метод их решения – симплекс-метод. Задачи квадратичного программирования (КП) можно решать, используя модификации того же симплекс-метода. Именно поэтому ПО для этих двух классов задач было объединено в один пакет. Для решения задачи КП в пакете реализован метод дополнительного базиса ([3]), который изучают студенты кафедры исследования операций СПбГУ. Версия пакета FinPlus для свободного копирования размещена на сайте exponenta.ru:
http://www.exponenta.ru/
Рис. 1. Пакет FinPlus: главное меню
Перечислим основные возможности пакета FinPlus:
На рис. 2 показано, как выглядит лист с данными задачи ЛП:
Рис. 2. Пакет FinPlus: рабочий лист с данными задачи ЛП
Отчет
«Постоптимальный анализ» отражает
результаты исследования решения задачи
на устойчивость (рис. 3):
Рис.
3. Пакет FinPlus: отчет «Постоптимальный
анализ»
Существует
расширенная версия пакета FinPlus, позволяющая
дополнительно решать задачи целочисленного
ЛП (алгоритм Балаша) и некоторые задачи
финансового планирования и портфельного
анализа.
О пакете GP. Задачи геометрического программирования (ГП) гораздо реже изучаются в курсах экстремальных задач, чем задачи ЛП и КП. Однако в последние годы ситуация существенно изменилась. Это связано с тем, что были разработаны, во-первых, эффективные методы решения этих задач ([7], [10], [11], [12]), а, во-вторых, методы сведения довольно широкого класса оптимизационных нелинейных задач к задачам ГП ([2], [9]). Для популяризации идей и методов ГП авторы статьи разработали вводный интернет-курс по геометрическому программированию, который, в частности, предполагает использование пакета GP.
Для решения задач ГП в пакете GP реализован двойственный метод, предложенный в [12], который на данный момент считается одним из самых эффективных. Перечислим возможности пакета GP:
Рис. 4. Пакет GP: рабочий лист с данными задачи ГП
Создание
генератора нетривиальных задач ГП является
сложной задачей, для решения которой
пока не существует подходящего алгоритма.
Поэтому в качестве его замены авторами
был создан банк задач ГП, состоящий на
данный момент из 74 объектов. Банк задач
представляет из себя текстовый файл в
csv-формате. В нем для каждой задачи указывается:
источник, из которого она взята, данные
задачи, оптимальное решение и значение
целевой функции. Нам представляется,
что банк задач ГП будет полезен не только
преподавателям при составлении контрольных
заданий, но и разработчикам нового ПО
для решения нелинейных задач оптимизации
в процессе его тестирования.
Рис. 5. Пакет GP: фрагмент банка задач ГП
О пакете ORP ([5]). Текущая версия пакета предназначена для решения следующих дискретных экстремальных задач: о назначениях, коммивояжера, кратчайший путь в графе, минимальное остовное дерево в графе. К настоящему моменту полностью сформирован модуль, связанный с задачей о назначениях (ЗН). Для решения ЗН можно использовать три алгоритма: аукционный ([8]), Мака, эвристический жадный.
Для
решения сетевых задач в
Файл статистики содержит дату и время начала решения задачи, имя задачи, название алгоритма, с помощью которого данная задача была решена в пакете, размерность матрицы данных, количество итераций, время решения задачи, значение целевой функции и отклонение от оптимального значения (для жадного алгоритма).
На
рис. 6 приведен лист с отчетом о
решении задачи о назначениях
эвристическим алгоритмом:
Рис. 6. Пакет ORP: лист c отчетом о решении задачи о назначениях
Литература