source: branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/matrix/DifferenceSubstitutionMatrix.java @ 1698

Last change on this file since 1698 was 1698, checked in by rkrimmel, 10 years ago

Speed improvement by just calculating distances between newly created tasks and the old matrix.

File size: 1.2 KB
Line 
1/**
2 *
3 */
4package de.ugoe.cs.autoquest.tasktrees.alignment.matrix;
5
6import java.util.HashSet;
7import java.util.LinkedList;
8
9import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
10
11
12/**
13 * @author Ralph Krimmel
14 *
15 */
16public class DifferenceSubstitutionMatrix implements SubstitutionMatrix {
17
18        private int[] input1;
19        private int[] input2;
20        private int maxValue;
21       
22        public DifferenceSubstitutionMatrix(int[] input1,int[] input2) {
23                this.input1 = input1;
24                this.input2 = input2;
25                this.maxValue = getMaxValue();
26        }
27       
28        /* (non-Javadoc)
29         * @see de.ugoe.cs.autoquest.plugin.alignment.SubstitutionMatrix#getDistance(int, int)
30         */
31        public double getScore(int pos1, int pos2) {
32                return maxValue - (input1[pos1] - input2[pos2]);
33        }
34       
35        private int getMaxValue() {
36                int max = input1[0];
37                for (int i=0; i < input1.length; i++) {
38                        if(input1[i] > max) {
39                                max = input1[i];
40                        }
41                }
42                for (int j=0; j < input2.length; j++) {
43                        if(input2[j] > max) {
44                                max = input2[j];
45                        }
46                }
47                return max;
48        }
49
50        @Override
51        public double getGapPenalty() {
52                return -maxValue;
53        }
54
55
56        @Override
57        public void generate(HashSet<ITask> uniqueTasks) {
58        }
59
60        @Override
61        public void update(LinkedList<ITask> newlyGeneratedTasks) {
62        }
63
64}
Note: See TracBrowser for help on using the repository browser.