de.saar.chorus.domgraph.equivalence
Class IndividualRedundancyElimination

Object
  extended by RedundancyElimination
      extended by IndividualRedundancyElimination

public class IndividualRedundancyElimination
extends RedundancyElimination

An implementation of the redundancy elimination algorithm which checks for each individual split whether it can be removed. This is the basis of the Koller & Thater ACL 06 submission. It is generally stronger than the "permutable splits" algorithm implemented in PermutabilityRedundancyElimination.

Author:
Alexander Koller

Constructor Summary
IndividualRedundancyElimination(DomGraph graph, NodeLabels labels, EquationSystem eqs)
           
 
Method Summary
 List<Split> getIrredundantSplits(Set<String> subgraph, List<Split> allSplits)
          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

IndividualRedundancyElimination

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

getIrredundantSplits

public List<Split> getIrredundantSplits(Set<String> subgraph,
                                        List<Split> allSplits)
Computes the irredundant splits of a subgraph. A split is redundant iff all of its solved forms are equivalent to solved forms of some other split of the same subgraph. This method starts with the complete list of splits of the subgraph, and then successively removes redundant splits. It returns the remaining (irredundant) splits.

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