Ignore:
Timestamp:
09/09/11 06:23:36 (13 years ago)
Author:
sherbold
Message:
  • code documentation and formatting
File:
1 edited

Legend:

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

    r128 r171  
    1717import de.ugoe.cs.util.console.Console; 
    1818 
     19/** 
     20 * <p> 
     21 * Command to generate all sequences of a given length. 
     22 * </p> 
     23 *  
     24 * @author Steffen Herbold 
     25 * @version 1.0 
     26 */ 
    1927public class CMDgenerateFixedLengthSequences implements Command { 
    2028 
     29        /* 
     30         * (non-Javadoc) 
     31         *  
     32         * @see de.ugoe.cs.util.console.Command#run(java.util.List) 
     33         */ 
    2134        @Override 
    2235        public void run(List<Object> parameters) { 
     
    3245                        minLength = Integer.parseInt((String) parameters.get(2)); 
    3346                        maxLength = Integer.parseInt((String) parameters.get(3)); 
    34                         if( parameters.size()>=5 ) { 
     47                        if (parameters.size() >= 5) { 
    3548                                all = Boolean.parseBoolean((String) parameters.get(4)); 
    3649                        } 
    37                         if( parameters.size()==6 ) { 
    38                                 numSequences = Integer.parseInt((String) parameters.get(5));  
     50                        if (parameters.size() == 6) { 
     51                                numSequences = Integer.parseInt((String) parameters.get(5)); 
    3952                        } 
    40                 } 
    41                 catch (Exception e) { 
     53                } catch (Exception e) { 
    4254                        throw new InvalidParameterException(); 
    4355                } 
    44                  
    45                 IStochasticProcess model = null;  
    46                 Object dataObject = GlobalDataContainer.getInstance().getData(modelname); 
    47                 if( dataObject==null ) { 
     56 
     57                IStochasticProcess model = null; 
     58                Object dataObject = GlobalDataContainer.getInstance() 
     59                                .getData(modelname); 
     60                if (dataObject == null) { 
    4861                        Console.println("Model " + modelname + " not found in storage."); 
    49                 } 
    50                 else if( !(dataObject instanceof IStochasticProcess) ) { 
     62                } else if (!(dataObject instanceof IStochasticProcess)) { 
    5163                        Console.println("Object " + modelname + " not of type MarkovModel!"); 
    5264                } else { 
    5365                        model = (IStochasticProcess) dataObject; 
    5466                        Collection<List<? extends Event<?>>> sequences = new LinkedHashSet<List<? extends Event<?>>>(); 
    55                         for( int length=minLength; length<=maxLength; length++ ) { 
    56                                 sequences.addAll(model.generateValidSequences(length+2)); 
     67                        for (int length = minLength; length <= maxLength; length++) { 
     68                                sequences.addAll(model.generateValidSequences(length + 2)); 
    5769                        } 
    5870                        Console.traceln("" + sequences.size() + " possible"); 
    59                         if( !all && numSequences<sequences.size() ) { 
    60                                 List<Double> probabilities = new ArrayList<Double>(sequences.size()); 
     71                        if (!all && numSequences < sequences.size()) { 
     72                                List<Double> probabilities = new ArrayList<Double>( 
     73                                                sequences.size()); 
    6174                                double probSum = 0.0; 
    62                                 for( List<? extends Event<?>> sequence : sequences ) { 
     75                                for (List<? extends Event<?>> sequence : sequences) { 
    6376                                        double prob = model.getProbability(sequence); 
    6477                                        probabilities.add(prob); 
     
    6780                                Set<Integer> drawnSequences = new HashSet<Integer>(numSequences); 
    6881                                Random r = new Random(); 
    69                                 while( drawnSequences.size()<numSequences ) { 
    70                                         double randVal = r.nextDouble()*probSum; 
     82                                while (drawnSequences.size() < numSequences) { 
     83                                        double randVal = r.nextDouble() * probSum; 
    7184                                        double sum = 0.0d; 
    7285                                        int index = -1; 
    73                                         while( sum<randVal ) { 
     86                                        while (sum < randVal) { 
    7487                                                index++; 
    7588                                                double currentProb = probabilities.get(index); 
    7689                                                sum += currentProb; 
    7790                                        } 
    78                                         if( !drawnSequences.contains(index) ) { 
     91                                        if (!drawnSequences.contains(index)) { 
    7992                                                drawnSequences.add(index); 
    8093                                                probSum -= probabilities.get(index); 
     
    8497                                Collection<List<? extends Event<?>>> retainedSequences = new LinkedList<List<? extends Event<?>>>(); 
    8598                                int index = 0; 
    86                                 for( List<? extends Event<?>> sequence : sequences) { 
    87                                         if( drawnSequences.contains(index) ) { 
     99                                for (List<? extends Event<?>> sequence : sequences) { 
     100                                        if (drawnSequences.contains(index)) { 
    88101                                                retainedSequences.add(sequence); 
    89102                                        } 
     
    92105                                sequences = retainedSequences; 
    93106                        } 
    94                         if( GlobalDataContainer.getInstance().addData(sequencesName, sequences) ) { 
    95                                 Console.traceln("Old data \"" + sequencesName + "\" overwritten"); 
     107                        if (GlobalDataContainer.getInstance().addData(sequencesName, 
     108                                        sequences)) { 
     109                                Console.traceln("Old data \"" + sequencesName 
     110                                                + "\" overwritten"); 
    96111                        } 
    97112                        Console.println("" + sequences.size() + " sequences generated"); 
     
    99114        } 
    100115 
     116        /* 
     117         * (non-Javadoc) 
     118         *  
     119         * @see de.ugoe.cs.util.console.Command#help() 
     120         */ 
    101121        @Override 
    102122        public void help() { 
Note: See TracChangeset for help on using the changeset viewer.