Given n affinely independent points in n1 dimensional Euclidean space, how is the minimum Steiner tree constructed? Or assuming that the topology of the Steiner tree is given, is there an easy way to find the minimum edge lengths? I want a closed form algorithm if possible, otherwise an iterative solution that converges to the right answer with some kind of error bound would also be useful.

Certainly if you're given the combinatorial type of the Steiner tree, you can efficiently find its position. The length of each edge is a convex function of the positions of the internal vertices of the tree, so their sum is too. So you can approximate the minimum numerically with convex programming. On the other hand, this book says that finding approximate solutions to the Euclidean Steiner problem is NPhard. So the part that is NPhard must be finding the combinatorial type of the tree. Naturally, many NPhard problems have a lore of heuristic methods, and the same book is a survey of these methods in the case of the Steiner problem. Note that the affine independence condition doesn't change very much since the points could be close to lying in a hyperplane. A final comment which is slightly off topic. Some years ago, my mother found an example where the Steiner tree in R^{3} of a finite set of points on the unit sphere S^{2} is knotted. 


Sorry I'm too dense to figure out how to use this website so I'm apparently posting this response as an answer  the n points define vertices of a simplex in the n1 dimensional space, so when I saw the tooltip suggestion "symplecticgeometry" when I typed "geometry" I added it too; if this has nothing to do with symplectic geometry then a mod can delete the tag. 

