Sparse Dynamic Programming Algorithms 1D and 2D Interval Chaining Hila Shalom Assaf Shemesh Reference: Dan Gusfield s book pages 325-329
תוכן העניינים בעיית האינטרוולים במימד 1 הצגת הבעיה פתרון חמדני לבעיה פתרון לבעיה בעזרת תכנון דינמי פתרון איטרטיבי בעיית האינטרוולים בדו-מימד הצגת הבעיה פתרון באמצעות רדוקציה פתרון יעיל לבעיה
Central Dogma and Splicing intron1 intron2 exon1 exon2 exon3 transcription splicing exon = coding intron = non-coding translation Batzoglou
Splicing Signals Exons are interspersed with introns and typically flanked by GT and AG
Splice site detection Donor site 5 3 Position % -8-2 -1 0 1 2 17 A 26 60 9 0 1 54 21 C 26 15 5 0 1 2 27 G 25 12 78 99 0 41 27 T 23 13 8 1 98 3 25 From lectures by Serafim Batzoglou (Stanford)
Consensus splice sites Donor: 7.9 bits Acceptor: 9.4 bits
Three problem variants on board
בעיית האינטרוולים במימד מוטיבציה: בעיית הרכבת הגן בDNA 1 גן )gene( יחיד מכיל אקסונים )exons( רבים אשר מופרדים ע"י אינטרונים.)introns( האקסונים )exons( הם האחראים ליצירת החלבון.
P(1)= 0 P(2)= 0 P(3)= 0 P(4)= 2 P(5)= 3 בעיית האינטרוולים במימד 1 w(1)= 6 w(2)= 5 w(3)= 4 w(4)= 1 w(5)= 10 M[0] = 0 M[1] = max(6 + 0, 0) = 6 M[2] = max(5+0,6) = 6 M[3] = max(4+0,6) = 6 M[4] = max(1+6,6( = 7 M[5] = max(10+6,7)=16 דוגמת ריצה לאלגוריתם האיטרטיבי: 2 1 3 5 0 1 2 3 4 5 6 7 8 9 10 11 Input: n, s 1,,s n, f 1,,f n, w 1,,w n Sort jobs by finish times so that f 1 f 2... f n. Compute p(1), p(2),, p(n) Iterative-Compute-Opt { M[0] = 0 for j = 1 to n M[j] = max(w j + M[p(j)], M[j-1]) } M: 0 6 6 6 7 16 4
1 דוגמא: בעיית האינטרוולים במימד M: 0 6 6 6 7 16 נשים לב: האינטרוולים 1 ו- 5 נותנים את הערך המקסימלי 16 P(1)= 0 w(1)= 6 P(2)= 0 w(2)= 5 P(3)= 0 w(3)= 4 P(4)= 2 w(4)= 1 P(5)= 3 w(5)= 10 2 1 3 4 5 הרצת הדוגמא: * Find-Solution(5): w(5)+m[p(5)=3] == 10 + 6 > M[4] == 7 אינטרוול 5 הוא חלק מהפתרון * Find-Solution(p(5)= 3): == 4+0 < M[2] == 6 w(3)+m[p(3)=0] * Find-Solution(2): == 5+0 < M[1] == 6 w(2)+m[p(2)=0] * Find-Solution(1): == 6+0 > M[0] == 0 w(1)+m[p(1)=0] אינטרוול 1 הוא חלק מהפתרון 11 סיום הריצה!!!
בעיית האינטרוולים במימד 1 זמן ריצת אלגוריתם האיתחול: מיון האינטרוולים עפ"י זמן סיום: חישוב :p(j) O(n)? אתחול מבנה הנתונים: O(n) O(nlogn)? חישוב האלגוריתם O(n) :M-Compute-Opt(j) כל ערך מחושב פעם אחת ע"י שתי קריאות רקורסיביות כקריאת ערך בטבלה(:מציאת ערך שחושב נעשית ב-( O(1 יש לחשב n ערכים עבור n אינטרוולים. )ממומשות זמן הריצה של האלגוריתם בעזרת הוא: O(nlogn)
בעיית האינטרוולים בדו-מימד תיאור בעיית האינטרוולים בדו-מימד: בהינתן שתי מחרוזות s1,s2 יש למצוא קבוצה מקסימאלית של זוגות של תתי המחרוזות מs1 ומ- s2, כך ש: תתי-המחרוזות מs1 אינן חופפות. )כמו שרצינו עם האינטרוולים במימד אחד( בכל זוג תתי מחרוזות, תת מחרוזת מ- s1 דומה לתת מחרוזת מ- s2. בכל זוג תתי מחרוזות, בפער הקיים ביניהם, לא קיימים זוג נוסף של תתי מחרוזות. תתי-המחרוזות מ- s2 אינן חופפות. )כמו שרצינו עם האינטרוולים במימד אחד( כלומר נרצה למצוא את ה- subsequence המשותף של שתי המחרוזות. דימיון בין מחרוזות שתי מחרוזות דומות אם הן בעלות מבנה דומה של אותיות לדוגמה C ו- C תתי-מחרוזות חופפות שתי תתי-מחרוזות חופפות אם הן שייכות לאותה מחרוזת ויש להן חלק משותף. לדוגמה B' ו- B ' S1 A B C S2 A B B C A
S1 4 3 5 2 S2 11 3 7 7 8 פירמול הבעיה:.1.2.3.4 בעיית האינטרוולים בדו-מימד ניצור מערכת צירים דו ממדית כל שהציר האנכי מייצג את אותיות המחרוזת s1 והציר האופקי מייצג את אותיות המחרוזת S2. עבור תתי מחרוזות דומים ניצור מלבן. משקל המלבן יהיה על פי כמות האותיות הזהות. נחבר בחץ שני מלבנים שאינן חופפים בציר הX ובציר הY. הגדרות: 1. קבוצת מלבנים תיקרא "שרשרת" אם אינם חופפים בציר הX ובציר הY. 2. משקל שרשרת חיבור כלל משקלות המלבנים בשרשרת.
בעיית האינטרוולים בדו-מימד מטרה: מציאת השרשרת הכבדה ביותר מכלל השרשראות הקיימות
w(i,t) = 0 בעיית האינטרוולים בדו-מימד רדוקציה לבעיית מציאת מסלול כבד ביותר בגרף מכוון ממושקל חסר מעגלים (DAG( פיתרון : V = {v v represents a rectangle } U {s,t} נגדיר גרף :G=(V,E) E1 = {(i,j) rectangle j could follow rectangle i in some chain } E2= {(s,i) i is a vertex in V (represents a rectangle) } E3= {(i,t) i is a vertex in V (represents a rectangle) } E= E1 U E2 U E3 w(i,j) = { v(j) (j!= t) && (i is a vertex in V) } where v(j) is the value of rectangle j represented by the j th vertex in G.
S2 דוגמה לרדוקציה: בעיית האינטרוולים בדו-מימד a: 5 b: 7 S1 d: 2 c: 3 e: 4 f: 7 3 7 a c f 5 0 s 7 t b d e