Учебном процессе программного обеспечения для решения экстремальных задач
Вид материала | Документы |
СодержаниеО пакете FinPlus О пакете GP. О пакете ORP |
- Структура программного обеспечения, 39.47kb.
- Программы Концепция свободного программного обеспечения и его использование в учебном, 34.27kb.
- Концепция свободного программного обеспечения и его использование в учебном процессе, 173.8kb.
- Методика решения ситуационных задач по предмету «Аудит» для самостоятельной работы, 324.75kb.
- Васильев Ф. П. Численные методы решения экстремальных задач, 148.71kb.
- Д. С. Варганов научный руководитель Н. П. Васильев, к т. н., доцент Московский инженерно-физический, 31.85kb.
- Методические указания для выполнения курсовой работы по дисциплине «Методы оптимизации», 123.01kb.
- Анализ прикладного программного обеспечения, используемого для разработки бизнес–плана, 137.41kb.
- 1 Постановки экстремальных задач, 55.69kb.
- Метрология и качество программного обеспечения, 39.54kb.
О создании и использовании в учебном процессе программного обеспечения для решения экстремальных задач
Бухвалова В. В., Рогульская А. С.
Различные типы экстремальных задач рассматриваются во многих математических, экономических курсах и курсах по различным прикладным дисциплинам. При изучении алгоритмов решения этих задач, как обучающим, так и обучаемым желательно иметь специальное (учебное) программное обеспечение (ПО). Это ПО должно удовлетворять ряду требований, среди которых, по мнению авторов, главными являются следующие:
- требования, предъявляемые к компьютеру для его установки, должны быть минимальными;
- наличие дружественного интерфейса, в частности, использование стандартных постановок задач и обозначений;
- поддержка стандартных способов ввода данных задачи и сохранения решения;
- возможность не только решения задачи (получения оптимального решения, если оно существует), но и просмотра процесса решения по итерациям;
- возможность исследования полученного решения на устойчивость (определения интервалов изменения параметров задачи, при которых оптимальное решение либо остается неизменным, либо легко вычисляется);
- возможность проведения тестирования алгоритмов, в частности, по времени решения задачи и количеству выполненных итераций;
- возможность генерации случайной экстремальной задачи заданной размерности.
Авторам известен только один пример учебного ПО, которое удовлетворяет первым пяти требованиям из перечисленных выше – это программа TORA. Студенческая версия этой программы распространяется вместе с, видимо, самым популярным в мире учебником по исследованию операций Х. Тахи ([4]). Однако возможность проводить тестирование алгоритмов (п. 6) также является важным элементом обучения. Имея результаты тестирования, можно, например, сравнивать алгоритмы и оценивать увеличение времени решения задач с ростом их размерности. Что касается генераторов задач (п. 7), то они предназначены, прежде всего, преподавателям. Их использование существенно упрощает процесс составления большого числа индивидуальных заданий и их проверку.
Работы по созданию ПО, удовлетворяющего всем перечисленным выше требованиям, проводятся в течение ряда лет на кафедре исследования операций СПбГУ под руководством В. В. Бухваловой. Так как при создании ПО, ориентированного на решение слишком широкого класса оптимизационных задач, как это сделано, например, в надстройке Excel «Поиск решения», трудно выполнить требования, перечисленные выше, было принято решение создать несколько программ (пакетов). Каждый из пакетов предназначен для решения определенного класса экстремальных задач. К настоящему моменту создано три пакета для решения оптимальных задач следующих классов:
- линейное и квадратичное программирование – пакет FinPlus;
- геометрическое программирование – пакет GP;
- дискретные задачи исследования операций – пакет ORP.
В качестве платформы, на базе которой создается ПО, была выбрана программа Microsoft Excel со встроенным в нее языком программирования Visual Basic for Applications (VBA, [6]). Этот выбор был обусловлен тем, что программа Microsoft Office установлена на большинстве компьютеров, работающих под управлением операционной системы Windows. Таким образом, наличие программы Microsoft Excel и является основным системным требованием. Установка на компьютере любого из созданных пакетов предельно проста – достаточно открыть главный xls-файл пакета в режиме, когда допускается использование макросов. Для размещения пакетов (полного набора файлов) на компьютере требуется совсем немного памяти: 1. 90 Мб для пакета FinPlus, 1.07 Мб для пакета GP и 670 Кб для пакета ORP.
Еще раз подчеркнем, что создано ПО, предназначенное, прежде всего, для использования в учебном процессе. Это означает, во-первых, что для реализации были выбраны алгоритмы, которые изучаются в стандартных курсах. Например, задача линейного программирования в пакете FinPlus решается стандартным модифицированным двухфазным симплекс-методом. Но с учетом того, что в курсах по математическому программированию симплекс-метод часто излагается с помощью симплекс-таблиц, предусмотрена возможность просмотра этих таблиц по итерациям. Во-вторых, не ставилась цель решать реальные задачи большого размера также быстро, как это делается коммерческим ПО. Хотя заметим, что, например, решение ряда задач линейного программирования в пакете FinPlus с 30 переменными занимало несколько секунд.
Все пакеты имеют одинаковый дизайн. В качестве примера на рис. 1 приведено главное меню пакета FinPlus. Выбор языка программирования VBA позволяет в полной мере использовать принцип модульности, который упрощает модификацию ПО и использование ранее разработанных модулей при создании нового ПО.
О пакете FinPlus ([1]). Стандартные курсы, посвященные экстремальным задачам, одними из первых рассматривают задачи линейного программирования (ЛП), а как метод их решения – симплекс-метод. Задачи квадратичного программирования (КП) можно решать, используя модификации того же симплекс-метода. Именно поэтому ПО для этих двух классов задач было объединено в один пакет. Для решения задачи КП в пакете реализован метод дополнительного базиса ([3]), который изучают студенты кафедры исследования операций СПбГУ. Версия пакета FinPlus для свободного копирования размещена на сайте exponenta.ru:
enta.ru/educat/systemat/buhvalova/index2.asp.
Рис. 1. Пакет FinPlus: главное меню
Перечислим основные возможности пакета FinPlus:
- решение задачи ЛП общего вида;
- решение задачи КП общего вида;
- формирование листа с отчетом о решении задачи;
- ознакомление с работой пакета на примере демонстрационной задачи;
- поддержка стандартных способов ввода-вывода и сохранения решения задачи;
- редактирование данных задачи на рабочем листе MS Excel;
- формирование отчета по итерациям;
- для задач ЛП:
- формирование отчета «Постоптимальный анализ»;
- тестирование модуля;
- генерация задачи с заданными параметрами.
На рис. 2 показано, как выглядит лист с данными задачи ЛП:
Рис. 2. Пакет FinPlus: рабочий лист с данными задачи ЛП
Отчет «Постоптимальный анализ» отражает результаты исследования решения задачи на устойчивость (рис. 3):
Рис. 3. Пакет FinPlus: отчет «Постоптимальный анализ»
Существует расширенная версия пакета FinPlus, позволяющая дополнительно решать задачи целочисленного ЛП (алгоритм Балаша) и некоторые задачи финансового планирования и портфельного анализа.
О пакете GP. Задачи геометрического программирования (ГП) гораздо реже изучаются в курсах экстремальных задач, чем задачи ЛП и КП. Однако в последние годы ситуация существенно изменилась. Это связано с тем, что были разработаны, во-первых, эффективные методы решения этих задач ([7], [10], [11], [12]), а, во-вторых, методы сведения довольно широкого класса оптимизационных нелинейных задач к задачам ГП ([2], [9]). Для популяризации идей и методов ГП авторы статьи разработали вводный интернет-курс по геометрическому программированию, который, в частности, предполагает использование пакета GP.
Для решения задач ГП в пакете GP реализован двойственный метод, предложенный в [12], который на данный момент считается одним из самых эффективных. Перечислим возможности пакета GP:
- решение задачи ГП с ограничениями;
- поддержка русского и английского языков;
- поддержка стандартных способов ввода-вывода, сохранения данных и решения задачи (рис.4);
- формирование отчета по итерациям;
- формирование листа с отчетом о решении задачи;
- получение информации о времени решения задачи и количестве итераций.
Рис. 4. Пакет GP: рабочий лист с данными задачи ГП
Создание генератора нетривиальных задач ГП является сложной задачей, для решения которой пока не существует подходящего алгоритма. Поэтому в качестве его замены авторами был создан банк задач ГП, состоящий на данный момент из 74 объектов. Банк задач представляет из себя текстовый файл в csv-формате. В нем для каждой задачи указывается: источник, из которого она взята, данные задачи, оптимальное решение и значение целевой функции. Нам представляется, что банк задач ГП будет полезен не только преподавателям при составлении контрольных заданий, но и разработчикам нового ПО для решения нелинейных задач оптимизации в процессе его тестирования.
Рис. 5. Пакет GP: фрагмент банка задач ГП
О пакете ORP ([5]). Текущая версия пакета предназначена для решения следующих дискретных экстремальных задач: о назначениях, коммивояжера, кратчайший путь в графе, минимальное остовное дерево в графе. К настоящему моменту полностью сформирован модуль, связанный с задачей о назначениях (ЗН). Для решения ЗН можно использовать три алгоритма: аукционный ([8]), Мака, эвристический жадный.
Для решения сетевых задач в текущей версии пакета реализованы следующие алгоритмы: задача о кратчайшем пути – алгоритм Дейкстры, задача о минимальном остовном дереве – алгоритм Краскала, задача о коммивояжере – метод ветвей и границ и жадный (эвристический) алгоритм. Перечислим реализованные возможности пакета ORP:
- решение задачи о назначении;
- решение задачи о коммивояжере;
- решение задачи о минимальном остовном дереве в графе;
- решение задачи о кратчайшем пути в графе;
- поддержка стандартных способов ввода-вывода и сохранения решения задачи;
- формирование листа с отчетом о решении задачи;
- формирование отчета по итерациям;
- тестирование модуля;
- формирование файла статистики;
- генератор задач.
Файл статистики содержит дату и время начала решения задачи, имя задачи, название алгоритма, с помощью которого данная задача была решена в пакете, размерность матрицы данных, количество итераций, время решения задачи, значение целевой функции и отклонение от оптимального значения (для жадного алгоритма).
На рис. 6 приведен лист с отчетом о решении задачи о назначениях эвристическим алгоритмом:
Рис. 6. Пакет ORP: лист c отчетом о решении задачи о назначениях
Литература
- Бухвалова В. В. Использование пакета прикладных программ FinPlus в учебном процессе / В. В. Бухвалова, А. В. Ковальчук // Обозрение прикладной и промышленной математики. – 2007. – Том 14, № 1. – с. 95-98.
- Бухвалова В. В. Расширение области применимости методов геометрического программирования / В. В. Бухвалова, А. С. Рогульская // Обозрение прикладной и промышленной математики. – 2008. – Том 15, № 2. – с. 270-273.
- Даугавет В. А. Численные методы квадратичного программирования / В. А. Даугавет. – СПб.: Изд-во С.-Петерб. ун-та, 2004. – 128 с.
- Таха Х. А. Введение в исследование операций / Х. А. Таха; пер. с англ., ред. А. А. Минько. – 7-изд. – М.: Издательский дом «Вильямс», 2005. – 912 с.
- Филькина Т. Н. Алгоритмы решения задачи о назначениях: дипломная работа (СПбГУ, кафедра исследования операций). – СПб., 2008.
- Уокенбах Д. Microsoft Office Excel 2007: профессиональное программирование на VBA / Д. Уокенбах; пер. с англ. – М.: Издательский дом «Вильямс», 2008. – 928 с.: ил. – (Прикладное программное обеспечение).
- Alejandre J. L. A General Alternative Procedure for Solving Negative Degree of Difficulty Problems in Geometric Programming / J. L. Alejandre, A. Allueva, J. M. Gonzalez // Computational Optimization and Applications. – 2004. – No. 27. – p. 83-93.
- Bertsekas D.P. A new algorithm for the assignment problem / D. P. Bertsekas // Math. Programming. – 1981. – Vol.1, No.21. - p. 152-171.
- Boyd S. A Tutorial on Geometric Programming / S. Boyd, S., J. Kim, L. Vandenberghe, A. Hassibi // Optimization and Engineering. – 2007. – Vol. 8, No. 1. – p. 67-127.
- Kortanek K. O. An infeasible interior-point algorithm for solving primal and dual geometric programs / K. O. Kortanek, X. Xu, Y. Ye // Mathematical Programming. – 1997. – No. 76. – p. 155-181.
- Liu S. T. Posynomial geometric programming with interval exponents and coefficients / S. T. Liu // European Journal of Operational Research. – 2008. – No. 186. - p. 17-27.
- Rajgopal J. Solving Posynomial Geometric Programming Problems via Generalized Linear Programming / J. Rajgopal, D. L. Bricker // Computational Optimization and Applications. – 2002. –No. 21. – p. 95-109.