Changeset 1555 for branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/substitution/ObjectDistanceSubstitionMatrix.java
- Timestamp:
- 05/25/14 16:51:10 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/substitution/ObjectDistanceSubstitionMatrix.java
r1554 r1555 26 26 private TriangleMatrix matrix; 27 27 private SymbolMap<ITaskInstance, ITask> uniqueTasks; 28 28 private float gapPenalty; 29 private float positiveThreshold; 30 29 31 public ObjectDistanceSubstitionMatrix( 30 32 SymbolMap<ITaskInstance, ITask> uniqueTasks) { … … 32 34 idmapping = new HashMap<Integer, Integer>(); 33 35 matrix = new TriangleMatrix(uniqueTasks.size()+1); 36 gapPenalty = -10; 37 //Todo: Calculate this value (the mean distance between every element) before 38 positiveThreshold =7; 34 39 } 35 40 36 41 @Override 37 42 public float getGapPenalty() { 38 // TODO Auto-generated method stub 39 return 0; 43 return gapPenalty; 40 44 } 41 45 42 46 @Override 43 47 public void generate() { 44 int i = 0; 48 int index = 0; 49 float meandistance = 0; 45 50 for (Iterator<ITaskInstance> it = uniqueTasks.getSymbols().iterator(); it 46 51 .hasNext();) { … … 50 55 eti1 = (IEventTaskInstance) obj1; 51 56 } 52 int j = 0;57 53 58 for (Iterator<ITaskInstance> jt = uniqueTasks.getSymbols() 54 59 .iterator(); jt.hasNext();) { … … 60 65 IGUIElement first = (IGUIElement) eti1.getEvent().getTarget(); 61 66 IGUIElement second = (IGUIElement) eti2.getEvent().getTarget(); 62 idmapping.put(eti1.getTask().getId(), i); 63 idmapping.put(eti2.getTask().getId(), j); 64 matrix.set(i, j, AlignmentHelpers.distanceBetween(first, second)); 65 j++; 67 int tempindex1 = -1; 68 int tempindex2 = -1; 69 if(!idmapping.containsKey(eti1.getTask().getId())) 70 { 71 idmapping.put(eti1.getTask().getId(), index); 72 tempindex1 = index; 73 index++; 74 } 75 else 76 { 77 tempindex1 = idmapping.get(eti1.getTask().getId()); 78 } 79 if(!idmapping.containsKey(eti2.getTask().getId())) 80 { 81 idmapping.put(eti2.getTask().getId(), index); 82 tempindex2 = index; 83 index++; 84 } 85 else 86 { 87 tempindex2 = idmapping.get(eti2.getTask().getId()); 88 } 89 float distance = AlignmentHelpers.distanceBetween(first, second); 90 meandistance += distance; 91 92 if (distance > positiveThreshold) { 93 distance = -1*distance; 94 } 95 matrix.set(tempindex1, tempindex2,distance); 96 66 97 } 67 i++;68 98 } 99 System.out.println(meandistance/(uniqueTasks.size()*uniqueTasks.size())); 100 //System.out.println(idmapping.toString()); 101 //System.out.println(matrix.toString()); 102 //System.out.println(idmapping.keySet().toString()); 103 //System.out.println(idmapping.values().toString()); 104 69 105 } 70 106 71 107 @Override 72 108 public float getDistance(int taskId1, int taskId2) { 109 //System.out.println("Taskid1: " + taskId1 + " Taskid2: " + taskId2 + " Idmapping1: " + idmapping.get(taskId1) + " Idmapping2: " + idmapping.get(taskId2)); 110 73 111 return matrix.get(idmapping.get(taskId1),idmapping.get(taskId2)); 74 112 }
Note: See TracChangeset
for help on using the changeset viewer.