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

new Smith waterman variant

Location:
branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees
Files:
2 added
5 edited

Legend:

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

    r1553 r1558  
    2525                this.signature = signature; 
    2626        } 
     27         
     28        public void printSequence() 
     29        {        
     30                for (int i = 0; i < sequence.length; i++) { 
     31                        System.out.format("%4d", sequence[i]); 
     32                } 
     33                System.out.println(); 
     34        } 
    2735 
    2836} 
  • branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/SmithWaterman.java

    r1555 r1558  
    162162         * Get the maximum value in the score matrix. 
    163163         */ 
    164         private double getMaxScore() { 
     164        public double getMaxScore() { 
    165165                double maxScore = 0; 
    166166 
     
    184184        } 
    185185 
     186         
     187         
    186188        /** 
    187189         * TODO: Iterative Version!!! Output the local alignments ending in the (i, 
     
    272274                        } 
    273275                } 
    274                 // Note: empty alignments are not printed. 
    275276        } 
    276277 
  • 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        } 
  • branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/substitution/TriangleMatrix.java

    r1555 r1558  
    3333                        for(int j = 0; j< size; j++) { 
    3434                                if(i<j) { 
    35                                         result = result + (this.get(i,j) + " "); 
     35                                        result = result + String.format("%+4.1f",this.get(i,j)); 
    3636                                } 
    3737                                else { 
    38                                         result = result + ("    "); 
     38                                        result = result + ("      "); 
    3939                                } 
    4040                        } 
  • branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java

    r1557 r1558  
    2828import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.NumberSequence; 
    2929import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.SmithWaterman; 
     30import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.SmithWatermanRepeated; 
    3031import de.ugoe.cs.autoquest.tasktrees.alignment.substitution.ObjectDistanceSubstitionMatrix; 
    3132import de.ugoe.cs.autoquest.tasktrees.taskequality.TaskEquality; 
     
    145146         
    146147         
    147          
    148148        // this is the real rule application. Loop while something is replaced. 
    149149        SymbolMap<ITaskInstance, ITask> uniqueTasks = harmonizeEventTaskInstancesModel(appData); 
    150         ObjectDistanceSubstitionMatrix submat = new ObjectDistanceSubstitionMatrix(uniqueTasks);   
     150        ObjectDistanceSubstitionMatrix submat = new ObjectDistanceSubstitionMatrix(uniqueTasks,20); 
    151151        submat.generate(); 
    152          
    153         SmithWaterman sw = new SmithWaterman(numberseqs.get(1).getSequence(), numberseqs.get(1).getSequence(), submat); 
    154          
     152       
     153        
     154         
     155        System.out.print("Sequence 1: "); 
     156        NumberSequence ns1 = numberseqs.get(7); 
     157        NumberSequence ns2 = numberseqs.get(8); 
     158        ns1.printSequence(); 
     159        System.out.print("Sequence 2: "); 
     160        ns2.printSequence(); 
     161        //SmithWatermanRepeated sw = new SmithWatermanRepeated(numberseqs.get(20).getSequence(), numberseqs.get(24).getSequence(), submat,10); 
     162        SmithWatermanRepeated sw = new SmithWatermanRepeated(ns1.getSequence(), ns2.getSequence(), submat,15); 
     163        System.out.println("Max Scrore: " + sw.getMaxScore()); 
     164         
     165        sw.printDPMatrix(); 
    155166    
    156167         
    157168         
    158        
    159          
    160          
    161         //Hier mein kram hin 
     169 
    162170        do { 
    163171            System.out.println(); 
     
    165173             
    166174             
    167             appData.getStopWatch().start("whole loop"); 
    168             detectAndReplaceIterations(appData); 
    169  
    170             appData.getStopWatch().start("task replacement"); 
    171             detectAndReplaceTasks(appData); 
    172             appData.getStopWatch().stop("task replacement"); 
    173             appData.getStopWatch().stop("whole loop"); 
    174              
    175              
    176             appData.getStopWatch().dumpStatistics(System.out); 
    177             appData.getStopWatch().reset(); 
     175            //appData.getStopWatch().start("whole loop"); 
     176            //detectAndReplaceIterations(appData); 
     177 
     178            //appData.getStopWatch().start("task replacement"); 
     179            //detectAndReplaceTasks(appData); 
     180            //appData.getStopWatch().stop("task replacement"); 
     181            //appData.getStopWatch().stop("whole loop"); 
     182             
     183             
     184            //appData.getStopWatch().dumpStatistics(System.out); 
     185            //appData.getStopWatch().reset(); 
    178186             
    179187        } 
Note: See TracChangeset for help on using the changeset viewer.