УДК 519.853.5
Вестник СПбГУ. Сер. 10, 2013, вып. 2
Е. К. Чернэуцану
МЕТОД ГРАДИЕНТНОГО ТИПА ДЛЯ РЕШЕНИЯ ЗАДАЧИ СТРОГОГО h-ОТДЕЛЕНИЯ*)
1. Пусть в пространстве R" заданы два конечных множества
A = iai}i=i и B = {bj }k=1.
В работах [1-5] рассматривалась задача о строгой отделимости множества B от выпуклой оболочки множества A с помощью h гиперплоскостей. Было установлено, что эта задача сводится к экстремальной задаче
1 m 1 k
F(G) := — ^ max [(«Да*) - 7s + с] + - ^ min [-(ws, 6^) + 7s + с] min. (1)
s G 1. h k s G1: h Cr
i=1 j=1
Здесь G - матрица размера h x (n +1) со строками
gs = (ws, Ys), s € 1: h;
[u]+ = max{0, u}; c > 0 - параметр.
Как показано в [3], задача (1) сводится к конечному числу задач линейного программирования. Количество таких задач равно hk. Оно может быть достаточно большим. Поэтому представляют интерес приближенные методы и прежде всего градиентный метод, предложенный в [1,4]. Напомним его описание. Введем обозначения
f(v,u) = (v,u) + c,
Ü), bj = ("ij"
Pi(G) = max f (gs, ai)] +, фj(G) = min f (gs, bj)] +.
sG1:h + sG1:h +
Тогда задача (1) перепишется в более компактном виде
1 i 1 k
F:= + k^{G) min- (2)
i=1 j=1
Функции от матриц pi(G) и фj(G) дифференцируемы по направлениям (в качестве которых выступают также матрицы). Чтобы записать формулы для производных по направлению pi (G,V) и фj (G,V), введем дополнительные обозначения
pi(G) = max f (gs, ai), фj(G) = min f (gs,bj),
Чернэуцану Екатерина Константиновна — аспирант, Санкт-Петербургский государственный университет; e-mail: [email protected].
*) Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (проект № 12-01-00752-a). © Е. К. Чернэуцану, 2013
так что
Положим
Vi(G) = [&(G)] +, Фз (G) = [Фз (G)] +.
Ri(G) = {s е 1: h | f (gs,äi) = ä(G)}, Rj(G) = {s е 1: h | f (gs,bj) = Фз(G)}.
Тогда (см. [7, с. 71])
vi(G,V) := lim
p(G + tV) - pi (G)
vs£ Ri(G)
{vs, ai),
если <pi (G) > 0;
= ^ maxseAi(G) [(vs, ai)] +, если ¡pi(G) = 0;
если ¡pi(G) < 0.
Поясним случай pi(G) = 0. При малых t > 0 имеем
max f (gs + tvs, ai) = max f (gs + tvs, ai), sel:h se Ri(G)
поэтому
= max
se Ri(G)
<Pi(G + tV) - pi(G)
max ■
se1:h
f (gs + tvs, ai)] _
f (gs + tvs, ai)
t
= max
+ se Ri(G)
f (gs + tvs, ai) - f (gs,t
t
= max [(vs, ai)] +.
+ se Ri(G) +
Мы воспользовались тем, что ](да, щ) = 0 при всех в € Ri(G). Формула для производной по направлению получается даже без предельного перехода по Ь ^ +0. Аналогично
(тЧей,(О) ('"а,Ьз)> если фз(G) > 0;
) = [ т^ей,(О) |>аА'>] + если фз(G) = 0;
[0, если фз(G) < 0.
Согласно (2)
1 m 1 k
(3)
i=i j=i Отметим, что F'(G,tV) = tF'(G, V) при t > 0.
Переходим к градиентному методу. Возьмем начальное приближение Go. Пусть уже имеется k-тое приближение Gk. Решаем вспомогательную задачу
F'(Gk,V) ^ min,
у еп
где О - множество матриц V = {-ys(a)}, элементы которых удовлетворяют неравенствам
|vs(a)| < K, s e 1: h, a £ 1: n + 1. Задача (3) сводится к небольшому числу задач линейного программирования. Она имеет решение (в силу ограниченности множества О). Обозначим его Vk. Если
F'(Gk,Vk) > 0,
t
t
t
то О и - точка локального минимума функции Г (О). В противном случае матрица Уи является направлением убывания функции Г (О) из точки О и. Находим точку минимума функции Г (О и + ЬУи) при Ь > 0. Обозначим ее Ьи. Полагаем Ои+1 = Ои + ЬиУи, после чего вычисления повторяются. Описание принципиальной схемы градиентного метода для решения задачи (1) завершено.
С помощью градиентного метода изучим, в частности, влияние параметра с на качество строгого ^-отделения.
2. Рассмотрим задачу строгого 3-отделения при двух значениях параметра с. Основное внимание будем уделять организации вычислений.
Пусть на плоскости заданы множества А и В, состоящие соответственно из точек
ах = (-3, 0), а2 = (1, 3), аз = (2, -1), аА = (0, 1);
Ь1 = (-2, 2), Ъ2 = (2, 3), Ьз = (4,1), ЪА = (-1, -2).
Очевидно, что (А) П В = 0 (рис. 1).
Ьх
О
Ь2 О
Ьз
О
Ь4
О
Рис. 1. Задача строгого 3-отделения
/
Ьх О < а Ь2 • О > Ь3 О
Ь4 О • ■
Рис. 2. Начальное приближение Со
Сначала будем решать задачу строгого 3-отделения при с = 0. Возьмем начальное приближение (рис. 2)
'1 0 3^
Go
Заполним табл. 1 и 2.
0 1 i0 -1 41
Таблица 1. Вычисление функций <pi(G0)
Таблица 2. Вычисление функций фj (Go)
г 1 2 3 4
f(g^äi) -6 -2 -1 -3
-4 -1 -5 -3
Дйо>«;) -4 -7 -3 -5
-4 -1 -1 -3
Ri(Go) {2,3} {2} {1} {1,2}
Vi(G о) 0 0 0 0
3 1 2 3 4
ftä.bj) 5 1 -1 4
/(sÜA) 2 1 3 6
/(so АО 6 7 5 2
ФЛОо) 2 1 -1 2
ßj(Go) {2} {1, 2} {1} {3}
i>j{Go) 2 1 0 2
Последние строки табл. 1 и 2 позволяют вычислить значение целевой функции: F(G0) = f.
Переходим к вычислению производных по направлению. Имеем
(G0, V) = 0 при всех i £ 1:4, Фl (Go, V) = {v2,bi) = 2v2(1) - 2v2(2) + v2(3),
Ф2(G0, V) = min {vs,b2) = min {-2v1(1) - 3v1(2) + v1(3), -2v2(1) - 3v2(2) + v2(3)}, se{i, 2} se{i, 2}
Ф3(Go, V) = 0,
Ф4(Go, V) = {v3, b4) = v3(1) + 2v3(2) + v3(3).
Производная по направлению V функции F(G) при G = Go в случае Ф2 (Go,V) = -2vi(1) - 3vi(2) + vi(3) принимает вид
Решаем задачу линейного программирования
F'(Go, V) ^ min, (4)
у еп
где в качестве О возьмем множество (3 х 3)-матриц V, все элементы которых по модулю не превосходят 10 (K = 10). Очевидно, что решением задачи (4) является матрица
10 10 -10
Vo = (-10 10 -10
10 10 10
при этом Г'(С^0, У0) = -37.5.
Теперь решим аналогичную задачу при G = G0 в случае ф2^0,У) = —2-2(1) — 3-у2 (2) + -2(3). Производная по направлению У функции Гпринимает вид
о, 1/) = -У(2) + ±«2(3) + У(1) + ±«3(2) + ±«3(3).
Решаем задачу линейного программирования (4). Решением задачи является матрица
/ 0 0 0 \ Vo = ( 0 10 -10); 10 -10 -10/
при этом F'(G0, V0) = —27.5.
Таким образом, получили, что в случае Ф2(G0, V) = —2v1(1) — 3v1(2) + v1(3) решение Vo - направление наискорейшего убывания функции F (G) при G = Go. Минимум функции F (Go + tVo) на луче t > 0 достигается при to = 0.05, поэтому
/ 1.5 0.5 2.5\
G1 := G0 + t0V0 = ( —0.5 1.5 3.5 )
0.5 —1.5 3.5/
(рис. 3).
Рис. 3. Матрица Ох
Повторяем процесс (табл. 3 и 4).
Таблица 3. Вычисление Таблица 4. Вычисление
функций ^(Ох) функций ^фj (Ох)
г 1 2 3 4
f(9i,ài) -7 0.5 0 -2
f(g'Î,ài) -2 0.5 -6 -2
f{g'bài) -2 -8.5 -3 -5
Фг(С l) -2 0.5 0 -2
RiiGx) {2, 3} {1. 2} {1} {1. 2}
Vi{Gi) 0 0.5 0 0
j 1 2 3 4
fbi.bj) 4.5 -2 -4 5
ftii.bj) -0.5 0 4 6
fialbj) 5.5 9 7 0
^■(Gi) -0.5 -2 -4 0
Rj{G x) {2} {1} {1} {3}
i) 0 0 0 0
Очевидно, что F(Gi) = 0.125. Переходим к вычислению производных по направлению. Имеем
p'i(G1,V) = 0 при i = 1, 4, (Gi, V) = max(vs, а2),
^3(Gi,V)= [(v1, a3)]+, ^(Gi, V) = 0 при j = 1, 2, 3, (Gi,V)= [(v3, b4)]+.
Производная по направлению V функции F(G)
при G — Gi принимает вид
F'(GUV) = i{maxK,a2)+ [<«1,a3>]+ + [{v3M)] + }.
Задача (4) при K =10 сводится к задаче линейного программирования
\{ti + t2 + ¿з } —► min
при ограничениях
Уя(а)| < 10, а € 1 : 3, в € 1:3;
¿1 > {у1, а2), ¿1 > {у2, а2), Ь2 > {у1, аз),
Ьз > {V3, Ъ4), ¿2 > 0, Ьз > 0.
Для решения последней задачи использовалась программа из МАТЬАВ [6]. Получили матрицу
/ -10 -10 10 V1 = I -10 -10 10 у—5.43 -7.1 -5.43у
при этом F'^1, VI) = -12.5. Минимум функции F+ ¿VI) на луче Ь > 0 достигается при ¿1 = 0.01, поэтому
/ 1.4 0.4 2.6
G2 := G1 + Ь1У1 = I -0.6 1.4 3.6
у-0.5543 -1.5709 3.4457/
и F(G2) =0.
Учитывая, что G2 - подходящая матрица (см. [5]), заключаем, что G2 - решение рассматриваемой задачи (рис. 4).
м \
Ь\ О
Ь2
. + ' о
Ьз
\ \
\ >
\
\
\ \
\
\
- \
^ \
\
\
Рис. 4- Матрица 02 - решение задачи при с = 0
3. Изменим в данной задаче значение параметра с. Вместо с = 0 положим с = В качестве начального приближения возьмем ту же матрицу Со. Заполним табл. 5 и 6.
Таблица 5. Вычисление функций 1р^Оо)
Таблица 6. Вычисление функций фз (О0)
г 1 2 3 4
/(йп.аг) -5.5 -1.5 -0.5 -2.5
ДйоА) -3.5 -0.5 -4.5 -2.5
Дй^А) -3.5 -6.5 -2.5 -4.5
-3.5 -0.5 -0.5 -2.5
Яг(Со) {2,3} {2} {1} {1,2}
¥>г(С0) 0 0 0 0
3 1 2 3 4
ДЙ^А) 5.5 1.5 -0.5 4.5
Дао А) 2.5 1.5 3.5 6.5
/(яоА) 6.5 7.5 5.5 2.5
ФЛСо) 2.5 1.5 -0.5 2.5
Щ{С0) {2} {1, 2} {1} {3}
^■(Со) 2.5 1.5 0 2.5
По последним строкам табл. 5 и 6 находим значение целевой функции: Г (Со) = 1.625. Далее имеем
/ 1.5 0.5 2.5\ С1 = I -0.5 1.5 3.5 I. у—0.5 -1.5 3.5/
Непосредственно проверяется, что Г(С1) = 0.5 (рис. 5).
Повторяем процесс, и на следующем шаге получаем матрицу
/ 1.2 0.3 2.8\ С2 = I —0.8 1.2 3.5 I; \— 0.8 —1.8 3.2/
м
Рис. 5. Подходящая матрица Gi
h у
О
\ ъ2
\ О \ \ \ \ \ \ \ \ \
Ьз О
Ь4
О
Рис. 6. Матрица G2 - решение задачи при с = |
при этом F(G2) = 0 (рис. 6). Значит, подходящая матрица G2 осуществляет строгое 3-отделение.
Литература
1. Astorino A., Gaudioso M. Polyhedral separability througt successive LP // JOTA. 2002. Vol. 112, N 2. P. 265-293.
2. Малозёмов В. Н., Чернэуцану Е. К. Строгая h-отделимость двух множеств // Семинар по дискретному гармоническому анализу и геометрическому моделированию (DHA & CAGD): избр. докл. 18 декабря 2010 г. 6 с. (URL: http://dha.spb.ru/PDF/hSeparability.pdf).
3. Чернэуцану Е. К. Строгая ^-отделимость и линейное программирование // Семинар по дискретному гармоническому анализу и геометрическому моделированию (DHA & CAGD): избр. докл. 29 января 2011 г. 7 с. (URL: http://dha.spb.ru/PDF/hSeparabilityLP.pdf).
4. Малозёмов В. Н., Чернэуцану Е. К. Численный метод строгого ^-отделения // Семинар по дискретному гармоническому анализу и геометрическому моделированию (DHA & CAGD): избр. докл. 15 октября 2011 г. 12 с. (URL: http://dha.spb.ru/PDF/hSepNumerical.pdf).
5. Чернэуцану Е. К. Численные эксперименты по строгой ^-отделимости // Семинар по дискретному гармоническому анализу и геометрическому моделированию (DHA & CAGD): избр. докл. 17 декабря 2011 г. 12 с. (URL: http://dha.spb.ru/PDF/hSepEx.pdf).
6. Демьянов В. Ф., Малозёмов В. Н. Введение в минимакс. М.: Наука, 1972. 368 с.
7. Сергеев А. Н., Соловьёва Н. А., Чернэуцану Е. К. Решение задач линейного программирования в среде MATLAB // Семинар по дискретному гармоническому анализу и геометрическому моделированию (DHA & CAGD): Программные реализации. 12 февраля 2011 г. 9 с. (URL: http://dha.spb.ru/programs.shtml).
Статья рекомендована к печати проф. Н. В. Егоровым. Статья поступила в редакцию 20 декабря 2012 г.