Package owl.automaton
Class AbstractMemoizingAutomaton.PartitionedEdgeTreeImplementation<A,B,C extends EmersonLeiAcceptance>
- java.lang.Object
-
- owl.automaton.AbstractMemoizingAutomaton<Either<A,B>,C>
-
- owl.automaton.AbstractMemoizingAutomaton.PartitionedEdgeTreeImplementation<A,B,C>
-
- Type Parameters:
A
- the first state typeB
- the second state typeC
- the acceptance condition type
- Enclosing class:
- AbstractMemoizingAutomaton<S,A extends EmersonLeiAcceptance>
public abstract static class AbstractMemoizingAutomaton.PartitionedEdgeTreeImplementation<A,B,C extends EmersonLeiAcceptance> extends AbstractMemoizingAutomaton<Either<A,B>,C>
This class provides a skeletal implementation of theAutomaton
interface to minimize the effort required to implement this interface.It assumes that the automaton is immutable, i.e., the set of initial states, the transition relation, and the acceptance condition is fixed. It makes use of this assumption by caching the set of states and by memoizing the transition relation as
MtBdd
.This class assumes that there are two separate parts of the automaton with state type A and B. Runs can move from A to B but not the other way.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class owl.automaton.AbstractMemoizingAutomaton
AbstractMemoizingAutomaton.EdgeImplementation<S,A extends EmersonLeiAcceptance>, AbstractMemoizingAutomaton.EdgeMapImplementation<S,A extends EmersonLeiAcceptance>, AbstractMemoizingAutomaton.EdgesImplementation<S,A extends EmersonLeiAcceptance>, AbstractMemoizingAutomaton.EdgeTreeImplementation<S,A extends EmersonLeiAcceptance>, AbstractMemoizingAutomaton.PartitionedEdgeTreeImplementation<A,B,C extends EmersonLeiAcceptance>
-
Nested classes/interfaces inherited from interface owl.automaton.Automaton
Automaton.Property
-
-
Field Summary
-
Fields inherited from class owl.automaton.AbstractMemoizingAutomaton
acceptance, atomicPropositions, factory, initialStates
-
-
Constructor Summary
Constructors Constructor Description PartitionedEdgeTreeImplementation(List<String> atomicPropositions, Set<? extends A> initialStatesA, Set<? extends B> initialStatesB, C acceptance)
PartitionedEdgeTreeImplementation(List<String> atomicPropositions, BddSetFactory factory, Set<? extends A> initialStatesA, Set<? extends B> initialStatesB, C acceptance)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected Set<Edge<Either<A,B>>>
deduplicate(Set<Edge<Either<A,B>>> edges)
protected MtBdd<Edge<Either<A,B>>>
edgeTreeImpl(Either<A,B> state)
protected abstract MtBdd<Edge<A>>
edgeTreeImplA(A state)
protected abstract MtBdd<Edge<B>>
edgeTreeImplB(B state)
protected void
explorationCompleted()
protected abstract Set<B>
moveAtoB(A state)
-
Methods inherited from class owl.automaton.AbstractMemoizingAutomaton
acceptance, atomicPropositions, edge, edgeMap, edges, edges, edgeTree, factory, initialState, initialStates, is, memoizingAutomaton, states, successor, successors, successors
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface owl.automaton.Automaton
predecessors
-
-
-
-
Method Detail
-
edgeTreeImpl
protected final MtBdd<Edge<Either<A,B>>> edgeTreeImpl(Either<A,B> state)
- Specified by:
edgeTreeImpl
in classAbstractMemoizingAutomaton<Either<A,B>,C extends EmersonLeiAcceptance>
-
explorationCompleted
protected void explorationCompleted()
- Overrides:
explorationCompleted
in classAbstractMemoizingAutomaton<Either<A,B>,C extends EmersonLeiAcceptance>
-
-