package jminhep.clcontrol;

import jminhep.utils.*;
import jminhep.gui.SetEnv;
import jminhep.algorithms.FuzzyCMeansAlg;
import jminhep.algorithms.HierarchicalAlg;
import jminhep.algorithms.KMeansAlg;
import jminhep.algorithms.KMeansExchangeAlg;
import jminhep.clcontrol.*;

// analyse data
public class Analyse {

	
	
	/**
	 * Main method to run clustering: Imod=1 - visual mode Imod=0 - mode for
	 * batch (no graphics)
	 * 
	 * @param Imode
	 * 
	 */
	public static void Run(int Imode) {

		Runtime r = Runtime.getRuntime();

		if (Imode == 1) {
			SetEnv.statusbar.setText("Wait! Analysing..");
			Global.GetSettings(); // get settings
			Global.CPUtime = "running!";
			Global.SetInfoTable();
			Global.GetOptions();
			Global.mem = null;
		}

		Global.Compactness = 0.0;
		Global.PartitionCoefficient = 0.0;
		Global.Description = "not filled yet";
		Global.CC=null;
		Global.SS=null;
		Global.nPoints=null;
		
		
		StopWatch sw = new StopWatch();
		sw.start();
		// System.out.println(SetEnv.Mode);

		// get Kmeans2 -- standard mode ------------------------
		if (SetEnv.Mode == 111) {
			// System.out.println("Analyse Kmeans 0");
			KMeansAlg km = new KMeansAlg(SetEnv.DATA);
			km.setClusters(Global.Ncluster);
			km.setOptions(Global.Niterations,Global.Eps);
			km.run();
			Global.Ncluster = km.getClusters();
			Global.nPoints=km.getNumberPoints();
			Global.Compactness = km.getCompactness();
			Global.Description = km.getName();
			Global.CC = km.getCenters();
			Global.SS = km.getSeedHolder();
		}

		// get Kmeans0 -- standard mode, but run several times
		if (SetEnv.Mode == 112) {
			KMeansAlg km = new KMeansAlg(SetEnv.DATA);
			km.setClusters(Global.Ncluster);
			km.run(Global.Niterations);
			Global.Ncluster = km.getClusters();
			Global.nPoints=km.getNumberPoints();
			Global.Compactness = km.getCompactness();
			Global.CC = km.getCenters();
			Global.SS = km.getSeedHolder();
			Global.Description = km.getName();
		}

		// get Kmeans1 - exchange mode
		if (SetEnv.Mode == 113) {
			KMeansExchangeAlg km = new KMeansExchangeAlg(SetEnv.DATA);
			km.runBest();
			Global.Ncluster = km.getClusters();
			Global.Description = km.getName();
			if (km.getError() == 0) {
				Global.CC = km.getCenters();
				Global.SS = km.getSeedHolder();
				Global.Compactness = km.getCompactness();
				Global.nPoints= km.getNumberPoints();

			}
		}

		// get Kmeans1 - exchange mode
		if (SetEnv.Mode == 114) {
			KMeansExchangeAlg km = new KMeansExchangeAlg(SetEnv.DATA);
			km.setClusters(Global.Ncluster);
			km.run();
			Global.Description = km.getName();
			if (km.getError() == 0) {
				Global.CC = km.getCenters();
				Global.SS = km.getSeedHolder();
				Global.Compactness = km.getCompactness();
				Global.nPoints= km.getNumberPoints();

			}
		}

		// hearacity -- standard mode ------------------------
		if (SetEnv.Mode == 121) {
			// System.out.println("Analyse Kmeans HCluster");
			HierarchicalAlg km = new HierarchicalAlg(SetEnv.DATA);
			km.setClusters(Global.Ncluster);
			km.run();
			Global.Description = km.getName();
			Global.CC = km.getCenters();
			Global.Compactness = km.getCompactness();
			Global.nPoints= km.getNumberPoints();
		}
		// hearacity -- standard mode ------------------------

		if (SetEnv.Mode == 122) {
			HierarchicalAlg km = new HierarchicalAlg(SetEnv.DATA);
			km.runBest();
			Global.Ncluster = km.getClusters();
			Global.Description = km.getName();
			Global.CC = km.getCenters();
			Global.Compactness = km.getCompactness();
			Global.nPoints= km.getNumberPoints();
		}

		// run fuzzy
		if (SetEnv.Mode == 131) {
			FuzzyCMeansAlg km = new FuzzyCMeansAlg(SetEnv.DATA);
			km.setProb(Global.ShowProbab );
			Global.Description = km.getName();
			km.setClusters(Global.Ncluster);
			km.setOptions(Global.Niterations, Global.Eps, Global.Fuzzines);
			km.run();
			Global.CC = km.getCenters();
			Global.Compactness = km.getCompactness();
			Global.PartitionCoefficient = km.getPartitionCoefficient();
			Global.mem = km.getMembeship();
			Global.nPoints= km.getNumberPoints();
			km.delete();
		}

		// run fuzzy
		if (SetEnv.Mode == 132) {
			// System.out.println("Analyse Fuzzy best");
			// Fuzzy.init();
			FuzzyCMeansAlg km = new FuzzyCMeansAlg(SetEnv.DATA);
			km.setProb(Global.ShowProbab);
			// System.out.println(Global.Ncluster);
			km.setOptions(Global.Niterations, Global.Eps, Global.Fuzzines);
			km.runBest();
			Global.Ncluster = km.getClusters();
			Global.Description = km.getName();
			Global.CC = km.getCenters();
			Global.Compactness = km.getCompactness();
			Global.PartitionCoefficient = km.getPartitionCoefficient();
			Global.mem = km.getMembeship();
			Global.nPoints= km.getNumberPoints();
			km.delete();
		}

		
	
		
		r.gc();

		if (Imode == 1) {
			SetEnv.PLOT.clearData();
			// Display.Data();
			Display.Clusters();
			SetEnv.PLOT.showPlot();
			if (Global.ShowCenters) {
				Display.Centers();
			}
			if (Global.ShowSeeds) {
				Display.Seeds();
			}
			sw.stop();
			Global.CPUtime = Long.toString(sw.getTime()) + " ms";
			Global.SetInfoTable();
			Global.summary = Global.Summary();
			SetEnv.statusbar.setText("Finished: "+
					Global.Description+" (CPU time="+Global.CPUtime+")");
		}

	}

}

 

Ads help maintain this website.