Minimum spanning tree

The Spanning Tree Algorithm is a Algorithm from Graph Theory to find the shortest distance between two Nodes in a Graph Tree. This technique is mostly used in Routers.

It could also be used to calculate the nerest semantic distance between two articles in the Wikipedia.

Note:

Spanning Tree needs a database of all articles witchin each Article and takes therefore a lot of memory and processing power. It doesn't scale well wenn the Number of Articles increases. Effectice use is mostly given in an insulated distributed Environment.

When the number of N increases it can be more effective to use a Breadth-first search to find the neighbors, because Spanning Tree has an over-linear growth in resources-needs when the Number of Links growth.

Also the search deep should be limited to about 3-7 articles (Depth-limited search).

Also some ideas from the A* Stepping Algorithm may be helpful. ie. the Pages recently visited by the user could get valued higher and should get seached first. Also we need some kind of asumtions when the Algorithm should stop. This could ie. be the case if either a perfect match - or one or two very good ones (sematic deep < 4) were found.

Kruskal's Algorithm

 * create a forest F (a set of trees), where each vertex in the graph is a separate tree
 * create a set S containing all the edges in the graph
 * while S is nonempty
 * remove an edge with minimum weight from S
 * if that edge connects two different trees, then add it to the forest, combining two trees into a single tree
 * otherwise discard that edge

Prim's Algorithm

 * create a tree containing a single vertex, chosen arbitrarily from the graph
 * create a set containing all the edges in the graph
 * loop until every edge in the set connects two vertices in the tree
 * remove from the set an edge with minimum weight that connects a vertex in the tree with a vertex not in the tree
 * add that edge to the tree