From 313c51b76b750cdbc8d7bc94e209e7cabf515e8d Mon Sep 17 00:00:00 2001 From: manzerbredes Date: Mon, 4 Apr 2016 12:01:54 +0200 Subject: [PATCH] test --- main/Main.java | 41 +++++++++++++++++------------ resources/Graph.png | Bin 0 -> 31584 bytes structure/Grid.java | 58 +++++++++++++++++++++++++---------------- structure/MyGraph.java | 3 ++- 4 files changed, 62 insertions(+), 40 deletions(-) create mode 100644 resources/Graph.png diff --git a/main/Main.java b/main/Main.java index c9bdd24..3023069 100644 --- a/main/Main.java +++ b/main/Main.java @@ -20,27 +20,36 @@ public class Main { public static void main(String[] args) { - Grid g=new Grid(Grid.Protocol.DSDV); + //Grid g=new Grid(Grid.Protocol.AODV); // Build Graph for graphstream - MyGraph gr=new MyGraph("Routage Oportuniste", g); - gr.display(); + //MyGraph gr=new MyGraph("Routage Oportuniste", g); + //gr.display(); //gr.update(); - - // Update Graph - while(true){ - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - g.buildEdgeWithRandomWeigth(); - System.out.println("Update !"); - gr.update(); - } + for(int j=0;j<20;j++){ + Grid g=new Grid(Grid.Protocol.AODV); + Grid g2=new Grid(Grid.Protocol.DSDV); + Grid g3=new Grid(Grid.Protocol.CUSTOM); + // Update Graph + for(int i=0;i<100;i++){ + /*try { + Thread.sleep(10000); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + }*/ + g.buildEdgeWithRandomWeigth(); + g2.buildEdgeWithRandomWeigth(); + g3.buildEdgeWithRandomWeigth(); + + //System.out.println("Update !"); + //gr.update(); + } + + System.out.println("AODV :"+g.getDebitMoy() + " DSDV :"+g2.getDebitMoy()+" CUSTOM :"+g3.getDebitMoy()); + } } } diff --git a/resources/Graph.png b/resources/Graph.png new file mode 100644 index 0000000000000000000000000000000000000000..a4adf57f8f16a909c2b645e8141f45c6526b8c2a GIT binary patch literal 31584 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 z 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 i`vGL=|I3HY8Sx9v$?#h# routers=new ArrayList<>(); - private ArrayList> links=new ArrayList<>(); + public ArrayList> links=new ArrayList<>(); private int[] pMoy={50,59,92,50,4,8,6,13,7,1,51,6}; @@ -20,7 +20,7 @@ public class Grid { private Random rand = new Random(); private final int maxWeight=100; - + int debitTotal=0,nbmesure=0; @@ -38,18 +38,20 @@ public class Grid { this.buildEdgeWithRandomWeigth(); //Build fixed link - this.buildPath(); + //this.buildPath(); this.protocol=protocol; switch(protocol){ - case AODV: + case DSDV: this.bestLink=this.getBestLinkIndex(); break; - case DSDV: case CUSTOM: + this.bestLink=this.getBestLinkIndex(); + break; + case AODV: HashMap currentBestLink=new HashMap<>(); - for(int i=0;i<1000;i++){ + for(int i=0;i<100;i++){ int current=this.getBestLinkIndex(); if(currentBestLink.containsKey(current)){ currentBestLink.put(current, currentBestLink.get(current)+1); @@ -73,11 +75,11 @@ public class Grid { maxId=entryId; } - System.out.println("Id : "+ entryId + " max "+ entry); + //System.out.println("Id : "+ entryId + " max "+ entry); } this.bestLink=maxId; - System.out.println("Retenu :"+maxId); + // System.out.println("Retenu :"+maxId); break; @@ -89,32 +91,38 @@ public class Grid { public void buildEdgeWithRandomWeigth(){ - + // First line - this.buildLinkWithRandomWeight(routers.get(0), routers.get(1), 1); - this.buildLinkWithRandomWeight(routers.get(1), routers.get(2),1); + this.buildLinkWithRandomWeight(routers.get(0), routers.get(1), 100); + this.buildLinkWithRandomWeight(routers.get(1), routers.get(2),100); // Second line - this.buildLinkWithRandomWeight(routers.get(3), routers.get(4),69); - this.buildLinkWithRandomWeight(routers.get(4), routers.get(5),20); + this.buildLinkWithRandomWeight(routers.get(3), routers.get(4),100); + this.buildLinkWithRandomWeight(routers.get(4), routers.get(5),50); // Third line - this.buildLinkWithRandomWeight(routers.get(6), routers.get(7),23); - this.buildLinkWithRandomWeight(routers.get(7), routers.get(8),54); + this.buildLinkWithRandomWeight(routers.get(6), routers.get(7),100); + this.buildLinkWithRandomWeight(routers.get(7), routers.get(8),60); // First column - this.buildLinkWithRandomWeight(routers.get(0), routers.get(3),14); - this.buildLinkWithRandomWeight(routers.get(3), routers.get(6),11); + this.buildLinkWithRandomWeight(routers.get(0), routers.get(3),80); + this.buildLinkWithRandomWeight(routers.get(3), routers.get(6),100); // Second column - this.buildLinkWithRandomWeight(routers.get(1), routers.get(4),33); - this.buildLinkWithRandomWeight(routers.get(4), routers.get(7),22); + this.buildLinkWithRandomWeight(routers.get(1), routers.get(4),100); + this.buildLinkWithRandomWeight(routers.get(4), routers.get(7),10); // Third column - this.buildLinkWithRandomWeight(routers.get(2), routers.get(5),11); - this.buildLinkWithRandomWeight(routers.get(5), routers.get(8),47); + this.buildLinkWithRandomWeight(routers.get(2), routers.get(5),100); + this.buildLinkWithRandomWeight(routers.get(5), routers.get(8),100); + + this.buildPath(); + + //System.out.println(this.links.get(this.getBestLinkByProtocol())); + this.debitTotal+=this.getMaxBottleneck(this.links.get(this.getBestLinkByProtocol())); + this.nbmesure++; } @@ -199,7 +207,7 @@ public class Grid { } - private int getMaxBottleneck(ArrayList link){ + public int getMaxBottleneck(ArrayList link){ int max=this.getWeigthOfLink(link.get(0), link.get(1)); for(int j=1;j