Ignore:
Timestamp:
05/25/14 16:51:10 (10 years ago)
Author:
rkrimmel
Message:

Smith waterman working again

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/substitution/ObjectDistanceSubstitionMatrix.java

    r1554 r1555  
    2626        private TriangleMatrix matrix; 
    2727        private SymbolMap<ITaskInstance, ITask> uniqueTasks; 
    28  
     28        private float gapPenalty;  
     29        private float positiveThreshold; 
     30         
    2931        public ObjectDistanceSubstitionMatrix( 
    3032                        SymbolMap<ITaskInstance, ITask> uniqueTasks) { 
     
    3234                idmapping = new HashMap<Integer, Integer>(); 
    3335                matrix = new TriangleMatrix(uniqueTasks.size()+1); 
     36                gapPenalty = -10; 
     37                //Todo: Calculate this value (the mean distance between every element) before 
     38                positiveThreshold =7; 
    3439        } 
    3540 
    3641        @Override 
    3742        public float getGapPenalty() { 
    38                 // TODO Auto-generated method stub 
    39                 return 0; 
     43                return gapPenalty; 
    4044        } 
    4145 
    4246        @Override 
    4347        public void generate() { 
    44                 int i = 0; 
     48                int index = 0; 
     49                float meandistance = 0; 
    4550                for (Iterator<ITaskInstance> it = uniqueTasks.getSymbols().iterator(); it 
    4651                                .hasNext();) { 
     
    5055                                eti1 = (IEventTaskInstance) obj1; 
    5156                        } 
    52                         int j = 0; 
     57                 
    5358                        for (Iterator<ITaskInstance> jt = uniqueTasks.getSymbols() 
    5459                                        .iterator(); jt.hasNext();) { 
     
    6065                                IGUIElement first = (IGUIElement) eti1.getEvent().getTarget(); 
    6166                                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                                 
    6697                        } 
    67                         i++; 
    6898                } 
     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                 
    69105        } 
    70106 
    71107        @Override 
    72108        public float getDistance(int taskId1, int taskId2) { 
     109                //System.out.println("Taskid1: " + taskId1 + " Taskid2: " + taskId2 + " Idmapping1: " + idmapping.get(taskId1) + " Idmapping2: " + idmapping.get(taskId2)); 
     110                 
    73111                return matrix.get(idmapping.get(taskId1),idmapping.get(taskId2)); 
    74112        } 
Note: See TracChangeset for help on using the changeset viewer.