Ein progressiver Algorithmus für Multiple Sequence Alignment auf Basis von A*-Suche. Christine Zarges

Größe: px
Ab Seite anzeigen:

Download "Ein progressiver Algorithmus für Multiple Sequence Alignment auf Basis von A*-Suche. Christine Zarges"

Transkript

1 Ein progressiver Algorithmus für Multiple Sequence Alignment auf Basis von A*-Suche Christine Zarges Algorithm Engineering Report TR November 2007 ISSN Fakultät für Informatik Algorithm Engineering (LS 11) Dortmund / Germany

2

3 UNIVERSITÄT FACHBEREICH DORTMUND INFORMATIK Diplomarbeit Ein progressiver Algorithmus für Multiple Sequence Alignment auf Basis von A -Suche Christine Zarges I N T E R N E I N T E R N A L B E R I C H T E R E P O R T S Diplomarbeit am Fachbereich Informatik der Universität Dortmund 14. Mai 2007 Gutachter: Prof. Dr. Petra Mutzel Maria Kandyba GERMANY D DORTMUND

4

5 Ein progressiver Algorithmus für Multiple Sequence Alignment auf Basis von A -Suche Christine Zarges

6 Ich danke Melanie Schmidt für zahlreiche Anmerkungen und Diskussionen, Daniel Göhring für viele hilfreiche Tipps, Maria Kandyba, Markus Chimani und Frau Prof. Dr. Petra Mutzel für die Betreuung dieser Arbeit sowie meinen Eltern für die Unterstützung während des gesamten Studiums. Christine Zarges, Fachbereich Informatik, Universität Dortmund

7 Inhaltsverzeichnis Abbildungsverzeichnis Tabellenverzeichnis Symbolverzeichnis V VII IX 1 Einleitung Problembeschreibung und verwandte Arbeiten Ziele der Arbeit Gliederung der Arbeit Mathematische Problemmodellierung Kodierung von Nukleinsäuren und Proteinen durch Strings Verwandtschaftsbegriff für Sequenzen Definition von Sequenzalignments Bewertung von Sequenzalignments Paarweises Alignment Multiple Sequence Alignment Zusammenfassung Alignments und Dynamische Programmierung Paarweises Alignment Lineare Lückenstrafen: Needleman-Wunsch Allgemeine Lückenstrafen: Waterman-Smith-Beyer Affine Lückenstrafen: Gotoh Multiple Sequence Alignment Zusammenfassung I

8 II Inhaltsverzeichnis 4 Alignments und Kürzeste-Wege-Algorithmen Algorithmus von Dijkstra A -Suche Verwendete Schätzfunktionen Paarweise Alignments als untere Schranke Dreifache Alignments als untere Schranke Pruning Bidirektionale Suche Symmetrischer Ansatz Konsistenter Ansatz Erweiterung für quasi-affine Lückenstrafen Zusammenfassung Progressive Algorithmen Progressiver Divide-And-Conquer-Algorithmus Progressive bidirektionale A -Suche Progressiver k-band-algorithmus Grundlegende Modifikationen für n Sequenzen und Kürzeste- Wege-Algorithmen Distanzberechnung im n-dimensionalen Edit-Graphen MAX-Metrik REACH-Metrik Erweiterung des k-bandes Minimierung der Progressivitätskosten Ansatz 1: Snapshot-Methode Ansatz 2: k-band-stack-methode Zusammenfassung Experimentelle Analyse Setup Verwendete Datenstrukturen Implizite Graphdarstellung Listendarstellung Trie Erweiterung für quasi-affine Lückenstrafen

9 Inhaltsverzeichnis III Berechnung der Nachbarknoten und Kantengewichte Resultate Experimente mit BAliBASE Progressivitätskosten Datenstrukturen für markierte Knoten und Kanten Berechnung der unteren Schranke Varianten des k-band-algorithmus Unidirektionale und bidirektionale Suche Art der Lückenstrafe Konvergenzverhalten Vergleich mit OMA Zusammenfassung der Ergebnisse Experimente mit Cytochrome C Zusammenfassung und Ausblick 103 A Molekularbiologische Grundlagen 105 A.1 Nukleinsäuren A.1.1 DNS A.1.2 RNS A.2 Proteine A.3 Der genetische Informationsfluss B Substitutionsmatrizen für Proteine 111 B.1 PAM-Matrizen B.2 BLOSUM-Matrizen B.3 Vergleich von PAM- und BLOSUM-Matrizen Literaturverzeichnis 115

10 IV Inhaltsverzeichnis

11 Abbildungsverzeichnis 2.1 Multiples Alignment für n = Entstehung der Rekursionsgleichung nach Needleman-Wunsch Berechnung eines optimalen Alignments nach Needleman-Wunsch Beispiel für die Konstruktion eines 2-dimensionalen Edit-Graphen Korrektheitsbeweis des Algorithmus von Dijkstra [9] Modifikation der Kantenkosten durch die A -Suche Edit-Graph für Vorwärts- und Rückwärtssuche mit n = Ablauf der bidirektionalen A -Suche bei Verwendung von linearen Lückenstrafen Gegenbeispiel für das Optimalitätsprinzip bei affinen oder quasiaffinen Lückenstrafen Edit-Graph für quasi-affine Lückenstrafen mit n = Beispiel für eine nicht-konsistente Schätzfunktion bei affinen Lückenstrafen Ablauf der bidirektionalen A -Suche bei Verwendung von quasiaffinen Lückenstrafen Schema der Divide-And-Conquer-Methode aus [36] dimensionales k-band Die Gitter-Struktur des Edit-Graphen dimensionales k-band mit MAX-Metrik dimensionales k-band mit REACH-Metrik Multi-k-Band Ablauf des unidirektionalen k-band-algorithmus für lineare Lückenstrafen unter Verwendung der k-band-stack-methode Ablauf des bidirektionalen k-band-algorithmus für lineare Lückenstrafen unter Verwendung der k-band-stack-methode V

12 VI Abbildungsverzeichnis 6.1 Datenstrukturen für die Verwaltung markierter Knoten Einige Beispiele für den Gray-Code Beispiel für die Berechnung des Gray-Codes für n = Progressivitätskosten bei Verwendung von linearen Lückenstrafen Progressivitätskosten bei Verwendung von quasi-affinen Lückenstrafen Laufzeit und Speicherbedarf von Trie und Listendarstellung Laufzeit von Trie und Listendarstellung für verschiedene Breiten des k-bandes Anzahl endgültig markierter Knoten sowie Laufzeit für paarweise und dreifache Alignments bei Verwendung von linearen Lückenstrafen Anzahl endgültig markierter Knoten sowie Laufzeit für paarweise und dreifache Alignments bei Verwendung von quasi-affinen Lückenstrafen Laufzeit verschiedener Varianten des k-bandes (bidirektional) Laufzeit verschiedener Varianten des k-bandes (unidirektional) Laufzeit für BiDir-REACH, aufgesplittet auf einzelne Iterationen Laufzeit von BiDir-A* für verschiedene Alternierungsstrategien Laufzeit für unidirektionale und bidirektionale Suche Optimierzeit für Algorithmen mit und ohne k-band Speicherbedarf bei Verwendung von linearen und quasi-affinen Lückenstrafen Konvergenzverhalten Konvergenzverhalten Laufzeit von UniDir-REACH auf n Cytochrome C Sequenzen Laufzeit von BiDir-A* auf n Cytochrome C Sequenzen Laufzeit auf n Cytochrome C Sequenzen bei Verwendung von Trie und paarweisen Alignments A.1 Aufbau der Desoxyribonukleinsäure (DNS) [4] A.2 Das zentrale Dogma der Molekularbiologie B.1 PAM-250-Matrix in der Distanzvariante

13 Tabellenverzeichnis 3.1 Relevante Vorgänger für zwei Sequenzen aus einem multiplen Alignment gemäß Sum-Of-Pairs-Maß mit affinen Lückenstrafen [3] Anzahl relevanter Vorgänger bei affinen und quasi-affinen Lückenstrafen [3] Anzahl gezählter Lücken für affine und quasi-affine Lückenstrafen [3] Laufzeiten für verschiedene Prioritätswarteschlangen Überblick über die Eigenschaften der verwendeten Testinstanzen Laufzeitübersicht für lineare Lückenstrafen und paarweise Alignments Laufzeitübersicht für lineare Lückenstrafen und dreifache Alignments Laufzeitübersicht für quasi-affine Lückenstrafen Laufzeit (in s) und Speicherbedarf (in MB) für n Cytochrome C Sequenzen A.1 Nukleobasen und ihre Kodierung A.2 Proteinogene Aminosäuren und ihre Kodierung B.1 Vergleich von PAM-Matrizen und BLOSUM-Matrizen VII

14 VIII Tabellenverzeichnis

15 Symbolverzeichnis Folgende Liste gibt einen Überblick über die in der vorliegenden Arbeit verwendeten Bezeichnungen und Symbole. Sequenzen: Σ Σ + Σ S 1,..., S n Alphabet Σ { } Menge aller möglichen Strings über Σ Sequenzen mit S i = (s i,1... s i,li ) Σ, s i,j Σ S 1 i = (s i,li... s i,1 ) Die zu S i inverse Sequenz αi k σi k S = {S 1,..., S n } n l 1,..., l n l max Präfix von S i, der die ersten k Buchstaben umfasst Suffix von S i, der die letzten l i k Buchstaben umfasst Menge von Sequenzen Anzahl Sequenzen Länge der Sequenzen S 1,..., S n Länge der längsten Eingabesequenz Alignments: s 1,1 s 1,2... s 1,l s 2,1 s 2,2... s 2,l A Ein Alignment mit A == s n,1 s n,2... s n,l A Optimales Alignment A ij Projektion von A auf S i und S j (induziertes paarweises Alignment) IX

16 X Symbolverzeichnis S i = (s i,1... s i,l ) l D = (d ij ) d : (Σ + Σ + ) Q w(a) w(a ij ) w (S i, S j ) Zeile eines Alignments A bzgl. S i Anzahl Spalten eines Alignments A (Σ Σ)-Substitutionsmatrix mit d ij Q Distanzfunktion zu einer Substitutionsmatrix D Bewertung eines Alignments A Bewertung für ein induziertes paarweises Alignment A ij Wert eines optimalen Alignments von S i und S j µ Obere Schranke für den Wert eines optimalen Alignments g : N Q γ g op g ext Lückenstrafe Kosten für eine einzelne Lücke bei Verwendung von linearen Lückenstrafen Lückenöffnungskosten (Gap Opening Penalty) Lückenfortsetzungskosten (Gap Extension Penalty) Graphentheorie: G = (V, E, c) Edit-Graph mit Quelle s = (l 1,..., l n ), Senke t = (0,..., 0) und Kantenkosten c G 1 = (V 1, E 1, c 1 ) Inverser Edit-Graph mit Quelle t = (0,..., 0), Senke s = (l 1,..., l n ) und Kantenkosten c 1 (v, w), v w v w λ(v w), λ(p) Gerichtete Kante von v nach w Weg von v nach w Länge eines Weges von v nach w bzw. eines Weges p Algorithmus von Dijkstra: dist s [v] dist t [v] δ s (v) δ t (v) π s (v) Länge eines kürzesten Weges von s nach v in G Länge eines kürzesten Weges von t nach v in G 1 Distanzlabel für Knoten v in G Distanzlabel für Knoten v in G 1 Vorgänger von v auf einem (kürzesten) Weg in G

17 Symbolverzeichnis XI π t (v) Vorgänger von v auf einem (kürzesten) Weg in G 1 Q, Q 1 Prioritätswarteschlange A -Suche: h s (v) h t (v) c hs c 1 h t P, P 1 Funktion, die die Länge einen kürzesten Weg von s nach v in G abschätzt Funktion, die die Länge einen kürzesten Weg von t nach v in G 1 abschätzt Reduzierte Kantenkosten bzgl. h s in G Reduzierte Kantenkosten bzgl. h t in G 1 Datenstruktur zur Verwaltung endgültig markierter Knoten k-band-algorithmus: q i = (q i,1,..., q i,n ) i-tes Diagonalelement

18 XII Symbolverzeichnis

19 Kapitel 1 Einleitung Die Bioinformatik ist ein aufstrebendes interdisziplinäres Gebiet der heutigen Wissenschaft und verfolgt das Ziel, effiziente algorithmische Methoden für die biologische Forschung zu entwickeln und einzusetzen. Beginnend mit der Entdeckung der Doppelhelix-Struktur der DNS durch Watson und Crick im Jahre 1953 hat sich das Wissen im Bereich der Molekularbiologie rasant vermehrt. Die Bioinformatik arbeitet daher meist auf großen Datenbeständen, um neue Erkenntnisse zu gewinnen und diese für andere Wissenschaften nutzbar zu machen. Viele molekularbiologische Erkenntnisse wären heute ohne den Einsatz informatischer Methoden undenkbar. Die vorliegende Arbeit beschäftigt sich mit einem fundamentalen Teilgebiet der Bioinformatik der Sequenzanalyse. Hierbei werden molekularbiologische Sequenzen wie z. B. Nukleinsäuren (DNS, RNS) oder Aminosäuresequenzen (Proteine) miteinander verglichen und Ähnlichkeiten zwischen ihnen identifiziert. Grundlage dieser Untersuchungen ist die Annahme, dass eine hohe Ähnlichkeit derartiger Sequenzen funktionelle und strukturelle Ähnlichkeiten sowie eine evolutionäre Verwandtschaft impliziert [19]. Diese Hypothese kann damit begründet werden, dass bewährte Strukturen im Laufe der Evolution wiederverwendet, kopiert und dabei modifiziert werden (Zentrales Paradigma der Evolution von Proteinen [19]). Die ersten Untersuchungen im Bereich der Sequenzanalyse begannen in den 60er Jahren. Zu diesem Zeitpunkt waren nur wenige molekularbiologische Sequenzen verfügbar, wie z. B. die Proteine Cytochrome C 1 und Hämoglobin 2. Da diese Proteine für verschiedene Organismen bekannt waren, wurden aufgrund der Annahme, dass verwandte Organismen auch ähnliche Proteinsequenzen besitzen, Abstammungsbäume konstruiert [47]. Ein erster großer wissenschaftlicher Erfolg auf dem Gebiet der Sequenzanalyse gelang 1983 mit der Feststellung eines Zusammenhangs zwischen einem krebsverursachenden Gen und einem Gen, das am normalen Wachstums- und Entwicklungsprozess von Zellen beteiligt ist. Aufgrund der Ähnlichkeit dieser beiden Gene wurde die Vermutung, dass Krebs durch eine falsche Aktivierung dieses Wachstumsgens entsteht, bestätigt [34]. 1 Cytochrome dienen der Übertragung von Elektronen. 2 Hämoglobin ist zuständig für den Sauerstofftransport im Blut. 1

20 2 Kapitel 1 - Einleitung Den Durchbruch auf dem Gebiet der Bioinformatik stellt schließlich der erfolgreiche Abschluss des Human-Genom-Projektes im Jahre 2003 dar, bei dem mit Hilfe der Informatik die menschliche DNS vollständig entschlüsselt wurde. Hieraus ergaben sich neue Aufgabenfelder und Herausforderungen. Die gewonnenen Erkenntnisse helfen häufig bei der Diagnose und Vorbeugung von genetisch beeinflussten Krankheiten. 1.1 Problembeschreibung und verwandte Arbeiten Wir werden uns im Folgenden insbesondere mit dem Vergleich von Proteinen beschäftigen. Diese Ähnlichkeitsanalyse hat zwei Hauptanwendungsgebiete: Einerseits sollen Zusammenhänge zwischen Aminosäuresequenzen und der Funktion bzw. der Struktur der durch sie kodierten Proteine identifiziert werden. Andererseits dient die Analyse der Bestimmung von Verwandtschaftsbeziehungen und damit der Rekonstruktion von Evolutionsprozessen. Eine wichtige Methode für die Struktur- und Funktionsanalyse von Proteinen sind Alignment-Verfahren. Ziel dieser Verfahren ist die Bestimmung eines Maßes für den Verwandtschaftsgrad der gegebenen Sequenzen. Diese werden dabei durch das Einfügen von Lücken so gegeneinander verschoben, dass ähnliche Bereiche übereinander stehen. Hieraus können wiederum evolutionäre Verwandtschaften (Homologien) abgeleitet werden. Darüber hinaus stellen Alignment-Verfahren die Grundlage für komplexere Aufgaben dar. Zu nennen sind hier z. B. DNS-Sequenzierung, Datenbanksuche und die Erstellung phylogenetischer Bäume. Aufgrund dieser Anwendungen ist die Entwicklung effizienter Alignment-Verfahren sehr wichtig. Ein weit verbreitetes Framework zur Berechnung von Alignments stellt das Sum-of-Pairs-Maß [7] dar. Während sich das paarweise Alignment, bei dem nur zwei Sequenzen gegeben sind, in quadratischer Zeit lösen lässt, ist das Multiple Sequence Alignment mit n Sequenzen gemäß Sum-Of-Pairs-Maß NP-schwer [46]. In der Praxis beschäftigt man sich jedoch meistens mit dem Multiple Sequence Alignment. Da es dort wichtig ist, möglichst schnell ein Ergebnis zu erhalten, werden in der Regel Heuristiken [19, 32] eingesetzt. Trotz der Komplexität des vorliegenden Problems ist die Entwicklung effizienter exakter Algorithmen sinnvoll. Sie kommen z. B. bei der Evaluierung von Heuristiken oder als Unterprogramm für Heuristiken zum Einsatz. Eine klassische exakte Methode zur Berechnung von Alignments ist der auf dem Prinzip der Dynamischen Programmierung basierende Needleman-Wunsch-Algorithmus [33]. Er wurde u. a. von Carillo und Lipman [7] verbessert. Ein anderer Ansatz für das vorliegende Problem basiert auf Kürzeste-Wege- Algorithmen. Gupta et al. präsentierten in [18] einen Branch-and-Bound-Ansatz, der den Algorithmus von Dijkstra [11] verwendet. Horton et al. [24, 29, 38] nutzten stattdessen die A -Suche [20] für die Berechnung des kürzesten Weges und konnten auf diese Weise den Suchraum des Algorithmus deutlich reduzieren.

21 1.2 Ziele der Arbeit 3 Einen Kompromiss aus Heuristiken und exakten Algorithmen stellen progressive Algorithmen 3 dar. Hierbei werden zunächst nur suboptimale Lösungen berechnet, die dann abhängig von den zur Verfügung stehenden Ressourcen (Zeit, Speicher) immer weiter verbessert werden und beweisbar gegen das Optimum konvergieren. Der erste und einzige uns bekannte progressive Algorithmus für das Multiple Sequence Alignment wurde von Reinert et al. [36] vorgestellt. Er basiert auf der Verknüpfung einer heuristischen Divide-and-Conquer-Methode [41] mit der A -Suche. 1.2 Ziele der Arbeit Aufgrund der bisherigen Ergebnisse auf dem Gebiet der Alignment-Verfahren soll ein neuer progressiver Algorithmus auf Basis der A -Suche entwickelt werden. Hierzu soll anstelle der Divide-and-Conquer-Heuristik eine k-band-heuristik [19] verwendet werden, die ursprünglich für das paarweise Alignment entworfen wurde. Die zentrale Idee dieses Algorithmus ist, den Suchraum zunächst auf einen kleinen Bereich (k-band) einzuschränken, der dann sukzessive erweitert wird. Auf dem eingeschränkten Suchraum wird dann z. B. eine A -Suche ausgeführt. Die Größe des aktuell betrachteten k-bandes kann dabei zusätzlich einen Hinweis auf die Ähnlichkeit der betrachteten Sequenzen geben. Des Weiteren gibt es im Bereich Kürzester-Wege-Algorithmen vielversprechende Resultate bei der Verwendung einer bidirektionalen Suche [35]. Hierbei werden im Gegensatz zur unidirektionalen Suche zwei parallele Berechnungen durchgeführt: eine vom Startknoten s und eine vom Zielknoten t aus. Sobald sich die beiden Suchrichtungen treffen, werden die Wege geeignet konkateniert. In dieser Arbeit soll untersucht werden, ob sich die Verwendung einer bidirektionalen Suche für das vorliegende Problem lohnt. Soweit uns bekannt ist, wurde bisher weder die k-band- Heuristik noch die bidirektionale Suche für das Multiple Sequence Alignment eingesetzt. Ziel der vorliegenden Arbeit ist, aus den vorgestellten Ansätzen einen progressiven Algorithmus für das Multiple Sequence Alignment zu entwickeln. Dieser soll außerdem implementiert und experimentell analysiert werden. Abschließend sollen die erzielten Ergebnisse mit dem progressiven Algorithmus von Reinert et al. [36] verglichen werden. 1.3 Gliederung der Arbeit Die vorliegende Arbeit ist wie folgt gegliedert: Zunächst wird in Kapitel 2 eine geeignete Problemmodellierung vorgestellt und es werden notwendige Begriffe eingeführt. Kapitel 3 behandelt Standardmethoden zur Berechnung von Alignments, 3 Im Kontext von Alignment-Verfahren wird der Begriff progressiv häufig mit einer anderen, im Rahmen dieser Arbeit irrelevanten, Bedeutung verwendet und beschreibt eine Klasse von Heuristiken zur Berechnung von Alignments.

22 4 Kapitel 1 - Einleitung die auf dem Prinzip der Dynamischen Programmierung basieren. Danach werden wir in Kapitel 4 zeigen, wie Kürzeste-Wege-Algorithmen auf das vorliegende Problem angewendet werden können. Schließlich werden in Kapitel 5 verschiedene progressive Algorithmen behandelt. Das Kapitel beginnt dabei mit der Beschreibung des progressiven Algorithmus von Reinert et al. [36]. Im Anschluss wird der im Rahmen dieser Arbeit entwickelte progressive k-band-algorithmus präsentiert. Den Hauptteil der Arbeit stellt die experimentelle Analyse in Kapitel 6 dar. Hier werden verschiedene Varianten des entwickelten Algorithmus auf praktisch relevanten Daten getestet und mit dem bestehenden Verfahren aus [36] verglichen. Außerdem werden verwendete Datenstrukturen erläutert. In Kapitel 7 werden die in dieser Arbeit erzielten Ergebnisse zusammengefasst und Ideen für Weiterentwicklungen gegeben.

23 Kapitel 2 Mathematische Problemmodellierung Dieses Kapitel gibt eine Einführung in die Grundlagen und Formalismen, die zur Beantwortung der in Kapitel 1 formulierten Fragestellungen notwendig sind. Die Güte einer berechneten Lösung hängt dabei einerseits entscheidend davon ab, wie realistisch die gewählte Problemmodellierung ist. Andererseits kann ein zu komplexes Modell dazu führen, dass eine effiziente Lösung der Problemstellung nicht mehr möglich ist. Im Rahmen dieser Diplomarbeit werden übliche Vereinfachungen gewählt. Der erste Schritt der Modellierung besteht darin, die Eingabedaten, d. h. Nukleinsäuren und Proteine, in geeigneter Form zu kodieren. Als zweites wird das gewünschte Resultat spezifiziert. Hierzu wird erklärt, wie der Verwandtschaftsbegriff für Sequenzen in der vorliegenden Arbeit aufgefasst wird. 2.1 Kodierung von Nukleinsäuren und Proteinen durch Strings Eine übliche Repräsentation von Nukleinsäuren und Proteinen ist die Beschreibung der linearen Abfolge ihrer einzelnen Bausteine als String über einem Alphabet Σ. Diese einfache Art der Darstellung ist für die Beantwortung der in dieser Arbeit aufgeworfenen Fragen ausreichend, jedoch muss für weitergehende Untersuchungen, wie z. B. die Analyse der räumlichen Struktur der Nukleinsäure DNS, eine komplexere Repräsentation gewählt werden. Für eine detaillierte Beschreibung der gewählten Darstellung sei auf Anhang A verwiesen. Die in dieser Arbeit vorgestellten Algorithmen können sowohl für den Vergleich von Nukleinsäuren als auch von Proteinen eingesetzt werden, da sie stringbasiert arbeiten. Die gegebenen Strings unterscheiden sich dabei abhängig von der betrachteten molekularbiologischen Sequenz im zugrunde liegenden Alphabet Σ. In der Regel gilt für DNS und RNS Σ = 4 und für Proteine Σ = 20 (siehe Anhang A). 5

24 6 Kapitel 2 - Mathematische Problemmodellierung S 1 : G C C T G A T G S 2 : G A C T G G A G S 3 : A C G A G (a) Eingabe-Sequenzen S 1 : G C C T G A T G S 2 : G A C T G G A G S 3 : A C G A G (b) Ein mögliches Alignment Abbildung 2.1: Multiples Alignment für n = 3. Für die Behandlung von Strings führen wir zunächst einige Notationen ein, die im Verlauf der Arbeit verwendet werden: Notation 2.1 Sei Σ die Menge aller möglichen Strings über Σ und Σ + := Σ { }. Dabei stellt mit Σ ein zusätzliches ausgewiesenes Symbol (Lückensymbol, engl.: Gap) dar, mit dem Löschungen bzw. Einfügungen modelliert werden. Mit S = (s 1... s l ) Σ bzw. S i = (s i,1... s i,li ) Σ wird eine einzelne Sequenz bezeichnet. Die zu S i inverse Sequenz (s i,li... s i,1 ) heißt S 1 i. Für S i = αi k σi k ist αi k der Präfix von S i, der die ersten k Zeichen umfasst, und σi k der Suffix, der aus den letzten l i k Zeichen besteht. Dabei stellt die Konkatenation der beiden Sequenzen dar. 2.2 Verwandtschaftsbegriff für Sequenzen Im Folgenden wird die in dieser Arbeit gewählte Modellierung des Verwandtschaftsbegriffs für Sequenzen vorgestellt. Die verwendete Modellierung definiert dabei ein Maß für den Verwandtschaftsgrad der gegebenen Sequenzen. Außerdem gibt sie mögliche Erklärungen, wie die Sequenzen im Laufe der Evolution auseinander hervorgegangen sein können. Dabei werden evolutionäre Vorgänge wie Einfügungen, Löschungen und Substitutionen (Mutationen) betrachtet Definition von Sequenzalignments Eine Standardmethode zum Vergleich verschiedener Sequenzen stellen Alignment- Verfahren dar. Die Idee dieser Verfahren besteht darin, gegebene Sequenzen durch das Einfügen von Lücken so gegeneinander zu verschieben, dass an einer Position möglichst ähnliche Zeichen untereinander stehen. Man sagt, die Sequenzen werden aligniert. Das Resultat wird als Alignment bezeichnet. Der Ähnlichkeitsbegriff für verschiedene Zeichen wird in Abschnitt näher erläutert. Abbildung 2.1 zeigt ein Beispiel für ein Alignment von drei Sequenzen. Übereinstimmende Zeichen in einer Spalte werden als Match, unterschiedliche als Mismatch bezeichnet. In der Biologie entspricht ein Mismatch einer Mutation. Falls in einer Spalte eine Lücke mit einem Zeichen aligniert wird, kann dies biologisch als Löschung bzw. Einfügung eines Bausteins interpretiert werden. Auf diese Weise können anhand eines Alignments Aussagen über evolutionäre Verwandtschaften oder funktionelle Zusammenhänge der Sequenzen gemacht werden. Anhand

25 2.2 Verwandtschaftsbegriff für Sequenzen 7 eines Alignments kann mit Hilfe einer geeigneten Bewertungsfunktion eine Ähnlichkeitsmessung durchgeführt werden. Wir werden derartige Bewertungsfunktionen in Abschnitt vorstellen und zunächst eine formale Definition für ein Alignment angeben [41]: Definition 2.2 (Alignment) Sei S = {S 1,..., S n } eine Menge von n 2 Sequenzen über Σ und l i die Länge der Sequenz S i Σ, 1 i n. Bezeichne s i,j den j-ten Buchstaben der i-ten Sequenz. Ein Alignment von S ist gegeben durch eine (n l)-matrix s 1,1 s 1,2... s 1,l s 2,1 s 2,2... s 2,l A = s n,1 s n,2... s n,l mit s i,j Σ +. Dabei gilt: Die Anzahl der Spalten von A ist mindestens so groß wie die Länge der längsten Sequenz und höchstens so groß wie die Summe der Längen aller gegebenen Sequenzen, d. h. es muss gelten: max{l 1,..., l n } l n i=1 l i Für jede Zeile S i = (s i,1s i,2... s i,l ) erhält man durch Streichung der Lückensymbole die Sequenz S i. Keine Spalte von A enthält ausschließlich das Zeichen. Für n = 2 spricht man von einem paarweisen Alignment, für n > 2 heißt A multiples Alignment. Für letzteres wird außerdem noch der Begriff der Projektion benötigt, den wir wie folgt definieren [41]: Definition 2.3 (Projektion) Sei S = {S 1,..., S n } eine Menge von Sequenzen und A ein zugehöriges multiples Alignment. Weiter sei Ŝ S eine Teilmenge der gegebenen Sequenzen und S i die zu S i gehörende Zeile in A. Die Projektion von A auf Ŝ ist dann das Alignment Â, für das gilt:  enthält nur Zeilen S i aus A mit S i Ŝ. Sämtliche Spalten, die durch die Modifikation nur das Zeichen enthalten, werden aus  entfernt. Von besonderer Bedeutung für die weiteren Betrachtungen sind paarweise und dreifache Projektionen, d. h. Ŝ = 2 und Ŝ = 3. Häufig ist in der Literatur anstelle von Projektionen auch von induzierten Alignments die Rede.

26 8 Kapitel 2 - Mathematische Problemmodellierung Bewertung von Sequenzalignments Die in der vorliegenden Arbeit betrachtete Fragestellung lässt sich wie folgt als Optimierungsproblem formulieren [41]: Definition 2.4 (Multiple Sequence Alignment) Sei S = {S 1,..., S n } eine Menge von Sequenzen und w : A(S) Q eine beliebige Bewertungsfunktion auf der Menge der möglichen Alignments zu S. Gesucht ist ein Alignment A A(S), das w(a) optimiert. Je nach Art der Anwendung kann die Berechnung eines Alignments als Minimierungs- oder Maximierungsproblem formuliert werden. Bei der Maximierungsvariante spricht man von Ähnlichkeit. Dabei werden Matches honoriert und Mismatches sowie Lücken bestraft. Alternativ beschreibt die Minimierungsvariante die sog. Edit- Distanz zwischen den gegebenen Sequenzen. Unter der Edit-Distanz versteht man die (minimale) Anzahl an Einfüge-, Lösch- und Ersetzungsoperationen, um einen String S i in einen String S j zu überführen. Um die Qualität eines Alignments, d. h. seine biologische Relevanz, bewerten zu können, muss ein geeignetes Bewertungsmodell aufgestellt werden. Die Wahl dieses Modells ist dabei entscheidend für den praktischen Nutzen des berechneten Alignments. Wir werden zunächst Bewertungsfunktionen für paarweise Alignments vorstellen und diese anschließend auf multiple Alignments erweitern Paarweises Alignment Es wird häufig vereinfacht angenommen, dass Mutationen, Löschungen und Einfügungen an verschiedenen Stellen der Sequenzen unabhängig voneinander geschehen. Daher basieren übliche Bewertungsmodelle auf dem Vergleich von jeweils zwei einzelnen Zeichen und sind häufig durch eine Ähnlichkeits- oder Distanzfunktion d : (Σ + Σ + ) Q gegeben. Das folgende Beispiel gibt zwei einfache Funktionen für die beiden Optimierungsvarianten an: Beispiel 2.5 (Einfache Ähnlichkeits- und Distanzfunktionen) Sei s, t Σ + und d : (Σ + Σ + ) Q. Dann stellt (2.1) eine Ähnlichkeitsfunktion und (2.2) eine Distanzfunktion dar. (2.2) wird auch Levenshtein-Distanz [30] genannt. d(s, t) := d(s, t) := 1 falls s = t 1 falls s t 2 falls s = oder t = 0 falls s = t 1 falls s t 1 falls s = oder t = (2.1) (2.2)

27 2.2 Verwandtschaftsbegriff für Sequenzen 9 Die Bewertungen für Substitutionen werden meistens durch eine (symmetrische) (Σ Σ)-Substitutionsmatrix D = (d ij ) mit d ij Q repräsentiert. Abhängig von der Art der Problemformulierung wird dabei zwischen Ähnlichkeits- und Distanzmatrizen unterschieden. Die beiden Varianten lassen sich einfach ineinander umformen [40, 51]. Außerdem wurde von Smith et al. gezeigt, dass beide Varianten unter bestimmten Umständen äquivalent sind [39]. Wir werden uns daher im Folgenden auf das Minimierungsproblem und damit auf Distanzmatrizen beschränken. Für den Vergleich von DNS-Sequenzen reichen meist einfache Substitutionsmatrizen (vgl. (2.1) und (2.2)) aus. Da miteinander verwandte Proteine aber häufig nur wenige identische Aminosäuren besitzen, sind derartige Matrizen nicht in der Lage, existierende Verwandtschaften zwischen diesen zu erkennen. Daher werden für Proteinvergleiche meist spezielle Substitutionsmatrizen verwendet. Diese berücksichtigen Ähnlichkeiten bzgl. der chemischen Eigenschaften sowie Mutationswahrscheinlichkeiten unterschiedlicher Aminosäuren. Die beiden gängigsten Substitutionsmatrizen für Proteine sind PAM- [10] und BLOSUM-Matrizen [21]. Wir werden für unsere experimentelle Analyse in Kapitel 6 eine Distanzvariante der PAM-250-Matrix verwenden (siehe Abbildung B.1 in Anhang 6). Für Details zu den genannten Substitutionsmatrizen sei auf Anhang B verwiesen. Es kann nun wie folgt eine Bewertungsfunktion w : A(S) R 0 auf der Menge der möglichen Alignments definiert werden [41]: Definition 2.6 (Bewertungsfunktion für paarweise Alignments) Sei A ein Alignment der Sequenzen S 1 und S 2 und l die Anzahl der Spalten von A. Die Bewertung von A entspricht dann der Summe aller Spaltenbewertungen von A gemäß d : (Σ + Σ + ) Q: l w(a) := d(s 1,k, s 2,k) (2.3) k=1 Diese Bewertungsfunktion weist jedoch eine Schwachstelle auf: Biologisch gesehen ist das Auftreten einer großen zusammenhängenden Lücke der Länge k wahrscheinlicher als viele kleine Lücken, die zusammen ebenfalls die Länge k haben. Dies liegt daran, dass meistens ganze Sequenzteile gelöscht bzw. eingefügt werden. (2.3) bewertet diese beiden Fälle jedoch identisch. Abhängig von den zur Verfügung stehenden Ressourcen und der Art der Anwendung können verschiedenen Arten von Lückenstrafen (engl.: Gap Costs) definiert werden [22]. Lückenstrafen werden dabei durch eine Funktion g : N 0 Q definiert, wobei g(k) die Kosten für eine fortlaufende Lücke der Länge k angibt. Es gelte g(0) = 0. Da kürzere Lücken wahrscheinlicher sind als lange, sollte g monoton in der Länge der Lücke sein. Wir unterscheiden im Rahmen dieser Arbeit folgende Funktionstypen von g: Lineare Lückenstrafen: Lineare Lückenstrafen werden durch eine lineare Funktion g(k) = k γ beschrieben. Dabei sind γ die Kosten für eine einzelne Lücke. Diese Art der Lückenstrafe wird in (2.3) verwendet.

28 10 Kapitel 2 - Mathematische Problemmodellierung Affine Lückenstrafen: Affine Lückenstrafen werden durch eine affine Funktion definiert: g : N 0 Q k g ext k + g op Der Parameter g op gibt die zusätzlichen Kosten zum Öffnen einer neuen Lücke (Lückenöffnungskosten, engl.: Gap Opening Penalty) an und stellt sicher, dass eine fortlaufende Lücke der Länge (k 1 + k 2 ) günstiger ist als zwei Lücken der Längen k 1 und k 2. Der Wert g ext beschreibt die proportionalen Kosten für die Länge der Lücke (Lückenfortsetzungskosten, engl.: Gap Extension Penalty). Allgemeine Lückenstrafen: Bei allgemeinen Lückenstrafen kann eine beliebige Funktion g definiert werden. Hier kann z. B. berücksichtigt werden, dass das Löschen oder Einfügen bestimmter Bausteine wahrscheinlicher ist. Es wird nur gefordert, dass g sublinear ist, d. h. dass g(k 1 + k 2 ) g(k 1 ) + g(k 2 ) für alle k 1, k 2 N 0 gilt. Optimal für den praktischen Nutzen des berechneten Alignments ist sicherlich die Verwendung von allgemeinen Lückenstrafen. Diese erfordern jedoch einen sehr hohen Rechenzeit- und Speicherplatzbedarf [22]. Lineare Lückenstrafen sind zwar am schnellsten zu berechnen, liefern jedoch Alignments von geringer biologischer Relevanz. Daher werden in der Praxis meistens Varianten von affinen Lückenstrafen verwendet. Um affine und allgemeine Lückenstrafen bei der Bewertung eines Alignments berücksichtigen zu können, muss die Bewertungsfunktion (2.3) erweitert werden. Dabei werden Spalten, in denen Lücken vorkommen, separat betrachtet. Definition 2.7 (Erweiterte Bewertungsfunktion für paarweise Alignments) Sei A ein Alignment der Sequenzen S 1 und S 2 und l die Anzahl der Spalten von A. Die Bewertungsfunktion w : A(S) Q ergibt sich dann für allgemeine Lückenstrafen durch [41]: w(a) := d(s 1 i l, s 1,i, s 2,i 1,i, s 2,i) + g(k) # Lücken der Länge k in A (2.4) k>0 Wir werden die vorgestellten Lückenstrafen in Kapitel 3 näher betrachten und Algorithmen für die verschiedenen Funktionen vorstellen Multiple Sequence Alignment Für multiple Alignments gibt es verschiedene Bewertungsmöglichkeiten. Im Rahmen dieser Arbeit wird das weit verbreitete Sum-Of-Pairs-Maß (SP-Maß, [7]) verwendet, da dieses auch im betrachteten Referenzalgorithmus OMA [36] zum Einsatz kommt. Für weitere Maße siehe z. B. [19, 22].

29 2.3 Zusammenfassung 11 Das Sum-Of-Pairs-Maß basiert auf den Bewertungen der paarweisen Projektionen eines gegebenen Alignments und lässt sich wie folgt definieren: Definition 2.8 (Sum-Of-Pairs-Maß) Sei A ein Alignment und A i,j die paarweise Projektion von A auf S i und S j. Der Zielfunktionswert w(a) ergibt sich dann gemäß des Sum-Of-Pairs-Maßes durch: w(a) := n n w(a i,j ) i=1 j=i+1 Es gibt insgesamt ( n 2) verschiedene paarweise Projektionen eines multiplen Alignments. Daher lässt sich das Sum-Of-Pairs-Maß zu einem gegebenen Alignment in Zeit O(n 2 ) berechnen. Bemerkung 2.9 Die Kosten w(a i,j ) für die paarweise Projektion A i,j eines gemäß Sum-Of-Pairs-Maß optimalen multiplen Alignments A auf S i und S j entsprechen im Allgemeinen nicht den optimalen Kosten w (S i, S j ), um S i und S j zu alignieren. Es gilt: w (S i, S j ) w(a i,j ) 2.3 Zusammenfassung Wir haben in diesem Kapitel eine Modellierung für die vorliegende Fragestellung vorgestellt. Hierzu wurde zunächst eine übliche Kodierung für molekularbiologische Sequenzen angegeben. Anschließend haben wir den Begriff eines Alignments eingeführt und verschiedene Möglichkeiten zur Bewertung von Alignments präsentiert, sowie deren Vor- und Nachteile aufgezeigt. Auf Basis der vorgestellten Problemmodellierung können wir im Folgenden verschiedene Algorithmen für die Lösung der betrachteten Fragestellung beschreiben.

30 12 Kapitel 2 - Mathematische Problemmodellierung

31 Kapitel 3 Alignments und Dynamische Programmierung Das folgende Kapitel beschäftigt sich mit Standardverfahren zur Berechnung optimaler Alignments. Diese Verfahren basieren auf dem Prinzip der Dynamischen Programmierung und gehören zu den ältesten Methoden zur Berechnung optimaler Alignments. Dynamische Programmierung beruht auf der Idee, die optimale Lösung des Gesamtproblems aus den optimalen Lösungen geeigneter Teilprobleme zusammenzusetzen (Bellmansches Optimalitätsprinzip, [9]). Ein derartiger Algorithmus kann in zwei Phasen gegliedert werden: 1. Berechnung des Wertes einer optimalen Lösung. (a) Charakterisierung der Struktur einer optimalen Lösung. (b) Konstruktion einer rekursiven Vorschrift für den optimalen Wert einer Lösung. (c) Bottom-up-Berechnung des optimalen Wertes, d. h. zunächst werden die Werte für die kleinsten Teilprobleme direkt berechnet und daraus dann die Lösungen für die jeweils nächstgrößeren Teilprobleme bestimmt. Um bereits berechnete Zwischenlösungen wieder verwenden zu können, werden diese in einer Tabelle gespeichert. Wir nennen diese Tabelle im Folgenden Rekursionstabelle, da sie auf einer rekursiven Vorschrift basiert. 2. Rekonstruktion einer zugehörigen optimalen Lösung. Dynamische Programmierung bietet insbesondere dann Vorteile, wenn die Teilprobleme abhängig voneinander sind, d. h. wenn unterschiedliche Teilprobleme gleiche Unterprobleme haben. Bei der Berechnung optimaler Alignments wird die Alignierung beliebiger Präfixe der gegebenen Sequenzen als Teilproblem aufgefasst. Diese Definition erfüllt die genannte Abhängigkeitsbedingung. 13

32 14 Kapitel 3 - Alignments und Dynamische Programmierung Im Folgenden werden zunächst verschiedene Algorithmen für paarweise Alignments vorgestellt. Dabei wird zwischen linearen, affinen und allgemeinen Lückenstrafen (siehe Abschnitt ) unterschieden. Zum Schluss des Kapitels werden Erweiterungsmöglichkeiten für multiple Alignments aufgezeigt. 3.1 Paarweises Alignment Beim paarweisen Alignment sind zwei Sequenzen S 1 = (s 1,1... s 1,l1 ) und S 2 = (s 2,1... s 2,l2 ) gegeben. Historisch gesehen gibt es verschiedene unabhängige Quellen, die Dynamische Programmierung zur Berechnung optimaler paarweiser Alignments verwenden. Nach Stoye [41] sind hier neben Needleman und Wunsch [33] noch Wagner und Fischer [45] zu nennen. Auch wenn sich die Algorithmen geringfügig unterscheiden, basieren sie auf derselben Grundidee. Kruskal gibt in [26] einen Überblick über den Entwicklungsprozess. Wir beginnen mit der Beschreibung des einfachsten Algorithmus dem Needleman-Wunsch-Algorithmus [33]. Dieser berücksichtigt nur lineare Lückenstrafen. Daher werden danach Erweiterungen für allgemeine (Waterman-Smith-Beyer, [48]) und affine Lückenstrafen vorgestellt (Gotoh [15]) Lineare Lückenstrafen: Needleman-Wunsch Der Needleman-Wunsch-Algorithmus wurde bereits 1970 für den Vergleich von zwei Proteinsequenzen vorgestellt [33]. Er arbeitet gemäß des Prinzips der Dynamischen Programmierung in zwei Phasen: 1. Berechnung des Wertes eines optimalen Alignments. 2. Rekonstruktion eines zugehörigen optimalen Alignments. Phase 1: Berechnung des Wertes eines optimalen Alignments Die Idee des Needleman-Wunsch-Algorithmus besteht darin, optimale Alignments von beliebigen Präfixen zu bestimmen und aus diesen das optimale Alignment der gesamten Sequenzen zu berechnen. Um Lücken am Anfang der Sequenzen zu ermöglichen, wird eine Rekursionstabelle OPT der Größe (l 1 +1) (l 2 +1) verwendet. Ein Tabelleneintrag OPT(i, j) wird als Wert eines optimalen Alignments der Präfixe α i 1 und α j 2 interpretiert. Für i = 0 ist α i 1 leer, so dass α j 2 nur mit Lücken aligniert wird. Entsprechendes gilt für j = 0. Der Eintrag OPT(l 1, l 2 ) entspricht der Bewertung eines optimalen Alignments der gegebenen Sequenzen. Die Rekursionstabelle kann zeilenweise ausgefüllt werden. Dabei wird bei der Berechnung von OPT(i, j) angenommen, dass der Wert der optimalen Lösung für alle kürzeren Präfixe bekannt ist. Es kann dann entschieden werden, wie die nächsten beiden Zeichen aligniert werden sollen. Seien s 1,i und s 2,j die nächsten beiden Zeichen

33 3.1 Paarweises Alignment 15 s 1,1... s 1,i 1 s 1,i s 2,1... s 2,j (a) Löschung s 1,1... s 1,i s 2,1... s 2,j 1 s 2,j (b) Einfügung s 1,1... s 1,i 1 s 1,i s 2,1... s 2,j 1 s 2,j (c) Match / Mismatch Abbildung 3.1: Entstehung der Rekursionsgleichung nach Needleman-Wunsch. und d : (Σ + Σ + ) Q eine Distanzfunktion. Dann gibt es für die Alignierung drei verschiedene Möglichkeiten (siehe Abbildung 3.1): 1. Löschung: s 1,i wird mit einer Lücke aligniert. Dies entspricht einem Schritt nach unten in der Tabelle. Die Bewertung setzt sich aus dem Tabelleneintrag OPT(i 1, j) und d(s 1,i, ) zusammen. 2. Einfügung: s 2,j wird mit einer Lücke aligniert. Dies entspricht einem Schritt nach rechts. Die Kosten berechnen sich symmetrisch zum ersten Fall. 3. Match / Mismatch: s 1,i und s 2,j werden aligniert. Dies entspricht in der Tabelle einem Diagonalschritt nach rechts unten. Der Wert dieser Alternative ergibt sich als Summe von OPT(i 1, j 1) und d(s 1,i, s 2,j ). Der Wert eines optimalen Alignments der Präfixe α i 1 und α j 2 ergibt sich dann als Minimum über diese drei Möglichkeiten. Die erste Zeile bzw. Spalte der Tabelle wird mit der Bewertung eines Alignments des entsprechenden Präfixes nur mit Lücken initialisiert. Abbildung 3.2 visualisiert den Ablauf der ersten Phase des Needleman-Wunsch-Algorithmus. Formal lässt sich diese durch folgende rekursive Berechnungsvorschrift darstellen: OPT(i, 0) = i d(s 1,i, ) i {1, l 1 } (3.1) OPT(0, j) = j d(, s 2,j ) j {1, l 2 } (3.2) OPT(i 1, j) + d(s 1,i, ) OPT(i, j) = min OPT(i, j 1) + d(, s 2,j ) (3.3) OPT(i 1, j 1) + d(s 1,i, s 2,j ) Phase 2: Rekonstruktion eines zugehörigen optimalen Alignments Falls das optimale Alignment selbst ausgegeben werden soll, ist es sinnvoll, während der Berechnung der Rekursionstabelle Zeiger auf die jeweils relevanten Vorgängerzellen zu speichern. Dann erhält man ein optimales Alignment, wenn man nach der Durchführung von Phase 1 von OPT(l 1, l 2 ) aus entlang der Zeiger zu OPT(0, 0) läuft. Eine Rekonstruktion des optimalen Alignments ist mit zusätzlichem Zeitaufwand aber auch ohne diese Zeiger möglich [4].

34 16 Kapitel 3 - Alignments und Dynamische Programmierung S 2 S M i 1 i M L j 1 j L l 2 OPT ( i 1, j 1) OPT( i 1, j) ( i, j ) OPT( i, j) (, s ) OPT 1 ( s s ) d 1, i 1, 2, j 1 d 2, j 1 d ( ) s 1, i 1, l 1 Abbildung 3.2: Berechnung eines optimalen Alignments nach Needleman-Wunsch. Satz 3.1 (Laufzeit und Speicherbedarf) Der Needleman-Wunsch-Algorithmus berechnet für zwei Sequenzen unter Verwendung von linearen Lückenstrafen in Zeit O(l 1 l 2 ) und Platz O(l 1 l 2 ) ein optimales paarweises Alignment. Beweis: Die Rekursionstabelle OPT hat die Größe (l 1 + 1) (l 2 + 1) = O(l 1 l 2 ). Die Laufzeit setzt sich aus der Berechnung der Tabelleneinträge und der Rekonstruktion des optimalen Alignments zusammen. Die Berechnung eines jeden Tabelleneintrags benötigt konstante Zeit. Die Rekonstruktion des optimalen Alignments ist in Zeit O(l 1 + l 2 ) und mit einem Speicheraufwand von O(l 1 l 2 ) möglich. Damit folgt direkt die Behauptung. Optimale Alignments sind im Allgemeinen nicht eindeutig. Der Algorithmus kann so erweitert werden, dass er sämtliche optimale Alignments ausgibt. Die Anzahl optimaler Alignments kann jedoch exponentiell in der Sequenzlänge sein. So gibt es z. B. insgesamt ( ) 2z z viele optimale Alignments der Sequenzen S1 = X z und S 2 = X 2z, da es ( ) 2z z verschiedene Möglichkeiten gibt, die z notwendigen Lücken einzufügen, und die Bewertung nicht von dieser Positionierung abhängt. Ein solcher Algorithmus hat demnach im schlechtesten Fall eine Laufzeit, die exponentiell in der Größe der Eingabe ist. Bemerkung 3.2 Es gibt diverse Varianten des Needleman-Wunsch-Algorithmus, die der Senkung des Speicherbedarfs dienen: Falls nur der Wert des optimalen Alignments berechnet werden soll, genügt es, jeweils die direkte Vorgängerzeile der Rekursionstabelle im Speicher zu halten, da nur diese für die Berechnung der darauf folgenden Zeile benötigt wird. Der Algorithmus benötigt dann einen Platz von O(max{l 1, l 2 }). Wird auch das Alignment selbst benötigt, kommen fortgeschrittenere Algorithmen zum Einsatz. Ein solches Verfahren ist z. B. der Hirschberg-Algorithmus [23].

35 3.1 Paarweises Alignment 17 Er benötigt nur linearen Speicherplatz, dies jedoch bei einem doppelt so hohen Berechnungsaufwand Allgemeine Lückenstrafen: Waterman-Smith-Beyer Mit der einfachen Rekursionsgleichung des Needleman-Wunsch-Algorithmus können keine allgemeinen Lückenstrafen berücksichtigt werden, da es dabei nicht ausreicht, nur die direkten Vorgängerzellen zu betrachten. Vielmehr muss bei der Berechnung von OPT(i, j) auf alle vorhergehenden Werte der i-ten Zeile und j-ten Spalte zurückgegriffen werden, da die Kosten der Lücken nicht mehr linear sind und von sämtlichen vorhergehenden Zeichen abhängen können. Waterman et. al [48] haben die folgende Rekursionsgleichung vorgestellt. Dabei beschreibt die Funktion g(k) die allgemeine Lückenstrafe für eine Lücke der Länge k: OPT(0, 0) = 0 OPT(i, 0) = g(i) i {1, l 1 } OPT(0, j) = g(j) j {1, l 2 } min {OPT(i k, j) + g(k)} 1 k i OPT(i, j) = min min {OPT(i, j k) + g(k)} 1 k j OPT(i 1, j 1) + d(s 1,i, s 2,j ) Bei dieser Berechnungsvorschrift werden auch zwei direkt aufeinander folgende Lücken berücksichtigt, d. h. eine Lücke der Länge (k 1 + k 2 ) wird als zwei Lücken der Längen k 1 und k 2 aufgefasst. Da wir jedoch angenommen haben, dass g sublinear ist, gilt g(k 1 + k 2 ) g(k 1 ) + g(k 2 ) für alle k 1, k 2 N 0. Damit werden zwei aufeinander folgende Lücken der Längen k 1 und k 2 schlechter bewertet als eine Lücke der Länge (k 1 + k 2 ) und es wird auf jeden Fall der Wert für die längste fortlaufende Lücke in die Berechnung des OPT(i, j)-wertes einbezogen. Dieser Ansatz hat eine Laufzeit von O(l 1 l 2 (l 1 + l 2 )), da die Berechnung eines einzelnen Tabelleneintrags nun Zeit O(l 1 + l 2 ) benötigt. Außerdem lassen sich die in Bemerkung 3.2 erwähnten Verbesserungen nicht auf allgemeine Lückenstrafen übertragen. Aus diesen Gründen werden allgemeine Lückenstrafen in der Praxis meist nicht eingesetzt Affine Lückenstrafen: Gotoh Affine Lückenstrafen stellen einen Kompromiss aus linearen und allgemeinen Lückenstrafen dar. Sie modellieren biologische Eigenschaften und Zusammenhänge besser als lineare Funktionen, können aber effizienter berechnet werden als allgemeine Lückenstrafen [22]. Affine Lückenstrafen unterscheiden dabei zwischen Lückenöffnungskosten und Lückenfortsetzungskosten (siehe Abschnitt ).

36 18 Kapitel 3 - Alignments und Dynamische Programmierung Der Algorithmus von Gotoh [15] stellt eine Erweiterung des Needleman-Wunsch- Algorithmus für affine Lückenstrafen dar. Die zentrale Idee dieses Verfahrens ist, zusätzlich zum Wert eines optimalen Alignment für zwei gegebene Präfixe, den Wert eines besten Alignments dieser Präfixe abhängig vom Aussehen der letzten Spalte zu speichern. Neben der bisherigen Rekursionstabelle OPT existieren also drei Hilfstabellen A, B und C [22]: A(i, j): Distanz eines optimalen Alignments der Präfixe σ i 1 und σ j 2, das mit einem Match oder Mismatch endet, d. h. s 1,i ist mit s 2,j aligniert. B(i, j): Distanz eines optimalen Alignments der Präfixe σ i 1 und σ j 2, das mit einer Löschung endet, d. h. s 1,i ist mit einer Lücke aligniert. C(i, j): Distanz eines optimalen Alignments der Präfixe σ i 1 und σ j 2, das mit einer Einfügung endet, d. h. s 2,j ist mit einer Lücke aligniert. Der Eintrag OPT(l 1, l 2 ) entspricht wie beim Needleman-Wunsch-Algorithmus der Bewertung eines optimalen Alignments der gegebenen Sequenzen. Es ergeben sich folgende Rekursionsgleichungen, wobei g op die Lückenöffnungskosten und g ext die Lückenfortsetzungskosten bezeichnet: A(0, 0) = 0 B(0, 0) = C(0, 0) = OPT(0, 0) = 0 A(i, 0) = B(i, 0) = i g ext + g op C(i, 0) = OPT(i, j) = B(i, 0) A(0, j) = B(0, j) = C(0, j) = j g ext + g op OPT(i, j) = C(0, j) A(i, j) = OPT(i 1, j 1) + d(s 1,i, s 2,j ) B(i 1, j) + g ext B(i, j) = min A(i 1, j) + g op + g ext C(i 1, j) + g op + g ext B(i, j 1) + g op + g ext C(i, j) = min A(i, j 1) + g op + g ext C(i, j 1) + g ext OPT(i, j) = min{a(i, j), B(i, j), C(i, j)} Laufzeit und Speicherbedarf des Algorithmus von Gotoh ergeben sich analog zum Needleman-Wunsch-Algorithmus wie folgt: Satz 3.3 (Laufzeit und Speicherbedarf) Der Algorithmus von Gotoh berechnet für zwei Sequenzen in Zeit O(l 1 l 2 ) und Platz O(l 1 l 2 ) den Wert eines optimalen paarweisen Alignments bzgl. affiner Lückenstrafen. Beweis: Es werden vier Rekursionstabellen der Größe (l 1 + 1) (l 2 + 1) = O(l 1 l 2 ) verwendet. Die Berechnung eines jeden Tabelleneintrags benötigt konstante Laufzeit. Damit folgt direkt die Behauptung.

37 3.2 Multiple Sequence Alignment 19 Die Rekonstruktion des zugehörigen optimalen Alignments kann wie beim Needleman-Wunsch-Algorithmus durch zusätzliche Zeiger realisiert werden. Die Methoden zur Speicherplatzreduktion können auch hier angewendet werden, so dass eine Berechnung mit einem Platzbedarf von O(min{l 1, l 2 }) möglich ist. 3.2 Multiple Sequence Alignment Zum Abschluss dieses Kapitels sollen Möglichkeiten zur Erweiterung der vorgestellten Algorithmen auf n Sequenzen aufgezeigt werden. Der Needleman-Wunsch- Algorithmus lässt sich einfach modifizieren, indem statt einer 2-dimensionalen eine n-dimensionale Rekursionstabelle (Gitter) verwendet wird. Der Platzbedarf steigt damit auf O(l n max), wobei l max die Länge der längsten Sequenz ist. In der Rekursionsformel müssen nun 2 n 1 mögliche Vorgänger betrachtet werden. Außerdem wird eine Bewertungsfunktion für multiple Alignments benötigt, wie z. B. das Sum-of-Pairs- Maß. Die Auswertung dieser Funktion erfordert Zeit O(n 2 ) (siehe Abschnitt ). Man erhält also einen Algorithmus, der in Zeit O(n 2 2 n l n max) und Platz O(l n max) ein optimales multiples Alignment berechnet [22]. Die Erweiterung des Algorithmus von Gotoh auf den allgemeinen Fall ist leider nicht ganz so einfach. Gotoh hat einen kubischen Algorithmus für drei Sequenzen vorgestellt [16]. Wir verzichten jedoch auf dessen Beschreibung, da er im Rahmen dieser Arbeit nicht verwendet wird. Das Hauptproblem bei affinen Lückenstrafen besteht darin, dass die Anzahl der relevanten Vorgänger, die gespeichert werden müssen, in der Größenordnung O ([ n n ) e ln 2] n wächst [3]. Wir betrachten an dieser Stelle erneut das Sum-Of- Pairs-Maß (siehe Definition 2.8): w(a) := n n w(a i,j ) i=1 j=i+1 Bei der Bestimmung von w(a) werden für jedes Sequenzenpaar die Lücken bewertet, die in der entsprechenden Projektion vorkommen. Dabei fallen übereinander stehende Lücken weg (siehe Definition 2.3). Bei der Übertragung auf affine Lückenstrafen können daher folgende Fälle auftreten: 1. In einer Spalte werden entweder zwei Lücken oder zwei Zeichen aligniert. In diesem Fall wird in der zugehörigen paarweisen Projektion keine neue Lücke geöffnet. 2. Es wird eine Lücke mit einem Zeichen aligniert, d. h. die Entscheidung, ob eine neue Lücke aufgemacht wird oder nicht, hängt von den vorhergehenden Spalten des Alignments ab. Sind in der direkten Vorgängerspalte zwei Lücken aligniert, muss solange zurückgegangen werden, bis eine Spalte mit mindestens einem richtigen Zeichen erreicht wird.

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Paarweises

Mehr

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Studiengang Informatik der FH Gießen-Friedberg Sequenz-Alignment Jan Schäfer WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Überblick Einführung Grundlagen Wann ist das Merkmal der Ähnlichkeit erfüllt?

Mehr

Alignment-Verfahren zum Vergleich biologischer Sequenzen

Alignment-Verfahren zum Vergleich biologischer Sequenzen zum Vergleich biologischer Sequenzen Hans-Joachim Böckenhauer Dennis Komm Volkshochschule Zürich. April Ein biologisches Problem Fragestellung Finde eine Methode zum Vergleich von DNA-Molekülen oder Proteinen

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Bioinformatik. Lokale Alignierung Gapkosten. Silke Trißl / Ulf Leser Wissensmanagement in der. Bioinformatik

Bioinformatik. Lokale Alignierung Gapkosten. Silke Trißl / Ulf Leser Wissensmanagement in der. Bioinformatik Bioinformatik Lokale Alignierung Gapkosten Silke Trißl / Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Ähnlichkeit Lokales und globales Alignment Gapped Alignment Silke Trißl:

Mehr

Algorithmische Bioinformatik

Algorithmische Bioinformatik Algorithmische Bioinformatik Effiziente Berechnung des Editabstands Dynamische Programmierung Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Rekursive Definition des Editabstands

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Sequenzen-Alignierung in der Bioinformatik

Sequenzen-Alignierung in der Bioinformatik Sequenzen-Alignierung in der Bioinformatik VO Algorithm Engineering Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS 2. VO 2.0.2006 Literatur für diese VO Volker Heun: Skriptum zur Vorlesung

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Dynamische Programmierung. Problemlösungsstrategie der Informatik als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung

Mehr

Algorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung

Algorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung Konstantin Clemens Johanna Ploog Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Viertes

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Clustering: Partitioniere Objektmenge in Gruppen(Cluster), so dass sich Objekte in einer Gruppe ähnlich sind und Objekte

Mehr

Routing Algorithmen. Begriffe, Definitionen

Routing Algorithmen. Begriffe, Definitionen Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

2. Repräsentationen von Graphen in Computern

2. Repräsentationen von Graphen in Computern 2. Repräsentationen von Graphen in Computern Kapitelinhalt 2. Repräsentationen von Graphen in Computern Matrizen- und Listendarstellung von Graphen Berechnung der Anzahl der verschiedenen Kantenzüge zwischen

Mehr

1. Einleitung wichtige Begriffe

1. Einleitung wichtige Begriffe 1. Einleitung wichtige Begriffe Da sich meine besondere Lernleistung mit dem graziösen Färben (bzw. Nummerieren) von Graphen (speziell von Bäumen), einem Teilgebiet der Graphentheorie, beschäftigt, und

Mehr

3.6 Eigenwerte und Eigenvektoren

3.6 Eigenwerte und Eigenvektoren 3.6 Eigenwerte und Eigenvektoren 3.6. Einleitung Eine quadratische n n Matrix A definiert eine Abbildung eines n dimensionalen Vektors auf einen n dimensionalen Vektor. c A x c A x Von besonderem Interesse

Mehr

Einführung in die Bioinformatik Algorithmen zur Sequenzanalyse

Einführung in die Bioinformatik Algorithmen zur Sequenzanalyse Einführung in die Bioinformatik Algorithmen zur Sequenzanalyse!! Vorläufige Fassung, nur einzelne Abschnitte!!!! Enthält wahrscheinlich noch viele Fehler!!!! Wird regelmäßig erweitert und verbessert!!

Mehr

Nichtdeterministische Platzklassen

Nichtdeterministische Platzklassen Sommerakademie 2010 Rot an der Rot AG 1: Wieviel Platz brauchen Algorithmen wirklich? Nichtdeterministische Platzklassen Ulf Kulau August 23, 2010 1 Contents 1 Einführung 3 2 Nichtdeterminismus allgemein

Mehr

Vorlesung 4 BETWEENNESS CENTRALITY

Vorlesung 4 BETWEENNESS CENTRALITY Vorlesung 4 BETWEENNESS CENTRALITY 101 Aufgabe! Szenario: Sie arbeiten bei einem sozialen Online-Netzwerk. Aus der Netzwerk-Struktur Ihrer Benutzer sollen Sie wichtige Eigenschaften extrahieren. [http://www.fahrschule-vatterodt.de/

Mehr

9. Heuristische Suche

9. Heuristische Suche 9. Heuristische Suche Prof. Dr. Rudolf Kruse University of Magdeburg Faculty of Computer Science Magdeburg, Germany rudolf.kruse@cs.uni-magdeburg.de S Heuristische Suche Idee: Wir nutzen eine (heuristische)

Mehr

Kapitel 7: Sequenzen- Alignierung in der Bioinformatik

Kapitel 7: Sequenzen- Alignierung in der Bioinformatik Kapitel 7: Sequenzen- Alignierung in der Bioinformatik VO Algorithm Engineering Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 19. VO 14. Juni 2007 1 Literatur für diese VO Volker

Mehr

Euklidische und unitäre Vektorräume

Euklidische und unitäre Vektorräume Kapitel 7 Euklidische und unitäre Vektorräume In diesem Abschnitt ist der Körper K stets R oder C. 7.1 Definitionen, Orthonormalbasen Definition 7.1.1 Sei K = R oder C, und sei V ein K-Vektorraum. Ein

Mehr

2. Symmetrische Gruppen

2. Symmetrische Gruppen 14 Andreas Gathmann 2 Symmetrische Gruppen Im letzten Kapitel haben wir Gruppen eingeführt und ihre elementaren Eigenschaften untersucht Wir wollen nun eine neue wichtige Klasse von Beispielen von Gruppen

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

37 Gauß-Algorithmus und lineare Gleichungssysteme

37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Motivation Lineare Gleichungssysteme treten in einer Vielzahl von Anwendungen auf und müssen gelöst werden In Abschnitt 355 haben wir gesehen, dass

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

Ranking by Reordering Tobias Joppen

Ranking by Reordering Tobias Joppen Ranking by Reordering Tobias Joppen 09.07.2014 Fachbereich Informatik Knowledge Engineering Prof. Johannes Fürnkranz 1 Überblick Einleitung Rank-differential Methode Idee Problemdefinition Beispiel Vereinfachung

Mehr

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 11 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Logistik: Transport. Grundlagen, lineare Transportund Umladeprobleme. Von Dr. Wolfgang Domschke. o. Professor für Betriebswirtschaftslehre

Logistik: Transport. Grundlagen, lineare Transportund Umladeprobleme. Von Dr. Wolfgang Domschke. o. Professor für Betriebswirtschaftslehre Logistik: Transport Grundlagen, lineare Transportund Umladeprobleme Von Dr. Wolfgang Domschke o. Professor für Betriebswirtschaftslehre Zweite, ergänzte Auflage TECHNISCH!: MOC cchule DARiviSTAOT j P e

Mehr

Kapitel VIII - Tests zum Niveau α

Kapitel VIII - Tests zum Niveau α Institut für Volkswirtschaftslehre (ECON) Lehrstuhl für Ökonometrie und Statistik Kapitel VIII - Tests zum Niveau α Induktive Statistik Prof. Dr. W.-D. Heller Hartwig Senska Carlo Siebenschuh Testsituationen

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Probeklausur zur Vorlesung Berechenbarkeit und Komplexität

Probeklausur zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Probeklausur 25.01.2013 Probeklausur zur Vorlesung Berechenbarkeit und Komplexität Aufgabe 1 (1+2+6+3 Punkte)

Mehr

Vervollständigung Lateinischer Quadrate

Vervollständigung Lateinischer Quadrate Vervollständigung Lateinischer Quadrate Elisabeth Schmidhofer 01.12.2013 Inhaltsverzeichnis 1 Vorwort 3 2 Einleitung 4 2.1 Beispele.............................................. 4 3 Lateinische Quadrate

Mehr

Komplexität von Algorithmen

Komplexität von Algorithmen Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen

Mehr

Einführung in die linearen Funktionen. Autor: Benedikt Menne

Einführung in die linearen Funktionen. Autor: Benedikt Menne Einführung in die linearen Funktionen Autor: Benedikt Menne Inhaltsverzeichnis Vorwort... 3 Allgemeine Definition... 3 3 Bestimmung der Steigung einer linearen Funktion... 4 3. Bestimmung der Steigung

Mehr

5 Zwei spieltheoretische Aspekte

5 Zwei spieltheoretische Aspekte 5 Zwei spieltheoretische Aspekte In diesem Kapitel wollen wir uns mit dem algorithmischen Problem beschäftigen, sogenannte Und-Oder-Bäume (kurz UOB) auszuwerten. Sie sind ein Spezialfall von Spielbäumen,

Mehr

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte

Mehr

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 23. November 2011 Betweenness Centrality Closeness Centrality H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 Betweenness Centrality Grundlegende Idee: Ein Knoten ist wichtig, wenn er auf

Mehr

Algorithmen und Datenstrukturen Kapitel 10

Algorithmen und Datenstrukturen Kapitel 10 Algorithmen und Datenstrukturen Kapitel 10 Flüsse Frank Heitmann heitmann@informatik.uni-hamburg.de 6. Januar 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/8 Flüsse Graphen Grundlagen Definition

Mehr

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten

Mehr

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs

Mehr

Eigenwerte und Diagonalisierung

Eigenwerte und Diagonalisierung Eigenwerte und Diagonalisierung Wir wissen von früher: Seien V und W K-Vektorräume mit dim V = n, dim W = m und sei F : V W linear. Werden Basen A bzw. B in V bzw. W gewählt, dann hat F eine darstellende

Mehr

31 Polynomringe Motivation Definition: Polynomringe

31 Polynomringe Motivation Definition: Polynomringe 31 Polynomringe 31.1 Motivation Polynome spielen eine wichtige Rolle in vielen Berechnungen, einerseits weil oftmals funktionale Zusammenhänge durch Polynome beschrieben werden, andererseits weil Polynome

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Euklidische Distanzmatrizen. Andrei Grecu

Euklidische Distanzmatrizen. Andrei Grecu Euklidische Distanzmatrizen Andrei Grecu Übersicht Motivation Definition und Problemstellung Algo 1: Semidefinite Programmierung Algo 2: Multidimensional Scaling Algo 3: Spring Embedder Algo 4: Genetischer

Mehr

Algorithmen und Datenstrukturen 1 Kapitel 3

Algorithmen und Datenstrukturen 1 Kapitel 3 Algorithmen und Datenstrukturen 1 Kapitel 3 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 3.6 Dynamische Programmierung Die rekursive Problemzerlegung kann

Mehr

Problemreduktion durch Transformation am Beispiel des. Erweiterten Euklidschen Algorithmus

Problemreduktion durch Transformation am Beispiel des. Erweiterten Euklidschen Algorithmus Problemreduktion durch Transformation am Beispiel des Erweiterten Euklidschen Algorithmus Wolfgang Windsteiger JKU Linz, A 4040 Linz, Austria Kurzfassung Transformation beschreibt im Wesentlichen die algorithmische

Mehr

Sequenz Alignment Teil 2

Sequenz Alignment Teil 2 Sequenz Alignment Teil 2 14.11.03 Vorlesung Bioinformatik 1 Molekulare Biotechnologie Dr. Rainer König Besonderen Dank an Mark van der Linden, Mechthilde Falkenhahn und der Husar Biocomputing Service Gruppe

Mehr

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten

Mehr

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal 3. Kreis- und Wegeprobleme Kapitelübersicht 3. Kreis- und Wegeprobleme Eulerweg, Eulerkreis Charakterisierung von eulerschen Graphen Bestimmung von eulerschen Wegen und Kreisen Hamiltonsche Graphen Definition

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Kapitel 2: Mathematische Grundlagen

Kapitel 2: Mathematische Grundlagen [ Computeranimation ] Kapitel 2: Mathematische Grundlagen Prof. Dr. Stefan M. Grünvogel stefan.gruenvogel@fh-koeln.de Institut für Medien- und Phototechnik Fachhochschule Köln 2. Mathematische Grundlagen

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre

Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre Vorlesung Einführung in die mathematische Sprache und naive Mengenlehre Allgemeines RUD26 Erwin-Schrödinger-Zentrum (ESZ) RUD25 Johann-von-Neumann-Haus Fachschaft Menge aller Studenten eines Institutes

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Diskrete Strukturen Kapitel 1: Einleitung

Diskrete Strukturen Kapitel 1: Einleitung WS 2015/16 Diskrete Strukturen Kapitel 1: Einleitung Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15

Mehr

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P 11 Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P 11 Woche: Turingmaschinen, Entscheidbarkeit, P 239/ 333 Einführung in die NP-Vollständigkeitstheorie

Mehr

Klausur zur Wahrscheinlichkeitstheorie für Lehramtsstudierende

Klausur zur Wahrscheinlichkeitstheorie für Lehramtsstudierende Universität Duisburg-Essen Essen, den 15.0.009 Fachbereich Mathematik Prof. Dr. M. Winkler C. Stinner Klausur zur Wahrscheinlichkeitstheorie für Lehramtsstudierende Lösung Die Klausur gilt als bestanden,

Mehr

KAPITEL 4 FLÜSSE IN NETZWERKEN

KAPITEL 4 FLÜSSE IN NETZWERKEN KAPITEL 4 FLÜSSE IN NETZWERKEN F. VALLENTIN, A. GUNDERT 1. Das Max-Flow-Min-Cut Theorem Es sei D = (V, A) ein gerichteter Graph, s, t V zwei Knoten. Wir nennen s Quelle und t Senke. Definition 1.1. Eine

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler

Mehr

Nichtlineare Optimierung ohne Nebenbedingungen

Nichtlineare Optimierung ohne Nebenbedingungen Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt

Mehr

Technische Universität München Zentrum Mathematik. Übungsblatt 7

Technische Universität München Zentrum Mathematik. Übungsblatt 7 Technische Universität München Zentrum Mathematik Mathematik (Elektrotechnik) Prof. Dr. Anusch Taraz Dr. Michael Ritter Übungsblatt 7 Hausaufgaben Aufgabe 7. Für n N ist die Matrix-Exponentialfunktion

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/2, Folie 1 2014 Prof. Steffen Lange - HDa/FbI

Mehr

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Pfade. Traveling Salesman Problem. Flüsse in Netzwerken

Mehr

Gliederung. Algorithmen und Datenstrukturen II. Problem: Längste gemeinsame Teilsequenz. Problem: Längste gemeinsame Teilsequenz

Gliederung. Algorithmen und Datenstrukturen II. Problem: Längste gemeinsame Teilsequenz. Problem: Längste gemeinsame Teilsequenz Gliederung Algorithmen und Datenstrukturen II Algorithmen zur Textverarbeitung II D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg

Mehr

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP Kap..1 Heuristiken Kap.. Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 3. VO DAP SS 008 14. Juli 009 Überblick

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 5 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität

Mehr

Kapitel III. Aufbau des Zahlensystems

Kapitel III. Aufbau des Zahlensystems Kapitel III. Aufbau des Zahlensystems 1 Addition und Multiplikation natürlicher Zahlen Wir wollen erklären, wie man natürliche Zahlen addiert und multipliziert und dabei nur den Begriff das Zählens verwenden.

Mehr

Minimal spannende Bäume

Minimal spannende Bäume http://www.uni-magdeburg.de/harbich/ Minimal spannende Fakultät für Informatik Otto-von-Guericke-Universität 2 Inhalt Definition Wege Untergraphen Kantengewichtete Graphen Minimal spannende Algorithmen

Mehr

k np g(n, p) = Pr p [T K] = Pr p [T k] Φ. np(1 p) DWT 4.1 Einführung 359/467 Ernst W. Mayr

k np g(n, p) = Pr p [T K] = Pr p [T k] Φ. np(1 p) DWT 4.1 Einführung 359/467 Ernst W. Mayr Die so genannte Gütefunktion g gibt allgemein die Wahrscheinlichkeit an, mit der ein Test die Nullhypothese verwirft. Für unser hier entworfenes Testverfahren gilt ( ) k np g(n, p) = Pr p [T K] = Pr p

Mehr

Lösungsvorschläge Blatt Z1

Lösungsvorschläge Blatt Z1 Theoretische Informatik Departement Informatik Prof. Dr. Juraj Hromkovič http://www.ita.inf.ethz.ch/theoinf16 Lösungsvorschläge Blatt Z1 Zürich, 2. Dezember 2016 Lösung zu Aufgabe Z1 Wir zeigen L qi /

Mehr

Algorithmen & Programmierung. Rekursive Funktionen (1)

Algorithmen & Programmierung. Rekursive Funktionen (1) Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden

Mehr

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2010/2011 1/59 Graphische Darstellung von Zusammenhängen schon

Mehr

Bioinformatik: Neue Paradigmen in der Forschung

Bioinformatik: Neue Paradigmen in der Forschung Bioinformatik: Neue Paradigmen in der Forschung Sommerakademie der Studienstiftung St. Johann, 1.-14.9.2002 Leitung: Proff. Ernst W. Mayr & Rolf Backofen Thema 4: Paarweises und multiples (heuristisches)

Mehr

Syntax - Das Berechnen syntaktischer Strukturen beim menschlichen Sprachverstehen (Fortsetzung)

Syntax - Das Berechnen syntaktischer Strukturen beim menschlichen Sprachverstehen (Fortsetzung) Syntax - Das Berechnen syntaktischer Strukturen beim menschlichen Sprachverstehen (Fortsetzung) Markus Bader 9. Februar 2004 Inhaltsverzeichnis 4 Übertragung ins e 1 4.3 Bewegung und Satztyp................................

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld Westfählische Wilhelms-Universität Eulersche Graphen Autor: 21. Mai 2015 Inhaltsverzeichnis 1 Das Königsberger Brückenproblem 1 2 Eulertouren und Eulersche Graphen 2 3 Auffinden eines eulerschen Zyklus

Mehr

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben

Mehr

Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011)

Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011) M. Sc. Frank Gimbel Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011) 1 Motivation Ziel ist es, ein gegebenes lineares Gleichungssystem der Form Ax = b (1) mit x, b R n und A R n n zu lösen.

Mehr

1 Euklidische und unitäre Vektorräume

1 Euklidische und unitäre Vektorräume 1 Euklidische und unitäre Vektorräume In diesem Abschnitt betrachten wir reelle und komplexe Vektorräume mit Skalarprodukt. Dieses erlaubt uns die Länge eines Vektors zu definieren und (im Fall eines reellen

Mehr

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung Kapitel : Minimale spannende Bäume Gliederung der Vorlesung. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen. Kürzeste Wege. Minimale spannende Bäume. Färbungen und Cliquen. Traveling Salesman

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Dr. Hanjo Täubig Lehrstuhl für Eziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester 2007/08

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Algorithmen und Datenstrukturen 22.08.2013

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Universität des Saarlandes

Universität des Saarlandes Universität des Saarlandes FR 6.2 Informatik Prof. Dr. Kurt Mehlhorn WiSe 2015/2016 Übungen zu Ideen der Informatik http://www.mpi-inf.mpg.de/departments/algorithms-complexity/teaching/winter15/ideen/

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des

Mehr

Bioinformatik. Substitutionsmatrizen BLAST. Ulf Leser Wissensmanagement in der. Bioinformatik

Bioinformatik. Substitutionsmatrizen BLAST. Ulf Leser Wissensmanagement in der. Bioinformatik Bioinformatik Substitutionsmatrizen BLAST Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Substitutionsmatrizen: PAM und BLOSSUM Suche in Datenbanken: Basic Local Alignment Search

Mehr

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2015

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2015 und Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2015 4. April 2016 Zu der Vorlesung wird ein Skript erstellt, welches auf meiner Homepage veröffentlicht wird: http://www.math.uni-hamburg.de/home/geschke/lehre.html

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Vorlesung Datenbanktheorie. Church-Rosser-Eigenschaft der Verfolgungsjagd. Berechnung von chase(t, t, Σ) Vorlesung vom Mittwoch, 05.

Vorlesung Datenbanktheorie. Church-Rosser-Eigenschaft der Verfolgungsjagd. Berechnung von chase(t, t, Σ) Vorlesung vom Mittwoch, 05. Vorlesung Datenbanktheorie Nicole Schweikardt Humboldt-Universität zu Berlin Sommersemester 2006 Vorlesung vom Mittwoch, 05. Juli 2006 Letzte Vorlesung: Kurze Bemerkungen zum Armstrong-Kalkül The Chase:

Mehr

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

Mehr

Lineare Gleichungssysteme - Grundlagen

Lineare Gleichungssysteme - Grundlagen Lineare Gleichungssysteme - Grundlagen Betrachtet wird ein System linearer Gleichungen (im deutschen Sprachraum: lineares Gleichungssystem mit m Gleichungen für n Unbekannte, m, n N. Gegeben sind m n Elemente

Mehr

1 Fraktale Eigenschaften der Koch-Kurve

1 Fraktale Eigenschaften der Koch-Kurve Anhang Inhaltsverzeichnis Fraktale Eigenschaften der Koch-Kurve iii. Einführung.................................. iii.2 Defintion.................................... iii.3 Gesamtlänge der Koch-Kurve........................

Mehr

Im allerersten Unterabschnitt wollen wir uns mit einer elementaren Struktur innerhalb der Mathematik beschäftigen: Mengen.

Im allerersten Unterabschnitt wollen wir uns mit einer elementaren Struktur innerhalb der Mathematik beschäftigen: Mengen. Kapitel 1 - Mathematische Grundlagen Seite 1 1 - Mengen Im allerersten Unterabschnitt wollen wir uns mit einer elementaren Struktur innerhalb der Mathematik beschäftigen: Mengen. Definition 1.1 (G. Cantor.

Mehr

1. Gruppen. 1. Gruppen 7

1. Gruppen. 1. Gruppen 7 1. Gruppen 7 1. Gruppen Wie schon in der Einleitung erläutert wollen wir uns in dieser Vorlesung mit Mengen beschäftigen, auf denen algebraische Verknüpfungen mit gewissen Eigenschaften definiert sind.

Mehr

Vorkurs Mathematik Abbildungen

Vorkurs Mathematik Abbildungen Vorkurs Mathematik Abbildungen Philip Bell 19. September 2016 Diese Arbeit beruht im Wesentlichen auf dem Vortrag Relationen, Partitionen und Abbildungen von Fabian Grünig aus den vorangehenden Jahren.

Mehr