2010-12-31 6 views
5

Можно создать дубликат:
All minimum spanning trees implementationнаходя всех минимальных остовных дерева

Как я могу найти все минимальные охватывающие дерева в неориентированном графе эффективного способа?

+1

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

+0

@keith Knuth написал целый [book] (http://www.amazon.com/Computer-Programming-Fascicle-Trees-History-Combinatorial/dp/0321335708) о перечислении деревьев в графах. Просто потому, что у вас есть экспоненциальное число, это не значит, что вы не хотите видеть их всех. В этом случае это просто означает, что это нецелесообразно, так что посмотрите на все их для общего большого графа. –

ответ

1

Извинения за академический ответ ... но алгоритм S в Knuth's TAOCP, том 4, Fascicle 4 - это точно о создании всех остовных деревьев (стр. 26ff). Есть несколько musings, когда он говорит о генерации (spanning) деревьев, но ваш лучший выбор в TAOCP.

0

вы можете найти ... модифицирующий алгоритм BFS!

0

Да, есть algorithms для генерации всех связующих деревьев в графе. По меньшей мере one сжимает результат, генерируя только разницы между деревьями. Как отмечали другие, для даже небольшого графа может быть много минимальных связующих деревьев.