Bioinformatik für Biochemiker

Größe: px
Ab Seite anzeigen:

Download "Bioinformatik für Biochemiker"

Transkript

1 Bioinformatik für Biochemiker Oliver Kohlbacher WS 2009/ Paarweises Alignment Teil I Abt. Simulation biologischer Systeme WSI/ZBIT, Eberhard Karls Universität Tübingen Übersicht Paarweises Alignment Anzahl möglicher Alignments Komplexität von Algorithmen Needleman-Wunsch-Algorithmus Komplexität Umsetzung in Python 2 Ähnlichkeit und Distanz Wie kann man die Ähnlichkeit zweier Sequenzen beschreiben? Einfachste Möglichkeit: Zählen identischer Zeichen GATCGTTCG CATGGTTGA Problem: Was bei Sequenzen unterschiedlicher Länge? GATCGTTCG GATCGTTCG- GATCGTTCG ---GGTTGA G---GTT-GA -GGTTGA-- Ähnlichkeit: (Anzahl Matches) Analog die Distanz (Anzahl Mismatches):

2 Ähnlichkeit und Distanz Bei der Suche nach dem besten Alignment hat man zwei äquivalente Möglichkeiten Minimiere die Distanz Maximiere die Ähnlichkeit (Score) Distanzfunktionen und Ähnlichkeitsfunktionen gibt es in Hülle und Fülle. Einige werden wir nächste Woche im Detail besprechen. Für heute werden wir die bereits aus der letzten Vorlesung bekannte Funktion verwenden, die einfach Mismatches zählt: Naiver Algorithmus Naiv kann man ein optimales Alignment mit folgendem Algorithmus berechnen: min_dist à A + B Für jedes Alignment (A, B ) von A und B: Wenn d(a, B ) < min_dist: min_dist à d(a, B ) bestes_alignment à (A, B ) Gib min_dist, bestes_alignment aus Frage: Wie lange benötigt dieser Algorithmus zum Berechnen aller Alignments zweier Proteine der Länge 500? Anzahl möglicher Alignments Nehmen wir zwei Sequenzen A und B der Länge n an Im schlimmsten Fall enthält das Alignment n Gapsymbole je Sequenz und hat die Länge 2n, im einfachsten Fall keine Gaps: ACGTA----- ACGTA -----TAGCA TAGCA Ein Alignment mit 0 k n Gaps je Sequenz hat n + k Spalten in die man k Gaps platzieren kann Es gibt also dieser Gaps unterschiedliche Möglichkeiten der Platzierung In der zweiten Sequenz kann man die k Gaps nur noch an die (n + k) - k = n Positionen ohne Gaps setzen Insgesamt gilt also für die Anzahl Alignments: 2

3 Anzahl möglicher Alignments Durch ähnliche Überlegungen kann man herleiten, dass für Sequenzen beliebiger Längen n und m für die Anzahl möglicher Alignments gilt: Mit Hilfe der Stirling-Formel kann man diese Zahl für große n und m mit m ¼ n zu 2/π 4 n annähern (Details bitte glauben!) Anzahl möglicher Alignments wächst exponentiell mit n: n 2/π 4 n 10 ~ ~ ~ ~ Erzeugen aller Alignments Beispielrechnung: Aktuelle Rechner arbeiten mit Taktfrequenzen um 3 GHz Könnte(!) ein Computer je ein Alignment pro Taktzyklus auswerten, würde er für die Alignments zweier Proteine der Länge / / / 365 = Jahre benötigen Explizite Auswertung aller möglichen Alignments ist also keine sinnvolle Option ) Was uns fehlt ist der richtige Algorithmus! Laufzeitanalyse for i in range(n): for j in range(n): for k in range(n): a = a + for i in range(n): a = a + for i in range(5*n): a = a + for i in range(10*n): a = a + Möchte man die Laufzeit zweier Programme analysieren, so zählt man üblicherweise die Rechenoperationen, die auszuführen sind. Interessant ist dabei der Vergleich, wie die Zahl mit der Größe der Eingabe (z.b. Sequenzlänge n) variiert In den obigen Beispielen können wir zum Beispiel die Anzahl der Additionen ( a = a + ) betrachten. n = 3 n = 20 Links: 3 * 3 * 3 = 27 Additionen20 * 20 * 20 = 8000 Rechts: = 48 Additionen = 320 3

4 O-Notation In der Informatik verwendet man die so genannte O- Notation um das asymptotische Laufzeitverhalten eines Algorithmus in Abhängigkeit von der Eingabe (seine Komplexität) anzugeben Diese Notation vernachlässigt alle konstanten Faktoren, beschreibt also nur die Stärke des Wachstums der Rechenzeit mit der Eingabegröße Für unseren Algorithmus zur Berechnung der Distanz ist die Laufzeit z.b. O(n), wobei n die Länge der beiden Sequenzen ist Eine Verdopplung der Eingabelänge bewirkt also eine Verdopplung der Laufzeit Ein Algorithmus der O(n 2 ) Zeit benötigt, würde für eine doppelt so große Eingabe die vierfache Zeit benötigen O-Notation O-Notation sagt nichts darüber aus, ob eine bestimmte Problemgröße mit einem Algorithmus lösbar ist! Stattdessen trifft sie eine Aussage darüber, wie der Algorithmus beim Übergang zu immer größeren Probleminstanzen skaliert Algorithmen mit besserer Komplexität können für sehr kleine Probleminstanzen langsamer sein (und sind es auch oft) Naives Alignment Welche Komplexität hat nun unser naiver Alignmentalgorithmus? Wir zählen einfach triviale Operationen, z.b. Zuweisungen Für die Laufzeitanalyse sind dabei insbesondere Schleifen sehr wichtig Hier: Wir erzeugen alle (ca. 4 n ) Alignments Für jedes Alignment werten wir die Distanz aus (O(n)) Insgesamt benötigt der Algorithmus also O(n 4 n ) Zeit Asymptotisch (für große n) spielt der lineare Term keine Rolle, die Laufzeit ist also O(4 n ) ) Laufzeit ist exponentiell in der Sequenzlänge n 4

5 Exponentielle Laufzeit Algorithmen mit exponentieller Laufzeit sind nur für sehr kleine Problemgrößen handhabbar Nach unserer einfachen Abschätzung erreichen wir bereits bei Sequenzen der Länge 26 Rechenzeiten von einem Jahr! Andererseits ist die überwältigende Mehrheit aller exponentiell vielen möglichen Alignments offensichtlich nicht optimal uns interessieren aber nur optimale Alignments! Ein Großteil der Rechenzeit wird auf offensichtlich unsinnige Alignments vergeudet! Wie können wir nun optimale Alignments berechnen ohne alle Alignments explizit berechnen zu müssen? worksheets/html/ex1wk1.html Alignments Berechnen des Scores zweier Alignments von A = ACGTAGTAGCA und B = ACTTAGTACGT ACGTAGTAGC-A ACGTAGTA-GCA ACTT-GTACGTA ACTTG-TACGTA Beobachtung: Die Alignments der Präfixe der Länge vier von A und B sind identisch. Damit auch die Scores der Alignments dieser Präfixe. ) Wir berechnen die Scores vieler Teilalignments immer wieder! Idee: Merke die besten Scores dieser Teilalignments und berechne sie nicht ständig neu. Konstruktion von Alignments A = ACGTAGTAGCA und B = ACTTGTACGTA Das Alignment der Präfixe A[1..i] und B[1..j] kann nur auf eine der folgenden drei Möglichkeiten enden: A A - Bsp.: ACGT- G - G ACTTG 1. Fall: A mit G 2. Fall: A mit - 3. Fall: - mit G Jedem der drei Fälle entspricht ein Präfixalignment der vorhergehenden Spalten: 1. Fall: A[1..i-1] mit B[1..j-1] 2. Fall: A[1..i-1] mit B[1..j] 3. Fall: A[1..i] mit B[1..j-1] 5

6 Konstruktion von Alignments Formal: Alignment für A[1..i] und B[1..j] endet in a i mit b j, a i mit ε oder ε mit b j Distanz des Alignments ergibt sich aus Distanz des jeweiligen Präfixalignments ohne die letzte Spalte und Distanz der neuen Spalte: d i-1,j-1 + d(a i, b j ) d i-1,j + d(a i, ε) d i,j-1 + d(ε, b j ) Für die Distanz optimaler Alignments ist natürlich nur das Minimum davon interessant: min(d i-1,j-1 + d(a i, b j ), d i-1,j + d(a i, ε), d i,j-1 + d(ε, b j )) ist ein Ansatz zur Lösung von Optimierungsproblemen, bei dem bereits berechnete Teillösungen abgespeichert werden In unserem Fall speichern wir die bereits berechneten Distanzen von Präfixalignments Dadurch lässt sich die ständige Neuberechnung dieser Alignments vermeiden ist eine wichtige Technik in der Bioinformatik, die z.b. auch in der Proteinstruktur-Vorhersage Anwendung findet Wir wollen nun unser Alignment-Problem mit Hilfe der dynamischen Programmierung lösen und den Algorithmus in Python implementieren Gegeben: Sequenzen A, B mit A = m, B = n Distanzfunktion d(a, b) 1, falls a b 0, falls a = b Gesucht: optimales Alignment Ansatz Merke bereits berechnete Teilergebnisse in (m+1)x(n+1)- Matrix D Matrixelement D i,j enthält dann die Distanz für ein optimales Alignment von A [1..i] und B[1..j] - A C G T D 0,0 D 1,1 D m,n 6

7 Die 0. Spalte/Zeile der Matrix beschreibt Alignments die mit einem Gapzeichen beginnen Gemäß unserer Überlegung über Präfixalignments gilt für die Matrixelemente: Damit ergibt sich der Inhalt einer Zelle der Matrix aus den Werten der drei Nachbarzellen links, oben und links oben - A C G T D 0,0 D m,n Mit dieser einfachen Rechenanweisung lassen sich die Einträge der Matrix Element für Element ausfüllen Das untere rechte Element D i,j enthält nach Konstruktion die gesuchte Distanz des optimalen Alignments! Die Konstruktion der Matrix wollen wir nun am Beispiel nachvollziehen - A C G T D 0,0 D m,n Der Eintrag D 0,0 entspricht dem Alignment zweier leerer Sequenzen und wird daher mit 0 initialisiert - 0 A C G T 7

8 Der Eintrag D 0,0 entspricht dem Alignment zweier leerer Sequenzen und wird daher mit 0 initialisiert. Die Einträge D 0,j und D i,0 entsprechen Alignments nur mit Gaps: D 3,0 entspricht dem Alignment AGC A C G T Der Eintrag D 0,0 entspricht dem Alignment zweier leerer Sequenzen und wird daher mit 0 initialisiert. Die Einträge D 0,j und D i,0 entsprechen Alignments nur mit Gaps: D 3,0 entspricht dem Alignment AGC --- D 3,0 hat daher den Wert A C G T Der Eintrag D 0,0 entspricht dem Alignment zweier leerer Sequenzen und wird daher mit 0 initialisiert. Die Einträge D 0,j und D i,0 entsprechen Alignments nur mit Gaps: D 3,0 entspricht dem Alignment AGC --- D 3,0 hat daher den Wert 3 Die übrigen Werte analog A 1 C 2 G 3 T 4 8

9 Die restliche Tabelle wird nun nach obiger Gleichung eingesetzt Wir berechnen jeweils das Minimum der drei benachbarten Matrixelemente und der zugehörigen Distanzen D 1,1 = min( D 0,1 + d(-, A), D 0,0 + d(a,a), D 1,0 + d(a,-)) = 0 A 1 C 2 G 3 T 4 Die restliche Tabelle wird nun nach obiger Gleichung eingesetzt Wir berechnen jeweils das Minimum der drei benachbarten Matrixelemente und der zugehörigen Distanzen D 1,1 = min( D 0,1 + d(-, A), D 0,0 + d(a,a), D 1,0 + d(a,-)) = 0 A C 2 G 3 T 4 Die restliche Tabelle wird nun nach obiger Gleichung eingesetzt Wir berechnen jeweils das Minimum der drei benachbarten Matrixelemente und der zugehörigen Distanzen D 1,1 = min( D 0,1 + d(-, A), D 0,0 + d(a,a), D 1,0 + d(a,-)) = 0 A C G T

10 Ausfüllen der DP-Matrix liefert in D m,n die optimale Distanz Problem: Distanz alleine reicht nicht wie findet man das zugehörige Alignment? Wir wissen für jedes Matrixelement, auf welche Weise das Minimum erzeugt wurde (von oben, links, diagonal) Speichere Richtung in zweiter Matrix T Verfolge Pfad zurück A C G T Traceback der T-Matrix Diagonal: Matche zwei Zeichen Horizontal: matche Zeichen aus B mit Gap Vertikal: matche Zeichen aus A mit Gap Diagonal von (4,3) nach (3,2) T C A C G T Traceback der T-Matrix Diagonal: Matche zwei Zeichen Horizontal: matche Zeichen aus B mit Gap Vertikal: matche Zeichen aus A mit Gap Diagonal von (3,2) nach (2,2) GT GC A C G T

11 Traceback der T-Matrix Diagonal: Matche zwei Zeichen Horizontal: matche Zeichen aus B mit Gap Vertikal: matche Zeichen aus A mit Gap Vertikal von (2,1) nach (1,1) CGT -GC A C G T Traceback der T-Matrix Diagonal: Matche zwei Zeichen Horizontal: matche Zeichen aus B mit Gap Vertikal: matche Zeichen aus A mit Gap Diagonal von (1,1) nach (0,0) ACGT A-GC A C G T Mehrdeutigkeit der Lösung Es gibt in der Regel nicht ein optimales Alignment, sondern mehrere gleich gute Alternativen ACGG und TT ACGG ACGG ACGG ACGG TT-- T T --TT -TT- All diese Alignments (und noch einige mehr) haben die gleiche Distanz (4). Bessere Distanzen sind nicht möglich! Die unterschiedlichen Lösungen entsprechen unterschiedlichen Pfaden durch die Matrix Sie entstehen dadurch, dass das Minimum der drei Möglichkeiten zu identischen Distanzen führt Unser Algorithmus liefert nur eines dieser Alignments! 11

12 Needleman-Wunsch-Algorithmus Der eben beschriebene Algorithmus, der optimale paarweise Alignments mit dynamischer Programmierung findet, wurde 1970 von Saul Needleman und Christian Wunsch vorgestellt Er wird daher häufig auch Needleman-Wunsch- Algorithmus genannt und ist einer der Grundalgorithmen der Sequenzanalyse Eine gute Möglichkeit den Algorithmus im Detail auszuprobieren haben Sie in den Übungen oder auf folgender Website (Vorsicht: andere Distanzfunktion!) Needleman, Wunsch: A general method applicable to the search for similarities in the amino acid sequence of two proteins, J. Mol. Biol. (1970), 48, Komplexität Wie sieht es nun mit der Laufzeit des Needleman-Wunsch-Algorithmus aus? Steigt auch dort die Laufzeit exponentiell mit der Sequenzlänge? Analyse Größe der DP-Matrix: (m+1)x(n+1) Zeit zum Füllen der Matrix: O(mn) Zeit für Traceback: O(m+n) ) insgesamt O(mn) Für Sequenzen ähnlicher Länge also keine exponentielle, sondern quadratische Laufzeit! Needleman-Wunsch in Python Wir wollen nun den Kernteil des Needleman-Wunsch- Algorithmus in Python implementieren Traceback-Matrix unterschlagen wir hier der Kürze halber (! Übung!) Beispielcode verwendet einige neue Dinge in Python, die Sie bisher noch nicht kennen Module Listen Matrix-Klasse Diese werden wir zunächst kurz vorstellen 12

13 Python Module Module sind eine Möglichkeit existierenden Code wieder zu verwenden und anderen zur Verfügung zu stellen Man kann dazu einfach den Code in eine eigene Datei speichern und diese dann mit dem import-kommando von Python laden: # Modul Dist.py # Dieses Modul implementiert # Die Distanzfunktion d und # kann von anderen Programmen # verwendet werden. def d(a, b): if a == b: return 0 else: return 1 # Berechnung der Distanz import Dist # Lade Modul Dist A = `ACGT` B = `A-GG` a = 0 for i in range(len(a)): d = d + Dist.d(A[i], B[i]) # Die Distanzfunktion wird # über den Namen des Moduls # angesprochen: Dist.d Python Listen Listen sind Aneinanderreihungen beliebiger Werte (genauer: Objekte), die man zusammenfassen will Viele Python-Funktionen akzeptieren Listen als Argumente Möchte man z.b. das Minimum von vier Werten berechnen, so definiert man eine Liste mit diesen Werten und ruft dann die Funktion min mit dieser Liste auf: l = [170, 55, 3, 244] print min(l) Listen definiert man in Python, indem man die einzelnen Werte in eckige Klammern schreibt Vorsicht: eckige Klammern hinter einer Variablen bedeuten den Zugriff mit einem oder mehreren Indices! Nicht verwechseln! Ergebnis dieses kurzen Programms ist natürlich 3 Python Matrix Listen sind in Python nur eine von vielen Datenstrukturen Mit Hilfe von Arrays kann man große Mengen von Zahlen darstellen Sowohl eindimensionale ( Vektoren ), als auch zweidimensionale ( Matrizen ) oder mehrdimensionale Arrays (allgemeine Tensoren) sind möglich Diese Arrays sind in Python nicht in der Sprache selbst verankert, sondern werden von einem externen Modul namens numarray zur Verfügung gestellt, das separat installiert werden muss Dafür stellt numarray Ihnen sehr schnelle und einfache Operationen aus der linearen Algebra (z.b. Matrixmultiplikationen) zur Verfügung, die Sie nicht mehr selbst implementieren müssen Wir werden die array-klasse aus numarray verwenden um unsere DP-Matrix darzustellen 13

14 Python Matrix Eine Matrix kann man auf viele Arten erzeugen. Wir wollen die Matrix nicht nur erzeugen sondern am besten auch gleich mit Nullen füllen Das geht mit der Funktion numarray.zeros, deren Argument eine Liste mit der Größe in den jeweiligen Dimensionen ist import numarray # Lade Modul A = numarray.zeros([3]) # Definiert Vektor # der Länge 3 A[1] = 5 # Setzt 2. Element print A M = numarray.zeros([3,3]) # definiert eine 3x3-Matrix M[0,0] = M[1,1] = M[2,2] = 2 print M print A * M Ausgabe: [0 5 0] [[2 0 0] [0 2 0] [0 0 2]] [[ 0 0 0] [ ] [ 0 0 0]] Needleman-Wunsch Teil I # Importiere Matrixklasse import numarray # Distanzfunktion def d(a,b): if a == b: return 0 else: return 1 A = ACGT # Initialisierung der Sequenzen B = AGC m = len(a) # Reine Bequemlichkeit: Längen der n = len(b) # Sequenzen D = numarray.zeros([m+1, n+1]) # Erzeuge DP-Matrix Needleman-Wunsch Teil II for i in range(m+1): # Initialisierung D[i,0] = i # der DP-Matrix for j in range(n+1): D[0,j] = j # Berechne DP-Matrix for i in range(1,m+1): for j in range(1,n+1): # Berechne Distanzen d_horiz = D[i-1,j] + d(a[i-1],"-") d_diag = D[i-1,j-1] + d(a[i-1],b[j-1]) d_vert = D[i,j-1] + d("-", B[j-1]) # Speichere Minimum in DP-Matrix D D[i,j] = min([d_horiz, d_diag, d_vert]) 14

15 Literatur + Links Setubal/Meidanis, Introduction to Computational Molecular Biology, S. 53ff Merkl/Waack, Bioinformatik Interaktiv, S. 95ff Webseite zum interaktiven Experimentieren: 15

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

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

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

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

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

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

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen lausthal Informatik II Komplexität von Algorithmen. Zachmann lausthal University, ermany [email protected] Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer

Mehr

Bioinformatik für Biochemiker

Bioinformatik für Biochemiker Bioinformatik für Biochemiker Oliver Kohlbacher, Steffen Schmidt SS 2010 3. Strings, Sequenzen und Python Abt. Simulation biologischer Systeme WSI/ZBIT, Eberhard Karls Universität Tübingen Übersicht Strings

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

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass f O g und auch g O f. Wähle zum Beispiel und G. Zachmann Informatik

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

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Kostenmodell Daniel Graf, Tobias Pröger 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)

Mehr

Taylorentwicklung der k ten Dimension

Taylorentwicklung der k ten Dimension Taylorentwicklung der k ten Dimension 1.) Taylorentwicklung... 2 1.1.) Vorgehenesweise... 2 1.2.) Beispiel: f ((x, y)) = e x2 +y 2 8x 2 4y 4... 3 2.) Realisierung des Algorithmus im CAS Sage Math... 5

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

Laufzeit und Komplexität

Laufzeit und Komplexität Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. November 2014 (O-Notation, Theta, Omega) Junior-Prof. Dr. Olaf Ronneberger

Mehr

Informatik I Komplexität von Algorithmen

Informatik I Komplexität von Algorithmen Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany [email protected] Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge

Mehr

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

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Rekursion Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Rekursion Rekursion Neue Denkweise Wikipedia: Als Rekursion bezeichnet man den Aufruf

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 27.10.2011 [email protected] 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:

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

Binary Decision Diagrams (Einführung)

Binary Decision Diagrams (Einführung) Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2016 Lineare Gleichungssysteme Schwerpunkte: Interpretation und Verständnis der Gleichungen Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik unter

Mehr

Serie 10: Inverse Matrix und Determinante

Serie 10: Inverse Matrix und Determinante D-ERDW, D-HEST, D-USYS Mathematik I HS 5 Dr Ana Cannas Serie 0: Inverse Matrix und Determinante Bemerkung: Die Aufgaben dieser Serie bilden den Fokus der Übungsgruppen vom und 5 November Gegeben sind die

Mehr

(Allgemeine) Vektorräume (Teschl/Teschl 9)

(Allgemeine) Vektorräume (Teschl/Teschl 9) (Allgemeine) Vektorräume (Teschl/Teschl 9) Sei K ein beliebiger Körper. Ein Vektorraum über K ist eine (nichtleere) Menge V, auf der zwei Operationen deniert sind, die bestimmten Rechenregeln genügen:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind

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

4.4. Rang und Inversion einer Matrix

4.4. Rang und Inversion einer Matrix 44 Rang und Inversion einer Matrix Der Rang einer Matrix ist die Dimension ihres Zeilenraumes also die Maximalzahl linear unabhängiger Zeilen Daß der Rang sich bei elementaren Zeilenumformungen nicht ändert

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

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

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

Kurs über Lineare Gleichungssysteme. PD Dr. Karin Halupczok

Kurs über Lineare Gleichungssysteme. PD Dr. Karin Halupczok Kurs über Lineare Gleichungssysteme PD Dr. Karin Halupczok Mathematisches Institut Albert-Ludwigs-Universität Freiburg http://home.mathematik.unifreiburg.de/halupczok/diverses.html [email protected]

Mehr

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Matrixzugriff Wir wollen nun unsere Einführung in die Arbeit mit Vektoren und Matrizen in MATLAB

Mehr

Matrizen, Determinanten, lineare Gleichungssysteme

Matrizen, Determinanten, lineare Gleichungssysteme Matrizen, Determinanten, lineare Gleichungssysteme 1 Matrizen Definition 1. Eine Matrix A vom Typ m n (oder eine m n Matrix, A R m n oder A C m n ) ist ein rechteckiges Zahlenschema mit m Zeilen und n

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

Bioinformatik. Dynamische Programmierung. Ulf Leser Wissensmanagement in der. Bioinformatik

Bioinformatik. Dynamische Programmierung. Ulf Leser Wissensmanagement in der. Bioinformatik Bioinformatik Dynamische Programmierung Ulf Leser Wissensmanagement in der Bioinformatik Motivation BLAST / FASTA und Verwandte sind *die* Bioinformatik Anwendung Teilweise synonym für Bioinformatik rundlegende

Mehr

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

Mehr

Programmierung I Einführung in Python, Beyond the Basics

Programmierung I Einführung in Python, Beyond the Basics Höhere Datenstrukturen Programmierung I Einführung in Python, Beyond the Basics G. Zachmann Clausthal University, Germany [email protected] Eines der Features, das Python so mächtig macht (VHLL)

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen V14 1 / 30 Informationsverarbeitung im Bauwesen Markus Uhlmann Institut für Hydromechanik WS 2009/2010 Bemerkung: Verweise auf zusätzliche Information zum Download erscheinen in dieser Farbe V14 2 / 30

Mehr

(geometrische) Anschauung

(geometrische) Anschauung (geometrische) Anschauung Marcus Page Juni 28 In dieser Lerneinheit widmen wir uns dem schon oft angesprochenen Zusammenhang zwischen Matrizen und linearen Abbildungen. Außerdem untersuchen wir Funktionen,

Mehr

( ) Lineare Gleichungssysteme

( ) Lineare Gleichungssysteme 102 III. LINEARE ALGEBRA Aufgabe 13.37 Berechne die Eigenwerte der folgenden Matrizen: ( ) 1 1 0 1 1 2 0 3 0 0, 2 1 1 1 2 1. 1 1 0 3 Aufgabe 13.38 Überprüfe, ob die folgenden symmetrischen Matrizen positiv

Mehr

Grundlagen der Informatik I (Studiengang Medieninformatik)

Grundlagen der Informatik I (Studiengang Medieninformatik) Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: [email protected]

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge Bachelor

Mehr

1 Definition. 2 Besondere Typen. 2.1 Vektoren und transponieren A = 2.2 Quadratische Matrix. 2.3 Diagonalmatrix. 2.

1 Definition. 2 Besondere Typen. 2.1 Vektoren und transponieren A = 2.2 Quadratische Matrix. 2.3 Diagonalmatrix. 2. Definition Die rechteckige Anordnung von m n Elementen a ij in m Zeilen und n Spalten heißt m n- Matrix. Gewöhnlich handelt es sich bei den Elementen a ij der Matrix um reelle Zahlen. Man nennt das Paar

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

Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei

Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei 7/7/ Das Rucksack-Problem Englisch: Knapsack Problem Das Problem: "Die Qual der Wahl" Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei Im Ladens

Mehr

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr. Übersicht Datenstrukturen und Vorlesung 1: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/ Diese Präsentation verwendet

Mehr

Übungen zu Einführung in die Lineare Algebra und Geometrie

Übungen zu Einführung in die Lineare Algebra und Geometrie Übungen zu Einführung in die Lineare Algebra und Geometrie Andreas Cap Sommersemester 2010 Kapitel 1: Einleitung (1) Für a, b Z diskutiere analog zur Vorlesung das Lösungsverhalten der Gleichung ax = b

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6

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

Beispiele 1. Gegeben sei das lineare Gleichungssystem mit erweiterter Matrix (A

Beispiele 1. Gegeben sei das lineare Gleichungssystem mit erweiterter Matrix (A 133 e 1. Gegeben sei das lineare Gleichungssystem mit erweiterter Matrix 1 3 2 1 1 2 3 0. 1 3 2 1 2. Gegeben sei das lineare Gleichungssystem mit erweiterter Matrix 1 3 2 1 1 2 3 0. 1 3 2 1 Schritte des

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

Lineare Gleichungssysteme

Lineare Gleichungssysteme Christian Serpé Universität Münster 14. September 2011 Christian Serpé (Universität Münster) 14. September 2011 1 / 56 Gliederung 1 Motivation Beispiele Allgemeines Vorgehen 2 Der Vektorraum R n 3 Lineare

Mehr

5.4 Das Rucksackproblem

5.4 Das Rucksackproblem Problemstellung: 5.4 Das Rucksackproblem Eingabe: Ganzzahlige Volumina a 1,..., a n > 0, Nutzenwerte c 1,..., c n > 0, ganzzahlige Volumenschranke b. Aufgabe: Packe die Objekte in einen Rucksack von Volumen

Mehr

Der Algorithmus von Bresenham

Der Algorithmus von Bresenham Der Algorithmus von Bresenham Das Bresenham-Verfahren beruht im wesentlichen auf zwei grundsätzliche Beobachtungen: - Es reicht ein Verfahren aus um Geraden mit einer Steigung im Bereich von null bis eins

Mehr

Unterprogramme, Pointer und die Übergabe von Arrays

Unterprogramme, Pointer und die Übergabe von Arrays Unterprogramme, Pointer und die Übergabe von Arrays Unterprogramme Wie schon im Abschnitt über Funktionen erwähnt, versteht man unter einem Unterprogramm im engeren Sinn eine Prozedur, welche die Werte

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

4 Lineare Algebra (Teil 2): Quadratische Matrizen

4 Lineare Algebra (Teil 2): Quadratische Matrizen 4 Lineare Algebra (Teil : Quadratische Matrizen Def.: Eine (n n-matrix, die also ebensoviele Zeilen wie Spalten hat, heißt quadratisch. Hat sie außerdem den Rang n, sind also ihre n Spalten linear unabhängig,

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

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. [email protected]. [email protected].

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Dynamische Programmierung Sebastian Hack [email protected] Klaas Boesche [email protected] Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung

Mehr

Projekt Systementwicklung

Projekt Systementwicklung Projekt Systementwicklung Effiziente Codierung: Laufzeitoptimierung Prof. Dr. Nikolaus Wulff Effiziente Codierung Der Wunsch effizienten Code zu schreiben entstammt mehreren Quellen: Zielplattformen mit

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

Mehr

Lineare Algebra, Teil 2 Abbildungen

Lineare Algebra, Teil 2 Abbildungen Lineare Abbildungen Vorlesung Lineare Algebra mit integrierten Übungen WS 12 13 Studiengang LBS Unterrichtsfach hmth Mathematiktik Lineare Algebra, Teil 2 Abbildungen Lineare Abbildungen Lineare Gleichungssysteme

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Übung Simon Wacker Karlsruher Institut für Technologie Wintersemester 2015/2016 GBI Grundbegriffe der Informatik Karlsruher Institut für Technologie 1 / 13 Programmiersprachen

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 22. VO 23..26 Literatur für diese VO Volker Heun: Skriptum zur Vorlesung

Mehr

Copyright, Page 1 of 5 Die Determinante

Copyright, Page 1 of 5 Die Determinante wwwmathematik-netzde Copyright, Page 1 of 5 Die Determinante Determinanten sind ein äußerst wichtiges Instrument zur Untersuchung von Matrizen und linearen Abbildungen Außerhalb der linearen Algebra ist

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt [email protected] Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE

Mehr

Lineare Abbildungen Definitionen von linearer Abbildung, linearer Transformation, affiner Abbildung. Parallentreue und Teilverhältnistreue

Lineare Abbildungen Definitionen von linearer Abbildung, linearer Transformation, affiner Abbildung. Parallentreue und Teilverhältnistreue Lineare Abbildungen Vorlesung Lineare Algebra mit integrierten Übungen WS 12 13 Studiengang LBS Unterrichtsfach Mathematik Lineare Algebra, Teil 2 Abbildungen Lineare Abbildungen Lineare Eigenwerte, Eigenvektoren

Mehr

Lineare Gleichungssysteme (Teschl/Teschl 11.1)

Lineare Gleichungssysteme (Teschl/Teschl 11.1) Lineare Gleichungssysteme (Teschl/Teschl.) Ein Lineares Gleichungssystem (LGS) besteht aus m Gleichungen mit n Unbekannten x,...,x n und hat die Form a x + a 2 x 2 +... + a n x n b a 2 x + a 22 x 2 +...

Mehr

Tag 9: Datenstrukturen

Tag 9: Datenstrukturen Tag 9: Datenstrukturen A) Datenstrukturen B) Cell Arrays C) Anwendungsbeispiel: Stimulation in einem psychophysikalischen Experiment A) Datenstrukturen Wenn man komplizierte Datenmengen verwalten möchte,

Mehr

Dieses Dokument enthält alle Teilaufgaben zur Java-Pflichtaufgabe für das Sommersemester Aufgabe 1 (Vier Gewinnt 1. Teil)

Dieses Dokument enthält alle Teilaufgaben zur Java-Pflichtaufgabe für das Sommersemester Aufgabe 1 (Vier Gewinnt 1. Teil) Vier Gewinnt Dieses Dokument enthält alle Teilaufgaben zur Java-Pflichtaufgabe für das Sommersemester 2008. Aufgabe 1 (Vier Gewinnt 1. Teil) Implementieren Sie eine Java-Klasse VierGewinnt1, mit einer

Mehr

3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen

3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen 3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen Sortierproblem Eingabe: Folge von n natürlichen Zahlen a 1, a 2,, a n, die Folge

Mehr

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

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 und Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 25. April 2016 Die Dimensionsformel Definition 3.9 Sei f : V W eine lineare Abbildung zwischen zwei K-Vektorräumen. Der Kern

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

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern

Mehr

Lineare Algebra und Numerische Mathematik für D-BAUG

Lineare Algebra und Numerische Mathematik für D-BAUG P. Grohs T. Welti F. Weber Herbstsemester 5 Lineare Algebra und Numerische Mathematik für D-BAUG ETH Zürich D-MATH Beispiellösung für Serie Aufgabe. Skalarprodukt und Orthogonalität.a) Bezüglich des euklidischen

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

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Berechenbarkeit und Komplexität Prof. Dr. Nikolaus Wulff Berechenbarkeit Im Rahmen der Turingmaschine fiel zum ersten Mal der Begriff Berechenbarkeit. Ein Funktion f heißt

Mehr

Vorlesung Bioinformatik Protein Threading

Vorlesung Bioinformatik Protein Threading Vorlesung Bioinformatik Protein Threading Dr. Axel Mosig 18. Mai 2004 Vorhersage der Tertiärstruktur von Proteinen Ab Initio-Methoden (z.b. via Molecular Dynamics) sind rechenintensiv; nur in Einzelfällen

Mehr

1 Singulärwertzerlegung und Pseudoinverse

1 Singulärwertzerlegung und Pseudoinverse Singulärwertzerlegung und Pseudoinverse Singulärwertzerlegung A sei eine Matrix mit n Spalten und m Zeilen. Zunächst sei n m. Bilde B = A A. Dies ist eine n n-matrix. Berechne die Eigenwerte von B. Diese

Mehr

Informatik I EProg HS13

Informatik I EProg HS13 software evolution & architecture lab Informatik I EProg HS13 Übung 5 1 Aufgabe: Nassi-Shneiderman Diagramme 1.1 Lernziele 1. Ein in Pseudocode beschriebenes Verfahren in ein entsprechendes Nassi-Shneiderman-Diagramm

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Matrizen und Determinanten

Matrizen und Determinanten Matrizen und Determinanten 1 Matrizen und Determinanten 1 Einführung in den Matrizenbegriff Zur Beschreibung und Lösung vieler physikalischer Probleme ist die Vektorrechnung vonnöten Durch Verwendung von

Mehr

Matrix-Algorithmen Matrixmultiplikation Allgemeiner Matrizen

Matrix-Algorithmen Matrixmultiplikation Allgemeiner Matrizen Matrix-Algorithmen Matrixmultiplikation Allgemeiner Matrizen 15.04.2011 Inhaltsverzeichnis Grundlagen 1 Grundlagen Matrizen Vektoren 2 Skalarprodukt und Saxpy Matrix-Vektor-Multiplikation Gaxpy Matrix-Matrix-Multiplikation

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

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr