Mathematica函数变为红色,不起作用

时间:2011-12-08 14:41:31

标签: function wolfram-mathematica minimum-spanning-tree

我正在尝试使用Mathematica找到最小的跨越树,我想使用Combinatorica中的MinimumSpanningTree函数。我正在使用以下代码。

Needs["Combinatorica`"] 
MinimumSpanningTree[GraphPlot[m]]

其中m是矩阵。但是,MinimumSpanningTree变为红色并且不起作用。输出给出了

out = MinimumSpanningTree[<maximum spanned tree>]  //can't show the tree here

如何使MinimumSpanningTree工作?它为什么变成红色?

2 个答案:

答案 0 :(得分:7)

当遇到所谓的阴影问题时,这些功能会变为红色。您可以在documentation中详细了解相关信息。许多地方都讨论过这个问题,特别是在Roman Maeder的“Mathematica编程”一书中。关于阴影的一个非常好的和详细的说明是David Wagner在Mathematica Journal上的文章,可用here作为pdf。要理解这个问题,您需要对上下文和pacakges有一些基本的了解。以下过去的SO讨论也可能有所帮助:

Making Mathematica packages

Package import problem in mathematica

基本上,一些Combinatorica`函数与版本8的新系统图相关函数具有相同的名称,因此Mathematica不知道要调用哪些函数。如果您真的想使用Combinatorica`函数,那么您首先需要“静默”加载Combinatorica`,而不必在$ContextPath之后加载Block[{$ContextPath}, Needs["Combinatorica`"]] ,这可能是最容易实现的

Combinatorica`

然后,您必须使用Combinatorica`MinimumSpanningTree等长名称来引用Combinatorica`的功能。还要记住的另一件事是{{1}}中的图形表示与内置v.8功能中的图形表示不同,因此如果要混合使用,可能需要将其转换为另一个。

答案 1 :(得分:5)

我认为您想要转换为如下图表。

MinimumSpanningTree[FromAdjacencyMatrix[m]]

也可能感兴趣:

http://demonstrations.wolfram.com/ConnectingTownsUsingKruskalsAlgorithm/