Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.51 KB | None | 0 0
  1.     private static double probability(int numberOfSimulations) {
  2.         double failedSimulations = 0;
  3.         Random random = new Random();
  4.         float random_variable;
  5.         int v1, v2;
  6.        
  7.         for (int i = 0; i < numberOfSimulations; i++)
  8.         {
  9.            
  10.                 SimpleWeightedGraph<Integer, DefaultWeightedEdge> test_G = new SimpleWeightedGraph<Integer, DefaultWeightedEdge>(DefaultWeightedEdge.class);
  11.                 test_G = (SimpleWeightedGraph<Integer, DefaultWeightedEdge>) G.clone();
  12.                 Object[] edgesArray = test_G.edgeSet().toArray();
  13.                                
  14.                 for (int j = 0; j < edgesArray.length; j++)
  15.                 {
  16.                         DefaultWeightedEdge edge = (DefaultWeightedEdge) edgesArray[j];
  17.                         random_variable = random.nextFloat();
  18.                         if (random_variable > test_G.getEdgeWeight(edge)) {
  19.                             v1 = test_G.getEdgeSource(edge);
  20.                             v2 = test_G.getEdgeTarget(edge);
  21.                             test_G.removeEdge(edge);
  22.                             connectivityInspector = new ConnectivityInspector<Integer, DefaultWeightedEdge>(test_G);
  23.                             if (!connectivityInspector.isGraphConnected()){
  24.                                 failedSimulations++;
  25.                                 break;
  26.                             }      
  27.                         }
  28.                         else {
  29.                                 connectivityInspector = new ConnectivityInspector<Integer, DefaultWeightedEdge>(test_G);
  30.                                 if (!connectivityInspector.isGraphConnected()) {
  31.                                     failedSimulations++;
  32.                                     break;
  33.                                 }
  34.                         }
  35.                 }  
  36.         }
  37.         return (numberOfSimulations - failedSimulations) / numberOfSimulations;
  38.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement