Теория игр и исследование операций. Модели, алгоритмы, сложность: Конспект лекций, страница 9

Пересечение конечного числа гиперплоскостей в Ân есть выпуклое множество M ÎÂn. Экстремум линейной функции на M достигается на его границе GM. Разложим Ân в прямую сумму линейной оболочки L, натянутой на вектор c, задающий линейный функционал, и ортогонального L подпространства Ân-1. Границу GM можно рассматривать как объединение графиков двух функций – выпуклой f- и вогнутой f+ ³ f-, заданных на M¢ - проекции M на Ân-1. Заключим M¢ в любой эллипс E и проведем в его центре a вычисления: находим значения f и Ñf= субградиент = направляющий вектор опорной к графику гиперплоскости. Из условия выпуклости  f(x) ³ f(a) + Ñf(a)∙ (x-a) следует, что не надо искать минимум в полупространстве Ñf(a)∙ (x-a) > 0, т.к. f(x) > f(a). Оставшуюся половину эллипса заключим в новый эллипс E1 и повторим вычисления в его центре и т.д. Юдин и Немировский (Москва,1976) показали, что отношение объемов
V(Ek) / V(Ek-1) < 2(n+1) √¯e-1 <1. Þ V(Ek) ® 0 в Ân-1. С ростом размерности пространства стремление к 0 замедляется, но место имеет. Хуже, что линейные расстояния при этом совсем необязательно стремятся к 0 (эффект оврага).

Однако вскоре было доказано, что полиномиальную трудоемкость имеет и алгоритм А.Левина (Воронеж,1965), названный методом центров тяжести. Б.Митягин (Воронеж,1969) доказал, что при рассечении любого выпуклого тела любой размерности любой гиперплоскостью, проходящей через его центр тяжести, объем любой его части составляет от  е-1 » 36,8%   до  1-1 » 63,2%  объема тела.

С 1971 по 2004 год А.Ю.Левин работал в ЯрГУ, заведовал основанной им кафедрой теоретической кибернетики, из которой впоследствии вырос факультет ИВТ. На матфаке ЯрГУ ее преемницей является кафедра КБиММОИ.

Приводимый ниже алгоритм основан на близкой идее – уточняя на очередном шаге решение задачи мы уменьшаем объем не только локализатора (длину интервала), но и всей входной информации (часть ограничений отбрасываем).

№8. ЛИНЕЙНЫЙ АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ ЛП В Â2 (Megiddo,1983).

Пусть b>0. Введя обозначения X=x, Y=ax+by, получим более простую задачу:

Разобьем множество ограничений на 4 части: I+ ={i | bi>0 },   I-={i | bi<0 }, I0+={i | bi=0 и ai>0},  I0-={i | bi=0 и ai<0} и построим интервал [u1, u2], где u2=+¥ при I0+=Æ, иначе , и u1=-¥ при I0-=Æ, иначе . Если u1>u2, то исходная задача ЛП недопустима. Пусть . Построив нижнюю огибающую семейства прямых I+ и верхнюю огибающую семейства I-, мы свели исходную задачу к виду:

F+(x)®maxпри ограничениях   xÎ[u1, u2]   и   F+ (x) ³F- (x).

Алгоритм Меджиддо для задачи ЛП в Â2 имеет линейную трудоемкость, т.к. рекуррентное неравенство для трудоемкости имеет вид   .

1)  Элементы множеств I+, I- разбиваем на пары и для каждой пары прямых ищем точку пересечения zk. Если она Ï(u1, u2), то удаляем одну из прямых: лежащую выше (т.е. y¢(zk) больше), если (пара из I+ и zku1 ) или (пара из I- и zk³u2).

2)  В множестве Z оставшихся точек пересечения ищем медиану m по координате x.

3)  В точке m проводим вычисления (чтобы определить направление поиска):

a.  Сначала допустимость! D= F+(m)-F-(m) вогнута и д.б. ³0, иначе анализ производной D¢

b.  Определяем множество I+m прямых из I+, на которых в mдостигается min. Ищем в этой точке левую и правую производную функции F+(x).
      .                              .

c.  Если обе производные > 0, то max следует искать справа (т.е. u1=m). Если обе производные < 0, то max следует искать слева (т.е. u2=m).

d.  Если переход с + на -, то m есть точка max. В противном случае надо смотреть на знак  производной от разности F+(m)-F-(m).

4)  Повторяем вычисления с пункта 1 на новом интервале, причем половина точек zk окажется вне интервала, и для них отбрасываем одно ограничение из пары. В результате не менее четверти ограничений будет отброшено!