Changeset 1285 for trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/TaskInstanceTrie.java
- Timestamp:
- 07/30/13 09:44:39 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/TaskInstanceTrie.java
r1273 r1285 20 20 import java.util.Map; 21 21 22 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 22 23 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstance; 23 24 import de.ugoe.cs.autoquest.tasktrees.treeifc.IUserSession; … … 33 34 * @author Patrick Harms 34 35 */ 35 publicclass TaskInstanceTrie extends Trie<ITaskInstance> {36 class TaskInstanceTrie extends Trie<ITaskInstance> { 36 37 37 38 /** */ … … 43 44 * </p> 44 45 */ 45 private Task Comparator comparator;46 46 private TaskHandlingStrategy taskStrategy; 47 47 48 /** 48 49 * <p> … … 52 53 * @param taskComparator2 53 54 */ 54 public TaskInstanceTrie(Task Comparator taskComparator) {55 super(task Comparator);56 this. comparator = taskComparator;55 public TaskInstanceTrie(TaskHandlingStrategy taskStrategy) { 56 super(taskStrategy); 57 this.taskStrategy = taskStrategy; 57 58 } 58 59 … … 65 66 } 66 67 67 SymbolMap<ITaskInstance, List<ITaskInstance>> equalTaskInstancesMap = 68 new SymbolMap<ITaskInstance, List<ITaskInstance>>(comparator); 69 70 Map<ITaskInstance, List<ITaskInstance>> taskInstancesMap = 71 new HashMap<ITaskInstance, List<ITaskInstance>>(); 68 SymbolMap<ITaskInstance, Counter> equalTaskInstancesMap = 69 taskStrategy.createSymbolMap(); 70 71 Map<ITask, Counter> instanceCountMap = new HashMap<ITask, Counter>(); 72 72 73 73 System.out.println("preparing training"); 74 int noOfTaskInstances = 0; 74 75 for (IUserSession session : userSessions) { 75 76 for (ITaskInstance taskInstance : session) { 76 List<ITaskInstance> equalTaskInstances = 77 equalTaskInstancesMap.getValue(taskInstance); 78 79 if (equalTaskInstances == null) { 80 equalTaskInstances = new LinkedList<ITaskInstance>(); 81 equalTaskInstancesMap.addSymbol(taskInstance, equalTaskInstances); 77 Counter counter = equalTaskInstancesMap.getValue(taskInstance); 78 79 if (counter == null) { 80 counter = new Counter(); 81 equalTaskInstancesMap.addSymbol(taskInstance, counter); 82 82 } 83 83 84 equalTaskInstances.add(taskInstance); 85 taskInstancesMap.put(taskInstance, equalTaskInstances); 86 } 87 } 88 89 System.out.println("performing training"); 84 counter.count++; 85 instanceCountMap.put(taskInstance.getTask(), counter); 86 87 noOfTaskInstances++; 88 } 89 } 90 91 System.out.println("performing training of " + noOfTaskInstances + " task instances"); 92 Counter processedTaskInstances = new Counter(); 93 int counterRecheckAt = noOfTaskInstances / 10; // recheck the maximum count after each 94 // 10% of processed task instances 90 95 for (IUserSession session : userSessions) { 91 train(session, maxOrder, taskInstancesMap);96 train(session, maxOrder, instanceCountMap, processedTaskInstances, counterRecheckAt); 92 97 } 93 98 … … 122 127 * 123 128 */ 124 private void train(IUserSession userSession, 125 int maxOrder, 126 Map<ITaskInstance, List<ITaskInstance>> taskInstancesMap) 129 private void train(IUserSession userSession, 130 int maxOrder, 131 Map<ITask, Counter> taskInstanceCountMap, 132 Counter processedTaskInstances, 133 int counterRecheckAt) 127 134 { 128 135 List<ITaskInstance> executedTasks = userSession.getExecutedTasks(); … … 130 137 List<ITaskInstance> subsequence = new LinkedList<ITaskInstance>(); 131 138 132 int numberOfTrainedSubsequences = 0;133 139 int sequenceMaxCount = 0; 134 140 135 141 for (ITaskInstance currentTaskInstance : executedTasks) { 136 int occurrenceCount = taskInstancesMap.get(currentTaskInstance).size(); 137 138 if ((numberOfTrainedSubsequences % 10) == 0) { 142 143 int occurrenceCount = taskInstanceCountMap.get(currentTaskInstance.getTask()).count; 144 145 if (processedTaskInstances.count >= counterRecheckAt) { 139 146 sequenceMaxCount = getCurrentSequenceMaxCount(); 147 processedTaskInstances.count = 0; 140 148 } 141 149 … … 158 166 add(subsequence); 159 167 subsequence.remove(0); 160 161 numberOfTrainedSubsequences++;162 168 } 163 169 } 170 171 processedTaskInstances.count++; 164 172 } 165 173 … … 219 227 } 220 228 229 /** 230 * @author Patrick Harms 231 */ 232 private static class Counter { 233 int count = 0; 234 } 235 221 236 }
Note: See TracChangeset
for help on using the changeset viewer.