Changeset 17 for src/main/java


Ignore:
Timestamp:
Sep 23, 2010, 10:32:44 AM (14 years ago)
Author:
gnappo
Message:

Modificata strategia individuazione cluster: quelli trovati vengono rimossi.

Location:
src/main/java/weka/clusterers/forMetisMQI
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/weka/clusterers/forMetisMQI/GraphAlgorithms.java

    r16 r17  
    22
    33import java.util.HashSet;
     4import java.util.Iterator;
    45import java.util.Set;
    56import java.util.Stack;
     
    5758        static public Set<Set<Node>> metisMqi(UndirectedGraph g, int numberOfCluster, int sizeFinerGraph) {
    5859                Set<Set<Node>> clusters = new HashSet<Set<Node>>();
    59                 Util.viewGraph(g);
     60                UndirectedGraph gclone = g.clone();
     61//              Util.viewGraph(g);
    6062                for (int i = 0; i < numberOfCluster; i++) {
    6163                        Bisection partition = metis(g,sizeFinerGraph);
    6264                        Set<Node> cluster = MQI.mqi(partition);
    63                         clusters.add(cluster);
     65                        Iterator<Node> clustersNode = cluster.iterator();
     66                        while(clustersNode.hasNext()){
     67                                g.removeVertex(clustersNode.next());
     68                        }
     69                       
     70                       
     71                        if(cluster.size()>10) {
     72                                clusters.add(cluster);
     73                        }
    6474                        System.out.println("CLUSTER "+ i + ": " + cluster);
    6575                }
    66                 Util.viewClusters(g, clusters);
     76                Util.viewClusters(gclone, clusters);
    6777                return clusters;
    6878        }
  • src/main/java/weka/clusterers/forMetisMQI/MQI.java

    r16 r17  
    159159         */
    160160        static public Set<Node> mqi(Bisection partition) {
    161                 System.out.println("INITIAL BISECTION: " + partition.toString());
     161//              System.out.println("INITIAL BISECTION: " + partition.toString());
    162162                boolean finished = false;
    163163                Bisection bisection = partition;
     
    167167                int maxFlowThreshold = Integer.MAX_VALUE;
    168168                while (!finished) {
    169                         Node source = new Node("S");
    170                         Node sink = new Node("T");
     169                        Node source = new Node("$$$$S");
     170                        Node sink = new Node("$$$$T");
    171171                        DirectedGraph<Node, Edge> directedGraph = prepareDirectedGraph(
    172172                                        bisection, source, sink);
     
    182182                                public Edge create() {
    183183                                        i++;
    184                                         return new Edge("f" + Integer.toString(i), 1, 1);
     184                                        return new Edge("$$$$" + Integer.toString(i), 1, 1);
    185185                                }
    186186                        };
     
    194194                        alg.evaluate();
    195195//                      Util.viewFlowGraph(directedGraph, edgeFlowMap);
    196                         System.out.println("MAX FLOW: " + alg.getMaxFlow() + " THRESHOLD: "
    197                                         + maxFlowThreshold);
     196//                      System.out.println("MAX FLOW: " + alg.getMaxFlow() + " THRESHOLD: "
     197//                                      + maxFlowThreshold);
    198198                        if (alg.getMaxFlow() < maxFlowThreshold) {
    199199                                cluster = DFSReversed(sink, directedGraph, edgeFlowMap, new HashSet<Node>());
     
    201201                                 bisection = new Bisection(new Subgraph(bisection.getGraph(),
    202202                                 cluster));
    203                                 System.out.println("NEW BISECTION: " + bisection.toString());
     203//                              System.out.println("NEW BISECTION: " + bisection.toString());
    204204                        } else
    205205                                finished = true;
  • src/main/java/weka/clusterers/forMetisMQI/graph/Node.java

    r11 r17  
    3434        @Override
    3535        public String toString() {
    36                 return "N" + id; //+ " Cewgt: " + cewgt;
     36                return id; //+ " Cewgt: " + cewgt;
    3737        }
    3838
  • src/main/java/weka/clusterers/forMetisMQI/graph/UndirectedGraph.java

    r14 r17  
    7474                while (dataIterator.hasNext()) {
    7575                        Instance edge = dataIterator.next();
    76                         Node node1 = new Node(Integer.toString(((int) Math.round(edge.value(from)))));
    77                         Node node2 = new Node(Integer.toString(((int) Math.round(edge.value(to)))));
     76                        Node node1 = new Node(edge.stringValue(from));
     77                        Node node2 = new Node(edge.stringValue(to));
    7878                        addVertex(node1);
    7979                        addVertex(node2);
Note: See TracChangeset for help on using the changeset viewer.