Алгоритмы внутренних точек с приближенным решением

advertisement
Алгоритмы внутренних точек
с приближенным решением
вспомогательной задачи
Филатов А.Ю.
к.ф.-м.н., ИСЭМ СО РАН, ИГУ (Иркутск)
Пержабинский С.М.
ИСЭМ СО РАН (Иркутск)
http://math.isu.ru/filatov,
http://polnolunie.baikal.ru/me,
http://fial_.livejournal.com,
alexander.filatov@gmail.com
Работа выполнена при финансовой поддержке РФФИ
(проект 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
xX
T
uU
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
xR n
T
Шаг корректировки:

k
k
k   min

x

x
j
j
k
j:x j 0
Ax  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
cTx   k  k   k 
 min , Ax  0
2
k
2 j 1 x
xR 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
xR n
2
 
Ax  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 Au
t 
t 1 T ~
u
Au t 1

f ut 1   ut  min ,




~ t 1 ~ T t
Au  b u
t  
t T~
u Aut
 
Экспериментальное исследование
Число итераций, необходимое для решения задач при 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 , Ax  r k  k ,
2 j 1
xR n
~
 k – прогноз шага корректировки.
Спасибо
за внимание!
http://math.isu.ru/filatov,
http://polnolunie.baikal.ru/me,
http://fial_.livejournal.com,
alexander.filatov@gmail.com
Download