Ignore:
Timestamp:
07/04/11 15:21:50 (13 years ago)
Author:
sherbold
Message:
  • code documentation
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/DeterministicFiniteAutomaton.java

    r93 r101  
    77import de.ugoe.cs.eventbench.data.Event; 
    88 
     9/** 
     10 * <p> 
     11 * Implements a Deterministic Finite Automata (DFA) capable of random session 
     12 * generation. It is a special case of a first-order Markov model, where the 
     13 * transition probability is equally high for all following states. 
     14 * </p> 
     15 *  
     16 * @author Steffen Herbold 
     17 * @version 1.0 
     18 */ 
    919public class DeterministicFiniteAutomaton extends FirstOrderMarkovModel { 
    1020 
    1121        /** 
     22         * <p> 
    1223         * Id for object serialization. 
     24         * </p> 
    1325         */ 
    1426        private static final long serialVersionUID = 1L; 
    1527 
     28        /** 
     29         * <p> 
     30         * Constructor. Creates a new DeterministicFiniteAutomaton. 
     31         * </p> 
     32         *  
     33         * @param r 
     34         *            random number generator used by probabilistic methods of the 
     35         *            class 
     36         */ 
    1637        public DeterministicFiniteAutomaton(Random r) { 
    1738                super(r); 
    1839        } 
    1940 
     41        /** 
     42         * <p> 
     43         * Calculates the proability of the next state. Each of the following states 
     44         * in the automaton is equally probable. 
     45         * </p> 
     46         *  
     47         * @see de.ugoe.cs.eventbench.models.IStochasticProcess#getProbability(java.util.List, 
     48         *      de.ugoe.cs.eventbench.data.Event) 
     49         */ 
    2050        @Override 
    21         public double getProbability(List<? extends Event<?>> context, Event<?> symbol) { 
     51        public double getProbability(List<? extends Event<?>> context, 
     52                        Event<?> symbol) { 
    2253                double result = 0.0d; 
    23                  
     54 
    2455                List<Event<?>> contextCopy; 
    25                 if( context.size()>=trieOrder ) { 
    26                         contextCopy = new LinkedList<Event<?>>(context.subList(context.size()-trieOrder+1, context.size())); 
     56                if (context.size() >= trieOrder) { 
     57                        contextCopy = new LinkedList<Event<?>>(context.subList( 
     58                                        context.size() - trieOrder + 1, context.size())); 
    2759                } else { 
    2860                        contextCopy = new LinkedList<Event<?>>(context); 
    2961                } 
    3062 
    31          
    3263                List<Event<?>> followers = trie.getFollowingSymbols(contextCopy); 
    33                  
    34                 if( followers.size()!=0 && followers.contains(symbol) ) { 
     64 
     65                if (followers.size() != 0 && followers.contains(symbol)) { 
    3566                        result = 1.0d / followers.size(); 
    3667                } 
    37                  
     68 
    3869                return result; 
    3970        } 
Note: See TracChangeset for help on using the changeset viewer.