Научная статья на тему 'Программный комплекс MMSolver'

Программный комплекс MMSolver Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
52
11
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Программный комплекс MMSolver»

УДК 519.95 Д.Н. Запорожец

Омский государственный технический университет, г. Омск

ПРОГРАММНЫЙ КОМПЛЕКС ММ80ЬУЕЯ

Программный комплекс реализует идею итерационных методов с памятью и предназначен для решения вариационных неравенств различными итерационными методами. Служит учебным пособием для студентов, изучающих дисциплины методы оптимизации и программирование, а так же является инструментом исследования для аспирантов и преподавателей. Каждый метод решения вариационного неравенства, каждая задача, сводящаяся к вариационному неравенству, реализована в виде отдельных модулей, которые способны динамически загружаться в программный комплекс MMSolver. Последнее обстоятельство позволяет существенно расширить область применения программного продукта. Любой исследователь, реализовав модуль задачи или метода, сможет быстро проверить, насколько хорошо известные итерационные методы решают его задачу, либо насколько хорошо его метод решает самые различные задачи.

Программный комплекс состоит из 3 основных модулей. В первом модуле содержится программная реализация основных действий над векторами и матрицами. Во втором модуле содержится описание интерфейса вариационного неравенства и абстрактной задачи, сводимой к вариационному неравенству. Благодаря этому модулю любой исследователь может запрограммировать свою собственную, интересующую его задачу, и впоследствии решить задачу при помощи данного программного комплекса. Третий модуль содержит описание интерфейса итерационного метода решения вариационного неравенства. Таким образом, предоставляется возможным использовать в программном комплексе MMSolver не только собственные задачи, но и методы, причем к каждому методу, автоматически добавится еще один метод «с памятью». Методы с памятью являются параллельными и позволяют находить решение существенно быстрее.

Программный комплекс содержит несколько задач, сводящихся к вариационному неравенству [5]: система линейных алгебраических уравнений, линейная задача дополнительности, нелинейное вариационное неравенство. Каждую из вышеперечисленных задач можно решить при помощи градиентного метода, одношагового экстраградиентного метода [1,2] или двухшагового экстраградиентного метода [3,4]. Методы решения вариационного неравенства, как и сами задачи, реализованы в виде подключаемых модулей, поэтому в программе дополнительно возможно выбрать следующие методы: градиентный метод с памятью, одношаговый экстраградиентный метод с памятью, двухшаговый экстраградиентный метод с памятью.

Описание модуля Ма1г1хСа1с

В этом модуле содержатся классы матрица и вектор, определены основные операции над ними, такие как умножение, сложение векторов и матриц, произведение матрицы на вектор, произведение матриц, транспонирование матрицы, скалярное произведение векторов, вычисление нормы вектора и матрицы. На рисунке 1 показана диаграмма классов матрица и вектор.

Рис. 1. Описание модуля MatrixCalc

Описание модуля Task

Модуль Task содержит интерфейс задачи ITask, класс VI, реализующий функционал вариационного неравенства. Так как в этом модуле содержится интерфейс ITask, то это позволяет любому программисту или исследователю реализовать собственную, интересующую его задачу в виде отдельного модуля программного комплекса MMSolver. Для этого достаточно написать класс, реализующий интерфейс ITask, и оформить этот класс в виде динамически подключаемой библиотеки (dll). Интерфейс ITask имеет ряд интересных свойств и методов. Свойство Name содержит название задачи, а Overview - ее краткое описание. Свойство CanUseFillDlg отвечает за то, можно ли использовать специальную форму заполнения задачи. Если таковой нет, то задача должна быть полностью создана в конструкторе класса, иначе программист должен реализовать визуальную форму, в которой будет предоставлена возможность пользователю ввести все необходимые данные. На этой форме обязательно должна быть кнопка «создать», по нажатию которой необходимо выставить значение свойства Created в true, а так же послать сообщение $WM_TASKCREATED$ родительскому окну. На рисунке 2 изображена диаграмма классов модуля Task. В методе ToVarIneq должна быть реализована логика приведения задачи к вариационному неравенству (класс VI).

__ Known Solution

L i р E-h itzConst StartPoint Methods

VI (+ 1 overload)

W1NAPY 21

Class

^ Fields

WM_TASKCREA... 0 Methods

PostMessage

VectorConversion ¥

Delegate

ITask

Interface

^ Properties

CanUseFiiiDig £T Created tome Overview

S Methods ;V GetFiUDlg PrintSalution ToVarIneq

Рис. 2. Описание модуля Task 259

Описание модуля Method

Для того, чтобы решать задачи собственным методом, необходимо написать класс реализующий интерфейс IMethod. При этом необходимо выделить два решающих метода. Solve - находит решение вариационного неравенства, а MakeOneSolveIter - делает одну итерацию метода. Свойство Solution содержит решение, найденное методом, а свойство Iterations - ко-

личество итераций, сделанное методом, Time - показывает время в секундах, затраченное на решение задачи, SolvePath - хранит траекторию метода, StopCriteria - содержит пороговое значение критерия остановки $||xAk - xA*|| < StopCriteria$, Name - название метода, Overview -его описание.

Библиографический список

1. Корпелевич, Г. М. Экстраградиентный метод для отыскания седловых точек и других задач / Г. М. Корпелевич // Экономика и математические методы. - 1976.- Т. 12, № 4. -

2. Антипин, А. С. Экстрапроксимальный метод решения равновесных и игровых задач / А. С. Антипин // Журн. вычисл. математики и мат. физики. - 2005. - Т. 45, № 11. - С. 19691990; Т. 45, № 12. - С. 2102-2111.

3. Зыкина, А. В. Двухшаговый экстраградиентный метод для вариационных неравенств / А.В. Зыкина, Н. В. Меленьчук // Известия вузов. Математика. - 2010. - № 9. - С. 82-85.

4. Зыкина, А. В. Двухшаговый экстраградиентный метод для задач управления ресурсами / А. В. Зыкина, Меленьчук, Н. В. // Моделирование и анализ информационных систем. -2010. - Т. 17, № 1. - С. 65-75.

5. Konnov, I. V. Combined relaxation methods for variational inequalities / L. V. Konnov. -Berlin etc.: Springer, 2001.- 181 p.

\

IMethod

Interface

Properties

Name

Sotiftion

SoivePstfr

StopCriteria

Tims

Overview

—1 Methods

;V MateOnsSoivsltsr ;V 5оїі¥

Рис. З. Описание модуля Method

С. 747-756.

Работа выполнена при финансовой поддержке РФФИ, проект № 12-07-00326.

i Надоели баннеры? Вы всегда можете отключить рекламу.