KruskalsAlgorithm - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Mozilla Firefox.

Online Help

All Products    Maple    MapleSim


GraphTheory

  

MinimalSpanningTree

  

find least-weight path through graph

  

KruskalsAlgorithm

  

find least-weight path using Kruskal's algorithm

  

PrimsAlgorithm

  

find least-weight path using Prim's algorithm

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

MinimalSpanningTree(G)

MinimalSpanningTree(G,w,animate)

KruskalsAlgorithm(G,w,animate)

PrimsAlgorithm(G,w,animate)

Parameters

G

-

an undirected graph, weighted or unweighted

w

-

(optional) name

animate

-

(optional) literal animate indicating that an animation of the algorithm should be returned instead of the tree.

Description

• 

MinimalSpanningTree, KruskalsAlgorithm, and PrimsAlgorithm all return a spanning tree of the undirected graph G with minimum possible weight. If the graph G is unweighted, each edge is considered to have weight 1.

• 

If the optional parameter w is given, it is assigned the weight of the minimal spanning tree.

• 

If the literal animate, or animate=true is given, an animation of the application of the algorithm will be returned instead of the minimal spanning tree.

• 

The routine PrimsAlgorithm uses Prim's algorithm for computing the minimal spanning tree and the routine KruskalsAlgorithm uses Kruskal's algorithm. The routine MinimalSpanningTree uses Kruskal's algorithm.

• 

Setting infolevel[KruskalsAlgorithm] := 4; and infolevel[PrimsAlgorithm] := 4; results in some information being printed out, indicating the steps of the respective algorithms.

Examples

> 

with⁡GraphTheory:

> 

with⁡RandomGraphs:

> 

A≔Matrix⁡0,1,0,4,0,0,1,0,1,0,4,0,0,1,0,3,0,1,4,0,3,0,1,0,0,4,0,1,0,4,0,0,1,0,4,0:

> 

G≔Graph⁡A:

> 

T≔MinimalSpanningTree⁡G:

> 

Edges⁡T,weights

1,2,1,2,3,1,3,4,3,3,6,1,4,5,1

(1)
> 

add⁡GetEdgeWeight⁡G,e,e=Edges⁡T

7

(2)
> 

S≔SpanningTree⁡G:

> 

add⁡GetEdgeWeight⁡G,e,e=Edges⁡S

11

(3)
> 

PrimsAlgorithm⁡G,w,animate

Note: To animate the example above, open this help page as a worksheet, click the plot in the worksheet, and use the controls in the animation toolbar above the worksheet.

> 

w

7

(4)
> 

G≔RandomGraph⁡100,0.5,weights=0...1.0,connected:

> 

infolevelKruskalsAlgorithm≔4:

> 

T≔KruskalsAlgorithm⁡G,w:

KruskalsAlgorithm:   "constructing minimal spanning tree on 100 vertices."
KruskalsAlgorithm:   "using Kruskal's algorithm at time 1.668"
KruskalsAlgorithm:   "making heap of 2490 edges at time: 1.675"
KruskalsAlgorithm:   "finding the edges at time: 1.697"
KruskalsAlgorithm:   "exiting Kruskal's algorithm at time 1.717"

> 

w

2.25620251143321

(5)

See Also

AllPairsDistance

Diameter

SpanningTree

WeightMatrix