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 }