Eine molekulare Lösung des Hamiltonkreisproblems mit DNA Seminar Molecular Computing Bild: http://creatia2013.files.wordpress.com/2013/03/dna.gif Andreas Fehn 11. Juli 2013
Gliederung 1. Problemstellung 2. Beispiel 3. Einordnung 4. Adlemans Algorithmus 5. Bewertung
Problemstellung Gegeben: Hamiltonpfadproblem zusammenhängender gerichteter Graph G = (V, E) mit n Knoten Gesucht: Rundreise, die an einem bestimmten Knoten startet, an einem anderen Knoten wieder endet und alle anderen Knoten genau einmal besucht Anwendungen (u.a.): Modellierung von praktischen Problemen Ausgangspunkt für Problemtransformationen
Beispiel eines Hamiltonpfadproblems Besitzt dieser Graph einen Hamiltonpfad mit dem Startknoten 0 und dem Endknoten 6? G = (V, E) V = {0, 1, 2, 3, 4, 5, 6} E = {(0,1), (0,3), (0,6), (1,2), (1,3), (2,1), (2,3), (3,2), (3,4), (4,1), (4,5), (5,1), (5,2), (5,6)}
Beispiel eines Hamiltonpfadproblems Besitzt dieser Graph einen Hamiltonpfad mit dem Startknoten 0 und dem Endknoten 6? Ja 0 1 2 3 4 5 6
Einordnung des Hamiltonpfadproblems Es handelt sich um ein NP-vollständiges Suchproblem kein deterministischer Algorithmus in Polynomialzeit auf einer sequentiellen Maschine Ziel: Zeiteffizienz durch Parallelisierung erreichen
Adlemans Lösung des Hamiltonpfadproblems Nichtdeterministischer Algorithmus auf DNA-Basis Ablauf: 1. Schritt: Generiere beliebige Pfade durch den Graphen 2. Schritt: Behalte nur die Pfade, die an den ausgewählten Knoten starten bzw. enden 3. Schritt: Behalte nur die Pfade, die genau n Knoten besuchen 4. Schritt: Behalte nur die Pfade, die jeden Knoten mindestens einmal besuchen Bleibt dann mindestens ein Pfad übrig, lautet die Antwort ja, sonst nein.
Kodierung in DNA Konvertierung nötig Knoten werden als DNA-Einzelstränge mit 6 Basen dargestellt Kanten werden als DNA-Einzelstränge mit 6 Basen folgendermaßen dargestellt: Die ersten drei komplementär zu den letzten drei der Quellknoten-DNA Die drei letzten komplementär zu den ersten drei der Zielknoten-DNA
Beispiel Knoten 0 Knoten 1 Knoten 2 Kante 0 1 Kante 1 2 Kante 2 1
Beispiel Pfad: 0 1 2 3
1. Schritt Beliebige Pfade erzeugen Sehr große Anzahlen der einzelnen DNA-Einzelstränge werden in einen gemeinsamen Reaktionsraum gegeben Mittels Annealing und Ligation werden lange DNA-Doppelstränge erzeugt
Annealing Beim Annealing werden Einzelstränge zu Doppelsträngen zusammengelegt.
Ligation Bei der Ligation werden Doppelstränge mit passenden Enden verkettet.
1. Schritt Ergebnis des 1. Schrittes:
2. Schritt Behalte nur die Pfade, die mit den ausgewählten Knoten beginnen bzw. enden Auf das Ergebnis des 1. Schrittes wird eine Polymerase-Kettenreaktion angewandt Die Primer sind die DNA-Moleküle der Knoten 0 und 6
Polymerase- Kettenreaktion (PCR) Abschnitte doppelsträngiger DNA werden exponentiell dupliziert
2. Schritt Ergebnis des 2. Schrittes:
3. Schritt Behalte nur die Pfade, die genau n Knoten besuchen Mit einer Agarose-Gelelektrophorese werden die DNA-Stränge mit einer Länge von n 6 Nukleotide herausgefiltert Die Ergebnisstränge werden mit einer weiteren PCR vermehrt
Agarose- Gelelektrophorese Technik zur Separation und Längenbestimmung von DNA-Strängen
3. Schritt Ergebnis des 3. Schrittes
4. Schritt Behalte nur die Pfade, die alle anderen Knoten besuchen Mittels Biotin-Avidin-Purification werden alle DNA-Moleküle entfernt, die nicht die DNA-Sequenz für den Knoten 1 enthalten
Biotin-Avidin-Purification Doppelstränge Einzelstränge Anheften von Biotin an die Strangenden Komplementäre DNA-Einzelstränge werden an biotinylierte DNA-Einzelstränge angelagert Nicht angelagerte Stränge werden ausgewaschen Danach Trennung und Auswaschung der angelagerten Einzelstränge und Annealing der komplementären Einzelstränge
Biotin-Avidin-Purification
4. Schritt Schritt 4 wird für alle anderen Knoten (2, 3, 4, 5) wiederholt. Ergebnis:
Antwort des Algorithmus Das Ergebnis wird mit einer Polymerase-Kettenreaktion dupliziert Durch eine Agarose-Gelelektrophorese kann bestimmt werden, ob ein Pfad übrig geblieben ist
Bewertung des Algorithmus Anzahl der Arbeitsschritte ist linear in der Anzahl der Knoten Verlagerung des exponentiellen Zeitaufwands bei sequentieller Bearbeitung zu exponentiellem Speicherbedarf Theoretisch skalierbar auf beliebige Graphengrößen Adleman benötigte eine Woche im Labor
Vielen Dank für die Aufmerksamkeit! Fragen?