2014-02-03 3 views
1

У меня есть набор двумерных точек, и, рассматривая каждую точку, связанную с каждым другим, с «ребром» с весом, равным расстоянию между ними, мне нужно найти MST полученного графа. Я использую тот факт, что EMST всегда является подграфом триангуляции delaunay этого поля. Мне нужны треугольники, как список ребер, чтобы сделать граф из него, а затем запустить Крускал над ним.Как найти Евклидовое минимальное связующее дерево с использованием библиотеки CGAL?

Кроме того, должен ли я идти по пути триангуляции Делоне или есть прямая функция для него?

Просьба предоставить образец кода для определения, какие заголовки включать, какое пространство имен использовать и т. Д. С вашим ответом для любого вопроса, если это возможно.

+0

Это может помочь, если вы упомянете язык программирования, который вы используете. –

+1

Мне непонятно, почему вы не используете напрямую boost, как показано [здесь] (http://www.boost.org/doc/libs/1_55_0/libs/graph/example/kruskal-example.cpp). – sloriot

+0

@FrankSchmitt C++ в VS2012. –

ответ

2

В 2D число ребер триангуляции является линейным. Как только триангуляция Delaunay вычисляется с использованием , вы можете использовать реализацию минимального связующего дерева на графике. См. Страницу wikipedia Euclidean minimum spanning tree.

Смежные вопросы