Ignore:
Timestamp:
07/13/11 10:15:13 (13 years ago)
Author:
sherbold
Message:
  • generateRandomSequences now generates no duplicates
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/commands/CMDgenerateRandomSequences.java

    r84 r119  
    22 
    33import java.security.InvalidParameterException; 
     4import java.util.HashSet; 
    45import java.util.LinkedList; 
    56import java.util.List; 
     7import java.util.Set; 
    68 
    79import de.ugoe.cs.eventbench.data.GlobalDataContainer; 
     
    1820                String sequencesName; 
    1921                int numSessions; 
     22                long maxIter; 
    2023                try { 
    2124                        modelname = (String) parameters.get(0); 
    2225                        sequencesName = (String) parameters.get(1); 
    2326                        numSessions = Integer.parseInt((String) parameters.get(2)); 
     27                        maxIter = numSessions*10; 
     28                        if( parameters.size()==4 ) { 
     29                                maxIter = Long.parseLong((String) parameters.get(3)); 
     30                        } 
    2431                } 
    2532                catch (Exception e) { 
     
    3643                } else { 
    3744                        model = (IStochasticProcess) dataObject; 
    38                         List<List<? extends Event<?>>> sequences = new LinkedList<List<? extends Event<?>>>(); 
    39                         for( int i=0 ; i<numSessions ; i++ ) { 
     45                        Set<List<? extends Event<?>>> sequences = new HashSet<List<? extends Event<?>>>(numSessions); 
     46                        long numIterations = 0; 
     47                        while( sequences.size()<numSessions && numIterations<maxIter ) { 
    4048                                sequences.add(model.randomSequence()); 
     49                                numIterations++; 
     50                        } 
     51                        if( sequences.size() < numSessions ) { 
     52                                Console.println("Only " + sequences.size() + " unique sessions generated after " + maxIter + " iterations"); 
    4153                        } 
    4254                        if( GlobalDataContainer.getInstance().addData(sequencesName, sequences) ) { 
     
    4860        @Override 
    4961        public void help() { 
    50                 Console.println("Usage: generateRandomSequenecs <modelName> <sequencesName> <numSessions>"); 
     62                Console.println("Usage: generateRandomSequenecs <modelName> <sequencesName> <numSessions> {<maxIter>}"); 
    5163        } 
    5264 
Note: See TracChangeset for help on using the changeset viewer.