УДК 519.85+519.863 ББК 22.19
ЧИСЛЕННЫЕ ЭКСПЕРИМЕНТЫ С ВАРИАНТАМИ АЛГОРИТМОВ ВНУТРЕННИХ ТОЧЕК НА НЕЛИНЕЙНЫХ ЗАДАЧАХ ПОТОКОРАСПРЕДЕЛЕНИЯ
Зоркальцев В. И.1, Медвежонков Д. С.2
(ФГБУН Институт систем энергетики им. Л.А. Мелентьева СО РАН, Иркутск)
Представлены результаты сравнительных экспериментальных исследований вариантов алгоритмов внутренних точек на нелинейных моделях потокораспределения. В экспериментах выявлено преимущество линейных весовых коэффициентов, деленных на множители Лагранжа, перед квадратичными. Установлено, что при использовании двойственных алгоритмов требуемая точность решения достигается быстрее, чем при использовании прямых алгоритмов внутренних точек.
Ключевые слова: прямые и двойственные алгоритмы внутренних точек, весовые коэффициенты, нелинейные задачи потокораспределения.
1. Введение
В работах [7, 13, 14] рассматривается класс задач выпуклого программирования с линейными ограничениями и сепара-бельной целевой функцией, обладающих свойством симметричной двойственности. Этим термином названа ситуация, когда двойственная к двойственной задаче оптимизации совпадает с
1 Валерий Иванович Зоркальцев, доктор технических наук, профессор, заведующий лабораторией (zork@isem.sei.irk.ru).
2 Дмитрий Сергеевич Медвежонков, младший научный сотрудник (dmitry@isem. sei. irk. ru).
исходной. Наличие симметричной двойственности даёт ряд преимуществ, в том числе возможность поиска решения исходной оптимизации на основе алгоритмов поиска оптимального решения двойственной задачи.
Основная цель данной статьи - изложить результаты сравнительных экспериментальных исследований вариантов алгоритмов внутренних точек для решения задач нелинейной оптимизации, обладающих свойством симметричной двойственности. Свойство симметричной двойственности позволяет использовать не только так называемые прямые алгоритмы внутренних точек (осуществляющих монотонное улучшение решения исходной задачи оптимизации), но и двойственные алгоритмы внутренних точек (осуществляющие монотонное улучшение решения двойственной задачи оптимизации).
В данной статье рассматривается класс алгоритмов внутренних точек, пионерами в разработке которых в конце 60-х и в 70-х годах прошлого века были отечественные ученые С.М. Анциз, И.И. Дикин, Ю.Г. Евтушенко, В.Г. Жадан, В.И. Зоркальцев [1, 4, 5, 6, 9]. В дальнейшем с 80-х годов прошлого века эти алгоритмы привлекли повышенное внимание во всём мире. Частными случаями рассматриваемых в этой статье алгоритмов являются широко известные алгоритмы под названием affine scaling method и dual affine scaling method.
К настоящему времени можно считать общепринятым, что в результате проведенных теоретических и многочисленных экспериментальных исследований установлена высокая вычислительная эффективность рассматриваемых алгоритмов внутренних точек. Например, они, как правило, позволяют быстрее получать решения задач линейного программирования разной размерности, чем хорошо отработанные в результате многолетней вычислительной практики алгоритмы симплекс-метода.
В силу конструктивных особенностей обсуждаемых алгоритмов (обуславливающих их вычислительную эффективность) для их теоретического обоснования нельзя воспользоваться стандартной техникой, изложенной, например, Зангвиллом [8]. К настоящему времени полученные результаты теоретического
обоснования алгоритмов внутренних точек рассматриваемого здесь типа относятся в основном к их использованию для решения задач линейного и отчасти квадратичного программирования. Хотя уже с 70-х годов прошлого века эти алгоритмы успешно применяются при реализации многих моделей энергетики, относящихся к другим классам задач математического программирования. В этой связи особый интерес представляют экспериментальные исследования алгоритмов. Как показывает практика предыдущих экспериментальных исследований, их результаты бывают полезны для выработки рекомендаций по использованию вариантов алгоритмов в конкретных типах задач и для последующего теоретического обоснования алгоритмов.
Здесь будет рассматриваться две альтернативы в выборе вариантов алгоритмов внутренних точек. Одна из них - правила задания так называемых «весовых коэффициентов», с помощью которых во вспомогательной задаче определения направления улучшения решения учитываются ограничения-неравенства исходной задачи оптимизации. В [10-12] на основе аксиоматического подхода вводятся и обсуждаются различные возможные правила задания этих коэффициентов, приводящих к алгоритмам, которые обладают разными свойствами. Наиболее известными являются так называемые квадратичные весовые коэффициенты, введенные в первых работах по данному типу алгоритмов внутренних точек И.И. Дикиным [4]. Результаты развития такого алгоритма и практические приложения отражены в монографии [5]. В дальнейшем в работах зарубежных авторов такой алгоритм внутренних точек получил название «affine scaling method».
У данного алгоритма есть одна нехорошая в вычислительном отношении особенность, проявляющаяся уже при решении задачи линейного программирования. При оптимизации в области допустимых решений шаг, с которым осуществляется улучшение решения по выбранному направлению, неограниченно возрастает. Это означает, что на финальных итерациях неизбежные малые погрешности в решении вспомогательной задачи выбора направления корректировки решения сильно проявляют-
ся в вычислительном процессе, в том числе через выход из области допустимых решений.
В целях борьбы с этим негативным явлением было предложено вместо квадратичных весовых коэффициентов на финальных итерациях использовать линейные весовые коэффициенты, деленные на оценки предыдущих итераций множителей Ла-гранжа соответствующих ограничений-неравенств [11]. Последующие экспериментальные исследования [2] показали, что таким вариантом алгоритмов внутренних точек вполне можно пользоваться не только на финальных, но и на всех итерациях. Теоретические исследования [12] показали, что эти алгоритмы обладают, так же как и алгоритмы с квадратичными весовыми коэффициентами, линейной скоростью сходимости, асимптотически не зависящей от исходных данных задачи, и могут обладать сверхлинейной скоростью сходимости. Практический интерес и интерес для дальнейших теоретических исследований представляет выяснение вопроса на основе экспериментальных расчетов: как соотносятся по времени счета эти два варианта алгоритмов на задачах с нелинейной целевой функцией?
Вторая альтернатива - выбор между «прямыми» и «двойственными» алгоритмами внутренних точек. Прямые алгоритмы осуществляют монотонное улучшение исходной задачи оптимизации в области решений, удовлетворяющих в строгой форме её ограничениям-неравенствам. На этапе ввода в область допустимых решений на каждой итерации происходит сокращение всех компонент вектора абсолютных значений невязок ограничений-равенств. На втором этапе осуществляется процесс оптимизации (монотонного улучшения значения целевой функции) в области допустимых решений исходной задачи.
При этом на каждой итерации при решении вспомогательной задачи выбора направления корректировки решения вырабатывается также приближение к решению двойственной задачи. Как было подмечено еще в 70-х годах И.И. Дикиным, приближения к решению двойственной задачи хотя и не монотонно в каком либо смысле, но значительно лучше (быстрее) сходятся к оптимальному решению двойственной задачи, чем
сходятся монотонно улучшаемые решения исходной задачи к её оптимальному решению. В дальнейшем этот факт получил теоретическое обоснование [10] на задачах ЛП.
Двойственный алгоритм внутренних точек осуществляет монотонное улучшение решения двойственной задачи. При этом на каждой итерации вырабатывается и приближение к решению исходной задачи. В этом случае, по аналогии с предыдущим, следует ожидать более быструю сходимость приближений исходной задачи к её оптимальному решению, чем сходимость приближений двойственной задачи двойственной задачи к её оптимальному решению. Важно также отметить, что для рассматриваемых здесь задач легко получить стартовую точку двойственной задачи, удовлетворяющую всем её ограничениям-неравенствам в строгой форме. Оба эти момента позволяют надеяться, что двойственные алгоритмы могут быть более эффективными для определения с заданной точностью оптимального решения исходной задачи оптимизации.
Заметим, что у всех четырех рассматриваемых здесь алгоритмов объем вычислений на каждой итерации (при решении одной и той же задачи) одинаков. Это позволяет использовать число итераций для достижения решения с одной и той же заданной точностью в качестве сравнительного показателя времени счета.
Конкретным объектом экспериментальных исследований данной статьи будут нелинейные модели потокораспределения [3, 7, 13-16]. Этим термином объединяются нелинейные (с затратами на перевозки нелинейно зависящими от объемов перевозок) транспортные задачи, а также электрические цепи и гидравлические цепи (моделирующие транспортировку по трубопроводам воды, нефти или нефтепродуктов).
2. Взаимно-двойственные задачи оптимизации
Заданы матрица Л размера m х пи множество номеров J = {1, ..., п}. Множества L, Н являются некоторыми подмноже-
ствами J. Также заданы: вектор b е Rm, вектор c е Rn, величины
Xj, j е L, и Xj, j е H, при этом x j < для j е L n H .
Обозначим Z множество функций из R в R, которые равны нулю в нуле и имеют непрерывные возрастающие производные. Причем производные этих функций равны нулю в нуле и изменяются от -да до +да.
Заметим, что любой функции из Z можно поставить в соответствие сопряженную функцию из Z, производная которой является обратной функцией к производной исходной функции. Такой переход к новой функции равносилен применению к исходной функции преобразования Лежандра-Фенхеля, известного из выпуклого анализа.
Пусть задан набор функций Fj(xj), j е J, принадлежащих множеству Z. Введем функции от векторов Rn: F(x) = ^ Fj (Xj).
Рассмотрим задачу выпуклой оптимизации с выпуклой сепара-бельной целевой функцией и линейными ограничениями с вектором переменных x е R :
(1) F (x) + cTx ^ min
(2) Ax = b ,
(3) x3 < x3, j е L,
(4) xj < xj, j е H .
Назовем (1)-(4) исходной задачей оптимизации. Расширенным решением исходной задачи назовем набор, состоящий из вектора исходных переменных x, вектора u е Rm множителей Лагранжа ограничений (2), векторов l е К и h е Rn, содержащих множители Лагранжа ограничений (3) и (4), причем lj = 0, j е J \ L и hj = 0, j е J \ H, а также вектора y е Rn с компонентами yj = jj), где fj - производная Fj, j е J.
Обозначим Фj функцию из Z, полученную в результате преобразования Лежандра-Фенхеля из функции Fj е Z, j е J. Введем функцию от вектора y е Rn: Ф(у) = ^Фj (yj).
j^J
В [7] установлено, что двойственную задачу оптимизации к задаче (1)-(4) можно записать в виде
(5) ф(у)-bTuXjlj + ^Xjhj ^min
jeL jeH
(6) y+c-l+h = ATu,
(7) l} > 0, j e L ; h; > 0, j e H ,
(8) l] = 0, j e J, j t L; ht = 0, j e J, j t H .
Здесь переменными являются векторы y e Rn, u e Rm и компоненты векторов l e Rn и h e Rn соответственно при j e L и j e H.
Расширенным решением двойственной задачи назовем набор, состоящий из векторов её переменных y, u, l, h, а также вектора x e Rn множителей Лагранжа ограничений (6).
Рассмотрим систему уравнений и неравенств, включающую условия (2)-(4), (8) и дополнительные ограничения:
(9) y = f (Xj h j e J ,
(10) y+c -1+h = AJu,
(11) lj = (fj(x;)+Cj-[ATu]j)+, j e L ,
(12) hj = ([ATu] j - fj (Xj) - Cj)+, j e H .
Здесь f - производная функции Fj, j e J, а (a)+=max{0, a}.
В [7] обосновывается справедливость утверждений следующей теоремы, которая говорит о возможности восстановить решение исходной задачи по решению двойственной. Это дает право пользоваться двойственными алгоритмами внутренних точек для решения задач потокораспределения.
Теорема. Если ограничения исходной задачи (1)-(4) совместны, то решение этой задачи существует и единственно, решение двойственной задачи (5)-(8) существует и единственно по вектору y, решение системы уравнений и неравенств (2)-(4), (8), (9)-(12) существует, единственно по векторам x, y и совпадает с расширенными решениями исходной и двойственной задач. В противном случае решения исходной и двойственной задач не
существуют, система уравнений и неравенств (2)-(4), (8), (9)-
(12) несовместна.
Замечание. Ограничения (11), (12) заменяют известные в оптимизации условия дополняющей нежесткости. Эти ограничения лучше в вычислительном отношении, чем билинейные условия дополняющей нежесткости.
3. Прямые алгоритмы внутренних точек
Итерационный процесс прямых алгоритмов внутренних точек решения исходной задачи (1)-(4), заключается в последовательном построении нового приближения:
(13) хк+1 = хк + ,
где sk - направление корректировки текущего приближения, Хк -величина шага вдоль этого направления. Процесс начинается из точки х , которая удовлетворяет ограничениям-неравенствам (3)-(4) в строгой форме. Считаем, что матрица А имеет полный ранг, целевая функция в (1) дважды дифференцируема. Обозначим fj( х}-) - вторую производную функции Fj(xj), у е J.
В этом алгоритме выделяются два этапа вычислений. Сначала осуществляется ввод в область допустимых решений, в процессе которого уменьшаются невязки ограничений-равенств (2). На втором этапе осуществляется оптимизация в области допустимых решений.
Алгоритм итеративно будет повторять перечисленный в пунктах 1-6 набор действий.
Пункт 1. Вычисление вектора невязки ограничений (2) для текущего к-го приближения X е Я":
(14) гк = Ь - Ахк . Вычислим величину
лкА = тах{|г-к|: i е I}.
Зададим ¿>0 - параметр алгоритма, характеризующий допустимую невязку ограничений-равенств (2). Если выполняется неравенство
(15) TtkA < 5 ,
то xk принадлежит с требуемой точностью допустимой относительно ограничений-равенств (2) области. В этом случае алгоритм переходит на этап оптимизации в области допустимых решений. Если условие (15) не выполняется, то алгоритм остается на этапе ввода в область допустимых решений.
Пункт 2. Решение вспомогательной задачи поиска направления корректировки sk текущего приближения xk. В зависимости от этапа, на котором находится алгоритм, эта задача записывается по-разному. Возможны два случая.
I. Если алгоритм находится на этапе ввода в допустимую
область, то решаем вспомогательную задачу относительно s:
2
1 (s} ) (16) -Ъ^ТТ- ^ mia
2 iGj d
k
..k
(17) As = гк .
Величины а/, / е J - положительные весовые коэффициенты, изменяющиеся по итерациям. Используется два варианта их определения.
1) Квадратичные весовые коэффициенты:
(18) = (хк - х.)2, если / е L и / £ Н ,
(19) = (х. -хк )2, если / е Н и / £ L ,
(20) ак = (тт(хк - х., х. -хк/. ))2, если / е L и / е Н .
2) Линейные весовые коэффициенты, деленные на приближения к множителям Лагранжа I/ 1, ^ 1 ограничений (3), (4):
(21) ёк = (хк - х}.)/ тах(52, 1к-), если / е L и / £ Н ,
(22) ак = (х. - хк )/тах(52, hk_1), если / е Н и / £ L ,
, min(хк - х .,х, -хк)
(23) ак =-Л \к-/ , если / е L и / е Н .
Здесь 32 - параметр, представленный некоторым малым числом и позволяющий избежать деления на ноль; параметры I/-1, Л/к-1 - это двойственные оценки, вычисляемые на предыду-
щей итерации алгоритма (если алгоритм на первой итерации, то положим = 0, ^ = 0).
При у £ Ь и Н значение коэффициентов d. приравнивается числу сок = тах{юь ю2, ®3}, где щ = тах{х/ - ху:у е Ь\Н}, щ = тах{х;- —хк :у еН\Ь}, щ = тах{тт{хк-х;.,х;- —х^}:у еЬпН} .
Отметим, что на этом этапе согласно (13), (14), (17) выполняется соотношение
(24) гк+1 = (1 — Хк)гк ,
поэтому на каждой итерации происходит сокращение абсолютных значений всех компонент вектора невязок балансовых ограничений гк, если Хк ограничено сверху единицей.
Найдем решение задачи (16), (17), используя правило множителей Лагранжа. Выразим компоненты s из условий оптимальности этой задачи:
(25) Sj. = йк[Ати]., у е 3 ,
здесь и е Ят - вектор множителей Лагранжа ограничений (17).
Обозначим Dk - диагональную матрицу с элементами d. на главной диагонали. Подставим полученные в (25) выражения для s в систему уравнений (17). Получаем систему линейных уравнений относительно вектора и:
(26) ADkATu = гк .
Матрица ADkAT - симметричная, положительно определенная. Решив систему (26), получим вектор ик. Затем вычислим компоненты вектора sk, использую правило (25).
II. Если алгоритм находится на этапе оптимизации в области допустимых решений, решаем вспомогательную задачу поиска направления корректировки текущего приближения в виде
(27) (хк) + с.^ +11/;(хк)LsJ)2 +11^ тш,
2 2 <Л'
(28) As = 0.
Здесь величины dk, у е 3 вычисляются так же, как и на этапе ввода в область допустимых решений.
Найдем решение задачи (27), (28), используя правило множителей Лагранжа. Выразим компоненты вектора s:
(29) (ATU)j - f} (4) - С, . _
(29) s j =- Л i k Vi j , j е J,
fk )+(4 J
Используем обозначения: G - диагональная матрица c n элементами вида (f(xj) + (d/)-1)-1 на главной диагонали, fxk) -вектор с элементами f(xj), j е J. Подставим полученные в (29) выражения для компонент вектора s в систему уравнений (28). Получим систему линейных уравнений относительно вектора и:
(30) AGk(ATu - f(xk) - с) = 0 .
Решив систему (30), получим вектор и . Затем вычислим s , используя (29).
Пункт 3. Проверка выполнения критерия остановки. Проверим для текущего приближения к решению задачи (i)-(4) выполнение условий (2)-(4), (8), (9)-(12). Рассчитаем величины lk, hj по формулам (Ii), (12). Далее рассчитаем компоненты вектора yk по формулам:
(31) yk = [ATuk] j - сj, j е J \ (L u H),
(32) yk = [ATuk]; - с. +1) - hk , j е L u H . Рассчитаем величину
(33) nkY = max{|yk - f (xk )|: j е J}.
Если справедливо условие max{^Yk, nAk }<s, где s - параметр допустимой погрешности решения, то найдено решение задачи (1)-(4)) с требуемой точностью. В этом случае завершаем работу алгоритма, иначе переходим к следующему пункту.
Пункт 4. Определение шага корректировки решения. Вычислим шаг до ближайшей границы допустимой области, задаваемой ограничениями-неравенствами, по формуле:
(34) = min(Ä ,ХН),
где ÄL = min {(x. - xk)(sk)-i : j е L, s. < 0 }, Äh = min {(x. - xk)(sk)-i : j е H, s; > 0 }.
Выбор итогового шага Хк корректировки решения зависит от этапа, на котором находится алгоритм.
1) Если алгоритм находится на этапе ввода в область допустимых решений, то итоговый шаг Хк вычислим по правилу:
Хк = тт(уЛш, 1), где 0 < у < 1 (например, у = 0,7).
Здесь у - параметр метода, который используется, чтобы после корректировки приближение к решению оставалось внутри допустимой по ограничениями-неравенствами области.
2) Если алгоритм находится на этапе оптимизации в области допустимых решений, то сначала найдем величину ХР, решив
задачу одномерной минимизации целевой функции (1) из точки
кк х по направлению s :
(35) Хр = а^тт{Р(хк + аэк) + сТ(хк + аэк): 0 < а < Хш}.
аеR
А затем вычислим итоговый шаг Хк корректировки решения:
(36) Хк = тш( уЛш ,ХР).
Пункт 5. Вычисление следующего приближения. Осущест-
к
вим итеративный переход, используя найденные s и Хк:
хк+1 = хк + ^к .
4. Двойственные алгоритмы внутренних точек
Двойственный алгоритм решает двойственную задачу (5)-(8). Он отличается от прямого алгоритма тем, что для него несложно априори сформировать допустимое по ограничениям-равенствам (6) решение, для которого все ограничения-неравенства (7) выполняются в строгой форме. Поэтому одним из преимуществ рассматриваемых двойственных алгоритмов внутренних точек является то, что в них сразу со стартовой точки начинается процесс оптимизации в области допустимых решений.
Для реализации алгоритма необходимо, чтобы целевая функция в (5) была дважды дифференцируемой. Обозначим щ (у) - вторую производную функции Ф/у), / е J.
Зададим начальное приближение искомых векторов у0 е Rn, и0 е К1, 10 е Rn и h0 е R" так, чтобы векторы начального приближения удовлетворяли равенствам (6), (8) и неравенствам (7) в строгой форме. Таким образом, алгоритм будет работать на одном этапе - этапе оптимизации в области допустимых решений.
Пункт 1. Поиск направления корректировки текущего приближения. Найдем векторы Ау*, Аи , А/, АИ*, являющиеся решением задачи
Х^(у*)Ау}- + 2 Ы(У*)(Ау;-)2 -IЬАщ - X^А1}. +
}еЗ 2 ге1 jеL
(37) 2 2
+ I Х}. М; + - X-; + - --> mln,
;еН 2 jеL <<; 2 ;еН р;
(38) Ау + с - ЛТАи - А1 + АИ = 0,
(39) А1; = 0, ; е J \ L , АИ; = 0, ; е J \ Н .
Для вычисления знаменателей и р/ функций штрафа в целевой функции (37) использовались два способа.
1) Квадратичные весовые коэффициенты:
(40) = (I* )2, ; е Ь; р* = (И* )2, ; е Н .
2) Линейные весовые коэффициенты, деленные на множители Лагранжа:
(41) <) = Iк/#1, ; е Ь; р* = И*/Щ 1, ; е Н .
Здесь величины щ*-1 являются приближениями к множителям Лагранжа ограничений-неравенств (7) задачи (5)-(8). Причем, # = х/-1 - Х], ] е Ь, а у* = Х; - х*-, ; е Н. Величина
х/-1 - это компонента вектора множителей Лагранжа х*-1 ограничений-равенств (6). Вектор х*-1 вычисляется на предыдущей итерации алгоритма (для первой итерации алгоритма зададим
Найдем решение задачи (37)-(39) используя правило множителей Лагранжа. Выразим компоненты векторов Ау, А1, АИ из
системы, полученной приравниванием нулю производных функции Лагранжа:
(42) Ау}- = (х; - у(у)))/у' [у]), ] е J ,
(43) А!, = (X] - X] )д), ] е L,
(44) Ак] = (X] - X])р) , ] е Н .
Подставим полученные выражения в (38), выразим из получившихся уравнений вектор двойственных оценок х:
(45) х = Нк (Ат Аи - Пк).
Здесь Н - диагональная матрица с п элементами вида ((У (У/Г + д/ + р/)-1 на главной диагонали; П - диагональная матрица с п элементами вида [с;. -уУ [х) )(у] [х) ))-1 - Х]Ч) + х}рк )
на главной диагонали. Для элементов матриц Н и П справедливы соотношения:
(46) д) = 0, ] е J \ L ; р) = 0, ] е J \ Н .
Подставим выражение (45) для х в уравнение (2). Получим систему линейных уравнений относительно вектора Аи:
(47) АН) (Ат Аи - П11) = Ь .
Считаем, что матрица А имеет полный ранг. Тогда матрица АНАТ - симметричная, положительно определенная. Решив систему (47), получим вектор Аик. Затем найдем векторы Аук, А1к, Акк, используя (39), (42)-(44), и вектор двойственных переменных хк, используя (45).
Пункт 2. Проверка выполнения критерия остановки. Проверим для текущего приближения к решению выполнение условий (2)-(4), (8), (9)-(12). Рассчитаем следующие величины: ж^ = тах{| У](у)) - х) |: ] е J},
жк) = тах{| (f¡ (х]) + с; - [АТик];)+ -1) |: ] е I},
жН = тах{| ([АТик]; - f¡ (х}.) - с;)+ - к) |: ] е Н},
жкхЬ = тах{(х; - х))+ : ] е Ц, ж^ = тах{(х] - х})+ : ] е Н}.
-г^ ) k k k k k \
Если справедливо условие maxул-^,nL, nH,nxL, лш |<s ,
где s - параметр допустимой погрешности вычислений, то условия оптимальности решаемой задачи оптимизации выполнены с требуемой точностью. В этом случае завершаем работу алгоритма, иначе переходим к пункту 3.
Пункт 3. Выбор шага корректировки текущего приближения. Сначала определим шаг корректировки до ближайшей границы допустимой области, задаваемой ограничениями-неравенствами. Шаг до ближайшей границы определяется по формуле ÄLH = min{ÄL, ÄH}, где
Ä = min {(-lk})/Alk : j e L, Alk < 0 }, ÄH = min {(-hk)/Ahj : j e H, Ahk < 0 }.
Найдем величину ÄP, решив задачу одномерной минимизации целевой функции (5) по направлению, задаваемому векторами Ayk, Auk, Alk, Ahk:
ÄP = argmin{0(yk + a Ayk) - bT(uk + a Auk) -
✓.. ^ч aeR
(48) . . . .
-X Xj (lkj + a Alk) + X x} (hk + aAhk): 0 < a < ÄLH }.
jeL jeH
Вычислим итоговый шаг Äk корректировки решения:
(49) Äk = min(yÄLH,ÄP), где 0 < у < 1, (например, у = 0,7). Пункт 4. Вычисление следующего приближения. Осуществим итеративный переход, используя шаг корректировки Äk:
yk+1 = yk + ÄkAyk ; uk+1 = uk + ÄkAuk; lk+l = lk + Ä Alj, j e L; lk = 0, j e J \ L ; hk+1 = hk + ÄkAhk, j e H ; hk = 0, j e J\H .
5. Результаты экспериментальных исследований
Была выполнена программная реализация прямых и двойственных алгоритмов внутренних точек для решения задач потокораспределения на языке С++.
В экспериментальных расчетах использовались два варианта прямого и два варианта двойственного алгоритмов внутренних точек с двумя видами весовых коэффициентов: квадратичными и линейными коэффициентами, деленными на приближения к множителям Лагранжа. В таблице 1 приводятся характеристики решенных в ходе эксперимента задач и результаты расчетов для них. Критерием остановки алгоритмов было выполнение условий (2)-(4), (8), (9)-(12) с максимальной невязкой не более 0,1.
Таблица 1. Результаты расчетов задач потокораспределения с использованием четырех вариантов алгоритмов
Характеристики задач Количество итераций для вариантов алгоритмов внутренних точек
Узлов Ветвей Двуст. ограничен. Ак-тивн. огра-нич. Прямой Двойств Прямой Двойств
Квадратичн. весовые коэффиц. Линейные весо-вые коэффиц.
25 39 25 3 30 47 24 16
25 39 35 9 63 42 38 20
25 48 40 4 25 24 15 15
25 48 40 11 112 46 60 20
50 60 25 7 47 35 37 23
50 60 50 8 83 41 74 24
50 136 88 39 118 64 25 31
50 136 100 19 70 34 25 21
100 116 20 10 64 15 42 24
100 116 81 7 70 39 24 22
100 195 79 37 65 250 32 27
100 195 90 15 44 28 32 26
200 300 150 10 56 31 26 18
200 300 150 26 121 39 39 23
338 712 500 11 108 86 27 23
338 712 500 16 96 79 39 31
Среднее геометрическое: 66,7 44,4 32,5 22,3
Расчеты показывают, что прямой и двойственный алгоритмы с линейными весовыми коэффициентами в среднем в два раза быстрее (по числу итераций) своих аналогов с квадратич-
ными коэффициентами. Двойственные алгоритмы в среднем в полтора раза быстрее своих прямых аналогов.
Кроме того, был проведен эксперимент для сравнения скорости достижения требуемой точности решения прямым и двойственным алгоритмом по исходным и по двойственным переменным. Точность проверялась относительно предварительно найденного с большой точностью решения. В таблице 2 приводятся результаты расчетов по выборке из 6 задач, для которых условия (2)-(4), (8), (9)-(12) выполнялись с точностью 0,01 на последней итерации.
Таблица 2. Сравнение скорости достижения требуемой точности решения по исходным и по двойственным переменным
Расчеты прямым алгоритмом Расчеты двойственным
алгоритмом
Число Кол- Точность Точность Кол- Точность Точность
узлов, во решения по решения по во решения по решения по
число ите- исходным двойствен. ите- исходным двойствен.
ветвей рац. перемен. перемен. рац. перемен. перемен.
25, 39 29 8,04Е-06 2,85Е-08 20 2,85Е-08 1,20Е-03
25, 48 29 1,04Е-05 7,91Е-07 21 2,90Е-08 2,60Е-03
50, 60 34 7,95Е-05 3,11Е-07 24 1,27Е-08 1,59Е-03
50, 136 32 2,26Е-05 1,83Е-07 25 4,21Е-06 1,07Е-03
100, 116 31 1,51Е-05 4,70Е-07 32 1,26Е-09 1,53Е-03
100, 195 30 4,05Е-06 4,19Е-08 24 2,00Е-06 1,81Е-03
Из таблицы 2 следует, что при использовании прямого алгоритма требуемая точность решения достигается быстрее по двойственным переменным, чем по исходным. Для двойственного алгоритма требуемая точность достигается быстрее по исходным переменным, чем по двойственным.
5. Заключение
Проведены экспериментальные исследования прямых и двойственных алгоритмов внутренних точек с различными способами выбора весовых коэффициентов на нелинейных задачах потокораспределения.
Показано, что варианты прямых и двойственных алгоритмов с линейными весовыми коэффициентами, деленными на множители Лагранжа, в среднем в два раза быстрее по числу итераций, чем варианты алгоритмов с квадратичными весовыми коэффициентами. Установлено, что при использовании двойственных алгоритмов требуемая точность решения достигается в среднем в полтора раза быстрее, чем при использовании прямых алгоритмов.
Сделан вывод, что при использовании прямого алгоритма требуемая точность решения достигается быстрее по двойственным переменным, чем по исходным. Для двойственного алгоритма требуемая точность достигается быстрее по исходным переменным, чем по двойственным.
В связи с результатами экспериментов справедлива следующая рекомендация: для более быстрого нахождения решения исходной задачи с заданной точностью целесообразно использовать двойственные алгоритмы внутренних точек с линейными весовыми коэффициентами, деленными на множители Лагранжа.
Литература
1. АНЦЫЗ С.М., ДИКИН И.И. Об одном численном методе решения задачи линейного программирования и некоторых её обобщений // В кн.: Управляемые системы. Вып. 3. - Новосибирск, ИМ СО АН СССР, 1969. - С. 54-56.
2. ВОЙТОВ ОН., ЗОРКАЛЬЦЕВ В.И., ФИЛАТОВ А.Ю. Определение допустимых режимов электроэнергетических систем алгоритмами внутренних точек // Сибирский журнал индустриальной математики - 2000. - Том 3, №1(5). -С. 57-65.
3. ДЕННИС Дж.Б. Математическое программирование и электрические цепи. - М.: Изд-во иностранной литературы, 1961, - 216 с.
4. ДИКИН И.И. Итеративное решение задач линейного программирования // Доклады АН СССР. - 1967. - Т. 174. -С 747-748.
5. ДИКИН И.И., ЗОРКАЛЬЦЕВ В.И. Итеративное решение задач математич. программирования (алгоритмы метода внутренних точек). - Новосибирск: Наука, 1980. - 144 с.
6. ЕВТУШЕНКО Ю.Г., ЖАДАН В.Г. Релаксационный метод решения задач нелинейного программирования // Журнал вычислительной математики и математической физики. -1977. - Том 17, №4. - С. 890-904.
7. ЕПИФАНОВ СП., ЗОРКАЛЬЦЕВ В.И., МЕДВЕЖОН-КОВ Д.С. Модель гидравлической сети с регуляторами расхода // Управление большими системами. - 2010. - Специальный выпуск 30.1 «Сетевые модели в управлении». -С. 286-299.
8. ЗАНГВИЛЛ У. Нелинейное программирование. Единый подход.- Пер. с англ. под ред. Е.Г. Гольштейна. - М.: «Сов. радио», 1973. - 312 с.
9. ЗОРКАЛЬЦЕВ В.И. Итеративный алгоритм решения задачи линейного программирования // В кн.: Алгоритмы и программы решения задач линейной алгебры и мат. программирования. - Иркутск, СЭИ СО АН СССР, 1978. - С. 77-89.
10. ЗОРКАЛЬЦЕВ В.И. Класс алгоритмов внутренних точек // Журнал вычислительной математики и математической физики. - 2009. - №12. - С. 3-28.
11. ЗОРКАЛЬЦЕВ В.И. Методы прогнозирования и анализа эффективности функционирования системы топливоснабжения. - М.: Наука, 1988. - 144 с.
12. ЗОРКАЛЬЦЕВ В.И. Проективные алгоритмы оптимизации, использующие множители предыдущей итерации // Журнал вычисл. Математики и матем физики. -1994. - Т. 34, №7. - С. 943-950.
13. ЗОРКАЛЬЦЕВ В.И. Симметричная двойственность в оптимизации и ее приложения // Известия высших учебных заведений. Математика, 2006. - №2. - С. 53-59.
14. ЗОРКАЛЬЦЕВ В.И., ХАМИСОВ О.В. Равновесные модели в экономике и энергетике. - Новосибирск: Наука, 2006. -221 с.
15. BERTSEKAS D.P. Network Optimization: Continuous and Discrete Models. - Athena Scientific, Belmont, Massachusetts, 1998. - 608 p.
16. ROCKAFELLAR R. Tyrrell: Network flows and monotropic optimization. - Pure and Applied Mathematics. - New York: Wiley-Interscience, 1984. - 616 p.
COMPUTATIONAL EXPERIMENTS WITH VARIANTS OF INTERIOR-POINT ALGORITHMS FOR NONLINEAR FLOW DISTRIBUTION PROBLEMS
Dmitry Medvezhonkov, Institute of Energy Systems of SB RAS, Irkutsk, junior research assistant (dmitry@isem.sei.irk.ru). Valery Zorkaltsev, Institute of Energy Systems of SB RAS, Irkutsk, Doctor of Science, prof., head of laboratory (zork@isem.sei.irk.ru).
Abstract: We present results of computational experiments which compare variants of primal and dual interior-point algorithms for nonlinear problems of flow distribution. The experiments show that linear weight coefficients divided by Lagrange multipliers dominate quadratic weight coefficients. We also show that the required solution accuracy is achieved faster when using dual algorithms, rather than primal ones.
Keywords: primal and dual interior-point algorithms, weight coefficients, nonlinear flow distribution problems.
Статья представлена к публикации членом редакционной коллегии М.В. Губко
Поступила в редакцию 18.04.2013.
Опубликована 30.11.2013.