Ignore:
Timestamp:
05/29/14 22:43:07 (10 years ago)
Author:
rkrimmel
Message:

new Smith waterman variant

File:
1 edited

Legend:

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

    r1555 r1558  
    3030         
    3131        public ObjectDistanceSubstitionMatrix( 
    32                         SymbolMap<ITaskInstance, ITask> uniqueTasks) { 
     32                        SymbolMap<ITaskInstance, ITask> uniqueTasks,float positiveThreshold) { 
    3333                this.uniqueTasks = uniqueTasks; 
     34                this.positiveThreshold = positiveThreshold; 
    3435                idmapping = new HashMap<Integer, Integer>(); 
    3536                matrix = new TriangleMatrix(uniqueTasks.size()+1); 
    3637                gapPenalty = -10; 
    37                 //Todo: Calculate this value (the mean distance between every element) before 
    38                 positiveThreshold =7; 
     38                 
    3939        } 
    4040 
     
    4747        public void generate() { 
    4848                int index = 0; 
    49                 float meandistance = 0; 
     49                //TODO We need to determine this parameter before generating the matrix.. 
     50                float meandistance = 18; 
     51                //TODO We need to determine this parameter before generating the matrix.. 
     52                float maxDistance =34; 
    5053                for (Iterator<ITaskInstance> it = uniqueTasks.getSymbols().iterator(); it 
    5154                                .hasNext();) { 
     
    8790                                        tempindex2 = idmapping.get(eti2.getTask().getId()); 
    8891                                } 
    89                                 float distance = AlignmentHelpers.distanceBetween(first, second); 
    90                                 meandistance += distance; 
     92                                float distance = -1*AlignmentHelpers.distanceBetween(first, second); 
     93                                //meandistance += distance; 
    9194                         
    92                                 if (distance > positiveThreshold) { 
    93                                         distance = -1*distance; 
     95                                if(distance > maxDistance){ 
     96                                        maxDistance = distance; 
    9497                                } 
     98                                 
     99                                distance += 5; 
     100                                 
     101                                //if (distance < positiveThreshold) { 
     102                                //      distance = -1*distance; 
     103                                //} 
     104                                 
    95105                                matrix.set(tempindex1, tempindex2,distance); 
    96106                                 
    97107                        } 
    98108                } 
    99                 System.out.println(meandistance/(uniqueTasks.size()*uniqueTasks.size())); 
     109                //System.out.println("ObjectDistanceMatrix: MaxDistance: " + maxDistance); 
     110                //System.out.println(meandistance/(uniqueTasks.size()*uniqueTasks.size())); 
    100111                //System.out.println(idmapping.toString()); 
    101112                //System.out.println(matrix.toString()); 
     
    104115                 
    105116        } 
     117         
     118        public String toString(){ 
     119                return matrix.toString(); 
     120        } 
    106121 
    107122        @Override 
    108123        public float getDistance(int taskId1, int taskId2) { 
    109124                //System.out.println("Taskid1: " + taskId1 + " Taskid2: " + taskId2 + " Idmapping1: " + idmapping.get(taskId1) + " Idmapping2: " + idmapping.get(taskId2)); 
    110                  
    111125                return matrix.get(idmapping.get(taskId1),idmapping.get(taskId2)); 
    112126        } 
Note: See TracChangeset for help on using the changeset viewer.