001
002 package algo;
003
004 import java.io.Serializable;
005
006 /**
007 * A 2d Graph for an TSP Problem.
008 * Totaly connected graph with euclidean distance between points / nodes.
009 * @author Heinz Kredel.
010 */
011 public class PlaneGraph extends Graph implements Serializable {
012
013 /**
014 * @param p an array of points / cities.
015 */
016 public PlaneGraph(Point[] p) {
017 super( p.length );
018 for (int i = 0; i < p.length; i++ ) {
019 for (int j = i+1; j < p.length; j++ ) {
020 double dist = Math.sqrt( sqr( p[i].x - p[j].x )
021 + sqr( p[i].y - p[j].y ) );
022 connect(i,j,dist);
023 connect(j,i,dist);
024 }
025 }
026 }
027
028 final double sqr(double s) { return s*s; }
029
030 }