Алгоритмы внутренних точек с приближенным решением вспомогательной задачи Филатов А.Ю. к.ф.-м.н., ИСЭМ СО РАН, ИГУ (Иркутск) Пержабинский С.М. ИСЭМ СО РАН (Иркутск) http://math.isu.ru/filatov, http://polnolunie.baikal.ru/me, http://fial_.livejournal.com, [email protected] Работа выполнена при финансовой поддержке РФФИ (проект 05-01-00587а) Исторический экскурс 1939 – линейное программирование (Канторович). 1947 – симплекс-метод (Данциг). 1967 – метод внутренних точек (Дикин). 1984 – полиномиальный МВТ (Кармаркар). 1990-е - 2007 – эффективные программные реализации. CPlex (http://maximal-usa.com), BPMPD (http://sztaki.hu), MOSEK (http://mosek.com), HOPDM (http://www.maths.ed.ac.uk/~gondzio/software/hopdm.html) Множество допустимых решений Множество оптимальных решений Траектория симплекс-метода Множество допустимых решений Множество оптимальных решений Траектория методов внутренних точек Пара взаимно-двойственных задач линейного программирования b u max, U u R c T x min, X x R n : Ax b, x 0 xX T uU m (1) : g u c A T u 0 Основные классы алгоритмов внутренних точек • Аффинно-масштабирующие алгоритмы. • Алгоритмы центрального пути. • Алгоритмы скошенного пути. • Комбинированные алгоритмы. • Прямые алгоритмы. • Двойственные алгоритмы. • Прямо-двойственные алгоритмы. (2) Аффинно-масштабирующие алгоритмы внутренних точек x1 0 Стартовое приближение: x k 1 x k k x k Итеративный переход: Задача поиска направления корректировки: 1 n 2 k c x x j d j min , 2 j 1 xR n T Шаг корректировки: k k k min x x j j k j:x j 0 Ax rk , rk b Axk (3) (4) Способы выбора весовых коэффициентов: k 2 xj , j 1,..., n ; k k p d j min x j , N , j 1,...,n, p 1 ; d kj x kj max , g j uk 1 , j 1,...,n, 0 . d kj (5) (6) (7) Алгоритмы центрального пути (имеют полиномиальные оценки) Логарифмическая барьерная функция: n c x ln x j min, T Ax b (8) j 1 Задача поиска направления корректировки: n x 2 1 j cTx k k k min , Ax 0 2 k 2 j 1 x xR n j 1 x j n x j (9) j Комбинированные алгоритмы (используют параметризацию) Задача поиска направления корректировки: n c T x x j k j 1 x j 1 n x j k 2 min , 2 j 1 x j xR n 2 Ax r k (10) Решение вспомогательной задачи Аффинно-масштабирующие алгоритмы: 2 T 1 u AXk A AXk2 c rk k k 2 x j x j g j uk 1 k 1 , Xk diag x kj (11) (12) Алгоритмы центрального пути: 2 T 1 u AXk A AXk2 c k b 1 k 2 k k x j x j k x j g j uk 1 k 1 k 1 1 0,5 (13) (14) n k (15) Комбинированные алгоритмы: 2 T 1 u AXk A AXk2 c rk k k k 2 x j x j x j g j uk 1 k min x kj x kj j:x kj 0 k 1 b (16) (17) (18) Методы решения ~ ~ T вспомогательной задачи ADk A u A u b • Метод Гаусса. • Метод Халецкого (метод квадратного корня). • Метод сопряженных направлений. • Метод Зейделя. • Другие приближенные итеративные методы. Предпосылки использования приближенных итеративных методов • На первых итерациях достаточно искать приближенное направление корректировки xk, используя вектор u k, ~ для которого ADk ATu bk bk. • В финале вычислительного процесса, диагональная матрица D k изменяется по итерациям очень незначительно, имеется хорошее стартовое приближение u0 u k .1 Метод сопряженных направлений ~ ~ Au b 1 ~ ~ f u uT Au b Tu min u 2 Итеративный переход: u t u t 1 t u t Направление корректировки: ~ ~ ut f ut 1 t ut 1 Aut 1 b t ut 1 Шаг, определяющий вариант метода: 1 0, Шаг корректировки: ~ t 1 ~ T ~ t 1 Au b Au t t 1 T ~ u Au t 1 f ut 1 ut min , ~ t 1 ~ T t Au b u t t T~ u Aut Экспериментальное исследование Число итераций, необходимое для решения задач при n=1,2m Размерность m Число итераций Минимал. Максимал. Среднее Среднекв. отклонение 10 10 10 10 0 30 30 61 39,78 6,98 50 47 71 56,98 5,58 100 71 89 79,06 4,17 300 187 253 219,48 14,04 Число итераций, необходимое для решения задач при n=1,5m Размерность m Число итераций Минимал. Максимал. Среднее Среднекв. отклонение 10 10 10 10 0 30 24 35 29,04 2,11 50 34 44 39,26 1,93 100 47 58 51,14 1,98 300 55 65 60,54 2,35 Параметры управления алгоритмом • Вариант приближенного метода. • – параметр в условии останова cTx bTu . • δ – параметр в условие перехода с точного на ~ ~ ~ приближенный метод Auk 1 b b . • K– максимальное число выполняемых подряд итераций приближенного метода. • t – число внутренних итераций приближенного метода. • Процедуры корректировки формул (3), (10) и формул вычисления максимального шага на фазе 1. 1 n 2 k ~ T c x x j d j min , Ax r k k , 2 j 1 xR n ~ k – прогноз шага корректировки. Спасибо за внимание! http://math.isu.ru/filatov, http://polnolunie.baikal.ru/me, http://fial_.livejournal.com, [email protected]