Экономико-математическое моделирование

Задача квадратичного программирования с параметром в правых частях ограничений и ее применение при формировании портфеля ценных бумаг


                                   Реферат

      Дипломная работа содержит 78 страниц, 2 приложения, 1 рисунок.
         Список    ключевых    слов:     программирование,     квадратичное,
параметрическое.

      В данной работе рассматривается  применение метода  субоптимизации  на
многообразиях    к    решению    задачи    параметрического    квадратичного
программирования с параметром в  правых  частях  ограничений,  и  решению  с
помощью указанного метода  задачи  об  оптимальном  выборе  портфеля  ценных
бумаг.   Рассматриваются   свойства   алгоритма,   и   обосновывается    его
применимость к задаче квадратичного программирования.


                                 Содержание

1. Введение 4


2.Аналитический обзор  9


3. Теоретическая часть 11

3. Задача квадратичного программирования (непараметрический случай).
11
  3.1 Постановка задачи:     11
  3.2 Условия оптимальности в задаче (3.2)    12
  3.3. Базис задачи квадратичного программирования. Оптимальный и
  невырожденный базисы.      15
  3.4. Метод субоптимизации на многообразиях. Выпуклый случай. 18
  3.5 Метод субоптимизации на многообразиях. Задача квадратичного
  программирования.    26
  3.6. Метод субоптимизации на многообразиях в задаче квадратичного
  программирования. Теоретическое обоснование.      34
  3.7. Вычислительная схема алгоритма субоптимизации для задачи
  квадратичного программирования.  44
  3.8. Некоторые особенности вычислительной схемы метода субоптимизации на
  многообразиях для задачи квадратичного программирования.     47
4. Задача квадратичного программирования с параметром в правых частях
ограничений.     51
4.1 Постановка задачи  51
  4.2 Некоторые свойства решения параметрической задачи квадратичного
  программирования.    51
  4.3 Применение метода субоптимизации на многообразиях к решению
  параметрической задачи квадратичного программирования. 54

5.Экономическая часть  56


6.Библиография   63


7.Приложение
1...........................................................................
.......................................65


8.ПРиложение
2...........................................................................
.......................................67


9.рисунок
1...........................................................................
................................................78



                                 1. Введение


      В настоящей работе рассматривается  применение  метода  субоптимизации
на  многообразиях  к  решению  задачи  квадратичного    программирования   с
параметром в правых частях ограничений.
      Метод субоптимизации на  многообразиях,  предложенный  У.Зангвиллом  в
1968 году для решения задач выпуклого  программирования  представляет  собой
простую   процедуру   поиска   оптимальной   точки   в   задаче    выпуклого
программирования с ограничениями типа  равенств.  Метод  использует  подход,
названный  автором  "выделением  активных  ограничений",  сводящий  исходную
задачу  выпуклого  программирования  к   определенным   образом   строящейся
последовательности вспомогательных задач выпуклого программирования.
       В  тех  случаях,  когда  решение  вспомогательных  задач  оказывается
существенно  проще   решения   исходной,   или   вообще   очевидным,   метод
субоптимизации    на    многообразиях    позволяет    существенно    снизить
вычислительную трудоемкость  процедуры  решения  исходной  задачи,  а  также
исследовать  свойства  решения  общей  задачи  на  основании  общих  свойств
вспомогательных задач.
        В   работе   показано,   что,   в   случае   задачи    квадратичного
программирования,   решение  вспомогательных  задач  сводится  к  разложению
определенным образом выбираемого вектора по некоторому базису,  что  в  свою
очередь эквивалентно  решению  системы  линейных  уравнений.  Таким  образом
решение исходной задачи оказывается эквивалентным  решению  конечного  числа
систем линейных уравнений.
       Показано  также,  что  в  случае  задачи  выпуклого  программирования
решение общей задачи сводится к  последовательному  решению  вспомогательных
задач, при переходе между которыми в базисном  множестве  происходит  замена
только одного вектора.
      В  силу  этого  становится  возможным  создание  рекуррентных  формул,
связывающих матрицы  системы  линейных  уравнений  соседних  вспомогательных
задач.
      Таким образом вместо решения  системы  линейных  уравнений  на  каждом
шаге  метода  можно  вычислять  новое  решение  с  помощью   соответствующих
рекуррентных  соотношений,  прибегая  к  непосредственному  решению  системы
линейных уравнений только с целью коррекции накопившейся  ошибки  вычисления
после значительного количества итераций.
      В  результате  вычислительная  трудоемкость  процедуры  оказывается  в
лучшем  случае  эквивалентной   решению   системы   линейных   уравнений   с
последующим конечным числом матричных преобразований типа умножения  матрицы
на  вектор.  В  худшем  случае  задача  оказывается  эквивалентной   решению
конечного числа систем линейных уравнений.
      Доказаны  теоремы,  составляющие  теоретический  фундамент  алгоритма,
приведено доказательство сходимости предложенной вычислительной процедуры.
        Рассматривается   применение    указанного    метода    к    решению
параметрической задачи квадратичного программирования с параметром в  правых
частях ограничений, путем сведения указанной задачи к конечному числу  задач
квадратичного программирования без параметра.
       В  силу  того,  что  решение  параметрической  задачи   квадратичного
программирования  с  параметром  в  правых  частях  ограничений  оказывается
кусочно-линейной функцией,  исходная  задача  сводится  к  покрытию  области
допустимых значений параметра отрезками, на которых функция решения  линейна
по параметру с постоянными коэффициентами,  зависящими  только  от  значения
функции в левой точке отрезка.
      Показано, что такое разбиение состоит из конечного числа  отрезков,  и
конечного числа точек переключения траектории решения.
      Построение  такого  покрытия  в  худшем  случае  эквивалентно  решению
конечного числа задач квадратичного программирования без параметра в  точках
переключения   траектории.   Показаны   подходы   к   построению   процедуры
перестройки решения  в  точках  переключения  траектории  без  необходимости
полного решения задачи квадратичного программирования путем  сведения  ее  к
одной или нескольким итерациям метода субоптимизации на многообразиях.
      Поставлена задача поиска оптимального вложения  в  задаче  о  портфеле
ценных  бумаг,  являющаяся  экономической   интерпретацией   параметрической
задачи квадратичного программирования.
      Составлена и отлажена программа на языке С++, функционирующая в  среде
операционных  систем  UNIX  (AIX,  Solaris)  а  также   Microsoft   Windows,
реализующая описанные алгоритмы. Указанная  программа  применена  к  решению
задачи о поиске оптимальных инвестиций в задаче  о  портфеле  ценных  бумаг,
данные решения и текст программы приведен в приложениях.
      Указаны возможные  пути  упрощения  процедуры  поиска  решения  задачи
квадратичного программирования с  параметром  в  правых  частях  ограничений
путем отказа от  решения  задачи  квадратичного  программирования  в  точках
переключения траектории.

                            2.Аналитический обзор


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

                           3. Теоретическая часть



3. Задача квадратичного программирования (непараметрический случай).



3.1 Постановка задачи:


      Задачей квадратичного программирования будем называть задачу
следующего вида:


|[pic]                                                   |        |
|                                                        |(3.1.1) |


здесь x-вектор столбец размера n, C- вектор-строка размера 1(n, D -  матрица
размера n(n, симметричная  и  неотрицательно  определенная  (D  (  0).  b  -
столбец длины m. A - матрица размера m(n, ранг ее равен m (R(A) = m).
      Имеет место также условие неотрицательности компонентов вектора x:

                                   x ( 0.

Поскольку наличие  компонента  Cx  не  оказывает  существенного  влияния  на
результаты, изложенные в настоящей работе, будем  без  ограничения  общности
предполагать вектор C нулевым. В такой постановке задача принимает вид:

|[pic]                                                 |          |
|                                                      |(3.1.2)   |

      В данной  постановке  задача  квадратичного   программирования  всегда
имеет оптимальный вектор, и является задачей  выпуклого  программирования  с
линейными ограничениями типа равенств.


3.2 Условия оптимальности в задаче (3.2)


      Условия оптимальности в задаче (3.2) представляют  собой  формулировку
условий Куна-Таккера для этой задачи. Будем  рассматривать  следующую  форму
записи условий Куна-Таккера для задачи выпуклого программирования:

|[pic]                                                 |          |
|                                                      |          |
|                                                      |          |
|                                                      |          |
|                                                      |(3.2.1)   |


      В нашем случае получим:

|[pic]                                                 |          |
|                                                      |          |
|                                                      |          |
|                                                      |          |
|                                                      |(3.2.2)   |


      Здесь Ai- столбцы матрицы A длины m, Di столбцы матрицы D длины n,  Lk
- строки матрицы A длины n, ej - n-мерные столбцы единичной  матрицы.  Здесь
и далее xi - компоненты оптимального вектора задачи x, (k и (k  -  множители
Лагранжа условий Куна-Таккера. Запишем  систему  3.2.2  в  более  обобщенной
форме:


|[pic]                                                 |          |
|                                                      |          |
|                                                      |(3.2.3)   |


      где составные  столбцы  P0,  ...  Pm+2n  каждый  длиной  m+n  являются
столбцами блочной матрицы P, имеющей следующий вид:

|[pic]                                                 |          |
|                                                      |(3.2.4)   |


      В таком виде условия Куна-Таккера (3.2.3) можно записать в  еще  более
простом виде:


|[pic]                                                 |          |
|                                                      |          |
|                                                      |(3.2.5)   |


      Поскольку  рассматриваемая  нами  задача  является  задачей  выпуклого
программирования,  указанные   условия   существования   минимума   являются
одновременно необходимыми и достаточными. Доказательство  указанных  условий
можно найти в [1,2].



3.3. Базис задачи квадратичного программирования. Оптимальный и
невырожденный базисы.


      Поскольку ранг матрицы A равен m (см 3.1), система векторов

                                    [pic]

являются линейно независимой системой векторов. В то же время, легко  видно,
что  линейная  оболочка,  натянутая  на  систему  векторов  P  совпадает   с
пространством Em+n, т.е L(P)=En+m.
      Следовательно из системы  векторов  3.2.4  можно  образовать  конечное
число базисов N евклидова пространства En+m, содержащих в себе  векторы  P1,
.. Pm.  Такие  базисы  пространства  En+m  будем  называть  базисами  задачи
квадратичного программирования, и обозначать следующим образом:

|[pic]                                                 |(3.3.1)   |

      Для упрощения схемы  алгоритма,  запишем  базис  (3.3.1)  в  следующем
виде:

|[pic]                                                 |(3.3.2)   |


      Здесь (1 и (2 - наборы индексов. В случае, если  (1=(2  будем  считать
базис U(1,(2 порожденным одним множеством индексов (=(1.

|[pic]                                                 |(3.3.3)   |


      Коэффициенты разложения вектора b  по  базису  U(1,(2  будем  называть
базисными переменными, остальные коэффициенты - небазисными переменными.
      Базис  U(1,(2  назовем  оптимальным,  если  его  базисные   переменные
удовлетворяют условиям Куна-Таккера (3.2.3).
      Базис называется невырожденным,  если  все  его  базисные  переменные,
соответствующие компонентам вектора x отличны от нуля, т.е.

|[pic]                                                 |          |
|                                                      |          |
|                                                      |(3.3.4)   |


      Задачу (3.1.2)  будем  называть  невырожденной,  если  все  ее  базисы
невырождены. В противном случае назовем задачу вырожденной.



3.4. Метод субоптимизации на многообразиях. Выпуклый случай.


      Для решения задачи (3.1.2) предлагается использовать метод
субоптимизации  на  многообразиях.   Вначале   рассмотрим   основные   идеи,
приводящие   к   методу   субоптимизации   в   случае    задачи    выпуклого
программирования общего вида.
        Рассмотрим   задачу   выпуклого   программирования    с    линейными
ограничениями, состоящую в минимизации выпуклой функции  f(x)  на  множестве
L, задаваемом ограничениями типа равенств.

|[pic]                                                 |          |
|                                                      |(3.4.1)   |


      Предположим,  что  задача  имеет  единственное  решение,  т.е  минимум
целевой функции достигается в единственной  оптимальной  точке  x*.  В  этом
случае задаче (3.4.1) эквивалентна задача:

|[pic]                                                 |          |
|                                                      |          |
|                                                      |(3.4.2)   |


      Эквивалентность этих двух  задач  является  следствием  единственности
решения.  Переход  к   задаче   (3.4.2)   называется   выделением   активных
ограничений, т.е.  вместо  условия  неотрицательности  всех  переменных,  мы
переходим к условию равенства нулю всех компонент, решения, индексы  которых
не принадлежат множеству ((x*).
      Предположим, что для задачи (3.4.2) нахождение   оптимального  решения
существенно  проще,  чем  для  исходной  задачи  (3.4.1).  В  этом   случае,
перебирая каким-либо образом всевозможные множества индексов (k,  являющиеся
подмножествами полного набора индексов {1,..n}, и решая для каждого  из  них
задачу  (3.4.2),  используя  (k  вместо  (*,  определить  искомое  множество
индексов (*.
      Предположим также, что задача (3.4.2) обладает свойством
единственности, т.е система векторов {L1, ..  Lm,  ej  (j(  ((x*)}-  линейно
независима.  В  случае  нарушения  свойства  единственности  задача   поиска
оптимального вектора задачи (3.4.2) усложняется, и в дальнейшем этот  случай
рассматриваться не  будет.
      Алгоритм перебора множеств индексов (k  основан на следующей лемме.

      Основная лемма:

      Пусть x* является оптимальной точкой задачи:

|[pic]                                                 |(3.4.3)   |


      где X( - линейное многообразие, определяемое следующим образом:

|[pic]                                                 |(3.4.4)   |


      Предположим, что задача (3.4.3) с условием (3.4.4) обладает свойством
единственности, и среди (j, удовлетворяющих условиям Куна-Таккера
существует отрицательное (j0, т.е.

|[pic]                                                 |(3.4.5)   |


      Пусть ( '  - множество индексов, полученное из (  вычитанием индекса
j0:

|[pic]                                                 |(3.4.6)   |

 Тогда, если x*' - оптимальный вектор задачи

|[pic]                                                 |(3.4.7)   |

то справедливо неравенство:

|f(x*')

смотреть на рефераты похожие на "Задача квадратичного программирования с параметром в правых частях ограничений и ее применение при формировании портфеля ценных бумаг"