de.saar.chorus.domgraph.equivalence
Class PermutabilityRedundancyElimination

Object
  extended by RedundancyElimination
      extended by PermutabilityRedundancyElimination

public class PermutabilityRedundancyElimination
extends RedundancyElimination

An implementation of the redundancy elimination algorithm which checks whether a subgraph has a single permutable split. This is the bases of the Koller & Thater ICoS 06 submission. If a subgraph has a permutable split, then all other splits are redundant in the sense of the IndividualRedundancyElimination class, i.e. the redundancy elimination performed by this class is a bit weaker than that of IndividualRedundancyElimination.

Author:
Alexander Koller

Constructor Summary
PermutabilityRedundancyElimination(DomGraph graph, NodeLabels labels, EquationSystem eqs)
           
 
Method Summary
 List<Split> getIrredundantSplits(Set<String> subgraph, List<Split> splits)
          Computes the irredundant splits of a subgraph.
 
Methods inherited from class RedundancyElimination
eliminate
 
Methods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PermutabilityRedundancyElimination

public PermutabilityRedundancyElimination(DomGraph graph,
                                          NodeLabels labels,
                                          EquationSystem eqs)
Method Detail

getIrredundantSplits

public List<Split> getIrredundantSplits(Set<String> subgraph,
                                        List<Split> splits)
Computes the irredundant splits of a subgraph. If the subgraph has a single permutable split (i.e. a split that is permutable with all other fragments), then this method returns a singleton list containing this split. Otherwise, it returns the complete list of splits for this subgraph.

Specified by:
getIrredundantSplits in class RedundancyElimination
Parameters:
subgraph - a subgraph
splits - the complete list of splits for this subgraph
Returns:
a list of irredundant splits