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

Un po' di refactoring e implementazione dell'algoritmo di raffinamento.

Location:
src/main/java/weka/clusterers/forMetisMQI/graph
Files:
1 added
1 moved

Legend:

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

    r9 r11  
    1 package weka.clusterers.forMetisMQI;
     1package weka.clusterers.forMetisMQI.graph;
    22
    33import java.util.ArrayList;
     
    1111import java.util.Map.Entry;
    1212
     13import edu.uci.ics.jung.algorithms.filters.FilterUtils;
     14
     15
    1316public class Subgraph {
    1417       
     
    1720        private Set<Node> nodes = null;
    1821       
    19 //      private BitSet nodes = null;
    20 //      private List<Integer> listOfNodes = null;
    2122        private HashMap<Node,Integer> ID = null;
    2223        private HashMap<Node,Integer> ED = null;
     
    3435        }
    3536       
     37        public Subgraph(UndirectedGraph g, Set<Node> nodes) {
     38                this.g = g;
     39                this.nodes = new HashSet<Node>();
     40                this.ID = new HashMap<Node,Integer>();
     41                this.ED = new HashMap<Node,Integer>();
     42                this.bucketGain = new HashMap<Integer, List<Node>>();
     43                this.gainSet = new TreeSet<Integer>();
     44                Iterator<Node> nodesIterator = nodes.iterator();
     45                while(nodesIterator.hasNext()) {
     46                        addVertex(nodesIterator.next());
     47                }
     48        }
     49       
    3650        public UndirectedGraph getGraph() {
    3751                return g;
    3852        }
    3953       
     54        /**
     55         * Adds to the subgraph the node u iff u belongs to the graph.
     56         * @param u
     57         */
    4058        public void addVertex(Node u) {
    41                 nodes.add(u);
    42                 ID.put(u, 0);
    43                 ED.put(u, 0);
    44                 recomputeGain = true;
     59                if(g.containsVertex(u)) {
     60                        nodes.add(u);
     61                        ID.put(u, 0);
     62                        ED.put(u, 0);
     63                        recomputeGain = true;
     64                }
    4565        }
    4666       
     
    233253                return clone;
    234254        }
     255       
     256        public UndirectedGraph createInducedSubgraph() {
     257                return FilterUtils.createInducedSubgraph(nodes,g);
     258        }
    235259}
Note: See TracChangeset for help on using the changeset viewer.