Class WMAsMM

    • Method Detail

      • advance

        public int[] advance()
        Description copied from interface: MarkovModel
        The maximum advance for this model.

        Each head consumes a single SymbolList. However, the states that advance through that SymbolList may emit more than one symbol at a time. This array give the maximum advance in each direction.

        Be sure to return a new array each time this is called. This protects the internal state of the object from someone modifying the advance array. Be sure to update this as/when states modify their advance arrays and as/when states are added or removed
        Specified by:
        advance in interface MarkovModel
        Returns:
        the maximum advance of all states for all heads
      • stateAlphabet

        public FiniteAlphabet stateAlphabet()
        Description copied from interface: MarkovModel
        FiniteAlphabet of the states.

        We are modeling a finite-state-machine, so there will be a finite set of states.

        The MagicalState returned by getMagicalState is always contained within this as the start/end state.

        Specified by:
        stateAlphabet in interface MarkovModel
        Returns:
        the alphabet over states
      • heads

        public int heads()
        Description copied from interface: MarkovModel
        The number of heads on this model.

        Each head consumes a single SymbolList. A single-head model just consumes/ emits a single sequence. A two-head model performs alignment between two sequences (e.g. smith-waterman). Models with more heads do more interesting things.

        heads() should equal advance().length.

        Specified by:
        heads in interface MarkovModel
        Returns:
        the number of heads in this model.
      • setWeights

        public void setWeights​(State source,
                               Distribution dist)
                        throws ChangeVetoException
        Description copied from interface: MarkovModel
        Set the probability distribution over the transitions from 'source'.

        This should throw an IllegalAlphabetException if the source alphabet in 'dist' is not the same alphabet as returned by transitionsFrom(source).

        Specified by:
        setWeights in interface MarkovModel
        Parameters:
        source - the source State
        dist - the new distribution over transitions from 'source'
        Throws:
        ChangeVetoException - if for any reason the distribution can't be replaced at this time
      • createTransition

        public void createTransition​(State from,
                                     State to)
                              throws ChangeVetoException
        Description copied from interface: MarkovModel
        Makes a transition between two states legal.

        This should inform each TransitionListener that a transition is to be created using preCreateTransition, and if none of the listeners fire a ChangeVetoException, it should create the transition, and then inform each TransitionListener with postCreateTransition.

        Specified by:
        createTransition in interface MarkovModel
        Parameters:
        from - the State currently occupied
        to - the State to move to
        Throws:
        ChangeVetoException - if creating the transition is vetoed
      • destroyTransition

        public void destroyTransition​(State from,
                                      State to)
                               throws ChangeVetoException
        Description copied from interface: MarkovModel
        Breaks a transition between two states legal.

        This should inform each TransitionListener that a transition is to be broken using preDestroyTransition, and if none of the listeners fire a ChangeVetoException, it should break the transition, and then inform each TransitionListener with postDestroyTransition.

        Specified by:
        destroyTransition in interface MarkovModel
        Parameters:
        from - the State currently occupied
        to - the State to move to
        Throws:
        ChangeVetoException - if breaking the transition is vetoed
      • removeState

        public void removeState​(State toAdd)
                         throws IllegalSymbolException,
                                ChangeVetoException
        Description copied from interface: MarkovModel
        Remove a state from the model.

        States should not be removed untill they are involved in no transitions. This is to avoid producing corrupted models by accident.

        Specified by:
        removeState in interface MarkovModel
        Parameters:
        toAdd - the state to remove
        Throws:
        IllegalSymbolException - if the symbol is not part of this model or a MagicalState
        ChangeVetoException - if either the model does not allow states to be removed, or the change was vetoed
      • containsTransition

        public boolean containsTransition​(State from,
                                          State to)
                                   throws IllegalSymbolException
        Description copied from interface: MarkovModel
        Returns wether a transition exists or not.
        Specified by:
        containsTransition in interface MarkovModel
        Parameters:
        from - the transitin source
        to - the transition destination
        Returns:
        true/false depending on wether this model has the transition
        Throws:
        IllegalSymbolException - if either from or to are not states in this model
      • index

        protected int index​(State s)