Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Www.bioalgorithms.info Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Αλγόριθμοι «διαίρει και βασίλευε»

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Www.bioalgorithms.info Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Αλγόριθμοι «διαίρει και βασίλευε»"— Μεταγράφημα παρουσίασης:

1 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Αλγόριθμοι «διαίρει και βασίλευε»

2 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Σύνοψη •Ο αλγόριθμος MergeSort •Εύρεση του μεσαίου σημείου της μήτρας στοίχισης σε γραμμικό χώρο •Στοίχιση αλληλουχιών με χρήση γραμμικού χώρου •Στοίχιση μπλοκ •Η επιτάχυνση των Τεσσάρων Ρώσων •Κατασκευή της LCS σε υποδευτεροβάθμιο χρόνο

3 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Αλγόριθμοι «διαίρει και βασίλευε» •«Διαίρει»: το πρόβλημα διαιρείται σε υποπροβλήματα •«Βασίλευε»: τα υποπροβλήματα λύνονται αναδρομικά. Αν τα υποπροβλήματα είναι αρκετά μικρά, λύνονται με τον αλγόριθμο της ωμής βίας •Συρραφή των λύσεων των υποπροβλημάτων σε μια λύση του αρχικού προβλήματος (περίπλοκο κομμάτι)

4 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Επανεξέταση του προβλήματος της Ταξινόμησης •Δίνεται: ένας μη ταξινομημένος πίνακας •Στόχος: να ταξινομηθεί

5 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Mergesort: βήμα «διαίρει» Βήμα 1 – Διαίρει log(n) διαιρέσεις για να χωριστεί ένας πίνακας μεγέθους n στα μεμονωμένα στοιχεία του

6 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Mergesort: βήμα «βασίλευε» Βήμα 2 – Βασίλευε O(n) O(n logn) logn επαναλήψεις, κάθε επανάληψη απαιτεί χρόνο O(n). Συνολικός χρόνος:

7 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Mergesort: βήμα συρραφής Βήμα 3 – Συρραφή •2 πίνακες μεγέθους 1 μπορούν εύκολα να συγχωνευθούν για να σχηματίσουν έναν ταξινομημένο πίνακα μεγέθους 2 •2 ταξινομημένοι πίνακες μεγέθους n και m, αντίστοιχα, μπορούν να συγχωνευθούν σε χρόνο O(n+m) για να σχηματίσουν έναν ταξινομημένο πίνακα μεγέθους n+m 5225

8 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Mergesort: βήμα συρραφής Συρραφή 2 πινάκων μεγέθους κλπ…

9 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Ο αλγόριθμος Merge 1.Merge(a,b) 2.n1  μέγεθος πίνακα a 3.n2  μέγεθος πίνακα b 4.a n1+1   5.a n2+1   6.i  1 7.j  1 8.for k  1 to n1 + n2 9.if a i < b j 10.c k  a i 11.i  i else 13.c k  b j 14.j  j+1 15.return c

10 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Mergesort: παράδειγμα Διαίρει Βασίλευε

11 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Ο αλγόριθμος MergeSort 1. MergeSort(c) 2. n  μέγεθος πίνακα c 3. if n = 1 4. return c 5. left  λίστα με τα πρώτα n/2 στοιχεία του c 6. right  λίστα με τα τελευταία n-n/2 στοιχεία του c 7. sortedLeft  MergeSort(left) 8. sortedRight  MergeSort(right) 9. sortedList  Merge(sortedLeft,sortedRight) 10. return sortedList

12 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής MergeSort: χρόνος εκτέλεσης •Το πρόβλημα απλοποιείται σε μικρά βήματα •Για την i-οστή επανάληψη συγχώνευσης, η πολυπλοκότητα του προβλήματος είναι O(n) •Το πλήθος των επαναλήψεων είναι O(log n) •Χρόνος εκτέλεσης: O(n logn)

13 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Μέθοδος «διαίρει και βασίλευε» για την LCS Path(source, sink) if(οι κορυφές source & sink βρίσκονται σε διαδοχικές στήλες) output τη μεγαλύτερη διαδρομή από source προς sink else middle ← η μεσαία κορυφή μεταξύ των source & sink Path(source, middle) Path(middle, sink)

14 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Μέθοδος «διαίρει και βασίλευε» για την LCS Path(source, sink) if(οι κορυφές source & sink βρίσκονται σε διαδοχικές στήλες) output τη μεγαλύτερη διαδρομή από source προς sink else middle ← η μεσαία κορυφή μεταξύ των source & sink Path(source, middle) Path(middle, sink) Το μόνο πρόβλημα που απομένει είναι πώς να βρούμε τη «μεσαία κορυφή»!

15 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Ο υπολογισμός της διαδρομής στοίχισης απαιτεί δευτεροβάθμια μνήμη Διαδρομή στοίχισης •Η χωρική πολυπλοκότητα για τον υπολογισμό της διαδρομής στοίχισης για αλληλουχίες μήκους n και m είναι O(nm) •Πρέπει να αποθηκεύσουμε όλους τους δείκτες οπισθοδρόμησης στη μνήμη για να ανακατασκευάσουμε τη διαδρομή (οπισθοδρόμηση) n m

16 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Υπολογισμός βαθμολογίας της στοίχισης με χρήση γραμμικής μνήμης Βαθμολογία στοίχισης •Η χωρική πολυπλοκότητα για τον υπολογισμό μόνο της βαθμολογίας είναι O(n) •Χρειαζόμαστε μόνο την προηγούμενη στήλη για να υπολογίσουμε την τρέχουσα στήλη, και μπορούμε να «απαλλαγούμε» από την προηγούμενη στήλη μόλις ολοκληρώσουμε τη χρήση της 2 n n

17 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Υπολογισμός βαθμολογίας της στοίχισης: ανακύκλωση στηλών η μνήμη για τη στήλη 1 χρησιμοποιείται για τον υπολογισμό της στήλης 3 η μνήμη για τη στήλη 2 χρησιμοποιείται για τον υπολογισμό της στήλης 4 Μόνο δύο στήλες βαθμολογιών αποθηκεύονται σε οποιαδήποτε χρονική στιγμή

18 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Περνώντας από τη μεσαία γραμμή m/2 m n prefix(i) suffix(i) Θέλουμε να υπολογίσουμε τη μεγαλύτερη διαδρομή από την κορυφή (0,0) προς την κορυφή (n, m) που διέρχεται από την κορυφή (i, m/2), όπου το i παίρνει τιμές από 0 έως n και αναπαριστά την i-οστή γραμμή Ορίζουμε το length(i) ως το μήκος της μεγαλύτερης διαδρομής μεταξύ των (0,0) και (n, m) που διέρχεται από την κορυφή (i, m/2)

19 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής m/2 m n prefix(i) suffix(i) Ορίζουμε το (mid, m/2) ως την κορυφή όπου η μεγαλύτερη διαδρομή τέμνει τη μεσαία στήλη length(mid) = βέλτιστο μήκος = max 0  i  n length(i) Περνώντας από τη μεσαία γραμμή

20 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Υπολογισμός του prefix(i) •Το prefix(i) είναι το μήκος της μεγαλύτερης διαδρομής μεταξύ των (0,0) και (i, m/2) •Υπολογίζουμε το prefix(i) με δυναμικό προγραμματισμό στο αριστερό μισό της μήτρας 0 m/2 m αποθήκευση στήλης prefix(i)

21 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Υπολογισμός του suffix(i) •Το suffix(i) είναι το μήκος της μεγαλύτερης διαδρομής μεταξύ των (i, m/2) και (n, m) •Το suffix(i) είναι το μήκος της μεγαλύτερης διαδρομής μεταξύ των (n, m) και (i, m/2) με όλες τις ακμές αντεστραμμένες •Υπολογίζουμε το suffix(i) με δυναμικό προγραμματισμό στο δεξιό μισό της «αντεστραμμένης» μήτρας 0 m/2 m αποθήκευση στήλης suffix(i)

22 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής length(i) = prefix(i) + suffix(i) •Προσθέτουμε τα prefix(i) και suffix(i) για να υπολογίσουμε το length(i): •length(i)=prefix(i) + suffix(i) •Έχουμε πλέον τη μεσαία κορυφή της μέγιστης διαδρομής (i, m/2) ως μέγιστο του length(i) μεσαίο σημείο 0 m/2 m 0i0i

23 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Εύρεση του μεσαίου σημείου 0 m/4 m/2 3m/4 m

24 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Εύρεση του μεσαίου σημείου ξανά 0 m/4 m/2 3m/4 m

25 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Και ξανά 0 m/8 m/4 3m/8 m/2 5m/8 3m/4 7m/8 m

26 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Χρόνος = εμβαδόν: πρώτο πέρασμα •Στο πρώτο πέρασμα, ο αλγόριθμος καλύπτει ολόκληρο το εμβαδόν (Area) Area = n  m

27 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Χρόνος = εμβαδόν: πρώτο πέρασμα •Στο πρώτο πέρασμα, ο αλγόριθμος καλύπτει ολόκληρο το εμβαδόν (Area) Area = n  m Υπολογισμός prefix(i) Υπολογισμός suffix(i)

28 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Χρόνος = εμβαδόν: δεύτερο πέρασμα •Στο δεύτερο πέρασμα, ο αλγόριθμος καλύπτει μόνο το 1/2 εμβαδόν Area/2

29 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Χρόνος = εμβαδόν: τρίτο πέρασμα •Στο τρίτο πέρασμα, καλύπτεται μόνο το 1/4. Area/4

30 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Γεωμετρική μείωση σε κάθε επανάληψη 1 + ½ + ¼ (½) k ≤ 2 Χρόνος εκτέλεσης: O(Area) = O(nm) 1ο πέρασμα : 1 2ο πέρασμα: 1/2 5ο πέρασμα: 1/16 4ο πέρασμα: 1/8 3ο πέρασμα: 1/4

31 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Μπορούμε να στοιχίσουμε αλληλουχίες σε υποδευτεροβάθμιο χρόνο; •Ο δυναμικός προγραμματισμός απαιτεί O(n 2 ) για καθολική στοίχιση •Μπορούμε να βελτιώσουμε την απόδοση; •Ναι, με χρήση της επιτάχυνσης των Τεσσάρων Ρώσων

32 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Διαμέριση αλληλουχιών σε μπλοκ •Το πλέγμα n x n διαμερίζεται σε μπλοκ μεγέθους t x t •Συγκρίνουμε δύο αλληλουχίες μεγέθους n, και κάθε αλληλουχία χωρίζεται σε τμήματα μήκους t το καθένα •Η αλληλουχία u = u 1 …u n γίνεται |u 1 …u t | |u t+1 …u 2t | … |u n-t+1 …u n | και η αλληλουχία v = v 1 …v n γίνεται |v 1 …v t | |v t+1 …v 2t | … |v n-t+1 …v n |

33 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Διαμέριση πλέγματος στοίχισης σε μπλοκ διαμέριση n n/tn/t n/tn/t t t n

34 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Στοίχιση μπλοκ •Στοίχιση μπλοκ των αλληλουχιών u και v: 1. Ένα ολόκληρο μπλοκ της u στοιχίζεται με ένα ολόκληρο μπλοκ της v 2. Προστίθεται ένα ολόκληρο μπλοκ 3. Αφαιρείται ένα ολόκληρο μπλοκ •Διαδρομή μπλοκ: μια διαδρομή που διατρέχει κάθε τετράγωνο t x t μέσω των γωνιών του

35 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Στοίχιση μπλοκ: παραδείγματα αποδεκτόμη αποδεκτό

36 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Το πρόβλημα της Στοίχισης Μπλοκ •Στόχος: Βρείτε τη μεγαλύτερη διαδρομή μπλοκ σε ένα γράφημα μετασχηματισμού •Είσοδος: Οι δύο αλληλουχίες u και v που έχουν διαμεριστεί σε μπλοκ μεγέθους t. Αυτό είναι ισοδύναμο με ένα γράφημα μετασχηματισμού n x n που έχει διαμεριστεί σε υποπλέγματα t x t •Έξοδος: Η στοίχιση μπλοκ των u και v με τη μέγιστη βαθμολογία (δηλαδή η μεγαλύτερη διαδρομή μπλοκ στο γράφημα μετασχηματισμού)

37 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Κατασκευή στοιχίσεων μέσα στα μπλοκ •Προς επίλυση: υπολογίστε τη βαθμολογία στοίχισης ß i,j για κάθε ζεύγος μπλοκ |u (i-1)*t+1 …u i*t | και |v (j- 1)*t+1 …v j*t | •Πόσα μπλοκ υπάρχουν ανά αλληλουχία; (n/t) μπλοκ μεγέθους t •Πόσα ζεύγη μπλοκ απαιτούνται για τη στοίχιση των δύο αλληλουχιών; (n/t) x (n/t) •Για κάθε ζεύγος μπλοκ, λύστε ένα πρόβλημα μίνι στοίχισης με μέγεθος t x t

38 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Κατασκευή στοιχίσεων μέσα στα μπλοκ n/tn/t Κάθε μικρό τετράγωνο αναπαριστά ένα ζεύγος μπλοκ Επίλυση προβλημάτων μίνι στοίχισης

39 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Στοίχιση μπλοκ: δυναμικός προγραμματισμός •Έστω ότι το s i,j συμβολίζει τη βέλτιστη βαθμολογία στοίχισης μπλοκ ανάμεσα στα πρώτα i τμήματα της u και τα πρώτα j τμήματα της v s i,j = max s i-1,j -  block s i,j-1 -  block s i-1,j-1 -  i,j Το  block είναι η ποινή για την προσθήκη ή αφαίρεση ενός ολόκληρου μπλοκ Το  i,j είναι η βαθμολογία του ζεύγους μπλοκ στη γραμμή i και τη στήλη j

40 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Στοίχιση μπλοκ: χρόνος εκτέλεσης •Οι δείκτες i, j παίρνουν τιμές από 0 έως n/t •Ο χρόνος εκτέλεσης του αλγορίθμου είναι O( [n/t]*[n/t]) = O(n 2 /t 2 ) αν δεν μετρήσουμε το χρόνο για τον υπολογισμό κάθε  i,j

41 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Στοίχιση μπλοκ: χρόνος εκτέλεσης (συνέχεια) •Ο υπολογισμός όλων των  i,j απαιτεί την επίλυση (n/t)*(n/t) μίνι στοιχίσεων μπλοκ, μεγέθους (t*t) η καθεμία •Άρα, ο υπολογισμός όλων των  i,j απαιτεί χρόνο O([n/t]*[n/t]*t*t) = O(n 2 ) •Απαιτείται ίδιος χρόνος με το δυναμικό προγραμματισμό •Πώς μπορούμε να επιταχύνουμε;

42 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Η τεχνική των Τεσσάρων Ρώσων •Έστω t = log(n), όπου t είναι το μέγεθος μπλοκ, n είναι το μέγεθος αλληλουχίας. •Αντί να έχουμε (n/t)*(n/t) μίνι στοιχίσεις, κατασκευάζουμε 4 t x 4 t μίνι στοιχίσεις για όλα τα ζεύγη των συμβολοσειρών με t νουκλεοτίδια (τεράστιο μέγεθος), και τις αποθηκεύουμε σε έναν πίνακα αναζήτησης. •Όμως, το μέγεθος του πίνακα αναζήτησης δεν είναι πραγματικά τόσο μεγάλο αν η τιμή του t είναι μικρή. Έστω t = (logn)/4. Τότε, 4 t x 4 t = n

43 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Πίνακας αναζήτησης για την τεχνική των Τεσσάρων Ρώσων Πίνακας αναζήτησης “Score” AAAAAA AAAAAC AAAAAG AAAAAT AAAACA … AAAAAA AAAAAC AAAAAG AAAAAT AAAACA … κάθε αλληλουχία έχει t νουκλεοτίδια το μέγεθος είναι μόνο n, αντί για (n/t)*(n/t)

44 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Νέα σχέση επανάληψης •Ο νέος πίνακας αναζήτησης Score δεικτοδοτείται από ένα ζεύγος συμβολοσειρών με t νουκλεοτίδια, άρα s i,j = max s i-1,j -  block s i,j-1 -  block s i-1,j-1 – Score (i-οστό block της v, j-οστό μπλοκ της u)

45 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Επιτάχυνση των Τεσσάρων Ρώσων: χρόνος εκτέλεσης •Αφού ο υπολογισμός του πίνακα αναζήτησης Score με μέγεθος n απαιτεί χρόνο O(n), ο χρόνος εκτέλεσης περιορίζεται κυρίως από τις (n/t)*(n/t) προσπελάσεις στον πίνακα αναζήτησης •Κάθε προσπέλαση απαιτεί χρόνο O(logn) •Συνολικός χρόνος εκτέλεσης: O( [n 2 /t 2 ]*logn ) •Εφόσον ισχύει t = logn, αντικατάσταση στην: O( [n 2 /{logn} 2 ]*logn) > O( n 2 /logn )

46 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Μέχρι τώρα… •Μπορούμε να χωρίσουμε το πλέγμα σε μπλοκ και να εκτελέσουμε δυναμικό προγραμματισμό μόνο στις γωνίες αυτών των μπλοκ •Για να επιταχύνουμε τους υπολογισμούς των μίνι στοιχίσεων σε χρόνο λιγότερο από n 2, δημιουργούμε έναν πίνακα αναζήτησης μεγέθους n, ο οποίος περιέχει όλες τις βαθμολογίες για όλα τα ζεύγη με t νουκλεοτίδια •Ο χρόνος εκτέλεσης μειώνεται από δευτεροβάθμιος, O(n 2 ), σε υποδευτεροβάθμιο: O(n 2 /logn)

47 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Επιτάχυνση των Τεσσάρων Ρώσων για την LCS •Σε αντίθεση με το διαμερισμένο σε μπλοκ γράφημα, η διαδρομή της LCS δεν χρειάζεται να περάσει από τις κορυφές των μπλοκ. στοίχιση μπλοκμεγαλύτερη κοινή υποαλληλουχία

48 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Στοίχιση μπλοκ και LCS •Στη στοίχιση μπλοκ, μας ενδιαφέρουν μόνο οι γωνίες των μπλοκ. •Στην LCS, μας ενδιαφέρουν όλα τα σημεία πάνω στις ακμές των μπλοκ, επειδή η διαδρομή μπορεί να διατρέξει αυτά τα σημεία. •Θυμηθείτε ότι κάθε αλληλουχία έχει μήκος n, κάθε μπλοκ έχει μέγεθος t, άρα κάθε αλληλουχία έχει (n/t) μπλοκ.

49 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Στοίχιση μπλοκ και LCS: σημεία ενδιαφέροντος η στοίχιση μπλοκ έχει (n/t)*(n/t) = (n 2 /t 2 ) σημεία ενδιαφέροντος η στοίχιση LCS έχει O(n 2 /t) σημεία ενδιαφέροντος

50 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Διατρέχοντας μπλοκ για την LCS •Με δεδομένες τις βαθμολογίες στοίχισης s i,* στην πρώτη γραμμή και τις βαθμολογίες s *,j στην πρώτη στήλη ενός μίνι τετραγώνου t x t, πρέπει να υπολογίσουμε τις βαθμολογίες στοίχισης στην τελευταία γραμμή και στήλη του μίνι τετραγώνου. •Για να υπολογίσουμε τη βαθμολογία της τελευταίας γραμμής και στήλης, χρησιμοποιούμε 4 μεταβλητές: 1.τις βαθμολογίες στοίχισης s i,* στην πρώτη γραμμή 2.τις βαθμολογίες στοίχισης s *,j στην πρώτη στήλη 3.την υποσυμβολοσειρά της αλληλουχίας u σε αυτό το μπλοκ (4 t δυνατές επιλογές) 4.την υποσυμβολοσειρά της αλληλουχίας v σε αυτό το μπλοκ (4 t δυνατές επιλογές)

51 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Διατρέχοντας μπλοκ για την LCS (συνέχεια) •Αν χρησιμοποιήσουμε αυτές τις πληροφορίες για να υπολογίσουμε το πλέγμα, θα απαιτείται δευτεροβάθμιος χρόνος O(n 2 ), αλλά εμείς θέλουμε κάτι καλύτερο. ξέρουμε αυτές τις βαθμολογίες μπορούμε να υπολογίσουμε αυτές τις βαθμολογίες μπλοκ t x t

52 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Επιτάχυνση των Τεσσάρων Ρώσων •Κατασκευάζουμε έναν πίνακα αναζήτησης για όλες τις δυνατές τιμές των τεσσάρων μεταβλητών: 1.όλες τις δυνατές βαθμολογίες για την πρώτη γραμμή s i,* 2.όλες τις δυνατές βαθμολογίες για την πρώτη στήλη s *,j 3.την υποσυμβολοσειρά της αλληλουχίας u σε αυτό το μπλοκ (4 t δυνατές επιλογές) 4.την υποσυμβολοσειρά της αλληλουχίας v σε αυτό το μπλοκ (4 t δυνατές επιλογές) •Για κάθε τετράδα, αποθηκεύουμε την τιμή της βαθμολογίας για την τελευταία γραμμή και στήλη. •Ο πίνακας θα είναι τεράστιος, αλλά μπορούμε να απαλείψουμε τις βαθμολογίες στοιχίσεων που δεν έχουν νόημα.

53 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Μείωση του μεγέθους του πίνακα •Οι βαθμολογίες στοίχισης στην LCS αυξάνονται μονοτονικά, και τα γειτονικά στοιχεία δεν μπορούν να διαφέρουν παραπάνω από 1 •Παράδειγμα: το 0,1,2,2,3,4 είναι αποδεκτό  το 0,1,2,4,5,8 δεν είναι, επειδή το 2 και το 4 διαφέρουν παραπάνω από 1 (και το ίδιο ισχύει για το 5 και το 8) •Επομένως, χρειάζεται να αποθηκεύουμε μόνο τις τετράδες, οι βαθμολογίες των οποίων αυξάνονται μονοτονικά και διαφέρουν το πολύ κατά 1

54 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Αποδοτική κωδικοποίηση των βαθμολογιών στοίχισης •Αντί να αποθηκεύουμε αριθμούς που αντιστοιχούν στους δείκτες των αλληλουχιών u και v, μπορούμε να χρησιμοποιήσουμε δυαδικές τιμές για να κωδικοποιήσουμε τις διαφορές μεταξύ των βαθμολογιών στοίχισης αρχική κωδικοποίηση δυαδική κωδικοποίηση

55 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Μείωση του μεγέθους του πίνακα αναζήτησης •2 t δυνατές βαθμολογίες (t = μέγεθος μπλοκ) •4 t δυνατές συμβολοσειρές •Το μέγεθος του πίνακα αναζήτησης είναι (2 t * 2 t )*(4 t * 4 t ) = 2 6t •Έστω t = (logn)/4 •Το μέγεθος του πίνακα είναι: 2 6((logn)/4) = n (6/4) = n (3/2) •Χρόνος = O( [n 2 /t 2 ]*logn ) •O( [n 2 /{logn} 2 ]*logn) > O( n 2 /logn )

56 Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Περίληψη •Εκμεταλλευτήκαμε το γεγονός ότι για κάθε μπλοκ μεγέθους t = log(n), μπορούμε να υπολογίσουμε εκ των προτέρων όλες τις δυνατές βαθμολογίες και να τις αποθηκεύσουμε σε έναν πίνακα αναζήτησης μεγέθους n (3/2) •Χρησιμοποιήσαμε την επιτάχυνση των Τεσσάρων Ρώσων για να μειώσουμε το χρόνο εκτέλεση της LCS από δευτεροβάθμιο σε υποδευτεροβάθμιο: O(n 2 /logn)


Κατέβασμα ppt "Www.bioalgorithms.info Εισαγωγή στους αλγορίθμους Βιοπληροφορικής Αλγόριθμοι «διαίρει και βασίλευε»"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google