Зада́ча Ште́йнера о минима́льном де́реве состоит в поиске кратчайшей сети, соединяющей заданный конечный набор точек плоскости.
Задача получила своё название в честь Якоба Штейнера (1796—1863).
Альтернативное условие задачи заключается в поиске минимального подграфа, соединяющего конечное число заданных вершин (терминалов) и образующего таким образом сеть кратчайших путей между этими вершинами.
История этой задачи восходит ко времени Пьера Ферма (1601—1665), который, после изложения своего метода исследования минимумов и максимумов, написал[2]:
Qui hanc methodum non probaverit, ei proponitur:
Datis tribus punctis, quartum reperire, a quo si ducantur tres rectae ad data puncta, summa trium harum rectarum sit minima quantitas.
Тот же, кто этот метод не оценил, пусть он решит [следующую задачу]: для заданных трех точек найти такую четвертую, что если из неё провести три отрезка в данные точки, то сумма этих трех отрезков даст наименьшую величину.
Эта задача была частично решена Э. Торричелли[3][4]
(1608—1647) и Б. Кавальери[5]
(1598—1647), учениками Б. Кастелли (1577—1644), затем найденная ими конструкция была модифицирована Т. Симпсоном[6]
(1710—1761) и окончательно уточнена Ф. Хейненом[7]
и Ж. Бертраном (1822—1900). В результате было получено геометрическое построение точки S, ныне называемой точкой Ферма (иногда точкой Торричелли), которая для трёх заданных точек A, B и C даёт минимально возможную сумму длин отрезков AS, BS, CS.
В 1934 годуВ. Ярник и O. Кесслер сформулировали[8]
обобщение задачи Ферма, заменив три точки на произвольное конечное число. А именно, их задача состоит в описании связных плоских графов наименьшей длины, проходящих через данное конечное множество точек плоскости.
Очень простая и вместе с тем поучительная проблема была изучена в начале прошлого столетия знаменитым берлинским геометром Якобом Штейнером. Требуется соединить три деревни , , системой дорог таким образом, чтобы их общая протяженность была минимальной. Было бы естественно обобщить эту проблему на случай заданных точек следующим образом: требуется найти в плоскости такую точку , чтобы сумма расстояний (где обозначает расстояние ) обращалась в минимум. … Эта обобщенная проблема, также изученная Штейнером, не ведет к интересным результатам. В данном случае мы имеем дело с поверхностным обобщением, подобных которому немало встречается в математической литературе. Чтобы получить действительно достойное внимания обобщение проблемы Штейнера, приходится отказаться от поисков одной-единственной точки . Вместо того поставим задачей построить «уличную сеть» или «сеть дорог между данными деревнями», обладающую минимальной общей длиной.[9]
Эта книга завоевала заслуженную популярность, в результате чего и задачу Ферма, и задачу Ярника—Кесслера сейчас принято называть проблемой Штейнера.
Алгоритм решения
Эффективного (сложность выражается функцией, ограниченной сверху некоторым полиномом от параметра задачи, в данном случае число вершин графа) алгоритма, дающего точное решение проблемы Штейнера, не существует при условии неравенства классов P и NP, так как проблема является NP-полной. Доказать это несложно через редукцию к задаче о вершинном покрытии.
Несмотря на ограничения, задачу можно решить приближенно, что и делает алгоритм Коу, Марковского и Бергмана. Идея такого подхода заключается в том, что нижняя граница стоимости соединения двух вершин (терминалов) - кратчайший путь между ними, а множество путей минимальной стоимости, соединяющих все терминалы дает 2-аппроксимированное решение, как будет доказано далее. Таким образом алгоритм будет выглядеть следующим образом:
Даны граф , множество терминалов и функция стоимости .
Найди клику и такую, что .
Найди минимальное остовное дерево графа .
Для каждого ребра определи как путь длины в графе .
Вычисли подграф .
Найди минимальное оставное дерево подграфа .
Удали из листья, не содержащиеся в .
Выведи результат.
Доказательство фактора аппроксимации сводится к оценке результата алгоритма и точного решения: . Если удвоить все рёбра оптимального решения, мы получим цикл , содержащий все вершины . же определяет остовное дерево на графе , состоящее только из терминальных вершин. Таким образом . В качестве алгоритма поиска минимальных остовных деревьев можно использовать эффективный алгоритм Краскала.[10]
Однако такая оценка аппроксимации не является пределом и возможно улучшить алгоритм, достигнув оценки .
Основные определения
Приведем несколько современных формулировок проблемы Штейнера. В качестве объемлющего пространства вместо евклидовой плоскости рассмотрим произвольное метрическое пространство.
Минимальные деревья Штейнера
Пусть — метрическое пространство и — граф на X, то есть, . Для каждого такого графа определены длины его рёбер как расстояния между их вершинами, а также длина самого графа как сумма длин всех его рёбер.
Если — конечное подмножество , а — связный граф на , для которого , то называется графом, соединяющим. При этом граф , соединяющий , минимально возможной длины является деревом, которое называется минимальным деревом Штейнера на. Именно изучению таких деревьев и посвящена одна из версий проблемы Штейнера.
Отметим, что минимальные деревья Штейнера существуют не всегда. Тем не менее, точная нижняя грань величин по всем связным графам, соединяющим , всегда существует, называется длиной минимального дерева Штейнера на и обозначается через .
Примеры
Если — стандартная евклидова плоскость, то есть расстояние порождается нормой , то получаем классическую проблему Штейнера, сформулированную Ярником и Кесслером (см. выше).
Если — манхэттенская плоскость, то есть расстояние порождается нормой , то получает прямоугольную проблему Штейнера, одним из приложений которой является проектирование разводок микросхем[11]. Более современные разводки моделируются метрикой, порожденной λ-нормой (единичный круг — правильный 2λ-угольник; в этих терминах манхеттенская норма является 2-нормой).
Если в качестве берётся сфера (приблизительно моделирующая поверхность Земли), а за — длина кратчайшей из двух дуг большой окружности, высекаемой из сферы плоскостью, проходящей через , и центр сферы, то получается разновидность транспортной задачи: требуется соединить заданный набор пунктов (городов, предприятий, абонентов и т. д.) кратчайшей коммуникационной сетью (дорог, трубопроводов, телефонных линий и т. д.), минимизировав затраты на строительство (предполагается, что затраты пропорциональны длине сети).
Если в качестве берётся множество всех слов над некоторым алфавитом, а в качестве — расстояние Левенштейна, то получается вариант проблемы Штейнера, который широко используется в биоинформатике, в частности, для построения эволюционного дерева.
Если в качестве берётся множество вершин связного графа , а в качестве — функция расстояния, порожденная некоторой весовой функцией , то получается проблема Штейнера в графах. Частным случаем этой проблемы (когда заданное множество совпадает с множеством всех вершин, ) является задача построения минимального остовного дерева.
Минимальные параметрические сети
Пусть — некоторое подмножество множества вершин графа , содержащее все вершины степени 1 и 2. Пара называется графом с границей. Если — связный граф, и — некоторое отображение в метрическое пространство , то каждое отображение , ограничение которого на совпадает с , называется сетью типас границей в метрическом пространстве . Ограничение сети на вершины и ребра графа называются соответственно вершинами и ребрами этой сети. Длиной ребрасети называется величина , а длинойсети — сумма длин всех её ребер.
Обозначим через множество всех сетей типа с границей . Сеть из , имеющая наименьшую возможную длину, называется минимальной параметрической сетью типас границей.
Отметим, что, как и в случае минимальных деревьев Штейнера, минимальная параметрическая сеть существует не всегда. Тем не менее, точная нижняя грань величин по всем сетям из , всегда существует, называется длиной минимальной параметрической сети и обозначается через .
Если — конечное подмножество , а отображает на все , то есть , то говорят, что сеть соединяет. Легко видеть, что по всем , для которых . Таким образом, общая задача Штейнера сводится к изучению минимальных параметрических сетей и выбора из них кратчайших.
Одномерные минимальные заполнения в смысле Громова
Это естественное обобщение проблемы Штейнера было предложено А. О. Ивановым и А. А. Тужилиным[12].
Пусть — произвольное конечное множество и — некоторый связный граф. Будем говорить, что соединяет , если . Пусть теперь — конечное псевдометрическое пространство (где, в отличие от метрического пространства, расстояния между разными точками могут быть равны нулю), — связный граф, соединяющий , и — некоторое отображение в неотрицательные вещественные числа, называемое обычно весовой функцией и порождающее взвешенный граф. Функция задает на псевдометрику , а именно, расстоянием между вершинами графа назовем наименьший из весов путей, соединяющих эти вершины. Если для любых точек и из выполняется , то взвешенный граф называется заполнением пространства , а граф — типом этого заполнения. Число , равное по всем заполнениям пространства , назовем весом минимального заполнения, а заполнение , для которого , — минимальным заполнением. Основная задача — научиться вычислять и описывать минимальные заполнения.
↑Fermat P. de (1643), Ed. H.Tannery (ed.), "Oeuvres", vol. 1, Paris 1891, Supplement: Paris 1922, p. 153{{citation}}: Википедия:Обслуживание CS1 (location) (ссылка) Википедия:Обслуживание CS1 (числовые имена: authors list) (ссылка)
↑G. Loria, G. Vassura (1919), Opere de Evangelista Torriceli, vol. 1, pp. 79–97
↑J. Krarup, S. Vajda. On Torricelli's geometrical solution to a problem of Fermat (англ.) // IMA J. Math. Appl. Bus. Indust. : journal. — 1997. — Vol. 8, no. 3. — P. 215—224. — doi:10.1093/imaman/8.3.215.