Class MultiPebble<S>

  • Type Parameters:
    S - The type of state of the underlying automaton.

    public abstract class MultiPebble<S>
    extends Object
    Abstracts multiple pebbles controlled by Duplicator in a multipebble simulation game.
    • Constructor Detail

      • MultiPebble

        public MultiPebble()
    • Method Detail

      • universe

        public static <S> Set<MultiPebble<S>> universe​(Set<S> possibleValues,
                                                       int k)
        Builds all possible multi pebbles for the given input arguments.
        Type Parameters:
        S - The type of state of the underlying automaton.
        Parameters:
        possibleValues - The state space of the underlying automaton.
        k - The maximum size of each multipebble.
        Returns:
        The set of all possible k-pebbles for the given state space.
      • size

        public abstract int size()
      • setFlag

        public MultiPebble<S> setFlag​(boolean b)
        Sets the final flag of all contained subpebbles.
        Parameters:
        b - The value to set all flags to.
        Returns:
        A multipebble where all subpebbles have flag set to b.
      • flag

        public boolean flag()
        Computes the 'combined' flag of a multipebble.
        Returns:
        true if all subpebbles have their flag set to true
      • successors

        public Set<MultiPebble<S>> successors​(Automaton<S,​? extends BuchiAcceptance> aut,
                                              BitSet val)
        Computes the set of possible successor multipebbles for a given valuation and automaton.
        Parameters:
        aut - Automaton to use as basis.
        val - One valuation along which the multipebble should be advanced by.
        Returns:
        Successor multipebble for the given valuation.
      • count

        public int count()
        Counts how many actual pebbles are contained.
        Returns:
        The actual number of pebbles contained, this is different from size(), which returns the maximum size of a multipebble and its successors
      • onlyState

        public S onlyState()
        Utility function that just grabs the only contained state.
        Returns:
        The first state contained, useful for singleton multipebbles.
      • isSingleton

        public boolean isSingleton()