Use hill climbing algorithm find a better path
Graph Class
*******
import java.util.ArrayList;
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class RectGraph {
ArrayList<Node> nodes = newArrayList<Node>();
ArrayList<Edge> edges = newArrayList<Edge>(); //indices of attached nodes
int numNodes = 0;
int numEdges = 0;
int topIndex = 0;
int iter = 0;
public RectGraph (String filename) {
try {
Scanner reader =new Scanner (new BufferedReader (new FileReader (filename)));
this.numNodes =Integer.parseInt(reader.next().trim());
this.numEdges =Integer.parseInt(reader.next().trim());
System.out.println(“Numnodes, numedges ” + numNodes + ” ” +numEdges);
topIndex = (int)(Math.sqrt(numNodes) + 1);
//ASSIGN NODEID’S and INITIAL