Как найти точку штейнера

Точка Штейнера
Изображение
Названо в честь Якоб Штейнер
Логотип Викисклада Медиафайлы на Викискладе

Точка Штейнера — одна из замечательных точек треугольника[1] и она обозначается как точка X(99) в энциклопедии центров треугольника Кларка Кимберлинга (Clark Kimberling).

История[править | править код]

Якоб Штейнер (Jakob Steiner) (1796—1863), швейцарский математик, описал эту точку в 1826 году. Этой точке было дано имя Штейнера Жозефом Нойбергом (Joseph Neuberg) в 1886 году[1][2].

Определение[править | править код]

Точка Штейнера определяется следующим образом. (Мы используем не тот способ, каким эту точку определял сам Штейнер.[1])

Пусть дан любой треугольник ABC. Пусть O — его центр описанной окружности и K — точка пересечения симедиан. Окружность, построенная на OK как на диаметре, представляет собой окружность Брокара треугольника ABC. Прямая, проходящая через O перпендикулярно к прямой BC, пересекает окружность Брокара в другой точке A'. Прямая, проходящая через O перпендикулярно к прямой CA, пересекает окружность Брокара в другой точке B'. Прямая, проходящая через O перпендикулярно к прямой AB, пересекает окружность Брокара в другой точке C' (треугольник {displaystyle A'B'C'} есть треугольник Брокара для треугольника ABC). Пусть {displaystyle L_{A}} есть прямая, проходящая через A параллельно прямой {displaystyle B'C'}, {displaystyle L_{B}} есть прямая, проходящая через B параллельно прямой {displaystyle C'A'}, и {displaystyle L_{C}} есть прямая, проходящая через C параллельно прямой A'B'. Тогда все три прямых {displaystyle L_{A}}, {displaystyle L_{B}} и {displaystyle L_{C}} пересекаются в одной точке. Точка их пересечения и есть точка Штейнера треугольника ABC.

Трилинейные координаты[править | править код]

Трилинейные координаты точки Штейнера равны

{displaystyle left({frac {bc}{b^{2}-c^{2}}}:{frac {ca}{c^{2}-a^{2}}}:{frac {ab}{a^{2}-b^{2}}}right)=(b^{2}c^{2}operatorname {cosec} (B-C):c^{2}a^{2}operatorname {cosec} (C-A):a^{2}b^{2}operatorname {cosec} (A-B))}.

Свойства[править | править код]

{displaystyle left({frac {pi -A}{a}}:{frac {pi -B}{b}}:{frac {pi -C}{c}}right)}.

Этот треугольный центр обозначается как X(1115) в энциклопедии центров треугольника.

Точка Тарри[править | править код]

Точка Тарри треугольника тесно связана с точкой Штейнера треугольника. Пусть ABC — любой данный треугольник. Точка на описанной окружности треугольника ABC, диаметрально противоположная к точке Штейнера треугольника, называется точкой Тарри треугольника ABC. Точка Тарри представляет собой центр треугольника и он обозначен как центр X(98) в энциклопедии центров треугольника. Трилинейные координаты точки Тарри равны

{displaystyle (operatorname {sec} (A+omega ):operatorname {sec} (B+omega ):operatorname {sec} (C+omega ))},

где omega является углом Брокара треугольника ABC.

Примечания[править | править код]

  1. 1 2 3 Kimberling, Clark Steiner point. Дата обращения: 17 мая 2012.
  2. J. Neuberg. Sur le point de Steiner (неопр.) // Journal de mathématiques spéciales. — 1886. — С. 29.
  3. Honsberger, Ross. Episodes in nineteenth and twentieth century Euclidean geometry (англ.). — The Mathematical Association of America, 1965. — P. 119—124.
  4. Eric W., Weisstein Steiner Curvature Centroid. MathWorld—A Wolfram Web Resource.. Дата обращения: 17 мая 2012.

См. также[править | править код]

  • Центр Штейнера — центр тяжести кривизны Гаусса поверхности выпуклого тела.

Алгоритмы о выборе дороги и сетях. Сети Штейнера. Лекция Владимира Протасова в Яндексе

Время на прочтение
6 мин

Количество просмотров 34K

Сегодня мы поговорим об одной из первых задач теории больших сетей, которая может быть решена полностью на самом простом базовом уровне, но которая от этого не становится менее интересной. Это задача о кратчайшей системе дорог или задача Штейнера.

Впервые она появилась, когда еще никаких практических надобностей для больших сетей не было: в тридцатые годы XX века. На самом деле Штейнер начал ее изучать еще раньше, в XIX веке. Это была чисто геометрическая задача, практические приложения которой стали известны только несколько десятилетий спустя.

Разговор пойдет о той области математики, которая впоследствии выросла в теорию больших сетей и разбилась на несколько областей. Это прикладная отрасль, которая задействует очень много методов из других математических дисциплин: дискретной математики, теории графов, функционального анализа, теории чисел и т.д. Бурное развитие теории больших сетей пришлось на конец девяностых и начало двухтысячных годов. Связано это конечно, с прикладными задачами: развитием интернета, мобильной связи, транспортных задач для больших городов. Кроме того теория сетей используется в биологии (нейронные сети), при построении больших электронных плат и т.п.

Сама задача формулируется очень просто. Есть несколько точек на плоскости, которые нужно связать системой дорог наименьшей суммарной длины таким образом, чтобы по этим дорогам можно было из каждой точки добраться в любую другую. Число точек конечно.

Начать рассказ стоит с истории о том, как на Малом мехмате двум группам учеников – восьмиклассникам и одиннадцатиклассникам дали решать одну и ту же задачу. Четыре деревни расположены в вершинах квадрата со стороной четыре километра. Существует ли система дорог, которая связывала бы все эти деревни между собой и имела бы суммарную длину не превосходящую 11 километров.

image

Если соединять деревни последовательно, то ничего короче, чем три стороны квадрата мы не придумаем. При таком соединении у нас будет ровно 12 километров. Можно соединять по диагонали, но это будет только хуже, т.к. диагональ длиннее стороны.

image

Если поставить дополнительную вершину, тогда из нее можно будет проехать в любые четыре деревни. Если мы возьмем дороги, связывающие диаметрально противоположные вершины, то по неравенству треугольника, сумма их длин будет больше, чем длина диагонали. У и двух других сумма длин тоже больше, чем длина диагонали. Соответственно, сумма всех дорог у нас будет ≥2∙4√2=8√2≈11.31. Примерно так рассуждали одиннадцатиклассники, которые пытались доказать невозможность существования такой системы дорог.

image

В это же самое время в соседней аудитории восьмиклассники при помощи обычной линейки с делениями строили эту самую систему дорог. И в итоге им это удалось. Система представляет собой нечто похожее на букву Н, все углы в которой равны 120°. Ее длина составляет ≈10.98 километра. Это и есть сеть Штейнера, соединяющая четыре точки. Таких сетей может быть много, может быть несколько кратчайших, но такую задачу о кратчайшей системе дорог можно решить полностью методами элементарной геометрии.

image

Чтобы окончательно покончить с этой задачей, найдем ошибку в первом решении, где мы вроде как доказали, что ничего короче 8√2 быть не может. Просто в этом решении не была учтена возможность многократно использовать один и тот же участок.

Три точки

Сеть Штейнера для треугольника была известна еще за 200 лет до самого Якоба Штейнера, в XVII веке. Это так называемая точка Ферма-Торичелли-Штейнера.

Начнем мы с того, что докажем одно вспомогательное утверждение, называемое иногда теоремой Помпею. Если мы возьмем на плоскости равносторонний треугольник и любую другую точку плоскости, тогда сумма расстояний до двух вершин A и B всегда больше или равно расстоянию до третьей вершины C: MA + MB ≥ MC. Более того, MA + MB = MC только в том случае, когда точка M лежит на дуге описанной окружности, не содержащей точку С. Т.е. угол AMB должен быть равен 120°. В противном случае MA + MB > MC.

image

Конечно, если речь идет о равностороннем треугольнике, нам часто в таких задачах помогает поворот на 60° относительно какой-нибудь вершины. Это мы и сделаем: повернем заштрихованный треугольник AMB относительно вершины A по часовой стрелке. Точка B у нас перейдет в точку C, а Точка M – в точку M’. В итоге у нас получается, что AM = AM’ = MM’, а M’C = MB.Теперь мы можем применить обычное неравенство треугольника на треугольнике MM’C. В нем сумма двух сторон M’M и M’C больше, чем MC. Соответственно, MA + MB ≥ MC. А когда же достигается равенство? Равенство достигается, когда точка M’ точно попадает на прямую MC, т.е. когда угол AMC равен 120°.

image

Теперь перейдем непосредственно к задаче Штейнера для трех точек. Формулируется она следующим образом. Задан треугольник. Нужно найти точку на плоскости, сумма расстояний от которой до вершин этого треугольника наименьшее. TA + TB + TC → min.

image

Что же это за точка? Мы знаем несколько замечательных точек треугольника: центры вписанной и описанной окружностей, точка пересечения медиан, точка пересечения высот. К сожалению, ни одна из них на роль точки с наименьшей суммой расстояний не подходит. Эта точка совершенно особая, и называется по-разному: точкой Торичелли, точкой Ферма, точкой Штейнера. Представляет она собой точку, из которой все три вершины треугольника видны под одинаковыми углами – 120°. Разберемся, почему это именно так. Впервые решение задачи о точке с наименьшей суммой расстояний до всех вершин треугольника документально впервые появилось в книге итальянского физика и математика Винченцо Вивиани в середине XVII века. Однако известно, что решение этой задачи было получено еще раньше другом Вивиани, Эванджелиста Торичелли – оба они были учениками Галилея. Приведенное в книге решение не было геометрическим, оно было основано на физических принципах. Эту задачу до Торичелли знал, а возможно, и решил Пьер Ферма: они состояли в переписке, и про эту задачу Торичелли узнал именно от Ферма, но было ли у нег свое решение – неизвестно.

Первое геометрическое решение этой задачи появилось лишь спустя 200 лет, и автором его стал Якоб Штейнер. Он был одним из первых синтетических геометров, решавшим геометрические задачи исключительно геометрическими методами. Основывалось решение Штейнера на рассмотренной нами выше теореме Помпею.

Существует ли вообще такая точка, из которой все углы треугольника видны под углом 120°? Существует она не всегда, а только в том случае, если все углы треугольника строго меньше 120°.

Если все углы треугольника > 120°, то существует единственная точка Торичелли. Построим равносторонний треугольник во внешнюю сторону относительно стороны BC. Построим окружность, которая проходила бы через точки B, A’ и C. Если тока Торичелли в данном случае существует, то она должна лежать на этой окружности, на дуге между точками B и C. Во вписанном четырехугольнике сумма противоположных углов составляет 180°. Треугольник BA’C равносторонний, соответственно, все углы в нем равны 60°. А значит, если мы поставим точку на дуге между точками B и C, а затем достроим четырехугольник, угол напротив вершины A’ будет равен 120°.

image

Но где именно расположить точку, чтобы все вершины были видны под углом 120°. Нужно построить еще один равносторонний треугольник, на этот раз – относительно стороны AC. И точно так же впишем его в окружность. Точка пересечения двух окружностей и будет точкой Торичелли. Мы уже определили, что угол BTC равен 120°, угол ATC получен тем же способом и также равен 120°. В сумме все три угла должны дать 360°, а значит, угол BTA также равен 120°. Таким образом, мы доказали не только существование точки Торичелли, но и то, что она может быть только одна, так как построенные нами дуги могут иметь не более одной точки пересечения. Теоретически окружности могли бы пересечься вне треугольника ABC, но случиться это могло бы только в том случае, если хотя бы один из его углов был больше 120°.

image

Итак, мы научились находить местоположение точки Торичелли, но так и не объяснили, почему с ее помощью можно решить задачу Штейнера о минимальной сумме расстояний до вершин треугольника. Снова возьмем треугольник ABC, где все углы будут меньше 120° и построим внешний равносторонний треугольник относительно стороны AC. Назовем его AB’C. Далее возьмем произвольную точку M на плоскости и соединим ее со всеми тремя вершинами треугольника ABC. В силу теоремы Помпею MA + MC ≥ MB’. Значит, MA + MB + MC ≥ MB’ + MB, а MB + MB’ ≥ BB’. Так как MB + MB’ не может быть меньше BB’, точка M будет иметь наименьшую сумму расстояний до вершин треугольника ABC только в том случае, когда MB + MB’ = BB’. При каких же условиях такое равенство будет верно? По теореме Помпею для этого нужно, во-первых, чтобы MA + MC было равно MB’, т.е. угол AMC должен быть равен 120°, а во-вторых, сумма отрезков BM и MB’ должна быть равна BB’, т.е. точка M должна лежать на отрезке BB’. Соответственно, углы AMB и BMC также будут равны 120°. Из всего этого следует, что MB + MB’ = BB’ только в том случае, когда точка M совпадает с точкой Торичелли. В этом и заключается решение задачи Штейнера для трех точек.

image

Каково же решение этой задачи для того случая, когда один из углов треугольника больше или равен 120°? Не будем подробно рассматривать доказательство для этого варианта, скажем лишь, что минимальная сумма расстояний достигается в вершине наибольшего угла треугольника. Доказать это самостоятельно несложно, нужно лишь учесть все то, что мы уже проделали выше.

Оказывается, что точка Ферма-Торичелли-Штейнера – это все, что нужно для построения систем дорог наименьшей длины. Основная задача формулируется следующим образом. На плоскости задано конечное множество (k ≥ 2) точек. Нужно соединить их кратчайшей системой дорог. Сам Штейнер решил эту задачу для k = 3 и привел некоторые примеры для k = 4. Для k ≥ 2 Штейнер даже не ставил задачи. Впервые эта задача была поставлена через 70 лет после смерти Якоба Штейнера двумя чешскими математиками Кесслером и Ярником. В 1934 году задача была опубликована в чешском математическом журнале, но первые несколько лет ей никто не интересовался. Однако в 1941 году два уже известных на тот момент американских математика Гурвиц и Курант поместили ее со ссылкой на Кесслера и Ярника в своей книге, после чего задача стала очень известной.

Досмотрев лекцию до конца, вы узнаете, как решается задача Штейнера в общем виде на плоскости и в пространстве.

Сети Штейнера

  • Авторы
  • Руководители
  • Файлы работы
  • Наградные документы

Карнаух Д.М. 1


1МАОУ Одинцовский лицей № 6 имени А.С. Пушкина

Пилипенко Г.И. 1


1МАОУ Одинцовский лицей № 6 имени А. С. Пушкина


Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке “Файлы работы” в формате PDF

Введение

Задача Штейнера заключается в поиске наименьшего дерева Штейнера — кратчайшей сети, объединяющей заданный конечный набор точек плоскости. Свое название получила в честь Якоба Штейнера (1796—1863).

История данной задачи восходит ко временам Пьера Ферма (1601—1665), который, после изложения своего метода исследования минимумов и максимумов, написал.

Тот же, кто этот метод не оценил, пусть он решит [следующую задачу]: для заданных трех точек найти такую четвертую, что если из нее провести три отрезка в данные точки, то сумма этих трех отрезков даст наименьшую величину.

Эта задача была частично решена Э. Торричелли (1608—1647) и Б. Кавальери (1598—1647), учениками Б. Кастелли (1577—1644), затем найденная ими конструкция была модифицирована Т.

Симпсоном (1710—1761) и окончательно уточнена Ф. Хейненом и Ж. Бертраном (1822-1900). В результате, был получено геометрическое построение точки S, ныне называемой точкой Ферма (иногда точкой Торричелли), которая для трёх заданных точек A, B и C даёт минимально возможную сумму длин отрезков AS, BS, CS.

В 1934 году В. Ярник и O. Кесслер сформулировали обобщение задачи Ферма, заменив три точки на произвольное конечное число. А именно, их задача состоит в описании связных плоских графов наименьшей длины, проходящих через данное конечное множество точек плоскости.

Актуальность и значимость исследования:

Изученный и представленный материал может быть использован на уроках геометрии в школе, а также будет полезен для учеников.

Такие задачи могут встречаться на олимпиадах в школах, они развивают логическое мышление и кругозор школьников, что является актуальным.

Глава 1. Алгоритм Штейнера (Поиск кратчайших сетей)

В общей форме задача Штейнера была в первый раз сформулирована в статье Милоша Кёсслера и Войцеха Ярника, опубликованной в 1934 году, однако сама эта проблема не приобрела широкой известности вплоть до 1941 года, когда Рихард Курант и Герберт Е. Роббинс включили её в свою книгу «Что такое математика?». Курант и Роббинс связали эту задачу с исследованиями Якоба Штейнера, немецкого математика XIX столетия, работавшего в Берлинском университете. Работа Штейнера была посвящена поиску одной точки, сумма расстояний от которой до всех точек заданного множества была бы минимальной. Однако ещё в 1640 году впервые была поставлена задача, являющаяся частным случаем обеих описанных задач — той, над которой работал Штейнер, и той, которая носит его имя: найти точку P, сумма расстояний от которой до каждой из трёх заданных точек минимальна. Эванджелиста Торричелли и Бонавентура Кавальери независимо друг от друга решили эту задачу. Торричелли и Кавальери обосновали, чту суммарное расстояние минимально, когда все сопряжённые углы в точке P больше или равны 120°.

Необходимо провести отрезки прямых, соединяющие исходные точки (назовем их A, B и C), с точкой в вершине наибольшего угла (скажем, B). Если угол B больше или равен 120°, то искомая точка P совпадает с точкой B. Другими словами, кратчайшая сеть в данном случае представляет собой просто два отрезка прямых между точками A и B и точками B и C. Если угол в точке B меньше 120°, то точка P должна находиться где-то внутри треугольника. Чтобы найти её, следует построить равносторонний треугольник с основанием на самой большой стороне треугольника ABC, а именно на отрезке AC. Третья вершина равностороннего треугольника (обозначим её X) находится на противоположной стороне от точки B относительно AC. Вокруг построенного равностороннего треугольника описываем окружность и проводим прямую, соединяющую точки B и X. Точка P будет на пересечении этой прямой и окружности. Соединив точки A, B и C с точкой P, мы получаем три угла, в точности равные 120° каждый, и искомую кратчайшую сеть. Более того, длина отрезка BX оказывается равной длине кратчайшей сети. В дальнейшем в нашей статье мы будем называть точку X замещающей точкой, поскольку замена точек A и C одной точкой X не изменяет длину сети.

Задача с тремя точками и задача Штейнера для многих точек обладают много общих свойств. Их решения, имеющие вид дерева, типичны тем, что при удалении любого отрезка из кратчайшей сети мы должны будем исключить одну из заданных точек. Другими словами, мы не можем пройти по сети из какой-либо заданной точки и вернуться в неё, без того чтобы не пройти те или иные отрезки повторно. По этой причине графические решения задачи с тремя точками и задачи со многими точками называются деревьями Штейнера. Отрезки прямых называются рёбрами, а точки, роль которых аналогична точке P и которые нужно добавить для построения дерева, называются точками Штейнера.

Задача Штейнера для трёх точек даёт также некоторую информацию о геометрии кратчайших деревьев Штейнера. Во-первых, каждый угол равен 120° или больше, а это означает, что каждая точка соединяется с остальным деревом не более чем тремя рёбрами. Во-вторых, в каждой точке Штейнера сходятся ровно три ребра, образуя друг с другом углы, в точности равные 120°. В-третьих, число рёбер дерева всегда на единицу меньше суммарного числа заданных исходных точек и точек Штейнера. И наконец, последнее свойство: поскольку в каждой точке Штейнера сходятся ровно три ребра и по крайней мере одно ребро должно касаться каждой из заданного множества точек, максимальное число точек Штейнера для любой задачи на две меньше, чем число заданных исходных точек.

При одном и том же количестве и расположении исходных точек можно построить много различных деревьев Штейнера, удовлетворяющих перечисленным выше условиям. Некоторые из этих деревьев, называемые локально минимальными решениями, нельзя сократить за счёт мелкомасштабных изменений, таких как небольшое перемещение ребра или расщепление точки Штейнера. Всё же не всякое локально минимальное дерево Штейнера даёт кратчайшее из возможных решений задачи. Для того чтобы преобразовать сеть в кратчайшее дерево, называемое глобально минимальным деревом Штейнера, могут потребоваться крупномасштабные перемещения точек Штейнера.

Глава 2. Планирование сети дорог

Рассмотренная прежде постановка задачи о прокладке коммуникаций может не включать требования о том, что коммуникации могут разветвляться лишь на территории связываемых объектов. Зачастую реальность не накладывает этих ограничений, например, при строительстве дорог, которые могут менять направление, иметь повороты, развилки и перекрестки любого вида. Данная задача известна как ”задача Штейнера на графах”.

Вообще говоря, известно два типа такого рода задач.

Евклидова задача Штейнера состоит в соединении множества точек на плоскости так, чтобы сумма длин отрезков была минимальна.

Линейная задача Штейнера вместо евклидова расстояния между точками оперирует линейным расстоянием: d(X, Y) = |x1-x2| + |y1 – y2|. При этих условиях если через каждую точку из множества Р провести вертикальные и горизонтальные линии, то решение задачи Штейнера можно получить, рассматривая в качестве возможных точек Штейнера точки пересечения полученной сетки линий.

Линейные задачи Штейнера имеют применение при монтаже печатных схем электронных устройств и в логистике практически не используются, в отличие от евклидовых задач.

Сразу же зададимся вопросом: а может ли расположение развилок вне связываемых объектов уменьшить длину кратчайшей системы дорог? Для случая, когда четыре города расположены в углах квадрата, допустим со стороной равной 1 км, кратчайшая система дорог с разветвлением только в городах имеет длину 3, тогда как интуитивное расположение перекрестка в центре квадрата дает результирующую длину примерно 2,8.

Итак, улучшение результата возможно. Однако можно ли утверждать что 2 корня из 2 – это уже минимум? Вряд ли, по крайней мере никаких оснований для этого нет. Но зато уже видно, что в такой постановке проблема поиска кратчайшей системы дорог, связывающей все имеющиеся объекты, существенно усложняется.

Данный алгоритм в общем случае не существует. Евклидова задача Штейнера является нерешенной с вычислительной точки зрения, поскольку существующие точные алгоритмы находят решение за разумное время только при очень небольшом количестве вершин (порядка 10).

Анализ сложности: Возрастание сложности связано с потерей дискретности, поскольку расположение перекрестков уже не совпадает с самими объектами, и строго говоря, на площади в 1 кв. м. существует бесконечное количество возможных мест расположения развилок. Очевидно, что в общем случае теория графов уже не может давать достоверного результата при решении этой задачи. В настоящее время неизвестно точных и эффективных алгоритмов, решающих эту задачу в том случае, если города заданы произвольной сетью.

Постановка Задачи Штейнера

На плоскости задано N точек. Требуется соединить эти точки ломаными линиями таким образом, чтобы каждая точка была соединена с каждой и чтобы суммарная длина всех проведенных линий была минимальной

Довольно быстро было установлено, что задача достаточно сложная. В 1977 г. Р.Грехем и Д.Джонсон доказали NP – полноту этой задачи, поэтому метода нахождения точного минимума не существует даже на данный момент.

Это обстоятельство послужило стимулом для разработки многочисленных эвристических алгоритмов. Наибольший практический интерес представляет алгоритм последовательного введения дополнительных вершин в дерево Прима-Краскала.

Использование предложенного алгоритма позволяет строить деревья Штейнера, длина которых в среднем не превышает длину оптимального дерева Штейнера более чем на 0.5 процента. Временные характеристики модификаций алгоритма позволяют успешно использовать его на данном этапе построения маршрута.

Глава 3. Задача Штейнера и методы её решения

Задача Штейнера состоит в поиске минимального дерева Штейнера —кратчайшей сети, соединяющей заданный конечный набор точек плоскости.

Свое название получила в честь Якоба Штейнера (1796—1863). Для трех точек на плоскости она формулируется следующим образом: в заданном треугольнике нужно найти точку на плоскости, сумма расстояний от которой до вершин этого треугольника наименьшая.

В задаче Штейнера допускается при необходимости введение новых вершин дерева, отличных от заданных. Эти вершины называют точками Штейнера.

Хорошо известны достаточные условия: в решение могут входить промежуточные точки, и все соединения должны быть отрезками, соединяющими точки (исходные и промежуточные). В каждой промежуточной точке должны сходиться три отрезка, а в исходных точках – более трех. Угол между отрезками, сходящимися в данной точке, не должен быть меньше 120°. Основное внимание следует уделять поиску абсолютно минимальной сети среди всех имеющихся сетей, использующих фиксированное конечное множество N точек плоскости. Существует несколько подходов к указанной проблеме Штейнера.

Один из них предполагает поиск абсолютно минимальной сети в классе сетей, все вершины которых принадлежат N. В этом случае минимальная сеть является деревом (не имеет циклов), которое называется минимальным деревом. Э. Гилберт и Г. Поллак показали, что дерево Штейнера не более чем на 13,4% короче минимального остовного дерева.

Однако, как было доказано группой ученых, эта проблема является NP трудной. Это означает, что нахождение ее решения за полиномиальное время затруднительно. По мнению М. Херринга, текущим наиболее оптимальным и интересным алгоритмом, решающим задачу Штейнера, является алгоритм GeoSteiner до 2 000 точек, реализованный Д. Вармом, П. Винтером и М. Захариасеном.

Наиболее простой задачей является задача нахождения точки Штейнера для трех точек (трехточечная задача Штейнера). Существуют следующие варианты решения данной задачи.

1. Если каждый из углов между отрезками, соединяющий точку Штейнера с каждой из заданныхточек (вершин треугольника), составляет 120°, тогда точка Штейнера либо лежит внутри данного треугольника, либо совпадает с одной из этих вершин.

2. Угол, образованный отрезками, соединяющими эту точку с другими заданными, равен или больше 120°. Если же один из углов треугольника с вершинами в этих точках больше или равен 120°, то сеть состоит из 2 ребер (сторон этого угла). Если все углы меньше 120°, т.е. точка Штейнера состоит из 3 ребер, соединяющих дополнительную точку Штейнера с тремя вершинами.

Указанный алгоритм решения трехточечной задачи Штейнера рассмотрен на примере строительства нового дорожного участка автомобильной дороги «Автомобильная дорога Р-16 Тюхиничи — Высокое — граница Республики Польша (Песчатка), км20,000 —км 41,000»

Глава 4. Задачи

Задача 1

Для трех коллинеарных терминалов решением задачи будет отрезок, соединяющий два крайних терминала.

Как изменится решение, если терминалы слегка «подвигать», чтобы они стали неколлинеарными? — Интуитивно ожидаемый ответ: решение должно слегка измениться, т.е. из отрезка превратиться в ломаную, соединяющую крайние терминалы с «внутренним». Пусть этим внутренним терминалом является P2

Увеличим величину его отклонения от прямой P3 т.е.уменьшим величину угла P1P2P3. Можно ли ожидать, что минимальное дерево Штейнера останется совпадающим с ломаной P1P2P3 — Оказывается, что это заключение справедливо только до определенного значения угла P1P2P3, а именно до тех пор, пока он остается

Что происходит с решением при переходе этого значения? — Оказывается минимум длины обеспечивается теперь принципиально иной конфигурацией: не ломаной P1P2P3, а трехзвенной конструкцией, в которой терминалы связываются посредством некоторой вспомогательной, «узловой», точки S, расположенной внутри терминального треугольника.

Эта точка называется точкой Ферма-Торричелли треугольника P1P2P3 и она формально определяется именно как точка треугольника, обеспечивающая минимальное значение величин.

|P1P| + |P2P| + |P3P|

Где P — произвольная точка треугольника.

Выяснение свойств точки Ферма-Торричелли и способы ее нахождения излагаются в следующих пунктах. А пока, забегая вперед, ответим на ожидаемый вопрос: если добавление одной дополнительной точки оптимизирует решение построения кратчайшей сети, соединяющей три терминала, то, возможно, добавление двух (или более) дополнительных даст еще бóльшую выгоду? — Ответ оказывается отрицательным.

Задача 2

Для решения задачи строительства автомобильной дороги «Автомобильная дорога Р-16 Тюхиничи — Высокое — граница Республики Польша (Песчатка), км20,000 —км41,000» использовалась трехточечная задача Штейнера. Часть автомобильной дороги Р-16 «Граница Республики Польша (Песчатка) – Волковичи» уже реконструирована. Поэтому необходимо было соединить сетью дорог только три точки: д. Волковичи, г. Высокое, автомобильная дорога Р-16 Тюхиничи. Строение местного рельефа определяется расположением ее в пределах Восточно-Европейской равнины. Рельеф территории представляет собой слабо приподнятую, слегка волнистую, наклоненную на север и запад равнину. Такие свойства территории позволяют рассматривать ее как однородную.

В настоящий момент населенные пункты соединены между собой дорогой, суммарная длина которой составляет 8,8 км, по данным карт Яндекс. Карты. Предлагается рассмотреть возможность соединения указанных населенных пунктов другой, более короткой дорогой.

Так как все углы треугольника АВС, вершины которого находятся в данных населенных пунктах, меньше 120, то точка Штейнера лежит внутри треугольника ABC. Для ее нахождения воспользуемся следующим алгоритмом.

Шаг 1. На одной из сторон треугольника ABC построим равносторонний треугольник. Например, возьмем сторону BC и строим равносторонний треугольник BCD, причем точка A не принадлежит этому треугольнику.

Шаг 2. Опишем вокруг треугольника BCD окружность.

Шаг 3. Найдем точку Штейнера (Т) как точку пересечения описанной окружности с отрезком AD.

Для соединения автомобильной дорогой д. Волковичи, г. Высокое и автомобильная дорога Р-16 Тюхиничи взяли следующие точки: д. Волковичи(точка K), д. Оберовщина (точка M), поворот на д. Мыкшицы со стороны г.

Высокое (В), г. Высокое (точка А) и автомобильная дорога Р-16 Тюхиничи (С).

При нахождении точки Штейнера треугольника АВС были выполнены следующие построения:

Шаг 1. На стороне ВС треугольника ABC построили равносторонний треугольник, причем точка A не принадлежит этому треугольнику. Для этого провели дуги радиуса ВС из каждой точки В и С. Точку пересечения дуг обозначили точкой D. Получился треугольник BCD.

Шаг 2. Для нахождения центра окружности, проходящейчерез точки B, С и D построили серединные перпендикуляры сторон треугольника ВСD. Точкапересечения данных серединных перпендикуляров О – центр искомой окружности.

Шаг 3. Вокруг треугольника BCD описали окружность с центром в точке О и радиусом ОD (Рис. 1)

Шаг 4. Для нахождения точки Штейнера нашли точку пересечения

описанной окружности с отрезком AD. Искомая точка Т является точкой Штейнера (Рис. 2).

Шаг 5. Соединив точки В, Т и С получим минимальный путь между населенными пунктами д. Оберовщина, г. Высокое и автомобильная дорога Р-16 Тюхиничи.

Так как часть дороги ТС проходит на местности по пойме реки Пульва и является заболоченной местностью, то строительство такой дороги является нецелесообразным. Изменим направление оптимальногопути без изменения его протяженности.

Шаг 6. Проведем через точки В и С прямую – ось симметрии.

Шаг 7. Относительно оси симметрии ВС построим точку Т` симметричную точке Т. Длина ломанной ВТ`С равна длине ломанной ВТС (Рис. 3).

На местности отрезок ВТ` является частью существующей дороги, соединяющей д. Оберовщина и д. Мыкшицы.

В треугольнике KMB градусная мера угла KMB оказалась равна больше 120, поэтому точка Штейнера при совпадет с точкой M, и кратчайший путь будет представлять собой ломанную KMB. Изменим направление пути, не изменяя длину пути. Для этого построим точку Т“ симметричную точке Mотносительно прямой BK.

Соединив последовательно точки K, Т“, B, Т` и С получим необходимый минимальный путь между точками: д. Волковичи, г. Высокое, автомобильная дорога Р-16 Тюхиничи (Рис. 4)

Заключение

Данная работа помогла понять мне, что такое сети Штейнера. Дала понимание, как можно решать задачи с использованием сетей, дерева, а также с алгоритмом Штейнера. Научная работа помогла разобраться в задачах и различных методах решения их. Работа очень познавательна, интересна и полезна ученикам средней школы.

Данную работу можно использовать для проведения кружков и дополнительных занятий. Такие задания развивают логическое мышление, могут встречаться в олимпиадах.

Источники

https://ru.wikipedia.org/

http://vmath.ru/

https://dic.academic.ru/

https://testmf.grsu.by/

https://habr.com

http://lmatrix.ru

Просмотров работы: 269

Представим себе такую ситуацию: некая телефонная компании Steiner Telephone Company подсчитала, что можно сэкономить несколько миллионов долларов, если удастся найти кратчайшую из возможных сетей телефонных линий, соединяющих 100 населённых пунктов. Чтобы решить эту задачу, компания заключила контракт с компьютерной компанией Cavalieri Computer Company, располагающей самыми быстродействующими в мире компьютерами и самыми квалифицированными программистами. Через неделю Cavalieri продемонстрировала в действии программу для решения поставленной задачи. Программа действительно нашла кратчайшую сеть для 15 абонентов всего за один час. Steiner заплатила 1000 долл. за программу и пообещала платить по одному центу за каждую секунду машинного времени, которое потребуется компьютеру для полного решения задачи. К тому времени, когда компьютер завершил вычисления для всех 100 абонентов, телефонная компания задолжала компьютерной многие триллионы долларов, а сами абоненты переместились на много километров со своих мест — либо по своему желанию, либо по причине континентального дрейфа!

Может быть, Cavalieri продала Steiner неправильную программу? Попробуем разобраться. Здесь мы столкнулись с одним из примеров так называемой задачи Штейнера, в которой требуется найти кратчайшую сеть прямолинейных отрезков, связывающих между собой заданное множество точек.

Задачу Штейнера невозможно решить, просто рисуя линии между заданными точками. Для решения необходимо добавить новые точки, называемые точками Штейнера и служащие в качестве узлов искомой кратчайшей сети. Чтобы определить количество и расположение точек Штейнера, математики и программисты разработали специальные алгоритмы. Однако даже лучшие из этих алгоритмов, выполняющиеся на самых быстродействующих компьютерах, не в состоянии дать решение для большого множества заданных точек за реально приемлемое время. Более того, задача Штейнера принадлежит к классу задач, для которых, по мнению многих современных исследователей, эффективные алгоритмы, по-видимому, так никогда и не будут найдены. Поэтому компьютерная компания Cavalieri должна быть реабилитирована.

В то же время фирма Cavalieri могла бы разработать практически полезную программу, которая находила бы сеть, несколько более длинную по сравнению с кратчайшей. Приближённые методы решения довольно часто применяются в различных приложениях задачи поиска кратчайших сетей. Среди них — конструирование интегральных электронных схем, построение эволюционного дерева для группы биологических видов и минимизация расхода материалов на создание сетей телефонных линий, трубопроводов и шоссейных дорог.

 

 

Компьютер из мыльной плёнки (вверху) соревнуется с электронным компьютером (внизу), отыскивая кратчайшую сеть, связывающую между собой 29 городов. Компьютер из мыльной плёнки, в котором расположение штырьков моделирует географию городов, минимизирует длину плёночных соединений в локальной области. Он даёт короткую сеть, но необязательно кратчайшую. Электронный компьютер реализует алгоритм Э. Кокейна и Д. Хьюджилла из Университета Виктории. Алгоритм гарантирует кратчайшую сеть. Задача с 29 точками на сегодня близка к пределу вычислительных возможностей.

В общей форме задача Штейнера была впервые сформулирована в статье Милоша Кёсслера и Войцеха Ярника, опубликованной в 1934 году, однако сама эта проблема не приобрела широкой известности вплоть до 1941 года, когда Рихард Курант и Герберт Е. Роббинс включили её в свою книгу «Что такое математика?». Курант и Роббинс связали эту задачу с исследованиями Якоба Штейнера, немецкого математика XIX столетия, работавшего в Берлинском университете. Работа Штейнера была посвящена поиску одной точки, сумма расстояний от которой до всех точек заданного множества была бы минимальной. Однако ещё в 1640 году впервые была поставлена задача, являющаяся частным случаем обеих описанных задач — той, над которой работал Штейнер, и той, которая носит его имя: найти точку P, сумма расстояний от которой до каждой из трёх заданных точек минимальна. Эванджелиста Торричелли и Бонавентура Кавальери независимо друг от друга решили эту задачу. Торричелли и Кавальери доказали, чту суммарное расстояние минимально, когда все сопряжённые углы в точке P больше или равны 120°.

Зная, что углы с вершинами в точке P должны быть не меньше 120°, Торричелли и Кавальери придумали процедуру геометрического построения для нахождения точки P (см. рис.).

 

Кратчайшая сеть для трёх точек A, B и C. На самой длинной стороне треугольника ABC строится равносторонний треугольник ACX (зелёный цвет), и вокруг него описывается окружность (жёлтый цвет). На пересечении её с отрезком BX находится точка P, называемая точкой Штейнера. Отрезки AP, BP и CP образуют три сопряжённых угла по 120° и кратчайшую сеть, причём их суммарная длина равна BX.

Нужно провести отрезки прямых, соединяющие исходные точки (назовем их A, B и C), с точкой в вершине наибольшего угла (скажем, B). Если угол B больше или равен 120°, то искомая точка P совпадает с точкой B. Другими словами, кратчайшая сеть в данном случае представляет собой просто два отрезка прямых между точками A и B и точками B и C. Если угол в точке B меньше 120°, то точка P должна находиться где-то внутри треугольника. Чтобы найти её, следует построить равносторонний треугольник с основанием на самой большой стороне треугольника ABC, а именно на отрезке AC. Третья вершина равностороннего треугольника (обозначим её X) находится на противоположной стороне от точки B относительно AC. Вокруг построенного равностороннего треугольника описываем окружность и проводим прямую, соединяющую точки B и X. Точка P будет на пересечении этой прямой и окружности. Соединив точки A, B и C с точкой P, мы получаем три угла, в точности равные 120° каждый, и искомую кратчайшую сеть. Более того, длина отрезка BX оказывается равной длине кратчайшей сети. В дальнейшем в нашей статье мы будем называть точку X замещающей точкой, поскольку замена точек A и C одной точкой X не изменяет длину сети.

Задача с тремя точками и задача Штейнера для многих точек имеют много общих свойств. Их решения, имеющие вид дерева, характерны тем, что при удалении любого отрезка из кратчайшей сети мы должны будем исключить одну из заданных точек. Другими словами, мы не можем пройти по сети из какой-либо заданной точки и вернуться в неё, без того чтобы не пройти те или иные отрезки повторно. По этой причине графические решения задачи с тремя точками и задачи со многими точками называются деревьями Штейнера. Отрезки прямых называются рёбрами, а точки, роль которых аналогична точке P и которые нужно добавить для построения дерева, называются точками Штейнера.

Задача Штейнера для трёх точек даёт также некоторую информацию о геометрии кратчайших деревьев Штейнера. Во-первых, каждый угол равен 120° или больше, а это означает, что каждая точка соединяется с остальным деревом не более чем тремя рёбрами. Во-вторых, в каждой точке Штейнера сходятся ровно три ребра, образуя друг с другом углы, в точности равные 120°. В-третьих, число рёбер дерева всегда на единицу меньше суммарного числа заданных исходных точек и точек Штейнера. И наконец, последнее свойство: поскольку в каждой точке Штейнера сходятся ровно три ребра и по крайней мере одно ребро должно касаться каждой из заданного множества точек, максимальное число точек Штейнера для любой задачи на две меньше, чем число заданных исходных точек.

Задача поиска сети для точек, расположенных в вершинах равностороннего треугольника, прямоугольника и «лестницы» имеет различные решения. В случаях a, d и g точки соединяются без дополнительных промежуточных точек и такое решение называется минимальным остовным деревом. Деревья Штейнера, полученные путём добавления узловых точек, показаны для случаев b, c, e, f, h и i. Только c, f и i являются кратчайшими деревьями Штейнера, или кратчайшими сетями. Числа под каждым решением указывают примерную суммарную длину отрезков сети.

При одном и том же количестве и расположении исходных точек можно построить много различных деревьев Штейнера, удовлетворяющих перечисленным выше условиям. Некоторые из этих деревьев, называемые локально минимальными решениями, невозможно сократить за счёт мелкомасштабных изменений, таких как небольшое перемещение ребра или расщепление точки Штейнера. Однако не всякое локально минимальное дерево Штейнера даёт кратчайшее из возможных решений задачи. Для того чтобы преобразовать сеть в кратчайшее дерево, называемое глобально минимальным деревом Штейнера, могут потребоваться крупномасштабные перемещения точек Штейнера.

Рассмотрим для примера множество исходных точек, образующих четыре угла прямоугольника, размерами три метра на четыре. Решения содержат две точки Штейнера, которые можно расположить двумя различными способами. При каждом расположении мы получаем дерево Штейнера, причём в каждой точке Штейнера сходятся по три ребра под углом 120°. Если точки Штейнера расположить на линии, параллельной поперечной стороне прямоугольника, то получается локально минимальное дерево Штейнера длиной 9,9 м. Если расположить точки Штейнера на линии, параллельной продольной стороне прямоугольника, то получится глобально минимальное дерево длиной 9,2 м.

Действуя методом полного перебора, можно найти кратчайшую сеть путём построения всех возможных локально минимальных деревьев Штейнера, вычислением их длины и выбором кратчайшего. Но поскольку расположение точек Штейнера неоднозначно, возникает сомнение в том, что вычислить все локально минимальные деревья Штейнера можно за конечное время. З. Мелзак из Университета Британской Колумбии сумел преодолеть это затруднение и составил первый алгоритм для решения задачи Штейнера.

В алгоритме Мелзака рассматриваются многие возможные соединения между заданными точками и многие возможные расположения точек Штейнера. Алгоритм можно условно разбить на две части. В первой его части множество исходных точек просто подразделяется на всевозможные подмножества. Во второй части для каждого такого подмножества создается ряд возможных деревьев Штейнера с использованием построения, аналогичного тому, которое мы применили к задаче с тремя точками.

Так же как и для трёх точек, вместо двух исходных точек можно подставить одну заменяющую их точку, не изменяя результата (длины сети) решения. Однако в общем случае алгоритм должен угадать, какую пару следует заменить, и поэтому он перебирает все возможные пары. Более того, заменяющая точка может размещаться по любую сторону от прямой, соединяющей две заменяемые точки, поскольку равносторонний треугольник, используемый при построении, может быть ориентирован в одном из двух направлений. После того как одна из точек в подмножестве заменена одной из двух возможных заменяющих точек, на каждом последующем шаге алгоритма замещаются либо две другие исходные точки, либо одна исходная и одна замещающая, либо две замещающие другой замещающей точкой; и так до тех пор, пока всё подмножество не будет сведено к трём точкам.

Как только для этих трёх точек найдена точка Штейнера, алгоритм начинает работать в обратном направлении, пытаясь определить точку Штейнера, соответствующую каждой замещающей точке (см. рис.).

Алгоритм Мелзака разбивает задачу поиска кратчайшей сети на подзадачи. Точка A подходит для разбиения задачи на подзадачи из 3 и 5 точек. Чтобы построить возможные деревья Штейнера для 5 точек, пару точек (например, B и C) можно заменить одной (здесь X), построив равносторонний треугольник с основанием BC. Теперь задача сведена к 4 точкам: X, D, G и A. Пару точек опять можно заменить — сначала D и X на Y, а потом G и A на Z. Вокруг каждого из полученных равносторонних треугольников (XDY, AGZ и BCX) описываем окружности. Точки Q и R, в которых прямая YZ пересекает две окружности, — это точки Штейнера, а пересечение прямой XQ с третьей окружностью определяет точку Штейнера P. Поскольку невозможно заранее предугадать наилучшее разбиение на подзадачи и группировки на пары, необходимо рассмотреть все варианты, чтобы найти кратчайшее дерево.

Попытка может окончиться неудачей, поскольку на расположение точек Штейнера накладываются противоречащие друг другу ограничения. Однако успешная попытка приводит к возникновению дерева Штейнера, соединяющего каждую исходную точку подмножества с деревом одним ребром. Рассмотрев, таким образом, все замещающие последовательности, алгоритм выбирает кратчайшее из этих деревьев Штейнера для подмножества. Комбинируя между собой всевозможными способами кратчайшие деревья Штейнера для подмножеств так, чтобы охватить исходное множество точек, можно построить всевозможные локально минимальные деревья Штейнера и определить геометрию кратчайшей сети.

Алгоритм Мелзака может потребовать колоссального времени даже для небольших задач, поскольку в нём рассматривается очень много вариантов. Например, задача для 10 точек может быть распределена на 512 подмножеств исходных точек. И хотя двухточечные подмножества не требуют большого объёма работы, каждое из 45 подмножеств с восемью точками имеет два миллиона замещающих последовательностей. Кроме того, существуют ещё более 18 000 способов объединить эти подмножества в деревья.

 Разумеется, исследователи нашли более эффективные пути организации вычислений и сумели повысить быстродействие алгоритма. Вместо того чтобы рассматривать геометрию задачи, они фокусируют внимание на возможных конфигурациях соединений в сети, т.е. на её топологии. Топология указывает, какие точки соединены друг с другом, а не действительные расположения точек Штейнера. Приняв определённую топологию, можно найти соответствующую замещающую цепочку относительно быстро. При такой организации процесса скорость вычисления кратчайших деревьев Штейнера для подмножеств немного возрастает. Например, для подмножества из 8 точек алгоритм должен рассмотреть лишь около 10 000 различных топологий вместо двух миллионов различных последовательностей замещения.

Так как количество возможных топологий быстро возрастает с размером подмножества, задачи Штейнера могут стать менее трудоёмкими лишь в том случае, если требуется рассматривать только очень небольшие подмножества исходного множества точек. Эксперименты, проведённые с алгоритмом Мелзака, показали, что кратчайшая сеть для числа случайных точек больше 6 обычно может быть разбита на кратчайшие сети для меньших наборов точек. Однако, рассмотрев специальные конфигурации точек, называемые лестницами, Ф. Чанг из фирмы Bell Communications Research совместно с одним из авторов настоящей статьи (Грэмом) показал, что существуют бесконечно большие множества точек, для которых кратчайшее дерево Штейнера невозможно расчленить. Лестница — это конфигурация, в которой исходные точки расположены равномерно вдоль двух параллельных линий. Для этой весьма частной задачи Штейнера было найдено общее решение. Оно показало, что число точек Штейнера в кратчайшем дереве Штейнера для лестницы с нечётным количеством «ступенек» максимально: оно равно числу исходных точек минус 2. Такое дерево Штейнера невозможно расчленить, потому что для каждой точки Штейнера нужно одновременно учитывать все исходные точки. Следовательно, не всегда можно сократить размер подмножеств, рассматриваемых алгоритмом Мелзака.

Некоторым исследователям удалось улучшить эффективность алгоритмов по сравнению с алгоритмом Мелзака за счёт применения более тонких способов, позволяющих уменьшить объём вычислений (см. рис.).

Методы усечения повышают эффективность алгоритмов поиска кратчайших сетей. Один из приёмов усечения, или исключения, возможных сетей (изобретённый Кокейном) заключается в том, чтобы рассмотреть порядок, в котором резиновое кольцо (красный цвет), натянутое вокруг заданного множества точек, касается их. Резинка касается всех точек, за исключением C и H, но C можно включить в последовательность, поскольку угол, образуемый точкой C с двумя соседними точками, находящимися в контакте с резинкой, не меньше 120°. Тогда порядок точек будет ABCDEFG. Непрерывный путь (чёрный цвет), проходящий вдоль возможной сети (синий цвет), касается точек в порядке ACBDEFHG. Поскольку B и C здесь переставлены местами по отношению к последовательности, образованной резинкой, эту сеть можно исключить из рассмотрения.

В их алгоритмах производится усечение вычислительной процедуры, т.е. прекращаются те ветви вычисления, которые заведомо должны привести к сравнительно длинным сетям. Новые методы усечения действительно значительно сокращают объём вычислений. Программы, основанные на алгоритме Мелзака, как, скажем, программа Э. Кокейна из Университета Виктории, написанная в 1969 году, могли решить любую задачу для 9 точек и некоторые задачи для 12 точек приблизительно за полчаса. Программа же, недавно написанная Кокейном и его коллегой из Университета Виктории Д. Хьюджиллом, использует мощный метод усечения, изобретённый Р. Винтером из Копенгагенского университета. Эта программа смогла решить все задачи для 17 точек и большинство случайно сгенерированных задач для 30 точек всего за несколько минут. Метод усечения Винтера оказался настолько удачным, что благодаря устранению большинства возможных топологий, основной объём вычислительной работы связан с комбинированием решений, полученных для отдельных подмножеств.

 Однако для всех этих программ время решения задачи может сильно зависеть от геометрии и от количества точек. Более того, время вычислений даже для самых изощрённых алгоритмов растёт по экспоненциальному закону с ростом числа точек, и задачи Штейнера для 100 точек остаются практически неразрешимыми. Будет ли когда-нибудь найден эффективный алгоритм, позволяющий решать большие задачи Штейнера?

Прогресс, достигнутый в теории вычислительной математики, убедил большинство исследователей, что существующие алгоритмы решения задачи Штейнера практически невозможно улучшить. В этой теории каждой задаче сопоставляется определённый размер. Для каждого конкретного случая задачи Штейнера таким естественным размером является число заданных исходных точек. Затем рассматривается количество элементарных компьютерных операций — таких как сложение, вычитание и умножение, — которое может потребоваться алгоритму для решения какого-то частного случая задачи определённого размера. Поскольку различные частные случаи одного и того же размера могут потребовать различного количества операций, следует рассматривать максимальное количество операций как функцию размера задачи. Если число операций растет с размером задачи (n) пропорционально некоторой степени размера, например, как в выражениях n2, 5n или 6n + n10, то процедура решения называется алгоритмом с полиномиальным временем, или просто полиномиальным алгоритмом. Такие алгоритмы считаются эффективными, по крайней мере в теоретическом смысле. Если же количество операций возрастает экспоненциально с размером задачи, как, например, в случаях 2n, 5n или 3n2·4n, процедура решения называется алгоритмом с экспоненциальным временем или просто экспоненциальным алгоритмом.

Хотя для очень маленьких задач и полиномиальные, и экспоненциальные алгоритмы достаточно практичны, для больших задач время решения у экспоненциальных алгоритмов настолько велико, что практически они оказываются безнадёжными (см. H. Lewis, C. Papadimitriou. The Efficiency of Algorithms, Scientific American, January, 1978). Для достаточно больших задач полиномиальный алгоритм, выполняющийся даже на самой медленной машине, даёт решение всё-таки значительно быстрее, чем экспоненциальный алгоритм, выполняющийся на суперкомпьютере.

Хотя для задачи Штейнера были найдены экспоненциальные алгоритмы (например, алгоритм Мелзака), ни одного полиномиального алгоритма найти для неё не удалось. И шансы на то, что эффективный алгоритм будет когда-нибудь найден, очень малы. В 1971 году С. Кук из Университета в Торонто доказал, что если будет найден полиномиальный алгоритм для любой задачи, принадлежащей классу труднорешаемых задач, называемых NP-полными, то этим же алгоритмом можно будет воспользоваться для эффективного решения широкого класса труднорешаемых задач, включая класс NP-полных. Позже один из авторов настоящей статьи (Грэм), работая совместно с М. Гэри и Д. жонсоном из AT&T Bell Laboratories, доказал, что задача Штейнера относится к классу NP-полных. Поскольку до сегодняшнего дня все NP-полные задачи оказались не по силам тысячам исследователей, то маловероятно, чтобы какая-нибудь NP-полная задача, в том числе и задачи Штейнера, была решена алгоритмом с полиномиальным временем. Однако доказательство того, что NP-полные задачи невозможно решить эффективным способом, остаётся одной из основных теоретических проблем вычислительной математики.

Хотя представляется очень маловероятным, чтобы появился эффективный алгоритм с полиномиальным временем, вычисляющий кратчайшие сети, существуют практичные алгоритмы, отыскивающие несколько более длинные сети. Одним из примеров является в этом смысле алгоритм, решающий задачу минимального остовного дерева, который отыскивает кратчайшую систему прямолинейных отрезков, связывающих данное множество точек без добавления новых. Чтобы решить эту задачу, нужно соединить две точки, ближе всего расположенные друг к другу, и на каждом последующем шаге соединять ближайшую пару точек, которую можно соединить, не образуя замкнутого пути. В конце концов, можно удалить одно ребро из замкнутого пути, и заданные исходные точки останутся всё же связанными остающимися рёбрами.

Е. Гилберт и X. Поллак высказали предположение о том, что отношение длины кратчайшего дерева Штейнера к длине минимального остовного дерева равно, самое меньшее, √3/2, т.е. дерево Штейнера не более чем на 13,4% короче минимального остовного дерева. Это отношение √3/2 возникает в простом примере, когда три исходные точки являются вершинами равностороннего треугольника. Хотя это предположение остаётся недоказанным, Чанг и один из авторов данной статьи (Грэм) показали, что дерево Штейнера короче минимального остовного дерева не более чем на 17,6%.

Минимальные остовные деревья можно часто укоротить на 3 или 4% путём тщательного выбора дополнительных точек Штейнера и небольшой переделки дерева. Одному из авторов (Берну) удалось показать, что этот неточный алгоритм до какой-то степени оправдан в теоретическом смысле, поскольку в среднем длина модифицированного дерева будет немного меньше средней длины минимального остовного дерева.

 Задачи отыскания минимального остовного дерева и кратчайшей сети решались в применении к планированию топологии телефонных сетей, трубопроводов и шоссейных дорог. Решения, приближённые или точные, помогают спланировать геометрию сети и подсчитать необходимые количества материалов. В более сложных формулировках задачи Штейнера можно учитывать такие факторы, как необходимость избежания определённых географических свойств местности, а также отыскивать кратчайшие соединения между узлами уже существующих сетей.

Возможно, наиболее важным практическим применением задачи Штейнера является конструирование интегральных электронных схем. Более короткая сеть проводящих линий на интегральной схеме требует меньшего времени зарядки-разрядки по сравнению с более длинной сетью и повышает, таким образом, быстродействие схемы. Однако задача отыскания кратчайшей сети на интегральной схеме имеет другую геометрию, так как проводники на ней обычно проходят лишь в двух направлениях — горизонтальном и вертикальном.

Разновидности задачи о кратчайшей сети применялись при конструировании электронных интегральных схем, с тем чтобы повысить их быстродействие. Кратчайшая сеть из вертикальных и горизонтальных проводников, связывающих множество выводов, выделена красным цветом. Здесь показаны также проводники и выводы в более глубоких слоях схемы.

Такая задача, получившая название прямоугольной задачи Штейнера, была впервые изучена в 1965 году Морисом Хэнаном из Исследовательского центра им. Томаса Уотсона корпорации IBM в Йорктаун-Хейтсе (шт. Нью-Йорк). Как и в классической задаче Штейнера, решение для прямоугольной её версии также содержит точки Штейнера и исходные точки, но рёбра встречаются в них под углом либо 90°, либо 180°. Хотя точки Штейнера могут, казалось бы, лежать повсеместно в прямоугольной задаче, так же как и в классической задаче Штейнера, Хэнан показал, что в кратчайшей прямоугольной сети на расположение точек Штейнера можно наложить определённые ограничения. Через каждую исходную точку проводятся горизонтальная и вертикальная прямые, и каждое пересечение двух линий даёт возможное положение точки Штейнера. Чтобы найти кратчайшую сеть, алгоритм может рассмотреть все подмножества возможных точек Штейнера. Однако по мере того, как число исходных точек возрастает, время решения для каждого алгоритма, осуществляющего полный перебор вариантов, растёт экспоненциально. Более тонкие, но всё же экспоненциальные алгоритмы способны решать прямоугольные задачи Штейнера размером порядка 40 точек.

Прямоугольная версия задачи поиска минимального остовного дерева может быть эффективно решена алгоритмом, выбирающим на каждом шаге кратчайшее соединение, если это соединение не образует замкнутого пути. Ф. Хванг из фирмы Bell Laboratories показал, что прямоугольное дерево Штейнера не бывает короче прямоугольного остовного дерева более чем на одну треть.

Наиболее удивительное применение задача Штейнера нашла в биологии, в одной из областей, изучающей происхождение видов. Д. Сэнкофф из Монреальского университета и ряд других исследователей сформулировали одну из версий задачи Штейнера для того, чтобы вычислять наиболее вероятные филогенетические деревья. Учёные сначала изолируют какой-то определённый белок, общий для организмов, которые они намереваются классифицировать. Затем для каждого организма они определяют последовательность аминокислот, составляющих этот белок, и устанавливают точку в позиции, определяемой числом различий между белком соответствующего организма и белком других организмов. Организмы с похожими последовательностями аминокислот определяются, таким образом, как близкие, а организмы с непохожими последовательностями — как далёкие. В кратчайшей сети для этого абстрактного множества исходных точек точки Штейнера соответствуют наиболее вероятным предкам, а рёбра представляют связь между данным организмом и предком, обладающую наименьшим числом мутаций. Однако, поскольку филогенетическая задача Штейнера не легче других задач подобного рода, эта задача — за исключением случаев с небольшим числом организмов — послужила скорее в качестве мысленного эксперимента, нежели практического инструмента исследований.

Хотя за последние годы наши познания в области алгоритмов значительно расширились, задача поиска кратчайшей сети остаётся всё такой же неприступной. Несмотря на то что формулировка этой задачи очень проста, её решения трудно поддаются анализу. Крошечное изменение геометрии задачи, кажущееся несущественным, может коренным образом изменить кратчайшую сеть, являющуюся её решением. Такая чувствительность к исходным данным делает даже периферийные вопросы, касающиеся кратчайших сетей, весьма не простыми. Задача поиска кратчайшей сети будет ещё долгие годы привлекать наше воображение.

LMatrix: Дополнительно можно почитать здесь: http://rain.ifmo.ru/cat/data/theory/unsorted/steiner-problem-2010/article.pdf

И здесь: http://www.ict.edu.ru/ft/002174/sb4_page96_105.pdf

И вот еще здесь: http://www.mathnet.ru/links/548ae346a9e9c8556678bda07a5dfbf2/dm674.pdf

Литература

1.

E. N. Gilbert and H. О. Pollak. Steiner Minimal Trees. In: SIAM Journal on Applied Mathematics, 1968, v. 16, No 1, pp. 1–29.

2.

Z. A. Melzak. Companion to Concrete Mathematics. John Wiley & Sons, Inc., 1973.

3.

Pawel Winter. An Algorithm for the Steiner Problem in the Euclidean Plane. In: Networks, 1985, v. 15, No 3, pp. 323–345.

4.

Pawel Winter. Steiner Problem in Networks: A Survey. In: Networks, 1987, v. 17, No 2, pp. 129–167.

5.

М. Гэри, Д. Джонсон. Вычислительные машины и труднорешаемые задачи. — Перев. с англ. М.: Мир, 1982.


М АРШАЛЛ У. БЕРН, РОНАЛЬД Л. ГРЭМ

Marshall W. Bern, Ronald L. Graham
“The Shortest-Network Problem”

Маршалл У. Берн, Рональд Л. Грэм в течение многих лет занимались поиском решения задачи о кратчайших сетях. Берн — научный сотрудник исследовательского центра фирмы Xerox в Пало-Альто. Получив степень магистра в 1980 году в Техасском университете в Остине, работал в отделе обработки сигналов фирмы Ensco, Inc. В 1987 году защитил докторскую диссертацию по информатике в Калифорнийском университете в Беркли. В свободное время Берн увлекается выращиванием кактусов, пробует свои силы в живописи, делает гравюры. Грэм — руководитель исследовательской программы, выполняемой отделом информатики в AT&T Bell Laboratories, профессор Ратгеровского университета. Степень доктора математических наук получил в 1962 году в Калифорнийском университете в Беркли. Любит упоминать о том, что в прошлом был президентом международной ассоциации жонглёров. Это вторая статья Грэма в журнале «Scientific American».

Содержание

Раздел – в процессе разработки. Строительные работы: 18.05.2015 – ??.??.????.


Дерево Штейнера

Задача. Для заданного множества точек $ mathbb P= {P_j}_{j=1}^n $ плоскости построить такую систему отрезков $ mathbb U $, чтобы она образовывала связное множество, содержащее $ mathbb P_{} $, и при этом имела бы минимально возможную длину.

Здесь длина отрезка $ P_1P_2 $ понимается в смысле евклидовой метрики: $ |P_1P_2|=sqrt{(x_{1}-x_{2})^2+(y_{1}-y_{2})^2} $ при $ P_1=(x_1,y_1),P_2=(x_2,y_2) $.
Эта задача построения наикратчайшей сети, соединяющей точки множества $ mathbb P $, известна как задача о минимальном дереве Штейнера.

Точки множества $ mathbb P_{} $ часто называют терминалами.

Три терминала

Для трех коллинеарных терминалов решением задачи будет отрезок, соединяющий два крайних терминала.

Как изменится решение, если терминалы слегка «подвигать», чтобы они стали неколлинеарными? — Интуитивно ожидаемый ответ: решение должно слегка измениться, т.е. из отрезка превратиться в ломаную, соединяющую крайние терминалы с «внутренним».
Пусть этим внутренним терминалом является $ P_{2} $.

Увеличим величину его отклонения от прямой $ P_1P_3 $, т.е. уменьшим величину угла $ widehat{P_1P_2P_3} $. Можно ли ожидать, что минимальное дерево Штейнера останется совпадающим с ломаной $ P_1P_2P_{3} $? — Оказывается, что это заключение справедливо только до определенного значения угла $ widehat{P_1P_2P_3} $, а именно до тех пор, пока он остается $ ge 2pi/3_{} $.

Что происходит с решением при переходе этого значения? — Оказывается минимум длины обеспечивается теперь принципиально иной конфигурацией: не ломаной $ P_1P_2P_{3} $, а трехзвенной конструкцией, в которой терминалы связываются посредством некоторой вспомогательной, «узловой», точки $ S_{} $, расположенной внутри терминального треугольника.

Эта точка называется точкой Ферма-Торричелли треугольника $ P_1P_2P_{3} $, и она формально определяется именно как точка треугольника, обеспечивающая минимальное значение величины
$$ |P_1P|+ |P_2P|+|P_3P| $$
где $ P_{} $ — произвольная точка треугольника.

Т

Теорема. Если все углы треугольника $ P_1P_2P_{3} $ меньше $ 2pi/3 $, то существует единственная точка $ S_{} $, лежащая внутри этого треугольника, которая дает минимальное значение для $ |P_1P|+ |P_2P|+|P_3P| $. Если один из углов треугольника $ ge 2pi/3 $, то минимум указанной суммы достигается когда точка $ P_{} $ совпадает с вершиной при этом угле.

Выяснение свойств точки Ферма-Торричелли и способы ее нахождения излагаются в следующих пунктах. А пока, забегая вперед, ответим на ожидаемый вопрос: если добавление одной дополнительной точки оптимизирует решение построения кратчайшей сети, соединяющей три терминала, то, возможно, добавление двух (или более) дополнительных даст еще бóльшую выгоду? — Ответ оказывается отрицательным.

Геометрия

Т

Теорема. Точка Ферма-Торричелли $ S_{} $ треугольника $ P_1P_2P_{3} $ обладает свойством
$$ widehat{P_1SP_2}=widehat{P_2SP_3}=widehat{P_1SP_3}=frac{2pi}{3} , . $$

Можно образно охарактеризовать точку Ферма-Торричелли как точку треугольника, из которой любую пару его вершин $ P_j,P_k $ «видно» под углом раствора $ 2pi/3 $.

Существует несколько геометрических способов построения точки Ферма-Торричелли. Излагаемый в следующем примере алгоритм представляет собой комбинацию алгоритмов Торричелли и Симпсона.

П

Пример. Построить точку Ферма-Торричелли для треугольника с вершинами

$$
P_1=(4,4), P_2= (2,1), P_3=(7,1) , .
$$

Решение. Построим сначала равносторонний треугольник на стороне $ P_1P_2 $ и внешний треугольнику $ P_{1}P_2P_3 $.
Обозначим его третью вершину $ Q_1 $. Далее, опишем окружность вокруг этого треугольника:

Проведем прямую $ Q_1P_3 $. Точка пересечения $ S_{} $ этой прямой с окружностью и будет точкой Ферма-Торричелли треугольника $ P_1P_{2}P_3 $:

Длина построенной сети (минимального дерева Штейнера) оказывается равной $ |Q_1P_3| $ — это
следует из того, что $ |Q_1S|=|P_1S|+|P_2S| $.
Последнее вытекает из



теоремы Птолемея.


Аналитика

Т

Теорема.[5] Пусть $ {P_j= (x_{j},y_j)}_{j=1}^3 $. Обозначим

$$
r_{jell}=sqrt{(x_j-x_{ell})^2+(y_j-y_{ell})^2}=|P_jP_{ell}| quad npu {j,ell} subset {1,2,3} .
$$
Пусть все углы треугольника $ P_{1}P_2P_3 $ меньше $ 2pi /3 $, или, что то же, выполнены условия:
$$ r_{12}^2+r_{13}^2+r_{12}r_{13}-r_{23}^2>0, r_{23}^2+r_{12}^2+r_{12}r_{23}-r_{13}^2>0, r_{13}^2+r_{23}^2+r_{13}r_{23}-r_{12}^2>0 . $$
Точка $ S_{} $ Ферма-Торричелли имеет координаты
$$
x_{ast}=frac{kappa_1kappa_2kappa_3}{2 sqrt{3} |S| d} left(frac{x_1}{kappa_1}+frac{x_2}{kappa_2}+frac{x_3}{kappa_3} right),
y_{ast}=frac{kappa_1kappa_2kappa_3}{2 sqrt{3} |S| d} left(frac{y_1}{kappa_1}+frac{y_2}{kappa_2}+frac{y_3}{kappa_3} right)
$$
при
$$ |P_1S|+|P_2S|+|P_3S|= sqrt{d} . $$
Здесь
$$
d=frac{1}{sqrt{3}}(kappa_1+kappa_2+kappa_3)=frac{r_{12}^2+r_{13}^2+r_{23}^2}{2}+ sqrt{3}, |mathfrak{S}| ,
$$
$$
left{
begin{array}{lcl}
kappa_1=frac{sqrt{3}}{2}(r_{12}^2+r_{13}^2-r_{23}^2)+|mathfrak{S}| , \
kappa_2=frac{sqrt{3}}{2}(r_{23}^2+r_{12}^2-r_{13}^2)+|mathfrak{S}| , \
kappa_3=frac{sqrt{3}}{2}(r_{13}^2+r_{23}^2-r_{12}^2)+|mathfrak{S}| ;
end{array} right.
$$
и
$$
mathfrak{S}=x_1y_2+x_2y_3+x_3y_1-x_1y_3-x_3y_2-x_2y_1=
$$
$$
=left|begin{array}{cc}
x_2-x_1 & x_3-x_1 \
y_2-y_1 & y_3-y_1
end{array}
right|=
left| begin{array}{ccc}
1 & 1 & 1 \
x_1 & x_2 & x_3 \
y_1 & y_2 & y_3
end{array}
right| .
$$

Вариации приведенных формул см. в разделе



Задача Ферма-Торричелли и ее развитие. Внимание: в настоящем разделе сменены обозначения! Точка Ферма-Торричелли в отсылаемом разделе обозначалась $ P_{ast} $, в настоящем же разделе обозначается $ S_{} $; а, соответственно, величина $ S_{} $ теперь обозначается $ mathfrak S $.

Доказательство формул может быть произведено аналитически: cтационарные точки функции $ F(x,y)=|P_1U|+|P_2U|+|P_3U| $ должны удовлетворять
системе уравнений
$$
left{
begin{array}{lll}
displaystyle frac{partial F}{partial x} &= displaystyle frac{x-x_1}{sqrt{(x-x_1)^{2}+(y-y_1)^2}}+
frac{x-x_2}{sqrt{(x-x_2)^{2}+(y-y_2)^2}}+frac{x-x_3}{sqrt{(x-x_3)^{2}+(y-y_3)^2}}&=0 \
displaystyle frac{partial F}{partial y} &= displaystyle frac{y-y_1}{sqrt{(x-x_1)^{2}+(y-y_1)^2}}+
frac{y-y_2}{sqrt{(x-x_2)^{2}+(y-y_2)^2}}+frac{y-y_3}{sqrt{(x-x_3)^{2}+(y-y_3)^2}}&=0 , .
end{array}
right.
$$
Последнюю можно записать в векторной форме
$$
frac{U-P_1}{|UP_1|}+frac{U-P_2}{|UP_2|}+frac{U-P_3}{|UP_3|}=mathbb O , ,
$$
если считать $ U=(x,y) , left{ P_j=(x_j,y_j) right}_{j=1}^3 $ векторами, заданными своими координатами.


Четыре терминала

Решение задачи для случая трех терминалов наводит на мысль о поиске вспомогательной узловой точки для решения аналогичной задачи для случая четырех терминалов.
Иначе говоря, поставим задачу поиска точки $ S_{} $, обеспечивающей минимум сумме расстояний
$$ |PP_1|+|PP_2|+|PP_3|+|PP_4| , , $$
где $ P_{} $ означает произвольную точку плоскости.

Т

Теорема [Фаньяно]. Если точки $ P_{1},P_2,P_3, P_{4} $ образуют выпуклый четырехугольник, то минимум суммы расстояний

$$ |PP_1|+|PP_2|+|PP_3|+|PP_{4}|$$
достигается в точке $ S_{} $, лежащей на пересечении диагоналей четырехугольника.
Если же точки $ P_{1},P_2,P_3, P_{4} $ не образуют выпуклый четырехугольник, и точка $ P_{i} $ лежит внутри треугольника, образованного тремя оставшимися точками, то минимум суммы расстояний достигается в точке $ P_{i} $.

Итак, решение задачи получено. В случае выпуклого четырехугольника длина дерева оказывается равной сумме длин диагоналей четырехугольника.

Так вот, оказывается, что это решение неверно. Во-первых, существуют конфигурации терминалов, для которых введение дополнительной точки (или нескольких точек) не приводит к минимизации длины дерева, построенного путем соединения отрезками соседних терминалов.

П

Пример. Для системы терминалов
$$ P_1=(0,2), P_2=(3,1), P_3=(5,1), P_4=(7,2) $$
минимальное дерево Штейнера является ломаной линией $ P_1P_2P_3P_4 $:

Ее длина $ 2+ sqrt{5}+sqrt{10} approx 7.398346 $. Сумма длин диагоналей четырехугольника равна $ sqrt{26}+sqrt{17} approx 9.222125 $.


Во-вторых, даже если добавление одной дополнительной точки приводит к уменьшению длины дерева, то добавление двух дополнительных точек может оказаться еще более выгодным!

П

Пример. Построить минимальное дерево Штейнера для системы терминалов
$$ P_1=(0,3), P_2=(0,0), P_3=(4,0), P_4=(4,3) , . $$

Решение. Будем пробовать последовательные варианты решения задачи. Если не добавлять дополнительных точек вообще, то эта задача относится к классу задач построения минимального покрывающего дерева1). В такой постановке решением рассматриваемого примера будет ломаная $ P_1P_2P_3P_4 $ длиной $ 3+4+3=10 $.

Если разрешено добавить одну дополнительную точку, то решением задачи, в соответствии с теоремой Фаньяно, будет система из двух диагоналей прямоугольника:

Тем не менее, выигрыша в длине дерева не получим: $ 5+5=10 $. Но если разрешено добавлять две дополнительных точки, то расположив их в $ S_1=left(frac{sqrt{3}}{2},frac{3}{2} right) $ и $ S_2=left(4-frac{sqrt{3}}{2},frac{3}{2} right) $ и построив следующую систему отрезков

получим суммарную длину равной $ 4+ 3sqrt{3} approx 9.196152 $.

Можно ли улучшить этот результат добавлением еще большего количества дополнительных точек? Ответ отрицателен: оказывается, что для произвольной конфигурации системы из четырех терминалов количество дополнительных точек, необходимых для решения задачи о минимальном дереве, никогда не превосходит двух.


В этом месте происходит расщепление двух задач: задачи о минимальном дереве Штейнера и задачи Ферма-Торричелли о поиске единственной точки плоскости, которая обеспечивает минимум суммы $ sum_{j=1}^n |PP_j| $. Последняя задача подробно обсуждается



ЗДЕСЬ.

Фундаментальные свойства дерева Штейнера

Для случая $ n=3 $ терминалов $ P_1,P_2,P_3 $, удовлетворяющих условиям теоремы ПУНКТА, решение задачи сводится к нахождению единственной точки треугольника $ P_1P_2P_3 $, а именно точки Ферма-Торричелли. В теории деревьев Штейнера эту точку принять называть также точкой Штейнера для множества $ {P_1,P_2,P_3} $.
Если же условие теоремы не выполняется, то решением задачи является ломаная из двух звеньев, соединяющая две вершины при острых углах треугольника с вершиной при тупом угле (величиной $ ge 2pi/3 $).

В общем случае $ n> 3 $ терминалов $ mathbb P= {P_1,dots,P_n} $ на плоскости задача о дереве Штейнера заключается в нахождении дополнительного конечного множества узловых точек2) $ mathbb S={S_1,dots,S_k}, kge 0 $ и множества прямолинейных отрезков, соединяющих эти дополнительные точки с терминалами из $ mathbb P $.

Фундаментальные свойства общего решения задачи формулируются в терминах теории графов.

Дерево $ mathbb U $ с вершинами $ mathbb P cup mathbb S $ и прямолинейными ребрами, соединяющими некоторые пары вершин, является деревом Штейнера на множестве $ mathbb P $ тогда и только тогда, когда оно удовлетворяет следующим условиям:


1.

$ mathbb U $ не имеет самопересечений;


2.

для каждой точки $ S_i $ количество ребер дерева $ mathbb U $, имеющих ее своим концом (называется также валентностью или степенью вершины графа) равно $ 3 $;


3.

валентность каждого терминала $ P_j $ не превосходит $ 3 $;


4.

каждая точка $ S_j $ является точкой Штейнера для треугольника, составленного из смежных с ней точек дерева $ mathbb U $ , т.е. непосредственно связанных ребрами дерева с точкой $ S_j $;


5.

$ 0 le k le n-2 $.

Точки $ S_i $ из множества $ mathbb S $ называются точками Штейнера для дерева Штейнера $ mathbb U $.

Для заданного множества терминалов $ mathbb P $ имеется лишь конечное число деревьев Штейнера на $ mathbb P $ и, по крайней мере, одно из них будет минимальным деревом Штейнера.
Полным деревом Штейнера3) на $ mathbb P $ называется дерево, удовлетворяющее условиям

1



4

и имеющее ровно $ k=n-2 $ точек Штейнера. Все терминалы в таком дереве имеют степень (валентность) $ 1 $ («являются листьями дерева»). Любое минимальное дерево Штейнера $ mathbb T $ может быть представлено в виде объединения полных деревьев Штейнера. Именно, найдется множество деревьев $ {mathbb T_{k}}_{k=1}^m $, такое что
$$ mathbb T = mathbb T_1 cup dots cup mathbb T_m ; $$
каждое $ mathbb T_{k} $ является полным деревом Штейнера для подмножества терминалов $ mathbb P_k $:
$$ mathbb P=mathbb P_1 cup dots cup mathbb P_k $$
и любая пара $ mathbb T_{k}, mathbb T_{ell} $ может иметь общим элементом разве что один терминал. Такое представление дерева $ mathbb T $ однозначно.

Четыре терминала: геометрия

Алгоритм, разобранный в приведенном ниже примере, был разработан Жергонном4) в 1810 г., и был переоткрыт Мелзаком в 1961 г.

П

Пример. Для терминалов

$$
P_1=(2,6), P_2= (1,1), P_3=(9,2), P_4=(6,7)
$$
построить дерево Штейнера в топологии $ begin{array}{c} P_1 \ P_2 end{array} S_1 S_2 begin{array}{c} P_4 \ P_3 end{array} $.

Решение. Построим сначала два равносторонних треугольника на сторонах $ P_1P_2 $ и $ P_3P_4 $ и внешних четырехугольнику $ P_1P_2P_3P_4 $:

Обозначим их третьи вершины $ Q_1 $ и $ Q_2 $ соответственно. Далее, построим описанные окружности для этих треугольников:

Проведем отрезок $ Q_1Q_2 $. Точки пересечения отрезка с окружностями и будут точками Штейнера.

Дерево Штейнера в данной топологии имеет вид

Его длина равна $ |Q_1Q_2| $.


Как изменяется топология дерева Штейнера при вариации параметров задачи, например, координат какого-либо из терминалов
см.



ЗДЕСЬ.

Четыре терминала: аналитика

§

Материалы настоящего пункта взяты из [4].

Будем предполагать, что терминалы $ {P_j}_{j=1}^4 $ пронумерованы так, что четырехугольник $ P_1P_2P_3P_4 $ является выпуклым, при его вершинах занумерованных в порядке против часовой стрелки.

Свойство выпуклости четырехугольника является необходимым условием существования полного дерева Штейнера.

Т

Теорема.
Положим

$$
begin{array}{lll}
tau_1 &= & 2, x_1 – x_2 -2, x_3 + x_4 +sqrt{3} (y_2- y_4), \
tau_2 & = & – x_1 +2, x_2 + x_3 -2, x_4 +sqrt{3} (y_3- y_1),
end{array}
$$
и
$$
eta_1=-frac{1}{sqrt{3}}(tau_1+2,tau_2), eta_2 = frac{1}{sqrt{3}}(2,tau_1+tau_2)
$$
Если все значения
$$
delta = -(x_1-x_3) eta_1 + (y_1-y_3) tau_1 ,
$$
$$
left{begin{array}{cc}
begin{array}{c}
delta_1 = (x_1-x_2) eta_2 – (y_1-y_2) tau_2, \
delta_2 = (x_1-x_2) eta_1 – (y_1-y_2) tau_1,
end{array}
&
begin{array}{c}
delta_3 = -(x_3-x_4) eta_2 + (y_3-y_4) tau_2, \
delta_4 = -(x_3-x_4) eta_1 + (y_3-y_4) tau_1
end{array}
end{array}
right.
$$
положительны, то существует дерево Штейнера в топологии
$ begin{array}{c} P_1 \ P_2 end{array} S_1 S_2 begin{array}{c} P_4 \ P_3 end{array} $.
Координаты точки $ S_1 $ следующие:
$$
x_{ast}=x_1 – frac{sqrt{3}}{2} cdot frac{delta_1 tau_1}{tau_1^2+tau_1 tau_2+ tau_2^2}, quad y_{ast}=y_1 – frac{sqrt{3}}{2} cdot frac{delta_1 eta_1}{tau_1^2+tau_1 tau_2+ tau_2^2} ,
$$
а точки $ S_2 $ —
$$
x_{ast ast}=x_3 + frac{sqrt{3}}{2} cdot frac{delta_3 tau_1}{tau_1^2+tau_1 tau_2+ tau_2^2}, quad
y_{ast ast}=y_3 + frac{sqrt{3}}{2} cdot frac{delta_3 eta_1}{tau_1^2+tau_1 tau_2+ tau_2^2} .
$$
Длина дерева равна
$$
d= sqrt{frac{tau_1^2+tau_1 tau_2+ tau_2^2}{3}} , .
$$

Доказательство формул может быть произведено аналитически. Существование дерева Штейнера в топологии
$ begin{array}{c} P_1 \ P_2 end{array} S_1 S_2 begin{array}{c} P_4 \ P_3 end{array} $ означает, что точки $ S_1 $ и $ S_2 $ доставляют
минимум целевой функции
$$ F(U_1,U_2)=|P_1U_1|+|P_2U_1|+ |U_1U_2| + |P_3U_2|+|P_4U_2| , . $$
Cтационарные точки этой функции должны удовлетворять системе из $ 4 $х уравнений относительно координат $ U_1=(x,y), U_2=(tilde x, tilde y) $:
$$
left{
begin{array}{lll}
displaystyle frac{partial F}{partial x} &= displaystyle frac{x-x_1}{sqrt{(x-x_1)^{2}+(y-y_1)^2}}+
frac{x-x_2}{sqrt{(x-x_2)^{2}+(y-y_2)^2}}+frac{x-tilde x}{sqrt{(x-tilde x)^{2}+(y-tilde y)^2}}&=0 \
displaystyle frac{partial F}{partial y} &= displaystyle frac{y-y_1}{sqrt{(x-x_1)^{2}+(y-y_1)^2}}+
frac{y-y_2}{sqrt{(x-x_2)^{2}+(y-y_2)^2}}+frac{y- tilde y}{sqrt{(x-tilde x)^{2}+(y- tilde y)^2}}&=0 \
displaystyle frac{partial F}{partial tilde x} &= displaystyle frac{tilde x-x_3}{sqrt{(tilde x-x_3)^{2}+(tilde y-y_3)^2}}+
frac{tilde x-x_4}{sqrt{(tilde x-x_4)^{2}+(tilde y-y_4)^2}}
+frac{tilde x-x}{sqrt{(x-tilde x)^{2}+(y- tilde y)^2}}&=0 \
displaystyle frac{partial F}{partial tilde y} &= displaystyle frac{tilde y-y_3}{sqrt{(tilde x-x_3)^{2}+(tilde y-y_3)^2}}+
frac{tilde y-y_4}{sqrt{(tilde x-x_4)^{2}+(tilde y-y_4)^2}}
+frac{tilde y-y}{sqrt{(x-tilde x)^{2}+(y- tilde y)^2}}&=0, .
end{array}
right.
$$
Последнюю можно записать в векторной форме
$$
begin{array}{c}
frac{U_1-P_1}{|U_1P_1|}+frac{U_1-P_2}{|U_1P_2|}+frac{U_1-U_2}{|U_1U_2|}=mathbb O_{2times 0} \
frac{U_2-P_3}{|U_2P_3|}+frac{U_2-P_4}{|U_2P_4|}+frac{U_2-U_1}{|U_1U_2|}=mathbb O_{2times 0}
end{array}
$$
если считать $ U_1,U_2, {P_j}_{j=1}^4 $ векторами, заданными своими координатами.

Такая запись позволяет подтвердить свойство

4

из списка фундаментальных свойств дерева Штейнера: если существует решение этой системы, то точка $ U_1 $ обязана быть точкой Штейнера
(Ферма-Торричелли) для множества $ {P_1,P_2,U_2 } $ — первое из этих векторных уравнений уже встречалось нам в доказательстве теоремы о дереве Штейнера для трех терминалов. На том же основании, делаем вывод, что $ U_2 $ обязана быть точкой Штейнера
(Ферма-Торричелли) для множества $ {P_3,P_4,U_1 } $.


Необходимость условий $ delta_1>0 $ и $ delta_3>0 $ из теоремы становится очевидной из вида формул для координат точек Штейнера. Действительно, эти величины отвечают за несовпадение $ S_1 $ и $ S_2 $ с терминалами $ P_1 $ и $ P_3 $ соответственно. Можно привести эквивалентные представления координат точек $ S_{1} $ и $ S_{2} $,
«привязав» их к терминалам $ P_2 $ и $ P_4 $. Отсюда будет следовать и необходимость условий $ delta_2>0 $ и $ delta_4>0 $. Условие $ delta>0 $ не такое очевидное, но завязано на оценку расстояния между точками Штейнера. Именно:
$$ |S_1S_2|=frac{delta}{sqrt{tau_1^2+tau_1 tau_2+ tau_2^2}} , . $$
И положительность $ delta $ гарантирует несовпадение точек Штейнера, т.е. невырожденность топологии $ begin{array}{c} P_1 \ P_2 end{array} S_1 S_2 begin{array}{c} P_4 \ P_3 end{array} $ полного дерева Штейнера.

П

Пример. Найти точные координаты точек и длину дерева Штейнера в топологии $ begin{array}{c} P_1 \ P_2 end{array} S_1 S_2 begin{array}{c} P_4 \ P_3 end{array} $ для примера из предыдущего пункта:

$$
P_1=(2,6), P_2= (1,1), P_3=(9,2), P_4=(6,7) , .
$$

Решение. Величины $ delta, delta_1,dots,delta_4 $ из формулировки теоремы
$$
delta=62+11sqrt{3},
$$
$$
delta_1=-1+13sqrt{3}, delta_2=59+35sqrt{3}, delta_3=63+ 41sqrt{3}, delta_4=3+ 15sqrt{3}
$$
все положительны. Дерево Штейнера в указанной топологии существует. Далее,
$$ tau_1^2+tau_1 tau_2 + tau_2^2 = 345+186sqrt{3} $$
и, следовательно, длина дерева Штейнера равна
$$
d=sqrt{115+62sqrt{3}} approx 14.912651 , .
$$
Точки Штейнера:
$$
S_1= left(frac{571+323sqrt{3}}{2(115+62sqrt{3})}, frac{3609+2051sqrt{3}}{6(115+62sqrt{3})}right)=left(frac{5587}{3386}+frac{1743}{3386}sqrt{3},
frac{11183}{3386}+frac{12107}{10158}sqrt{3} right)
$$
$$
approx ( 2.541631, 5.367094)
$$
и
$$
S_2 = left(frac{3(441+227sqrt{3})}{2(115+62sqrt{3})}, frac{1349+747sqrt{3}}{2(115+62sqrt{3})} right)= left(frac{25479}{3386}-frac{3711}{3386}sqrt{3},
frac{16193}{3386}+frac{2267}{3386}sqrt{3}right) $$
$$ approx ( 5.626509, 5.941984) , . $$



Достаточно просто длина дерева Штейнера в топологии $ begin{array}{c} P_1 \ P_2 end{array} S_1 S_2 begin{array}{c} P_4 \ P_3 end{array} $ (в случае его существования) выражается через координаты терминалов если перевести эту задачу на комплексную плоскость. Именно [9]:
$$
d= | varepsilon_2(z_3-z_1)+ varepsilon_1(z_4-z_2) | , mbox{ при } {z_j:=x_j+ mathbf i y_j }_{j=1}^4,
varepsilon_{1,2}=-frac{1}{2} pm mathbf i frac{sqrt{3}}{2} , .
$$

Физические модели

О равновесии системы стержней

Пусть имеется некоторое дерево, соединяющее терминалы $ P_{j} $. Будем считать ребра графа жесткими стержнями, сязанными между собой шарнирными соединениями.
В направление каждого из входящих в терминал $ P_{j} $ ребер графа приложим силы единичной величины (направляющие векторы). Будет ли находиться эта система в равновесии?

Т

Теорема [Максвелл]. Для каждого терминала $ P_j $ минимального дерева Штейнера обозначим через $ {mathbf e}_j $ сумму единичных векторов, задающих входящие в эту вершину ребра дерева. Тогда система стержней будет находиться в равновесии, а длина этого дерева вычисляется по формуле

$$ | mathbf L |= sum_{j} langle overrightarrow{TP_j}, mathbf e_j rangle , $$
здесь $ langle rangle $ означает скалярное произведение векторов, а точка $ T_{} $ может быть взята произвольной.

Расчет длины будет инвариантен относительно любого выбора точки $ T_{} $. Еще одно замечание касается того обстоятельства, что в теореме составляется сумма только по терминалам дерева Штейнера, с пропуском точек Штейнера. Это упрощение оправдано тем, что в каждой из этих точек входящие в нее ребра расположены под углами $ 2pi/3 $ и суммирование трех направляющих векторов даст нулевой вектор.

П

Пример. Для терминалов

$$ P_1=(2,1) , P_2=(1,6) , P_3=(8,7) , P_4=(6,1) $$
сумма сил из теоремы:
$$ langle overrightarrow{OP_1}, mathbf{e}_1 rangle+ langle overrightarrow{OP_2}, mathbf{e}_2 rangle + langle overrightarrow{OP_3}, mathbf{e}_3 rangle + langle overrightarrow{OP_4}, mathbf{e}_4 rangle , ; $$
схема их приложения изображена на рисунке

Для терминалов
$$ P_1=(2,1) , P_2=(1,6) , P_3=(8,7) , P_4=(6,4) $$
сумма сил из теоремы:
$$
langle overrightarrow{OP_1}, mathbf{e}_1 rangle + langle overrightarrow{OP_2}, mathbf{e}_2 rangle + langle overrightarrow{OP_3}, mathbf{e}_3 rangle + langle overrightarrow{OP_4}, mathbf{e}_{41}+mathbf{e}_{42} rangle .
$$

Утверждается, что суммы равны длинам соответствующих минимальных деревьев Штейнера.



Источники

Берн М.У., Грэм Р.Л. Поиск кратчайших путей. Scientific American.1989, N 3, cc. 64-70

[1]. Протасов В.Ю. Максимумы и минимумы в геометрии. М.МЦНМО. 2005

[2]. Brazil M., Graham R.I., Thomas D.A., Zachariasen M. On the history of the Euclidean Steiner tree problem. Arch. Hist. Exact Sci., 2014, Vol. 68, P.327-354

[3]. Gilbert E.N., Pollak H.O. Steiner minimal trees. SIAM J. Appl. Math., 1968. Vol. 16, N 1, pp. 1-29

[4]. Uteshev A.Yu. Some Analytics for Steiner Minimal Tree Problem for Four Terminals. 2015. arXiv:1505.03564

[5]. Uteshev A.Yu. Analytical Solution for the Generalized Fermat-Torricelli Problem. Amer. Math. Monthly, 2014, Vol. 121, No 4, P. 318-331. Текст (pdf)



ЗДЕСЬ

[7]. Maxwell J.C. On the calculation of the equilibrium and stiffness of frames. Philos. Mag., 1864, V. 27 , pp.294-299.

[8]. Melzak Z.A. On the problem of Steiner. Can. Math. Bull., 1961, V. 4, pp. 143–148

[9]. Uteshev A.Yu., Semenova E.A. Length of a Full Steiner Tree as a Function of Terminal Coordinates.
2021. arXiv:2102.03303

Добавить комментарий