de.saar.chorus.domgraph.chart
Class ChartSolver

Object
  extended by ChartSolver

public class ChartSolver
extends Object

A solver for compact weakly normal dominance graphs. This solver computes a Chart as described in Koller & Thater (2005), "The evolution of dominance constraint solvers", ACL-05 Workshop on Software. It can be seen as an implementation of the Bodirsky et al. 2005 graph solver.

This solver requires that the input dominance graph is weakly normal and compact. It will successively compute the splits corresponding to the free fragments of the subgraphs of the dominance graph, and adds them to the chart.

The solver relies on an object of a subclass of SplitSource to provide the splits of a subgraph. By default, it uses an object of the class CompleteSplitSource, which computes all splits of this subgraph. Alternatively, you can provide a split source which only adds a certain subset of all splits to the chart.

Notice that the role of this class is only to fill the chart. The actual solved forms can later be extracted from the chart using a SolvedFormIterator object.

Author:
Alexander Koller

Method Summary
static boolean solve(DomGraph graph, Chart chart)
          Solves the given dominance graph using a CompleteSplitSource.
static boolean solve(DomGraph graph, Chart chart, SplitSource splitsource)
          Solves the given dominance graph using a specific split source.
 
Methods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

solve

public static boolean solve(DomGraph graph,
                            Chart chart,
                            SplitSource splitsource)
Solves the given dominance graph using a specific split source. This method will determine whether the given dominance graph is solvable or not. It will also fill the given chart with the splits that are necessary to later enumerate solved forms of the dominance graph. It will use the given split source in order to compute the splits for each subgraph.

Parameters:
graph - a weakly normal, compact dominance graph
chart - a chart which will be filled with the splits of this graph
splitsource - a split source
Returns:
true if the graph is solvable, false otherwise

solve

public static boolean solve(DomGraph graph,
                            Chart chart)
Solves the given dominance graph using a CompleteSplitSource. This method will create a new CompleteSplitSource object for the graph and then call solve(DomGraph, Chart, SplitSource).

See Also:
solve(DomGraph, Chart, SplitSource)