source: trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/commands/CMDtrainDFA.java @ 133

Last change on this file since 133 was 96, checked in by sherbold, 13 years ago

+ added command generateFixedLengthSequences
+ added command trainDFA

  • Property svn:mime-type set to text/plain
File size: 1.6 KB
Line 
1package de.ugoe.cs.eventbench.commands;
2
3import java.security.InvalidParameterException;
4import java.util.List;
5import java.util.Random;
6
7import de.ugoe.cs.eventbench.data.Event;
8import de.ugoe.cs.eventbench.data.GlobalDataContainer;
9import de.ugoe.cs.eventbench.models.DeterministicFiniteAutomaton;
10import de.ugoe.cs.util.console.Command;
11import de.ugoe.cs.util.console.Console;
12
13public class CMDtrainDFA implements Command {
14
15        @Override
16        public void help() {
17                Console.println("Usage: trainDFA <modelName>");
18        }
19
20        @SuppressWarnings("unchecked")
21        @Override
22        public void run(List<Object> parameters) {
23                String modelname;
24                try {
25                        modelname = (String) parameters.get(0);
26                } catch (Exception e) {
27                        throw new InvalidParameterException();
28                }
29               
30                List<List<Event<?>>> sequences = null;
31                Object dataObject = GlobalDataContainer.getInstance().getData("sequences");
32                       
33                try {
34                        sequences = (List<List<Event<?>>>) dataObject;
35                        if( sequences.size()>0 ) {
36                                if( sequences.get(0).get(0) instanceof Event ) {
37                                        DeterministicFiniteAutomaton model =  new DeterministicFiniteAutomaton(new Random());
38                                        model.train(sequences);
39                                        if( GlobalDataContainer.getInstance().addData(modelname, model) ) {
40                                                Console.traceln("Old data \"" + modelname + "\" overwritten");
41                                        }
42                                } else {
43                                        Console.traceln("Illegal use of \"sequences\" parameter in the GlobalDataContainer.");
44                                        Console.traceln("The parameter should always be of type List<List<? extends Event<?>>!");
45                                }
46                        }
47                }
48                catch(ClassCastException e) {
49                        Console.println("Sequences need to be loaded first using parseXML");
50                }
51        }
52
53}
Note: See TracBrowser for help on using the repository browser.