diff options
| author | manzerbredes <loic.guegan_secondary@yahoo.fr> | 2016-03-21 16:34:06 +0100 |
|---|---|---|
| committer | manzerbredes <loic.guegan_secondary@yahoo.fr> | 2016-03-21 16:34:06 +0100 |
| commit | c03d794605cc158f6e0df2c44b5a014c9aa66e5d (patch) | |
| tree | cfe155587d78881be67d36038cc5d7731815b427 | |
| parent | 8511b3af4778da926634742941d7893b46697c51 (diff) | |
| parent | 9cb19346dadb23e81a89cec151d43aa5fa33dc15 (diff) | |
Merge branch 'master' of github.com:manzerbredes/routage-optimiste into develop
| -rw-r--r-- | main/Main.java | 17 | ||||
| -rw-r--r-- | structure/Grid.java | 49 |
2 files changed, 62 insertions, 4 deletions
diff --git a/main/Main.java b/main/Main.java index 51e3c59..c1a4e1c 100644 --- a/main/Main.java +++ b/main/Main.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Set; +import org.graphstream.graph.Edge; import org.graphstream.graph.Graph; import org.graphstream.graph.implementations.SingleGraph; @@ -21,11 +22,14 @@ public class Main { Graph graph = new SingleGraph("Tutorial 1"); graph.addAttribute("ui.stylesheet", "url('resources/style.css')"); + ArrayList<Router> grid=g.getGrid(); for(Router r : grid){ graph.addNode(r.name); } + + ArrayList<Integer> bestLink=g.getLinks().get(g.getBestLinkIndex()); for(Router r : grid){ String current=r.name; HashMap<Router, Integer> relier=r.getLinks(); @@ -36,8 +40,17 @@ public class Main { String currentRouterName=currentRouter.name; try{ //graph.addEdge(current+currentRouter, current, currentRouter).addAttribute("ui.style", "fill-color: rgb(0,100,255);"); - graph.addEdge(current+currentRouterName, current, currentRouterName).setAttribute("ui.label", relier.get(currentRouter)); + + if(g.isEdgeOfLink(bestLink, r, currentRouter)){ + Edge toAdd=graph.addEdge(current+currentRouterName, current, currentRouterName); + toAdd.setAttribute("ui.label", relier.get(currentRouter)); + toAdd.setAttribute("ui.style", "fill-color:red;"); + + }else{ + graph.addEdge(current+currentRouterName, current, currentRouterName).setAttribute("ui.label", relier.get(currentRouter)); + } + } @@ -48,6 +61,8 @@ public class Main { } } + g.printLinkWeight(); + graph.display(); } } diff --git a/structure/Grid.java b/structure/Grid.java index eb76638..bd0af2a 100644 --- a/structure/Grid.java +++ b/structure/Grid.java @@ -131,7 +131,7 @@ public class Grid { return currentBestLink; } - private int getMaxBottleneck(ArrayList<Integer> link){ + /*private int getMaxBottleneck(ArrayList<Integer> link){ int max=this.getWeigthOfLink(link.get(0), link.get(1)); for(int j=1;j<link.size()-1;j++){ int currentMax=this.getWeigthOfLink(link.get(j), link.get(j+1)); @@ -141,6 +141,17 @@ public class Grid { } return max; + }*/ + private int getMaxBottleneck(ArrayList<Integer> link){ + int max=this.getWeigthOfLink(link.get(0), link.get(1)); + for(int j=1;j<link.size()-1;j++){ + int currentMax=this.getWeigthOfLink(link.get(j), link.get(j+1)); + if(max>currentMax){ + max=currentMax; + } + + } + return max; } private int getWeigthOfLink(int router1,int router2){ @@ -153,14 +164,46 @@ public class Grid { ArrayList<Integer> link=this.links.get(i); System.out.print("Link number " + i + " ==> "); for(int j=0;j<link.size()-1;j++){ - //System.out.print(this.getWeigthOfLink(link.get(j), link.get(j+1)) + " "); + System.out.print(this.getWeigthOfLink(link.get(j), link.get(j+1)) + " "); } - System.out.println(this.getMaxBottleneck(link)); + System.out.println(" Goulot :"+this.getMaxBottleneck(link)); //System.out.println(); } } + + + public boolean isEdgeOfLink(ArrayList<Integer>link, Router src, Router dest){ + for(int j=0;j<link.size()-1;j++){ + Router current=this.grid.get(link.get(j)); + if(src.name.equals(current.name)){ + if(j<link.size()-1){ + Router currentDest=this.grid.get(link.get(j+1)); + + if(currentDest.name.equals(dest.name)){ + return true; + } + } + } + } + for(int j=0;j<link.size()-1;j++){ + Router current=this.grid.get(link.get(j)); + if(dest.name.equals(current.name)){ + if(j<link.size()-1){ + Router currentDest=this.grid.get(link.get(j+1)); + + if(currentDest.name.equals(src.name)){ + return true; + } + } + } + } + return false; + } + + + public ArrayList<Router> getGrid() { return grid; } |
