Задача Штейнера о минимальном дереве

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Проблема Штейнера»)
Перейти к навигации Перейти к поиску
Задача Штейнера о минимальном дереве
Названо в честь Якоб Штейнер
Вычислительная сложность NP-полная задача[1]
Логотип Викисклада Медиафайлы на Викискладе
Минимальное дерево Штейнера для точек A, B и C, где S — точка Ферма треугольника ABC.

Задача Штейнера о минимальном дереве состоит в поиске кратчайшей сети, соединяющей заданный конечный набор точек плоскости. Задача получила своё название в честь Якоба Штейнера (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] Р. Куранта и Г. Роббинса, в которой авторы писали следующее:

Очень простая и вместе с тем поучительная проблема была изучена в начале прошлого столетия знаменитым берлинским геометром Якобом Штейнером. Требуется соединить три деревни , , системой дорог таким образом, чтобы их общая протяженность была минимальной.
Было бы естественно обобщить эту проблему на случай заданных точек следующим образом: требуется найти в плоскости такую точку , чтобы сумма расстояний (где обозначает расстояние ) обращалась в минимум. … Эта обобщенная проблема, также изученная Штейнером, не ведет к интересным результатам. В данном случае мы имеем дело с поверхностным обобщением, подобных которому немало встречается в математической литературе. Чтобы получить действительно достойное внимания обобщение проблемы Штейнера, приходится отказаться от поисков одной-единственной точки . Вместо того поставим задачей построить «уличную сеть» или «сеть дорог между данными деревнями», обладающую минимальной общей длиной.[9]

Эта книга завоевала заслуженную популярность, в результате чего и задачу Ферма, и задачу Ярника—Кесслера сейчас принято называть проблемой Штейнера.

Алгоритм решения[править | править код]

Эффективного (сложность выражается функцией, ограниченной сверху некоторым полиномом от параметра задачи, в данном случае число вершин графа) алгоритма, дающего точное решение проблемы Штейнера, не существует при условии неравенства классов P и NP, так как проблема является NP-полной. Доказать это несложно через редукцию к задаче о вершинном покрытии.

Несмотря на ограничения, задачу можно решить приближенно, что и делает алгоритм Коу, Марковского и Бергмана. Идея такого подхода заключается в том, что нижняя граница стоимости соединения двух вершин (терминалов) - кратчайший путь между ними, а множество путей минимальной стоимости, соединяющих все терминалы дает 2-аппроксимированное решение, как будет доказано далее. Таким образом алгоритм будет выглядеть следующим образом:

  1. Даны граф , множество терминалов и функция стоимости .
  2. Найди клику и такую, что .
  3. Найди минимальное остовное дерево графа .
  4. Для каждого ребра определи как путь длины в графе .
  5. Вычисли подграф .
  6. Найди минимальное оставное дерево подграфа .
  7. Удали из листья, не содержащиеся в .
  8. Выведи результат.

Доказательство фактора аппроксимации сводится к оценке результата алгоритма и точного решения: . Если удвоить все рёбра оптимального решения, мы получим цикл , содержащий все вершины . же определяет остовное дерево на графе , состоящее только из терминальных вершин. Таким образом . В качестве алгоритма поиска минимальных остовных деревьев можно использовать эффективный алгоритм Краскала.[10]

Однако такая оценка аппроксимации не является пределом и возможно улучшить алгоритм, достигнув оценки .

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

Приведем несколько современных формулировок проблемы Штейнера. В качестве объемлющего пространства вместо евклидовой плоскости рассмотрим произвольное метрическое пространство.

Минимальные деревья Штейнера[править | править код]

Пусть  — метрическое пространство и  — граф на X, то есть, . Для каждого такого графа определены длины его рёбер как расстояния между их вершинами, а также длина самого графа как сумма длин всех его рёбер.

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

Отметим, что минимальные деревья Штейнера существуют не всегда. Тем не менее, точная нижняя грань величин по всем связным графам, соединяющим , всегда существует, называется длиной минимального дерева Штейнера на и обозначается через .

Примеры

Если  — стандартная евклидова плоскость, то есть расстояние порождается нормой , то получаем классическую проблему Штейнера, сформулированную Ярником и Кесслером (см. выше).

Если  — манхэттенская плоскость, то есть расстояние порождается нормой , то получает прямоугольную проблему Штейнера, одним из приложений которой является проектирование разводок микросхем[11]. Более современные разводки моделируются метрикой, порожденной λ-нормой (единичный круг — правильный 2λ-угольник; в этих терминах манхеттенская норма является 2-нормой).

Если в качестве берётся сфера (приблизительно моделирующая поверхность Земли), а за  — длина кратчайшей из двух дуг большой окружности, высекаемой из сферы плоскостью, проходящей через , и центр сферы, то получается разновидность транспортной задачи: требуется соединить заданный набор пунктов (городов, предприятий, абонентов и т. д.) кратчайшей коммуникационной сетью (дорог, трубопроводов, телефонных линий и т. д.), минимизировав затраты на строительство (предполагается, что затраты пропорциональны длине сети).

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

Если в качестве берётся множество вершин связного графа , а в качестве  — функция расстояния, порожденная некоторой весовой функцией , то получается проблема Штейнера в графах. Частным случаем этой проблемы (когда заданное множество совпадает с множеством всех вершин, ) является задача построения минимального остовного дерева.

Минимальные параметрические сети[править | править код]

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

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

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

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

Одномерные минимальные заполнения в смысле Громова[править | править код]

Это естественное обобщение проблемы Штейнера было предложено А. О. Ивановым и А. А. Тужилиным[12]. Пусть  — произвольное конечное множество и  — некоторый связный граф. Будем говорить, что соединяет , если . Пусть теперь  — конечное псевдометрическое пространство (где, в отличие от метрического пространства, расстояния между разными точками могут быть равны нулю),  — связный граф, соединяющий , и  — некоторое отображение в неотрицательные вещественные числа, называемое обычно весовой функцией и порождающее взвешенный граф . Функция задает на псевдометрику , а именно, расстоянием между вершинами графа назовем наименьший из весов путей, соединяющих эти вершины. Если для любых точек и из выполняется , то взвешенный граф называется заполнением пространства , а граф  — типом этого заполнения. Число , равное по всем заполнениям пространства , назовем весом минимального заполнения, а заполнение , для которого , — минимальным заполнением. Основная задача — научиться вычислять и описывать минимальные заполнения.

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

  1. Карп Р. М., Карп Р. М. Reducibility among Combinatorial Problems — 1972. — doi:10.1007/978-1-4684-2001-2_9
  2. Fermat P. de (1643), Ed. H.Tannery (ed.), "Oeuvres", vol. 1, Paris 1891, Supplement: Paris 1922, p. 153{{citation}}: Википедия:Обслуживание CS1 (location) (ссылка) Википедия:Обслуживание CS1 (числовые имена: authors list) (ссылка)
  3. G. Loria, G. Vassura (1919), Opere de Evangelista Torriceli, vol. 1, pp. 79—97
  4. 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.
  5. B. Cavalieri (1647), Excercitationes Geometricae
  6. T. Simpson (1750), "The Doctrine and Application of Fluxions"
  7. F. Heinen (1834), "Über Systeme von Kräften", Gymnasium zu Cleve, Essen
  8. V. Jarník, O. Kössler (1934), "O minimálních grafech obsahujících n daných bodu", Ĉas, Pêstování Mat., Essen, 63: 223—235 Источник. Дата обращения: 29 июля 2013. Архивировано 4 марта 2016 года.
  9. 1 2 R. Courant, H. Robbins (1941), What Is Mathematics?, Oxford University Press
  10. Белоусов А. И., Ткачев С. Б. Дискретная математика. — М.: МГТУ, 2006. — С. 306—311. — ISBN 5-7038-2886-4.
  11. Курейчик В. М. Генетические алгоритмы и их применение. Таганрогский РТУ, 2002. 244 с.
  12. A. O. Ivanov, A. A. Tuzhilin. One-dimensional Gromov minimal filling (неопр.). Архивировано 6 мая 2021 года.

Литература[править | править код]