Index: /.project
===================================================================
--- /.project	(revision 24)
+++ /.project	(revision 25)
@@ -6,7 +6,13 @@
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.python.pydev.PyDevBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.python.pydev.pythonNature</nature>
 	</natures>
 </projectDescription>
Index: /script/analizzaRisultati.py
===================================================================
--- /script/analizzaRisultati.py	(revision 25)
+++ /script/analizzaRisultati.py	(revision 25)
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+
+import statistics
+import sys
+import re
+from re import split
+from math import sqrt
+import os
+
+basedir = sys.argv[1]
+
+filesList = [basedir + file for file in os.listdir(basedir) if (re.match('.*dat$', file) and not re.match('^output.*', file))]
+
+results = []
+for file in filesList:
+    inp = open(file,"r")
+    values = []
+    for line in inp.readlines():
+        values.append(float(line))
+    inp.close()
+    print "File ",file," acquisito."
+    results.append(statistics.mean(values))
+variance = statistics.variance(results, mode = "Unbiased")
+confidence = sqrt(variance / len(results)) * 1.6449
+print "Average: ",statistics.mean(results)," Confidence interval: ",confidence
Index: /script/filtraRisultati.sh
===================================================================
--- /script/filtraRisultati.sh	(revision 25)
+++ /script/filtraRisultati.sh	(revision 25)
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+resultDir=output/random/*dat
+filteredDir=output/random/filtered/
+
+for file in $resultDir; do
+  echo "Processing file $file"
+  cat $file | grep conductance | sed 's/Cluster conductance: //g' | grep -v NaN > $filteredDir`basename $file`
+done
+
+
Index: /script/ripetiprova.sh
===================================================================
--- /script/ripetiprova.sh	(revision 25)
+++ /script/ripetiprova.sh	(revision 25)
@@ -0,0 +1,26 @@
+#!/bin/bash
+index=0
+execution=5
+file=../../reteUtentiMikeHidden.arff
+lib=../../lib/*
+bin=build/classes
+curDir=`pwd`
+
+outputFolder=$curDir/output/random/
+prefixOutput=random
+random=true
+
+suffixOutput=.dat
+
+cd $bin
+while [ "$index" -lt "$execution" ]
+do
+  echo "Clustering task #$index"
+  java -Xms256m -Xmx1024m -cp .:$lib weka.clusterers.MetisMQIClusterer -V 0 -R $random -S 100 -N 50 -t $file > $outputFolder$prefixOutput$index$suffixOutput
+  index=`expr $index + 1`
+done
+cd $curDir
+
+echo
+
+exit 0
Index: /src/main/java/weka/clusterers/forMetisMQI/GraphAlgorithms.java
===================================================================
--- /src/main/java/weka/clusterers/forMetisMQI/GraphAlgorithms.java	(revision 24)
+++ /src/main/java/weka/clusterers/forMetisMQI/GraphAlgorithms.java	(revision 25)
@@ -92,4 +92,5 @@
 		int verboseLevel = Configuration.instance().getVerboseLevel();
 		GraphsFrame gf = GraphsFrame.instance();
+		System.out.println("Seed: " + Random.instance().getSeed());
 		System.out.println("Vertex count: " + g.getVertexCount());
 		System.out.println("Edges count: " + g.getEdgeCount());
@@ -122,7 +123,7 @@
 			System.out.println("Partizione raffinata (MQI)");
 			double newConductance = ((double)mqiBisection.edgeCut() / 2) / Math.min(mqiBisection.getSubgraph().totalDegree(),mqiBisection.getComplement().totalDegree());
-			System.out.println("Conductance: " + newConductance);
+			System.out.println("Cluster "+ i + ":  V=" + clusterGraph.getVertexCount() + ", E=" + clusterGraph.getEdgeCount()+".");
+			System.out.println("Cluster conductance: " + newConductance);
 			
-			System.out.println("CLUSTER "+ i + ":  V=" + clusterGraph.getVertexCount() + ", E=" + clusterGraph.getEdgeCount()+".");
 			clusters.add(cluster);
 			
@@ -133,7 +134,8 @@
 			}
 		}
-		if(verboseLevel > 0)
+		if(verboseLevel > 0) {
 			gf.addPanel(Util.panelClusters(gclone, clusters));
-		gf.setVisible(true);
+			gf.setVisible(true);
+		}
 		return clusters;
 	}
Index: /src/main/java/weka/clusterers/forMetisMQI/MQI.java
===================================================================
--- /src/main/java/weka/clusterers/forMetisMQI/MQI.java	(revision 24)
+++ /src/main/java/weka/clusterers/forMetisMQI/MQI.java	(revision 25)
@@ -200,5 +200,7 @@
 						* (bisection.edgeCut() / 2);
 			}
+			System.out.print(".");
 			alg.evaluate();
+			System.out.print(".");
 			if(Configuration.instance().getVerboseLevel() > 1)
 				GraphsFrame.instance().addPanel(Util.panelFlowGraph(directedGraph, edgeFlowMap));
Index: /src/main/java/weka/clusterers/forMetisMQI/Random.java
===================================================================
--- /src/main/java/weka/clusterers/forMetisMQI/Random.java	(revision 24)
+++ /src/main/java/weka/clusterers/forMetisMQI/Random.java	(revision 25)
@@ -7,16 +7,24 @@
 	private static Random instance = null;
 	
+	private long seed = 1234567890;
+	
 	/**
-	 * Return an instance of a random generator with a default seed.
+	 * Return an instance of a random generator with a random seed.
 	 * @return
 	 */
 	public static Random instance() {
-		if(instance == null)
-			instance = new Random();
+		if(instance == null) {
+			instance = new Random(/*new java.util.Random().nextLong()*/1234567890);
+		}
 		return instance;
 	}
 	
-	private Random() {
-		super(1234567890);
+	public long getSeed() {
+		return seed;
+	}
+	
+	private Random(long seed) {
+		super(seed);
+		this.seed = seed;
 	}
 
