Nie*_*ein 3 wolfram-mathematica function minimum-spanning-tree
我正在尝试使用Mathematica找到最小的跨越树,我想使用Combinatorica中的MinimumSpanningTree函数.我正在使用以下代码.
Needs["Combinatorica`"]
MinimumSpanningTree[GraphPlot[m]]
Run Code Online (Sandbox Code Playgroud)
其中m是矩阵.但是,MinimumSpanningTree变为红色并且不起作用.输出给出
out = MinimumSpanningTree[<maximum spanned tree>] //can't show the tree here
Run Code Online (Sandbox Code Playgroud)
如何使MinimumSpanningTree工作?它为什么变成红色?
遇到所谓的阴影问题时,这些功能会变为红色.您可以在文档中阅读更多相关信息 .许多地方都讨论过这个问题,特别是在Roman Maeder的"Mathematica编程"一书中.关于阴影的一个非常好的和详细的描述是David Wagner在Mathematica Journal上的文章,在这里以pdf形式提供.要理解这个问题,您需要对上下文和pacakges有一些基本的了解.以下过去的SO讨论也可能有所帮助:
基本上,一些Combinatorica`函数与版本8的新系统图形相关函数具有相同的名称,因此Mathematica不知道要调用哪些函数.如果你真的想要使用Combinatorica`函数,那么你首先需要"静默地"加载,Combinatorica`而不是在$ContextPath事后加载,这可能是最容易实现的
Block[{$ContextPath}, Needs["Combinatorica`"]]
Run Code Online (Sandbox Code Playgroud)
然后,你将不得不Combinatorica`通过它们的长名称来引用它们的功能,例如Combinatorica`MinimumSpanningTree.还要记住的另一件事是图形表示Combinatorica`与内置v.8功能中的图形表示不同,因此如果要混合使用,可能需要将其转换为另一个.
我想你会想要转换成如下图表.
MinimumSpanningTree[FromAdjacencyMatrix[m]]
Run Code Online (Sandbox Code Playgroud)
也可能感兴趣:
http://demonstrations.wolfram.com/ConnectingTownsUsingKruskalsAlgorithm/