Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static double probability(int numberOfSimulations) {
- double failedSimulations = 0;
- Random random = new Random();
- float random_variable;
- int v1, v2;
- for (int i = 0; i < numberOfSimulations; i++)
- {
- SimpleWeightedGraph<Integer, DefaultWeightedEdge> test_G = new SimpleWeightedGraph<Integer, DefaultWeightedEdge>(DefaultWeightedEdge.class);
- test_G = (SimpleWeightedGraph<Integer, DefaultWeightedEdge>) G.clone();
- Object[] edgesArray = test_G.edgeSet().toArray();
- for (int j = 0; j < edgesArray.length; j++)
- {
- DefaultWeightedEdge edge = (DefaultWeightedEdge) edgesArray[j];
- random_variable = random.nextFloat();
- if (random_variable > test_G.getEdgeWeight(edge)) {
- v1 = test_G.getEdgeSource(edge);
- v2 = test_G.getEdgeTarget(edge);
- test_G.removeEdge(edge);
- connectivityInspector = new ConnectivityInspector<Integer, DefaultWeightedEdge>(test_G);
- if (!connectivityInspector.isGraphConnected()){
- failedSimulations++;
- break;
- }
- }
- else {
- connectivityInspector = new ConnectivityInspector<Integer, DefaultWeightedEdge>(test_G);
- if (!connectivityInspector.isGraphConnected()) {
- failedSimulations++;
- break;
- }
- }
- }
- }
- return (numberOfSimulations - failedSimulations) / numberOfSimulations;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement