3

Assume we're given a graph on a 2D-plane with n nodes and edge between each pair of nodes, having a weight equal to a euclidean distance. The initial problem is to find MST of this graph and it's quite clear how to solve that using Prim's or Kruskal's algorithm.

Now let's say we have k extra nodes, which we can place in any integer point on our 2D-plane. The problem is to find locations for these nodes so as new graph has the smallest possible MST, if it is not necessary to use all of these extra nodes.

It is obviously impossible to find the exact solution (in poly-time), but the goal is to find the best approximate one (which can be found within 1 sec). Maybe you can come up with some hints of the most efficient way of going throw possible solutions, or provide with some articles, where the similar problem is covered.

2 Answers2

1

It is very interesting problem which you are working on. You have many options to attack this problem. The best known heuristics in such situation are - Genetic Algorithms, Particle Swarm Optimization, Differential Evolution and many others of this kind.

What is nice for such kind of heuristics is that you can limit their execution to a certain amount of time (let say 1 second). If it was my task to do I would try first Genetic Algorithms.

Todor Balabanov
  • 376
  • 3
  • 6
  • 17
0

You could try with a greedy algorithm, try the longest edges in the MST, potentially these could give the largest savings.

Select the longest edge, now get the potential edge from each vertex that are closed in angle to the chosen one, from each side.

from these select the best Steiner point.

Fix the MST ...

repeat until 1 sec is gone.

The challenge is what to do if one of the vertexes is itself a Steiner point.

Surt
  • 15,501
  • 3
  • 23
  • 39