Зада́ча Ште́йнера о минима́льном де́реве состоит в поиске кратчайшей сети, соединяющей заданный конечный набор точек плоскости. Задача получила своё название в честь Якоба Штейнера (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] обобщение задачи Ферма, заменив три точки на произвольное конечное число. А именно, их задача состоит в описании связных плоских графов наименьшей длины, проходящих через данное конечное множество точек плоскости.
В 1941 году вышла популярная книжка «Что такое математика?»[9] Р. Куранта и Г. Роббинса, в которой авторы писали следующее:
Очень простая и вместе с тем поучительная проблема была изучена в начале прошлого столетия знаменитым берлинским геометром Якобом Штейнером. Требуется соединить три деревни A {\displaystyle A} , B {\displaystyle B} , C {\displaystyle C} системой дорог таким образом, чтобы их общая протяженность была минимальной.Было бы естественно обобщить эту проблему на случай n {\displaystyle n} заданных точек A 1 , A 2 , … , A n {\displaystyle A_{1},A_{2},\ldots ,A_{n}} следующим образом: требуется найти в плоскости такую точку P {\displaystyle P} , чтобы сумма расстояний a 1 + a 2 + … + a n {\displaystyle a_{1}+a_{2}+\ldots +a_{n}} (где a i {\displaystyle a_{i}} обозначает расстояние P A i {\displaystyle PA_{i}} ) обращалась в минимум. … Эта обобщенная проблема, также изученная Штейнером, не ведет к интересным результатам. В данном случае мы имеем дело с поверхностным обобщением, подобных которому немало встречается в математической литературе. Чтобы получить действительно достойное внимания обобщение проблемы Штейнера, приходится отказаться от поисков одной-единственной точки P {\displaystyle P} . Вместо того поставим задачей построить «уличную сеть» или «сеть дорог между данными деревнями», обладающую минимальной общей длиной.[9]
Эта книга завоевала заслуженную популярность, в результате чего и задачу Ферма, и задачу Ярника—Кесслера сейчас принято называть проблемой Штейнера.
Эффективного (сложность выражается функцией, ограниченной сверху некоторым полиномом от параметра задачи, в данном случае число вершин графа) алгоритма, дающего точное решение проблемы Штейнера, не существует при условии неравенства классов P и NP, так как проблема является NP-полной. Доказать это несложно через редукцию к задаче о вершинном покрытии.
Несмотря на ограничения, задачу можно решить приближенно, что и делает алгоритм Коу, Марковского и Бергмана. Идея такого подхода заключается в том, что нижняя граница стоимости соединения двух вершин (терминалов) - кратчайший путь между ними, а множество путей минимальной стоимости, соединяющих все терминалы дает 2-аппроксимированное решение, как будет доказано далее. Таким образом алгоритм будет выглядеть следующим образом:
Доказательство фактора аппроксимации сводится к оценке результата алгоритма и точного решения: c ( S D ) ⩽ 2 ⋅ c ( S ∗ ) {\displaystyle c(S_{D})\leqslant 2\cdot c(S^{*})} . Если удвоить все рёбра оптимального решения, мы получим цикл Z {\displaystyle Z} , содержащий все вершины T {\displaystyle T} . Z {\displaystyle Z} же определяет остовное дерево T Z {\displaystyle T_{Z}} на графе G D {\displaystyle G_{D}} , состоящее только из терминальных вершин. Таким образом c ( S D ) ⩽ c ( T Z ) ⩽ c ( Z ) = 2 ⋅ c ( S ∗ ) {\displaystyle c(S_{D})\leqslant c(T_{Z})\leqslant c(Z)=2\cdot c(S^{*})} . В качестве алгоритма поиска минимальных остовных деревьев можно использовать эффективный алгоритм Краскала.[10]
Однако такая оценка аппроксимации не является пределом и возможно улучшить алгоритм, достигнув оценки 11 / 6 {\displaystyle 11/6} .
Приведем несколько современных формулировок проблемы Штейнера. В качестве объемлющего пространства вместо евклидовой плоскости рассмотрим произвольное метрическое пространство.
Пусть ( X , ρ ) {\displaystyle (X,\rho )} — метрическое пространство и G = ( V , E ) {\displaystyle G=(V,E)} — граф на X, то есть, V ⊂ X {\displaystyle V\subset X} . Для каждого такого графа определены длины его рёбер e = { u , v } ∈ E {\displaystyle e=\{u,v\}\in E} как расстояния ρ ( u , v ) {\displaystyle \rho (u,v)} между их вершинами, а также длина ρ ( G ) {\displaystyle \rho (G)} самого графа G {\displaystyle G} как сумма длин всех его рёбер.
Если M {\displaystyle M} — конечное подмножество X {\displaystyle X} , а G = ( V , E ) {\displaystyle G=(V,E)} — связный граф на X {\displaystyle X} , для которого M ⊂ V {\displaystyle M\subset V} , то G {\displaystyle G} называется графом, соединяющим M {\displaystyle M} . При этом граф G {\displaystyle G} , соединяющий M {\displaystyle M} , минимально возможной длины ρ ( G ) {\displaystyle \rho (G)} является деревом, которое называется минимальным деревом Штейнера на M {\displaystyle M} . Именно изучению таких деревьев и посвящена одна из версий проблемы Штейнера.
Отметим, что минимальные деревья Штейнера существуют не всегда. Тем не менее, точная нижняя грань величин ρ ( G ) {\displaystyle \rho (G)} по всем связным графам, соединяющим M {\displaystyle M} , всегда существует, называется длиной минимального дерева Штейнера на M {\displaystyle M} и обозначается через smt ( M ) {\displaystyle \operatorname {smt} (M)} .
Если ( X , ρ ) {\displaystyle (X,\rho )} — стандартная евклидова плоскость, то есть расстояние ρ {\displaystyle \rho } порождается нормой ‖ ( x , y ) ‖ = x 2 + y 2 {\displaystyle \|(x,y)\|={\sqrt {x^{2}+y^{2}}}} , то получаем классическую проблему Штейнера, сформулированную Ярником и Кесслером (см. выше).
Если ( X , ρ ) {\displaystyle (X,\rho )} — манхэттенская плоскость, то есть расстояние ρ {\displaystyle \rho } порождается нормой ‖ ( x , y ) ‖ = | x | + | y | {\displaystyle \|(x,y)\|=|x|+|y|} , то получает прямоугольную проблему Штейнера, одним из приложений которой является проектирование разводок микросхем[11]. Более современные разводки моделируются метрикой, порожденной λ-нормой (единичный круг — правильный 2λ-угольник; в этих терминах манхеттенская норма является 2-нормой).
Если в качестве X {\displaystyle X} берётся сфера (приблизительно моделирующая поверхность Земли), а за ρ ( a , b ) {\displaystyle \rho (a,b)} — длина кратчайшей из двух дуг большой окружности, высекаемой из сферы X {\displaystyle X} плоскостью, проходящей через a {\displaystyle a} , b {\displaystyle b} и центр сферы, то получается разновидность транспортной задачи: требуется соединить заданный набор пунктов (городов, предприятий, абонентов и т. д.) кратчайшей коммуникационной сетью (дорог, трубопроводов, телефонных линий и т. д.), минимизировав затраты на строительство (предполагается, что затраты пропорциональны длине сети).
Если в качестве X {\displaystyle X} берётся множество всех слов над некоторым алфавитом, а в качестве ρ ( a , b ) {\displaystyle \rho (a,b)} — расстояние Левенштейна, то получается вариант проблемы Штейнера, который широко используется в биоинформатике, в частности, для построения эволюционного дерева.
Если в качестве X {\displaystyle X} берётся множество вершин V {\displaystyle V} связного графа G = ( V , E ) {\displaystyle G=(V,E)} , а в качестве ρ {\displaystyle \rho } — функция расстояния, порожденная некоторой весовой функцией ω : E → R {\displaystyle \omega \colon E\to \mathbb {R} } , то получается проблема Штейнера в графах. Частным случаем этой проблемы (когда заданное множество совпадает с множеством всех вершин, M = X {\displaystyle M=X} ) является задача построения минимального остовного дерева.
Пусть ∂ G {\displaystyle \partial G} — некоторое подмножество множества V {\displaystyle V} вершин графа G = ( V , E ) {\displaystyle G=(V,E)} , содержащее все вершины степени 1 и 2. Пара ( G , ∂ G ) {\displaystyle (G,\partial G)} называется графом с границей ∂ G {\displaystyle \partial G} . Если G {\displaystyle G} — связный граф, и φ : ∂ G → X {\displaystyle \varphi \colon \partial G\to X} — некоторое отображение в метрическое пространство ( X , ρ ) {\displaystyle (X,\rho )} , то каждое отображение Γ : G → X {\displaystyle \Gamma \colon G\to X} , ограничение которого на ∂ G {\displaystyle \partial G} совпадает с φ {\displaystyle \varphi } , называется сетью типа ( G , ∂ G ) {\displaystyle (G,\partial G)} с границей φ {\displaystyle \varphi } в метрическом пространстве ( X , ρ ) {\displaystyle (X,\rho )} . Ограничение сети Γ {\displaystyle \Gamma } на вершины и ребра графа G {\displaystyle G} называются соответственно вершинами и ребрами этой сети. Длиной ребра Γ : { u , v } → X {\displaystyle \Gamma \colon \{u,v\}\to X} сети Γ {\displaystyle \Gamma } называется величина ρ ( Γ ( u ) , Γ ( v ) ) {\displaystyle \rho {\bigl (}\Gamma (u),\Gamma (v){\bigr )}} , а длиной ρ ( Γ ) {\displaystyle \rho (\Gamma )} сети Γ {\displaystyle \Gamma } — сумма длин всех её ребер.
Обозначим через [ G , φ ] {\displaystyle [G,\varphi ]} множество всех сетей типа ( G , ∂ G ) {\displaystyle (G,\partial G)} с границей φ {\displaystyle \varphi } . Сеть из [ G , φ ] {\displaystyle [G,\varphi ]} , имеющая наименьшую возможную длину, называется минимальной параметрической сетью типа ( G , ∂ G ) {\displaystyle (G,\partial G)} с границей φ {\displaystyle \varphi } .
Отметим, что, как и в случае минимальных деревьев Штейнера, минимальная параметрическая сеть существует не всегда. Тем не менее, точная нижняя грань величин ρ ( G ) {\displaystyle \rho (G)} по всем сетям из [ G , φ ] {\displaystyle [G,\varphi ]} , всегда существует, называется длиной минимальной параметрической сети и обозначается через mpn [ G , φ ] {\displaystyle \operatorname {mpn} [G,\varphi ]} .
Если M {\displaystyle M} — конечное подмножество X {\displaystyle X} , а φ {\displaystyle \varphi } отображает ∂ G {\displaystyle \partial G} на все M {\displaystyle M} , то есть im ( φ ) = M {\displaystyle \operatorname {im} (\varphi )=M} , то говорят, что сеть Γ ∈ [ G , φ ] {\displaystyle \Gamma \in [G,\varphi ]} соединяет M {\displaystyle M} . Легко видеть, что smt ( M ) = inf mpn [ G , φ ] {\displaystyle \operatorname {smt} (M)=\inf \operatorname {mpn} [G,\varphi ]} по всем [ G , φ ] {\displaystyle [G,\varphi ]} , для которых im ( φ ) = M {\displaystyle \operatorname {im} (\varphi )=M} . Таким образом, общая задача Штейнера сводится к изучению минимальных параметрических сетей и выбора из них кратчайших.
Это естественное обобщение проблемы Штейнера было предложено А. О. Ивановым и А. А. Тужилиным[12]. Пусть M {\displaystyle M} — произвольное конечное множество и G = ( V , E ) {\displaystyle G=(V,E)} — некоторый связный граф. Будем говорить, что G {\displaystyle G} соединяет M {\displaystyle M} , если M ⊂ V {\displaystyle M\subset V} . Пусть теперь M = ( M , ρ ) {\displaystyle {\mathcal {M}}=(M,\rho )} — конечное псевдометрическое пространство (где, в отличие от метрического пространства, расстояния между разными точками могут быть равны нулю), G = ( V , E ) {\displaystyle G=(V,E)} — связный граф, соединяющий M {\displaystyle M} , и ω : E → R + {\displaystyle \omega \colon E\to {\mathbb {R} }_{+}} — некоторое отображение в неотрицательные вещественные числа, называемое обычно весовой функцией и порождающее взвешенный граф G = ( G , ω ) {\displaystyle {\mathcal {G}}=(G,\omega )} . Функция ω {\displaystyle \omega } задает на V {\displaystyle V} псевдометрику d ω {\displaystyle d_{\omega }} , а именно, расстоянием между вершинами графа G {\displaystyle {\mathcal {G}}} назовем наименьший из весов путей, соединяющих эти вершины. Если для любых точек p {\displaystyle p} и q {\displaystyle q} из M {\displaystyle M} выполняется ρ ( p , q ) ≤ d ω ( p , q ) {\displaystyle \rho (p,q)\leq d_{\omega }(p,q)} , то взвешенный граф G {\displaystyle {\mathcal {G}}} называется заполнением пространства M {\displaystyle {\mathcal {M}}} , а граф G {\displaystyle G} — типом этого заполнения. Число mf ( M ) {\displaystyle \operatorname {mf} ({\mathcal {M}})} , равное inf ω ( G ) {\displaystyle \inf \omega ({\mathcal {G}})} по всем заполнениям G {\displaystyle {\mathcal {G}}} пространства M {\displaystyle {\mathcal {M}}} , назовем весом минимального заполнения, а заполнение G {\displaystyle {\mathcal {G}}} , для которого ω ( G ) = mf ( M ) {\displaystyle \omega ({\mathcal {G}})=\operatorname {mf} ({\mathcal {M}})} , — минимальным заполнением. Основная задача — научиться вычислять mf ( M ) {\displaystyle \operatorname {mf} ({\mathcal {M}})} и описывать минимальные заполнения.
{{citation}}