Ignore:
Timestamp:
07/04/11 10:35:39 (13 years ago)
Author:
sherbold
Message:
  • moved generation of all possible sequences of a fixed length from de.ugoe.cs.eventbench.coverage.CoverageCalculator? to de.ugoe.cs.eventbench.models.IStochasticProcess
File:
1 edited

Legend:

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

    r86 r93  
    11package de.ugoe.cs.eventbench.models; 
    22 
     3import java.security.InvalidParameterException; 
     4import java.util.ArrayList; 
     5import java.util.LinkedHashSet; 
    36import java.util.LinkedList; 
    47import java.util.List; 
     
    104107        } 
    105108         
    106         public Set<Event<?>> getEvents() { 
     109        public Set<? extends Event<?>> getEvents() { 
    107110                return trie.getKnownSymbols(); 
     111        } 
     112         
     113        public Set<List<? extends Event<?>>> generateSequences(int length) { 
     114                Set<List<? extends Event<?>>> sequenceSet = new LinkedHashSet<List<? extends Event<?>>>();; 
     115                if( length<1 ) { 
     116                        throw new InvalidParameterException("Length of generated subsequences must be at least 1."); 
     117                } 
     118                if( length==1 ) { 
     119                        for( Event<?> event : getEvents() ) { 
     120                                List<Event<?>> subSeq = new LinkedList<Event<?>>(); 
     121                                subSeq.add(event); 
     122                                sequenceSet.add(subSeq); 
     123                        } 
     124                        return sequenceSet; 
     125                } 
     126                Set<? extends Event<?>> events = getEvents(); 
     127                Set<List<? extends Event<?>>> seqsShorter = generateSequences(length-1); 
     128                for( Event<?> event : events ) { 
     129                        for( List<? extends Event<?>> seqShorter : seqsShorter ) { 
     130                                Event<?> lastEvent = event; 
     131                                if( getProbability(seqShorter, lastEvent)>0.0 ) { 
     132                                        List<Event<?>> subSeq = new ArrayList<Event<?>>(seqShorter); 
     133                                        subSeq.add(lastEvent); 
     134                                        sequenceSet.add(subSeq); 
     135                                } 
     136                        } 
     137                } 
     138                return sequenceSet; 
    108139        } 
    109140 
Note: See TracChangeset for help on using the changeset viewer.