Методы внутренних точек

advertisement
Преподавание курса
«Методы внутренних точек»
Зоркальцев В.И., д.т.н., проф., ИГУ, кафедра мат.экономики
Филатов А.Ю., к.ф.-м.н., доцент ИГУ, кафедра мат.экономики
Работа выполнена при финансовой поддержке РФФИ (проект 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
m
uU
(1)

(2)
rk  b  Axk
(3)
: g u  c  A T u  0
Стартовое приближение: x1  0
Итеративный переход: xk 1  xk  k xk
Направление корректировки:
n x 2
1
j
cTx  
 min ,
2
k
2 j 1 x
xR n
 
j
Шаг корректировки:

k
k
k   min

x

x
j
j
k
j:x j 0

Ax  r k ,
Алгоритмы центрального пути
(обладают полиномиальными оценками)
Логарифмическая барьерная функция:
n
c x    ln x j  min,
T
Ax  b
(4)
j 1
Параметризация в комбинированных алгоритмах:
n
c T x   
x j
k
j 1 x j

n
x 2j
1
 k
2 j 1 x j
 
2
 min ,
xR
n
Ax  r k
(5)
Преимущества алгоритмов внутренних точек
• Удобная адаптация к задачам в нестандартной постановке.
• На каждой итерации идет улучшение всех переменных.
• Решение – относительно внутренняя точка множества
оптимальных решений.
• Наличие у ряда алгоритмов полиномиальных оценок
максимального объема вычислений.
Примерная программа курса
«Методы внутренних точек» (34 ч.)
1. Теоретические основы линейной оптимизации
• Пара взаимно-двойственных задач линейного программирования.
• Основные факты теории двойственности.
2. Аффинно-масштабирующие алгоритмы для
решения задач линейного программирования
• Истоки алгоритмов внутренних точек.
• Прямые аффинно-масштабирующие алгоритмы.
• Способы задания весовых коэффициентов.
• Ввод в допустимую область.
• Двойственные аффинно-масштабирующие алгоритмы.
Примерная программа курса
«Методы внутренних точек» (34 ч.)
3. Полиномиальные алгоритмы для решения
задач линейного программирования
• Исторический экскурс в полиномиальные алгоритмы.
• Идейная основа и общая схема алгоритмов центрального пути.
• Простейший вариант алгоритма центрального пути.
• Процедуры, ускоряющие вычислительный процесс.
• Двойственные алгоритмы центрального пути.
• Проблема инициализации алгоритмов. Два способа ее решения
путем перехода к расширенным задачам специального вида.
• Алгоритмы скошенного пути.
• Комбинированные алгоритмы.
Примерная программа курса
«Методы внутренних точек» (34 ч.)
4. Решение систем линейных неравенств
• Метод Фурье-Черникова.
• Метод сведения к задаче линейного программирования с одной
дополнительной переменной.
• Случай интервальных ограничений на переменные.
• Быстрая идентификация несовместности системы.
5. Обращение симметричной положительно определенной
матрицы
• Метод Гаусса.
• Метод Халецкого.
• Метод сопряженных направлений.
• Техника частичного обновления.
Примерная программа курса
«Методы внутренних точек» (34 ч.)
6. Примеры практического приложения
алгоритмов внутренних точек
• Задача поиска допустимых режимов
электроэнергетических систем.
• Задача идентификации состояния электроэнергетических
систем.
• Задача оценки дефицита мощности электроэнергетической
системы
Информация о данном курсе в интернете
• http://polnolunie.baikal.ru/me/mat_prog.htm
• http://math.isu.ru/filatov
• E-mail: alexander.filatov@gmail.com
Спасибо
за внимание!
http://math.isu.ru/filatov,
http://polnolunie.baikal.ru/me,
http://fial_.livejournal.com,
alexander.filatov@gmail.com
Download