Санкт-Петербургский государственный университет
Опубликован: 08.06.2009 | Доступ: свободный | Студентов: 641 / 120 | Оценка: 4.65 / 4.35 | Длительность: 07:44:00
Специальности: Программист
Дополнительный материал 1:

Описание пакета GeomProg

< Лекция 6 || Дополнительный материал 1: 12
Аннотация: В статье описывается пакет GeomProg, предназначенный для решения задач ГП в канонической форме. В пакете реализован метод, предложенный Ражгопалом и Бриккером ([9]).

Общая информация

Напомним постановку задачи ГП в канонической форме:

\mbox{ Задача GP:} \qquad
  g_{0}(x)\rightarrow \min ( 98)

при ограничениях

g_{k}(x)\leq 1,\quad k = \overline{1,p}, ( 99)
x_{j}> 0 ,\quad j= \overline{1,m},

где

g_{k}(x)=\sum\limits_{i\in
  [k]}c_{i}\prod\limits_{j=1}^{m}{x_{j}}^{a_{ij}},\quad
  k= \overline{0,p},\quad  c_{i}>0,\ a_{ij}\in \mathbb{R}.

Методы решения задач ГП в каноническом виде очень сложны, чаще всего используют метод внутренней точки ([7]) и метод Ражгопала-Бриккера ([9]). Метод внутренней точки реализован в пакетах MOSEK, TOMLAB, использующих MATLAB, а также в пакетах YALMIP и GGPLAB.

Авторами настоящего курса для решения задач ГП в каноническом виде создан пакет GeomProg. Этот пакет написан на языке программирования VBA и является приложением к программе MS Excel. Выбор средств реализации был обусловлен тем, что программа Microsoft Office установлена на большинстве компьютеров, работающих под управлением операционной системы Windows.

В пакете реализован метод Ражгопала-Бриккера, основанный на применении метода генерации столбцов для задачи обобщенного линейного программирования.

Перечислим основные возможности пакета GeomProg:

  1. решение задачи ГП в канонической форме;
  2. поддержка русского и английского языков;
  3. поддержка стандартных способов ввода-вывода, сохранения данных и решения задачи;
  4. формирование отчета по итерациям;
  5. формирование листа с отчетом о решении задачи;
  6. получение информации о времени решения задачи и количестве итераций.

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

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

Системные требования пакета GeomProg

Требования, предъявляемые к компьютеру для установки пакета GeomProg, минимальны:

  1. операционная система: Windows 2000/2002(XP)/2003 ;
  2. наличие программы Microsoft Excel ;
  3. процессор не ниже Pentium 133 МГц;
  4. память не менее 64 Mб RAM;
  5. монитор Super VGA (800x600) или с более высоким разрешением с поддержкой 256 цветов;
  6. 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

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

Завершение работы с пакетом GeomProg

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

Ввод данных задачи ГП с экрана

Для ввода исходных данных с экрана необходимо нажать кнопку Ввод данных с экрана (рис. 7.1). После этого на экране появляется диалоговое окно Ввод данных о задаче (рис. 7.2), позволяющее указать размерность задачи и задать ее имя.

Ввод данных о задаче

Рис. 7.2. Ввод данных о задаче

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

 Ввод числа мономов в целевой функции

Рис. 7.3. Ввод числа мономов в целевой функции

После ввода числа мономов в целевой функции открывается рабочий лист DataProblem, на котором появляются диапазоны ячеек, в которые надо ввести коэффициенты и матрицу степеней целевой функции (рис. 7.4) и нажать кнопку Далее (рис. 7.5), которая станет активной после ввода данных. При выборе коэффициентов возможно указать только положительные числа. Аналогично ввод данных осуществляется для каждого ограничения. Для удобства пользователя области ввода данных имеют поясняющие имена ( A =, c = ).

 Ввод коэффициентов и матрицы степеней целевой функции

Рис. 7.4. Ввод коэффициентов и матрицы степеней целевой функции
 Рабочий лист DataProblem с данными о задаче

Рис. 7.5. Рабочий лист DataProblem с данными о задаче

Ввод данных задачи ГП из csv-файла

Формат текстового файла, при котором в качестве разделителя единиц информации используется запятая, называется csv-форматом. Этот формат часто используется при записи больших массивов однородной информации. Он полностью совместим с MS Excel, поэтому был выбран для записи данных о задаче ГП в пакете GeomProg.

Чтобы ввести (импортировать) данные задачи ГП из файла необходимо нажать кнопку Ввод данных из файла (рис. 7.1). Если структура выбранного файла соответствует структуре, принятой в пакете GeomProg, то на экране появится рабочий лист DataProblem с данными задачи, прочитанными из файла. В программе предусмотрена проверка на соответствие файла требуемому формату. На рис. 7.5 приведен фрагмент рабочего листа DataProblem с данными задачи, импортированными из csv -файла Duffin.txt.

Опишем структуру файла с данными на примере следующей задачи:

g_{0}(x) = 40 x_{1}x_{2}+20 x_{2}x_{3}\rightarrow\min,

при ограничениях

g_{1}(x) =
  0.2 x_{1}^{-1}x_{2}^{-0.5}+0.6 x_{2}^{-1}x_{3}^{-2/3}\leq 1,
x_{1}>0,\ x_{2}>0,\ x_{3}>0.

Duffin

min

0.0001

3,1

2

40,20

1,1,0

0,1,1

2

0.2,0.6

-1,-0.5,0

0,-1,-0.67

Прокомментируем каждую строчку этого файла:

  • Duffin - имя задачи (любая строка);
  • min - тип целевой функции;
  • 0. 0001 - требуемая точность вычислений;
  • 3, 1 - число переменных, число ограничений;
  • 2 - число мономов в целевой функции;
  • 40, 20 - коэффициенты мономов в целевой функции;
  • 1, 1, 0 - степени переменных (x_1, x_2, x_3) соответственно в первом мономе целевой функции;
  • 0, 1, 1 - степени переменных (x_1, x_2, x_3) соответственно во втором мономе целевой функции;
  • Пустая разделительная строка;
  • 2 - число мономов в первом ограничении;
  • 0.2, 0.6 - коэффициенты мономов в первом ограничении;
  • -1, -0.5, 0 - степени переменных (x_1, x_2, x_3) соответственно в первом мономе первого ограничения;
  • 0, -1, -0.67 -степени переменных (x_1, x_2, x_3) соответственно во втором первого ограничения.
< Лекция 6 || Дополнительный материал 1: 12
Васильевич Иван
Васильевич Иван

Так это же динамическое программирование на основе математической индукции.