Package owl.translations.nbadet
Class NbaDetState<S>
- java.lang.Object
-
- owl.translations.nbadet.NbaDetState<S>
-
public abstract class NbaDetState<S> extends Object
This is the state type of the deterministic parity automaton produced by nbadet. It provides an implementation of the modular determinization construction as described in: https://doi.org/10.1007/978-3-030-31784-3_18 If you for some reason need to convert the bit-encoded states back to the actual NBA states, you can use thestates
field which gives you the mapping.
-
-
Constructor Summary
Constructors Constructor Description NbaDetState()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Optional<Pair<BitSet,Integer>>
aSccs()
stores active states + rank for acc.abstract BitSet
aSccsBuffer()
stores inactive states for acc.abstract ArrayList<RankedSlice>
dSccs()
deterministic mixed SCC(s) that are handled separately (if sepDet enabled).boolean
finerOrEqual(NbaDetState<S> o)
Check finerOrEqual component-wise, assuming same configuration.static <S> ParityAcceptance
getAcceptance(NbaDetConf<S> c)
Naive unoptimized parity acceptance (just uses upper bound of possible priorities).abstract ArrayList<RankedSlice>
mSccs()
(remaining, unhandled) mixed SCC(s) - simple ranked slices / Safra tree(s).static <S> NbaDetState<S>
of(NbaDetConf<S> conf, BitSet nbaSet)
static <S> NbaDetState<S>
of(NbaDetConf<S> conf, Set<S> initialSet)
Given a set and a configuration, create a DetState to be used as an initial state.abstract BitSet
powerSet()
all states present in this macro-state (states with same powerSet are lang-equiv.).static Pair<Integer,Boolean>
priorityToRank(int prio)
Inverse of rankToPriority.static int
rankToPriority(int rank, boolean isGood)
Transform a good/bad event for a rank into a min-even priority.static <S> int
rankUpperBound(NbaDetConf<S> c)
There are at most as many non-empty ranked sets as states.abstract BitSet
rSccs()
stores states in rej.Edge<NbaDetState<S>>
successor(NbaDetConf<S> conf, BitSet val)
String
toString()
Prints the sets of the determinization components, where each bitset is expanded into the states of the underlying NBA, i.e., usually integers numbering the states of the input NBA (more complicated objects would work, but make this rather unreadable).List<BitSet>
toTrieEncoding()
Combined trieMap encoding (the det.static <S> int
weakestBadPrio(NbaDetConf<S> c)
Some weakly bad event that can not be caused by any real set with rank.
-
-
-
Method Detail
-
powerSet
public abstract BitSet powerSet()
all states present in this macro-state (states with same powerSet are lang-equiv.).
-
rSccs
public abstract BitSet rSccs()
stores states in rej. SCCs (if sepRej enabled).
-
aSccsBuffer
public abstract BitSet aSccsBuffer()
stores inactive states for acc. SCC state breakpoint construction (if sepAcc enabled).
-
aSccs
public abstract Optional<Pair<BitSet,Integer>> aSccs()
stores active states + rank for acc. SCC state breakpoint construction (if sepAcc enabled).
-
dSccs
public abstract ArrayList<RankedSlice> dSccs()
deterministic mixed SCC(s) that are handled separately (if sepDet enabled).
-
mSccs
public abstract ArrayList<RankedSlice> mSccs()
(remaining, unhandled) mixed SCC(s) - simple ranked slices / Safra tree(s).
-
of
public static <S> NbaDetState<S> of(NbaDetConf<S> conf, Set<S> initialSet)
Given a set and a configuration, create a DetState to be used as an initial state. The states are distributed in the set into the right components according to the config.
-
of
public static <S> NbaDetState<S> of(NbaDetConf<S> conf, BitSet nbaSet)
-
successor
public Edge<NbaDetState<S>> successor(NbaDetConf<S> conf, BitSet val)
-
toTrieEncoding
public List<BitSet> toTrieEncoding()
Combined trieMap encoding (the det. components are ignored here and are fully determined by configuration)
-
finerOrEqual
public boolean finerOrEqual(NbaDetState<S> o)
Check finerOrEqual component-wise, assuming same configuration.
-
toString
public final String toString()
Prints the sets of the determinization components, where each bitset is expanded into the states of the underlying NBA, i.e., usually integers numbering the states of the input NBA (more complicated objects would work, but make this rather unreadable).
-
rankToPriority
public static int rankToPriority(int rank, boolean isGood)
Transform a good/bad event for a rank into a min-even priority.
-
priorityToRank
public static Pair<Integer,Boolean> priorityToRank(int prio)
Inverse of rankToPriority.
-
rankUpperBound
public static <S> int rankUpperBound(NbaDetConf<S> c)
There are at most as many non-empty ranked sets as states.
-
weakestBadPrio
public static <S> int weakestBadPrio(NbaDetConf<S> c)
Some weakly bad event that can not be caused by any real set with rank.
-
getAcceptance
public static <S> ParityAcceptance getAcceptance(NbaDetConf<S> c)
Naive unoptimized parity acceptance (just uses upper bound of possible priorities).
-
-