Ignore:
Timestamp:
Sep 14, 2010, 5:27:28 PM (14 years ago)
Author:
gnappo
Message:

Corretti alcuni bachi inseriti con la migrazione a Jung.

File:
1 edited

Legend:

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

    r9 r10  
    1313public class Coarse {
    1414       
    15         private static boolean debug = true;
     15        private static boolean debug = false;
    1616        private static PrintStream debugStream = System.err;
    1717        private static int finerSize = 5;
     
    9898                        while(it.hasNext())
    9999                                neighbors.add(getMappedNode(map, it.next()));
    100                        
    101 //                      Set<Node> neighbors = new HashSet<Node>();
    102 //                      while(it.hasNext()) {
    103 //                              Node v = it.next();
    104 //                              neighbors.add(getMappedNode(map,v));
    105 //                      }
    106 //                      it = g.getNeighbors(getMappedNode(match,u)).iterator();
    107 //                      while(it.hasNext()) {
    108 //                              Node v = it.next();
    109 //                              neighbors.add(getMappedNode(map,v));
    110 //                      }
    111100                        neighbors.remove(getMappedNode(map,u));
    112101                        it = neighbors.iterator();
     
    127116                        Pair<Node> srcDst = g.getEndpoints(oldEdge);
    128117                        Node src = srcDst.getFirst();
    129                         Node dst = srcDst.getFirst();
     118                        Node dst = srcDst.getSecond();
    130119                        Node srcMapped = getMappedNode(map, src);
    131120                        Node dstMapped = getMappedNode(map, dst);
     
    135124                        }
    136125                }
    137                
    138                
    139 //              for(int i=0; i < g.size(); i++) {
    140 //                      int u = g.getLabel(i);
    141 //                      Iterator<Integer> it = g.getNeighbors(u).iterator();
    142 //                      while(it.hasNext()) {
    143 //                              int v = it.next();
    144 //                              if(getMappedNode(g,map,u) != getMappedNode(g,map,v) && output.isEdge(getMappedNode(g,map,u), getMappedNode(g,map,v)) && u < v) {
    145 //                                      output.setWeight(getMappedNode(g,map,u), getMappedNode(g,map,v), output.getWeight(getMappedNode(g,map,u), getMappedNode(g,map,v)) + g.getWeight(u, v));
    146 //                              }
    147 //                      }
    148 //              }
    149                
    150                
    151126                iterator = g.getVertices().iterator();
    152127                Set<Node> nodesComplete = new HashSet<Node>();
     
    158133                                        getMappedNode(map,u).setVwgt(u.getVwgt() + v.getVwgt());
    159134                                        getMappedNode(map,u).setCewgt(u.getCewgt() + v.getCewgt() + g.findEdge(u, v).getWeight());
    160                                         getMappedNode(map,u).setAdjwgt(u.getAdjwgt() + v.getAdjwgt() - 2 * g.findEdge(u, v).getWeight());
    161135                                        nodesComplete.add(u);
    162136                                        nodesComplete.add(v);
     
    165139                                getMappedNode(map,u).setVwgt(u.getVwgt());
    166140                                getMappedNode(map,u).setCewgt(u.getCewgt());
    167                                 getMappedNode(map,u).setAdjwgt(u.getAdjwgt());
    168141                        }
    169142                }
     
    174147         * Performs the first stage of the METIS algorithm, using RM.
    175148         */
    176         public static CoarserGraphElement coarseOneStep(UndirectedGraph g) {
     149        private static CoarserGraphElement coarseOneStep(UndirectedGraph g) {
    177150                UndirectedGraph projected = g;
    178151                UndirectedGraph contracted = null;
     
    183156                return new CoarserGraphElement(contracted, projected, match, map);
    184157        }
     158
    185159       
     160        /**
     161         * Performs at least one contraction of the given the graph, and goes on until the graph
     162         * is under the desidered size (see setFinerSize()).
     163         * @param g
     164         * @return the stack of contracted graphs
     165         */
    186166        public static Stack<CoarserGraphElement> coarse(UndirectedGraph g) {
    187167                Stack<CoarserGraphElement> stack = new Stack<CoarserGraphElement>();
    188                 CoarserGraphElement e;
     168                CoarserGraphElement e = null;
    189169                UndirectedGraph curr = g;
     170                int i = 0;
     171               
    190172            do {
    191173                if(debug)
    192                         debugStream.println("-----------------------------------------------------");
     174                        debugStream.println("--------CONTRACTION-nr" + i +"------------------------------");
    193175                e = coarseOneStep(curr);
    194176                stack.push(e);
    195177                curr = e.getContracted();
    196                 if(debug)
    197                         debugStream.println("-----------------------------------------------------");
     178                if(debug) {
     179                        debugStream.println("-----------EXPANDED----------------------------------");
     180                        debugStream.println(e.getProjected().toString());
     181                        debugStream.println("-----------CONTRACTED--------------------------------");
     182                        debugStream.println(e.getContracted().toString());
     183                }
     184                i++;
    198185            } while(e.getProjected().getVertexCount() > e.getContracted().getVertexCount() && e.getContracted().getVertexCount() > finerSize);
    199186            return stack;
Note: See TracChangeset for help on using the changeset viewer.