Ignore:
Timestamp:
07/23/15 13:43:38 (9 years ago)
Author:
sherbold
Message:
  • made generation of random sequences with an expected valid end and a predefined maximum length more robust. the generation now aborts after a user-defined number of attempts to create a valid sequence and returns an empty sequence instead.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-core-usageprofiles/src/main/java/de/ugoe/cs/autoquest/usageprofiles/TrieBasedModel.java

    r1996 r2026  
    147147    @Override 
    148148    public List<Event> randomSequence() { 
    149         return randomSequence(Integer.MAX_VALUE, true); 
     149        return randomSequence(Integer.MAX_VALUE, true, 100); 
    150150    } 
    151151 
     
    156156     */ 
    157157    @Override 
    158     public List<Event> randomSequence(int maxLength, boolean validEnd) { 
     158    public List<Event> randomSequence(int maxLength, boolean validEnd, long maxIter) { 
    159159        List<Event> sequence = new LinkedList<Event>(); 
     160        int attempts = 0; 
    160161        if (trie != null) { 
    161162            boolean endFound = false; 
    162             while (!endFound) { // outer loop for length checking 
    163                 sequence = new LinkedList<Event>(); 
     163            while (!endFound && attempts <= maxIter) { // outer loop for length checking 
    164164                IncompleteMemory<Event> context = new IncompleteMemory<Event>(trieOrder - 1); 
    165165                context.add(Event.STARTEVENT); 
     
    186186                    } 
    187187                } 
     188                if (!endFound) { 
     189                    sequence = new LinkedList<Event>(); 
     190                } 
     191                attempts++; 
    188192            } 
    189193        } 
     
    398402        List<Event> context = new LinkedList<Event>(); 
    399403        for (Event event : sequence) { 
    400             odds += Math.log(getProbability(context, event)+1); 
     404            odds += Math.log(getProbability(context, event) + 1); 
    401405            context.add(event); 
    402406        } 
Note: See TracChangeset for help on using the changeset viewer.