ЛИНЕЙНО-ВЫПУКЛЫЕ ГРАФЫ И НЕКОТОРЫЕ МАРШРУТНО-ИГРОВЫЕ ЗАДАЧИ
В работе рассматривается обобщение с помощью линейной нормы понятия выпуклого множества, которое затем переносится на конечные графы. Свойства полученных графов изучаются с помощью решения на них открытой задачи коммивояжера, а также некоторых маршрутных задач в условиях конфликта.
Ключевые слова: выпуклое множество, квазивыпуклая функция, линейная норма, гамильтонова цепь, задача коммивояжера, антагонистическая игра.
1. Линейно-выпуклые множества
Рассмотрим плоскость, на которой задана декартова система координат. (Все определения и утверждения этого параграфа переносятся на Кга, однако мы ограничимся плоскостью для наглядности и потому, что в дальнейшем вводимые понятия будут переноситься на плоские графы.) Определим на ней линейную норму:
||(х,у)|| = |х| + \у\ .
Такая норма вполне уместна на бесконечном листе школьной тетради или экране компьютера.
Естественно, что в силу эквивалентности евклидовой и линейной норм при переходе от первой ко второй норме все понятия высшего анализа не изменятся, зато понятия элементарной геометрии, связанные с понятием расстояния, претерпят существенные изменения. Эту геометрию вполне можно назвать геометрией пикселей.
Фиксируем две точки плоскости и рассмотрим непрерывную кривую между ними.
Определение 1. Эту кривую назовём линейным отрезком, если её длина в линейной норме равна расстоянию между её концами.
Легко заметить, что:
1) обычный отрезок является линейным отрезком;
2) линейный отрезок между двумя точками не единственен.
Определение 2. Множество точек плоскости X назовём линейно-выпуклым, если любые две его точки можно соединить линейным отрезком, целиком содержащимся в X.
Любое выпуклое множество является линейно-выпуклым.
На рис. 1.1 и 1.2 приведены примеры линейно-выпуклых множеств.
Можно заметить, что граница любого линейно-выпуклого компакта состоит из не более чем четырех линейных отрезков.
Рис. 1.1
Рис. 1.2
Важнейшим понятием в теории выпуклых множеств является понятие крайней точки и выпуклой оболочки.
Определение 3. Крайней назовём точку линейно-выпуклого множества X, если её удаление из X оставляет это множество линейно-выпуклым.
На рис. 1.1 и 1.2 отмечены крайние точки. Из-за того, что линейный отрезок между двумя точками не единственен, пересечение двух линейно-выпуклых может не быть линейно-выпуклым.
Определение 4. Линейно-выпуклой оболочкой множества X назовём минимальное линейно-выпуклое множество, содержащее X.
Линейно-выпуклых оболочек X может быть несколько, однако:
1) линейно-выпуклое множество является своей единственной линейновыпуклой оболочкой;
2) если у множество X несколько линейно-выпуклых оболочек, то пересечение любого, более 1, их числа не будет линейно-выпуклым;
3) линейно-выпуклый компакт совпадает с одной из линейно-выпуклых оболочек своих крайних точек.
Назовём сечением множества X все его точки, у которых совпадают первые (или вторые) координаты.
Критерий линейной выпуклости множества имеет следующий вид.
Теорема 1. Множество X является линейно-выпуклым тогда и только тогда, когда
1) линейно-выпуклыми являются все его сечения;
2) множество Х является линейно-связным.
Замечание 1. Аналог этой теоремы для графов будет доказан в главе 2.
Доказательство. Пусть (ж1; у^ и (ж2, у2) — две точки множества X, соединенные непрерывной кривой (ж(Ь),у(Ь)), Ь € [0,1]. Можно считать, что
ж1 < ж2,
^1 < У2,
а также, что кривая содержится в прямоугольнике, вершинами которого являются эти точки. Построим непрерывную монотонную кривую (ж'(Ь),У(Ь)), которая и будет линейным отрезком, содержащимся в X:
ж'(Ь) = тах ж(т),
т е[0,*|
у' (Ь) = тах у(г).
Т е[0,*|
Непрерывность и монотонное неубывание очевидны, докажем, что эта кривая содержится в X. Фиксируем Ь0, тогда существуют т1,т2 из [0,Ь] такие, что
ж' (Ьо) = х(т1),
У (Ьо) = уЫ,
при этом
Гж(г2) < ж' (Ьо),
\уЫ < у'(ь0)-
Так как (ж(1),у(1)) = (ж2,у2), то кривая (ж(Ь),у(Ь)) обязательно попадет в прямоугольник с вершинами (ж'(Ь0),у'(Ь0)) и (ж2,у2), т. е. существует Ь > Ь0 такое, что
ж(Ь) > ж'(Ь0),
,уС0 > у'(Ь0);
или
ж(Ь) = ж' (Ь0),
^у(Ь) > у'(Ь0)-
Выпуклость любого сечения X по ж или по у означает, что ж' (Ь0) € [ж(т2),ж(Ь)] или у'(*0) € [у(т1),у(Ь)], т. е. (ж'(*0),у'(*0)) € X. □
Теорема 2. Множество Х является линейно-выпуклым тогда и только тогда, когда для любого d линейно выпуклыми являются множества
X1(d) = {(ж,у) € X : ж < d},
X2(d) = {(ж,у) € X : ж > d},
Xз(d) = {(ж,у) € X : у < d},
X4(d) = {(ж,у) € X : у > d}.
Доказательство. Теорема вытекает из того, что любой линейный отрезок между двумя точками содержится в прямоугольнике, натянутом на эти точки. Поэтому и отрезок между двумя точками и множества XI ^) будут содержаться в этом прямоугольнике. □
Рассмотрим некоторые геометрические объекты и их эксклюзивные свойства примем в качестве определения.
Определение 5. Линейной прямой назовём непрерывную кривую, график которой замкнут и неограничен, такую, что
1) её часть между любыми двумя точками является линейным отрезком;
2) кривая не имеет крайних точек.
Линейный круг изображен на рис. 1.3.
Рис. 1.3
Определение 6. Линейным треугольником назовём линейно-выпуклую оболочку трёх точек, которые не лежат на одном линейном отрезке.
Все линейные треугольники имеют форму, приведённую на рис. 1.2.
Определение 7. Линейно-выпуклую оболочку четырёх точек, для которых попарно равны расстояния между ними, назовём линейным параллелограммом.
Все виды линейных параллелограммов приведены на рис. 1.4—1.6
Рис. 1.4
Не единственна только линейно-выпуклая оболочка в случае расположения крайних точек, как на рис. 1.5. Заметим, что в основании любого линейного параллелограмма лежит прямоугольник; у линейного ромба такой прямоугольник — квадрат.
у
X
Рис. 1.6
Понятие расстояния между точками и от точки до прямой используется в определении кривых второго порядка: эллипса, гиперболы и параболы.
Различные расположения фокусов меняют вид линейного эллипса следующим образом, изображенным на рис. 1.7, 1.8.
Вид линейной гиперболы приведен на рис. 1.9, 1.10. Более всего меняется вид линейной параболы, поскольку директрисой можно считать линейную прямую. Линейной параболой может быть, как видно на рис. 1.11-1.14, и ограниченная кривая, и кусок плоскости.
У
У
Рис. 1.7
Рис. 1.8
у
У
р.
X
X
Рис. 1.9
Рис. 1.10
Рис. 1.13 Рис. 1.14
Ну и наконец, обобщим понятие выпуклой функции.
Определение 8. Линейно-выпуклой назовём функцию, для которой линейновыпуклыми являются:
1) область определения;
2) надграфик.
Теорема 3. Функция одной переменной у = f (х) является линейно-выпуклой тогда и только тогда, когда она квазивыпукла.
Доказательство. Любое одномерное линейно-выпуклое множество является выпуклым, поэтому область определения О функции f выпукла. Критерием квазивыпуклости функции является выпуклость её множеств Лебега X (^) = {х £ О : f (х) < при любом d.
1. Если f линейно-выпукла, то линейно-выпуклым в силу теоремы 2 будет множество У^) = {(х,у) : х € О, f (х) < у < d}, т. е. и проекция У^) на ось Ох — множество X^). Так как X^) одномерно, оно выпукло.
2. Если f квазивыпукла, то возьмём две точки (х1,у1) и (х2,у2) из её над-графика. Пусть у1 < у2, тогда линейный отрезок между ними состоит из двух отрезков: отрезок между (х1,у1) и (х1,у2) лежит в надграфике по определению; отрезок между (х1,у1) и (х2,у2) лежит в надграфике в силу выпуклости Х(У2). □
2. Гамильтоновы цепи в линейно-выпуклых графах
Рассмотрим на плоскости К2 сетку с целочисленными координатами. Пусть
X — конечное множество точек этой сетки. Расстояние между точками будем находить в линейной норме.
Предположим, что рёбрами соединены те и только те вершины, линейное расстояние между которыми равно 1. При этом предположении множество вершин X графа задает единственный граф, поэтому будем говорить «граф X».
Определение 9. Цепь в графе X назовём линейным отрезком, если её длина равна расстоянию между начальной и конечной вершинами цепи.
Определение 10. Граф X назовём линейно-выпуклым, если любые две его вершины могут быть соединены линейным отрезком.
Замечание 2. Любые две инцидентные вершины (концы одного ребра) имеют координаты, сумма которых отличается четностью. Поэтому одну такую вершину назовём четной, а другую нечетной. Число четных и нечетных вершин одной цепи не может отличаться более чем на единицу.
Определение 11. Вершину линейно-выпуклого графа назовём крайней, если её удаление (вместе с ней по определению удаляются все рёбра, исходящие из этой вершины) оставляет граф линейно-выпуклым.
Определение 12. Минимальный линейно-выпуклый граф, содержащий граф X, назовём его линейно-выпуклой оболочкой.
Заметим, что, как и в главе 1, линейно-выпуклая оболочка может быть не единственной, однако в любой линейно-выпуклой оболочке одинаковое число вершин. Все крайние точки линейно-выпуклого графа имеют только степень 1 или 2; не любая вершина степени 2 будет крайней.
На рис. 2.1 отмечена не крайняя точка степени 2. На рис. 2.2 обозначены крайние точки линейно-выпуклого графа.
Рис. 2.1 Рис. 2.2
Единственность линейно-выпуклой оболочки может нарушаться, если в ней существуют вершины степени 1.
Теорема 4. Любой линейно-выпуклый граф является одной из линейновыпуклых оболочек своих крайних точек.
Доказательство. Любой линейный отрезок в линейно-выпуклом графе является частью линейного отрезка между крайними точками. Так как линейно-выпуклая оболочка крайних точек графа — это минимальный линейно-выпуклый граф, то одна из линейно-выпуклых оболочек содержится в графе X. Если эта оболочка не совпадает с X, то существует не крайняя точка х0 Є X, не содержащаяся в линейно-выпуклой оболочке. Точка х0 может быть
1) внутренней точкой графа X;
2) граничной точкой.
В случае 1) из неё исходит 4 ребра, поэтому горизонтальное и вертикальное сечения X по х0 разбивают X на 4 непустых части. Поскольку линейно-выпуклая оболочка не содержит х0, то по крайней мере одна из этих частей не содержится в этой оболочке. В то же время в каждой из этих частей есть крайняя точка множества X.
В случае 2) вершина х0 может иметь степень 3 и сечения разобьют X на 2 непустых части с тем же свойством, как в 1). Для вершины х0 степени 2 верно, что она прерывает некоторый единственный отрезок от одной крайней точки к другой, т. е. должна входить в одну из линейно-выпуклых оболочек.
Получаем противоречие при всех возможных случаях. □
Докажем теорему, являющуюся аналогом теоремы 1.
Теорема 5. Граф X является линейно-выпуклым тогда и только тогда, когда
1) линейно-выпуклыми являются все его сечения по х и по у;
2) граф X является связным.
Доказательство. Из того, что граф X — линейно-выпуклый, свойства 1) и 2) вытекают очевидным образом.
Пусть имеют место свойства 1) и 2). Рассмотрим цепь между точками (хі,уі) и (х2,у2), которая существует в силу свойства 2). Можно считать, что Жі = х2 и у1 = у2, т. к. в противном случае существование линейного отрезка между точками следует из 1). Без ограничения общности можно считать, что Ж1 < Ж2 и у1 < у2. Покажем, что любую цепь между (х1,у1) и (х2,у2), не являющуюся отрезком, можно сделать короче. Вершины любого линейного отрезка образуют монотонно не убывающую конечную последовательность. Цепь, не являющаяся линейным отрезком, обязательно содержит две вершины (ха,уа) и (же, у в), расстояние между которыми больше 1, такие, что ха = Же или уа = у в, а участок между ними не является линейным отрезком. В силу свойства 1) между этими точками можно построить линейный отрезок, который заменит прежний участок цепи. Новая цепь станет короче. В силу конечности числа возможных шагов любая цепь таким образом будет доведена до отрезка. □
Определение 13. Будем говорить, что в линейно-выпуклом графе X согласована четность, если число четных и нечетных вершин отличается не более чем на 1.
В линейно-выпуклых графах задача построения гамильтоновой цепи и, более сложная в общем случае, открытая задача коммивояжера [1] совпадают, поскольку все гамильтоновы цепи имеют одну и ту же длину.
Из замечания 1 следует, что необходимым условием существования гамильтоновой цепи в линейно-выпуклом графе является согласование четности. Однако согласование четности не гарантирует существование такой цепи. Например, если в линейно-выпуклом графе существуют вершины степени 1 (их не может быть более четырех), то гамильтоновой цепи точно не существует, если таких вершин более двух.
На рис. 2.3 изображен пример, когда в графе согласована четность, нет вершин степени 1, гамильтоновой цепи не существует.
Рис. 2.3
Определение 14. Крестом назовём линейно-выпуклый граф, имеющий вершины степени 1.
Кресты могут быть порядка 1 (одна вершина степени 1), порядков 2, 3 или
4. Любой линейный треугольник является крестом порядка 3.
Поэтому в линейных треугольниках гамильтоновых цепей не существует. Заметим, что точка, отмеченная крестом (рис. 2.4), является единственной точкой Штейнера для трёх точек — вершин линейного треугольника.
& • X
—®
Рис. 2.4
В графах, являющихся линейными прямоугольниками, гамильтонову цепь можно построить всегда, причем начало и конец цепи могут быть любыми вершинами, для которых согласована четность (в прямоугольных графах с нечетным числом вершин это должны быть вершины одной четности — их на 1 больше, а с четным числом вершин это должны быть вершины разной четности).
Исключение составляют прямоугольные графы п х 2, если начало и конец искомой цепи имеют координаты (ж, 1) и (ж, 2), где ж = 1 и п.
Рассмотрим графы, являющиеся линейными параллелограммами. Линейный параллелограмм может быть:
1) прямоугольником;
2) крестом порядка 2;
3) крестом порядка 4.
В случае 1) гамильтонова цепь существует, в случае 3) — нет.
Пусть линейный параллелограмм — крест порядка 2. Любой линейный параллелограмм имеет в своём основании прямоугольник (рис. 1.4—1.6) и, в нашем случае, 2 «отростка», прикрепленных к противоположным вершинам прямоугольника.
В линейном параллелограмме существует гамильтонова цепь, если такая цепь существует в прямоугольнике с концами в противоположных вершинах прямоугольника. Таким образом, доказана
Теорема 6. В линейном параллелограмме порядка 2 не существует гамильтоновой цепи только в том случае, когда в строке и столбце прямоугольника четное число точек.
Рассмотрим графы, представляющие собой линейные эллипсы. Пусть точки = (Ж1,У1) и ^2 = (Ж2,У2) — его фокусы, Ж - ж^ = х, у - У11 = у. Тогда расстояние между ними й = ж + у. Пусть 2а > й — натуральное число, равное максимальной сумме расстояний от вершин линейного эллипса до фокусов. Четность числа 2а должна совпадать с четностью й. Чтобы представить себе линейный эллипс, достаточно на рис. 1.7 и 1.8 нанести целочисленную сетку. Все точки на эллипсе и внутри него образуют этот граф.
На рис. 2.5 ж = 2, у = 0, 2а = 6. На рис. 2.6 ж = 2, у = 1, 2а = 5.
Рис. 2.5 Рис. 2.6
Для гамильтоновых цепей в линейных эллипсах справедлива Теорема 7. Справедливы следующие утверждения.
1. Если ж и у — четные, то в линейном эллипсе гамильтоновой цепи не существует.
2. Если ж и у — нечетные, то при любом 2а в линейном эллипсе существует, гамильтонова цепь.
3. Если ж — четное, у — нечетное и выполняется неравенство
2а < 2ж + у, (2.1)
то в линейном эллипсе существует гамильтонова цепь.
Доказательство. 1. Из рис. 2.5 можно заметить, что в случае чётных ж и у каждое сечение эллипса содержит нечетное число вершин, поэтому в таком графе четность не согласована.
2. В случае нечетных ж и у все сечения содержат четное число вершин и гамильтонова цепь строится от любой крайней точки по границе с переходом к следующему слою вершин.
3. Если ж — четное, у — нечетное, то разделим эллипс на две симметричные
половины вертикальным сечением. Если выполнено условие (2.1), то в каждой половине строится гамильтонова цепь. Построенные цепи затем соединяются этим сечением (см. рис. 2.7). □
Рис. 2.7. х = 4, у =1, 2а = 9, 2а = 2х + у.
Замечание 3. В случае четного ж и нечетного у при условии 2а > 2ж + у гамильтоновой цепи по-видимому не существует, однако строгого доказательства этого факта пока не найдено.
3. Маршрутные игры на линейно-выпуклых графах
Рассмотрим на линейно-выпуклых графах одно обобщение классической задачи коммивояжера [1], а именно игру двух коммивояжеров, цель каждого из которых — посетить как можно больше точек карты, придя в них первым.
Для людей старшего поколения название такой задачи — «игра детей лейтенанта Шмидта» выглядит вполне уместным.
Формализуем эту задачу как конечную антагонистическую игру с полной информацией. Любая такая игра имеет седловую точку в чистых стратегиях. Правила игры:
1. Начальные положения игроков совпадают.
2. Игроки ходят по очереди и имеют одинаковые скорости.
3. В каждый момент т множество вершин графа X = Х1(т) и Х2(т), где
Х1(т) — множество вершин, посещенных к моменту т, и Х2(т) — не посещенных.
4. Пусть Д/(т) и Д//(т) — длины цепей, построенных соответственно первым и вторым игроками к моменту т.
5. Множество Х2(т) = К/(т) и К// (т), причем ж € К/ (т), если ж1(т) — положение игрока I к моменту т, ж2(т) — положение игрока II и
Д/(т) + й(ж^т),ж) < Д//(т) + й(ж2(т),ж), (3.1)
где й — линейное расстояние между точками. Точка ж € К// (т), если неравенство (3.1) не выполняется.
6. Если в момент т ход делает I игрок, то он выбирает ж € К/(т), при этом
в следующий момент т +1 получаем ж € Х1(т + 1), Д/ (т + 1) = Д/ (т) +
й(ж1(т),ж), ж1(т + 1) = ж, Д//(т + 1) = Д//(т), ж2(т + 1) = ж2(т).
7. Если в момент т выбора игрока множество доступных точек пусто, то игрок пропускает ход.
8. Пропускать ход, если доступное множество не пусто, нельзя.
9. Игра заканчивается в тот момент, когда Х2(т) = 0.
10. Выигрыш I игрока — число точек, которые он выбрал в ходе игры; цель I игрока — максимальный выигрыш.
Отметим, что правило 8 существенно меняет игру, поэтому с этим правилом назовём ее игрой в варианте «голодного» коммивояжера.
Определение 15. Вершину ж € КДт) назовём соседней с жДт), если не существует линейного отрезка между жДт) и ж, который бы содержал другие вершины из К;(т).
Если разбить граф КДт) сечениями по вершине жДт), то соседними будут максимальные в смысле Парето точки из этих четвертей.
Замечание 4. Оптимальное поведение игроков всегда определяет выбор среди соседних вершин.
В силу правила 1 и неравенства (3.1) К/(0) = X, К//(0) = 0. Из неравенства (3.1) вытекает, что у I игрока существует стратегия, гарантирующая К/(т) = 0 вплоть до окончания игры. Поэтому выигрыш I игрока тем больше, чем чаще К// (т) = 0. То есть оптимальное поведение игроков на каждом шаге должно минимизировать число точек, доступных противнику.
Ограничимся в этой статье рассмотрением игры «дети лейтенанта Шмидта» на прямоугольных графах. В них, как будет замечено, у II игрока К//(т) = 0 или существует единственная соседняя точка из К// (т). Начальные положения игроков — крайняя точка прямоугольника.
Теорема 8. Пусть X — квадратный граф, п — число вершин в его основании, тогда цена игры на этом графе
Ґп2-2п-2 , п — четно;
тп) = 4 га2+2П_ і
^ +2П 1, п — нечетно.
Доказательство. На квадратной карте оптимальное поведение I игрока приводит к следующему розыгрышу: I игрок займет 2п точек, после этого игра перейдет в такую же игру, но на квадрате со стороной п — 2, поэтому четность квадрата не меняется. Далее утверждение теоремы легко доказать по индукции. □
• * • • ©
• * • • ©
• • * • ©
• • • • и
1 © © © © ©
Рис. 3.1
Так же может быть доказана Теорема 9. Цена игры на прямоугольнике п х (п +1)
п2 + 3п ^2(п) = —2— •
Теорема 10. Цена игры на прямоугольнике т х п
ТГ. т + п + тп — а V(п) =----------------2-’
где а = 2, если т и п — четные, а = 1 во всех остальных случаях
Доказательство. 1. Если т и п имеют одинаковую четность, то оптимальное поведение I игрока вновь приведет к некоторому начальному розыгрышу и последующей квадратной карте, для которой можно воспользоваться теоремой 8.
2. Если т и п имеют разную четность, то оптимальный розыгрыш приведет к карте из теоремы 9. □
Список литературы
1. Кристофидес, Н. Теория графов. Алгоритмический подход / Н. Кристофидес. — М. : Мир, 1978. — 432 с.