de.saar.chorus.domgraph.equivalence
Class RedundancyElimination
Object
RedundancyElimination
- Direct Known Subclasses:
- IndividualRedundancyElimination, PermutabilityRedundancyElimination
public abstract class RedundancyElimination
- extends Object
An abstract base class for the implementation of redundancy
elimination algorithms. A redundancy elimination algorithm removes
splits from a chart representation while maintaining the set
of equivalence classes of the configurations.
A redundancy elimination algorithm needs an
EquationSystem
object
to specify the equation system with respect to which equivalence
is defined. An object of this class (or a subclass) can be used
in one of two ways:
- by calling the
eliminate
method of
this class, you can remove redundant splits from an existing chart;
- by running a
ChartSolver
with a RedundancyEliminationSplitSource
based on an object of this class, you can fill a chart directly
with just the irredundant splits.
- Author:
- Alexander Koller
Method Summary |
void |
eliminate(Chart c)
Removes redundant splits from an existing chart. |
abstract List<Split> |
getIrredundantSplits(Set<String> subgraph,
List<Split> allSplits)
Computes the irredundant splits for a given subgraph. |
Methods inherited from class Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RedundancyElimination
public RedundancyElimination(DomGraph graph,
NodeLabels labels,
EquationSystem eqs)
eliminate
public void eliminate(Chart c)
- Removes redundant splits from an existing chart.
- Parameters:
c
- a chart
getIrredundantSplits
public abstract List<Split> getIrredundantSplits(Set<String> subgraph,
List<Split> allSplits)
- Computes the irredundant splits for a given subgraph.
- Parameters:
subgraph
- a subgraphallSplits
- the complete list of all splits for this subgraph
- Returns:
- a list of irredundant splits