Так это же динамическое программирование на основе математической индукции. |
Описание пакета GeomProg
Общая информация
Напомним постановку задачи ГП в канонической форме:
( 98) |
при ограничениях
( 99) |
где
Методы решения задач ГП в каноническом виде очень сложны, чаще всего используют метод внутренней точки ([7]) и метод Ражгопала-Бриккера ([9]). Метод внутренней точки реализован в пакетах MOSEK, TOMLAB, использующих MATLAB, а также в пакетах YALMIP и GGPLAB.
Авторами настоящего курса для решения задач ГП в каноническом виде создан пакет GeomProg. Этот пакет написан на языке программирования VBA и является приложением к программе MS Excel. Выбор средств реализации был обусловлен тем, что программа Microsoft Office установлена на большинстве компьютеров, работающих под управлением операционной системы Windows.
В пакете реализован метод Ражгопала-Бриккера, основанный на применении метода генерации столбцов для задачи обобщенного линейного программирования.
Перечислим основные возможности пакета GeomProg:
- решение задачи ГП в канонической форме;
- поддержка русского и английского языков;
- поддержка стандартных способов ввода-вывода, сохранения данных и решения задачи;
- формирование отчета по итерациям;
- формирование листа с отчетом о решении задачи;
- получение информации о времени решения задачи и количестве итераций.
К пакету прилагается банк задач ГП, состоящий из собранных авторами задач ГП. На момент написания этого текста банк содержал 76 задач. Банк задач представляет из себя текстовый файл в csv -формате. О каждой задаче в файле содержится следующая информация: источник, из которого она взята, данные задачи, оптимальное решение и значение целевой функции. Эти задачи могут быть использованы при тестировании вновь создаваемого программного обеспечения и в учебном процессе.
Имеется расширенная версия пакета, в которой реализована возможность преобразования задачи со знакопеременными ограничениями в гармоническую задачу (см. "Преобразование некоторых задач оптимизации в задачи ГП" ).
Системные требования пакета GeomProg
Требования, предъявляемые к компьютеру для установки пакета GeomProg, минимальны:
- операционная система: Windows 2000/2002(XP)/2003 ;
- наличие программы Microsoft Excel ;
- процессор не ниже Pentium 133 МГц;
- память не менее 64 Mб RAM;
- монитор Super VGA (800x600) или с более высоким разрешением с поддержкой 256 цветов;
- cтандартные клавиатура и мышь.
Для корректной работы пакета рекомендуется использовать MS Excel 2003. При работе с данной версией программы рекомендуется закрыть все рабочие книги MS Excel, кроме книги, соответствующей программе GeomProg.
Установка пакета GeomProg
Для размещения пакета (полного набора файлов) на компьютере требуется совсем немного памяти: 670 Кб.
Для установки пакета достаточно создать на жестком диске папку GeomProg и разархивировать в нее все файлы архива GeomProg.rar. Для корректной работы пакета необходимо убедиться, что настройки используемой версии MS Excel позволяют использовать макросы ( Сервис | Макрос | Безопасность или Tools | Macro | Security ). Рекомендуется использовать средний уровень безопасности (решение о запуске макросов принимается пользователем).
Запуск пакета GeomProg
Для начала работы с пакетом необходимо запустить основной файл GeomProg.xls - откроется основное окно программы с главным меню (рис. 7.1).
В процессе загрузки программы может быть выдано сообщение о макровирусах. Для корректной работы программы следует выбрать кнопку Не отключать макросы ( Enable Macros ).
Навигация по пакету GeomProg
Навигация внутри пакета может осуществляться с помощью системы меню. Главное меню автоматически активируется при запуске программы (рис. 7.1). Оно позволяет пользователю указать способ ввода данных задачи, выбрать язык, а также вывести справочную информацию о пакете и об авторах.
Завершение работы с пакетом GeomProg
Для завершения работы с пакетом GeomProg достаточно закрыть основной файл (или нажать клавиши Alt + F4 ) или выполнить команду Выход из программы, нажав на соответствующую кнопку в системе меню.
Ввод данных задачи ГП с экрана
Для ввода исходных данных с экрана необходимо нажать кнопку Ввод данных с экрана (рис. 7.1). После этого на экране появляется диалоговое окно Ввод данных о задаче (рис. 7.2), позволяющее указать размерность задачи и задать ее имя.
Окончание ввода параметров подтверждается кнопкой Принять. При выборе числа переменных и числа ограничений возможно указать только целые положительные числа. Затем появляется окно (рис. 7.3), в поле которого нужно ввести число мономов в целевой функции и нажать кнопку Принять. Имеется возможность ввести только целое положительное число.
После ввода числа мономов в целевой функции открывается рабочий лист DataProblem, на котором появляются диапазоны ячеек, в которые надо ввести коэффициенты и матрицу степеней целевой функции (рис. 7.4) и нажать кнопку Далее (рис. 7.5), которая станет активной после ввода данных. При выборе коэффициентов возможно указать только положительные числа. Аналогично ввод данных осуществляется для каждого ограничения. Для удобства пользователя области ввода данных имеют поясняющие имена ( ).
Ввод данных задачи ГП из csv-файла
Формат текстового файла, при котором в качестве разделителя единиц информации используется запятая, называется csv-форматом. Этот формат часто используется при записи больших массивов однородной информации. Он полностью совместим с MS Excel, поэтому был выбран для записи данных о задаче ГП в пакете GeomProg.
Чтобы ввести (импортировать) данные задачи ГП из файла необходимо нажать кнопку Ввод данных из файла (рис. 7.1). Если структура выбранного файла соответствует структуре, принятой в пакете GeomProg, то на экране появится рабочий лист DataProblem с данными задачи, прочитанными из файла. В программе предусмотрена проверка на соответствие файла требуемому формату. На рис. 7.5 приведен фрагмент рабочего листа DataProblem с данными задачи, импортированными из csv -файла Duffin.txt.
Опишем структуру файла с данными на примере следующей задачи:
при ограничениях
Прокомментируем каждую строчку этого файла:
- Duffin - имя задачи (любая строка);
- min - тип целевой функции;
- - требуемая точность вычислений;
- - число переменных, число ограничений;
- - число мономов в целевой функции;
- - коэффициенты мономов в целевой функции;
- - степени переменных соответственно в первом мономе целевой функции;
- - степени переменных соответственно во втором мономе целевой функции;
- Пустая разделительная строка;
- - число мономов в первом ограничении;
- - коэффициенты мономов в первом ограничении;
- - степени переменных соответственно в первом мономе первого ограничения;
- -степени переменных соответственно во втором первого ограничения.