Hausarbeiten logo
Shop
Shop
Tutorials
De En
Shop
Tutorials
  • How to find your topic
  • How to research effectively
  • How to structure an academic paper
  • How to cite correctly
  • How to format in Word
Trends
FAQ
Zur Shop-Startseite › Informatik - Allgemeines

Der Knuth-Morris-Pratt Algorithmus von 1977

Titel: Der Knuth-Morris-Pratt Algorithmus von 1977

Seminararbeit , 2019 , 17 Seiten , Note: 1.3

Autor:in: Johannes Dieker (Autor:in)

Informatik - Allgemeines

Leseprobe & Details   Blick ins Buch
Zusammenfassung Leseprobe Details

Eine kurze Ausarbeitung zum Knuth-Morris-Pratt Algorithmus von 1977. In dieser Seminararbeit wird die anschaulichere, weniger theoretische Herangehensweise von Morris erläutert. Dazu wird im ersten Schritt der naive Suchalgorithmus vorgestellt und darauf aufbauend werden dann die Verbesserungen durch den KMP-Algorithmus nachvollzogen.

Für verschiedene Anwendungen ergibt sich die Aufgabenstellung, in einem Text ein bestimmtes Suchmuster (engl. Pattern) zu finden. Dabei kann der Text sehr groß sein. Deshalb ist es wichtig, dass der verwendete Algorithmus effizient ist und auch für große Datensätze eine kurze Laufzeit aufweist. Der Knuth-Morris-Pratt Algorithmus ist ein Ansatz, diese Aufgabe zu erfüllen.

Leseprobe


Inhaltsverzeichnis

1. Einleitung

2. Grundlagen/Begrifflichkeiten

3. Naiver Suchalgorithmus

3.1. Definition

3.2. Stringmatching am Beispiel

3.3. Laufzeitanalyse

3.3.1.Worst case

3.3.2.Best case

3.3.3.Average case

4. KMP-Algorithmus

4.1. Grundidee

4.2. Präfix-Suffix Array

4.3. Stringmatching am Beispiel

4.4. Laufzeitanalyse

5. Laufzeitvergleich

6. Anwendung

7. Zusammenfassung

Zielsetzung und thematische Schwerpunkte

Die Arbeit verfolgt das Ziel, den Knuth-Morris-Pratt-Algorithmus als effiziente Lösung für das Pattern-Matching-Problem vorzustellen. Dabei wird er insbesondere als Weiterentwicklung des naiven Suchalgorithmus hergeleitet und seine mathematische Laufzeitverbesserung durch die Verwendung einer PartialMatchTable verdeutlicht.

  • Grundlagen des Pattern-Matchings in der Informatik
  • Analyse und Laufzeitverhalten des naiven Suchalgorithmus
  • Funktionsweise und Erstellung des Präfix-Suffix-Arrays
  • Effizienzsteigerung durch den Knuth-Morris-Pratt-Algorithmus
  • Praktische Anwendungsfelder, insbesondere in der DNA-Analyse

Auszug aus dem Buch

4.2 Präfix-Suffix Array

Der Schlüssel für die Laufzeitverbesserungen des Knuth-Morris-Pratt Algorithmus ist der PartialMatchTable (auch Präfix-Suffix-Array genannt). Um zu erklären, wie dieser aufgebaut wird, schauen wir uns das Beispiel abab an. Für die korrekten Präfixe kommen alle Zeichen des Strings in Frage außer dem letzten. Also a, ab, ab, aba. Für die Suffixe passiert das gleiche von der anderen Seite. Die korrekten Suffixe lauten demnach bab, ab, ab, b. Hiermit werden die Werte des Arrays nach folgendem Leitsatz gebildet:

Der Wert des PartialMatchTables ist die Länge des längsten korrekten Präfixes im (Sub)Pattern, welches ein korrektes Suffix des (Sub)Patterns matcht.

An Stelle 1 des „PartialMatchTables“ ist der Wert immer 0, da ein einzelner Character kein Pattern sein kann (Tabelle 7).

Gehen wir nun zur Stelle 2, wird „ab“ betrachtet. Hier gibt es nur das Präfix a und das Suffix b. Da kein Match vorliegt, ist an Stelle 2 der Wert auch 0 (Tabelle 8).

Betrachten wir den String aba an Stelle 3 (Index 2), so sind nur die Zeichen von 1-3 von Interesse. aba besitzt die Präfixe a und ab, sowie die Suffixe ba und a. Da nur a und a ein Präfix und ein Suffix ist, hat Stelle 3 den Wert 1 (Tabelle 9).

An Stelle 4 haben wir das Pattern abab, es entstehen also die Präfixe a, ab, aba und die Suffixe bab, ab, b. Das Längste Präfix was auch ein Suffix ist, ist in diesem Fall ab und hat die Länge 2. Der Wert des PartialMatchTables an Stelle 4 ist demnach 2 (Tabelle 10).

Zusammenfassung der Kapitel

1. Einleitung: Einführung in die Problemstellung des Pattern-Matchings und kurze historische Herleitung der Algorithmen von Cook sowie Knuth, Morris und Pratt.

2. Grundlagen/Begrifflichkeiten: Definition der für die Arbeit zentralen Begriffe wie Text, Pattern und der verwendeten Variablen zur Indexierung.

3. Naiver Suchalgorithmus: Vorstellung des intuitiven Ansatzes mit anschließender Laufzeitanalyse für Worst-, Best- und Average-Case.

4. KMP-Algorithmus: Detaillierte Erläuterung der Grundidee, des Aufbaus der PartialMatchTable und der Funktionsweise des Algorithmus anhand von Beispielen.

5. Laufzeitvergleich: Gegenüberstellung der Effizienz zwischen dem naiven Ansatz und dem Knuth-Morris-Pratt-Algorithmus.

6. Anwendung: Diskussion der Eignung des Algorithmus, insbesondere für DNA-Analysen aufgrund kleiner Alphabete.

7. Zusammenfassung: Abschließende Betrachtung der algorithmischen Intelligenz des Verfahrens und dessen Stärken bei spezifischen Datentypen.

Schlüsselwörter

Knuth-Morris-Pratt, KMP-Algorithmus, Pattern Matching, Naiver Suchalgorithmus, Stringmatching, Laufzeitanalyse, PartialMatchTable, Präfix-Suffix-Array, Informatik, Algorithmen, Datenstrukturen, DNA-Analyse, Effizienz, Worst Case, String-Suche.

Häufig gestellte Fragen

Worum geht es in dieser wissenschaftlichen Arbeit grundlegend?

Die Arbeit behandelt die Funktionsweise und Effizienz des Knuth-Morris-Pratt-Algorithmus für das Pattern-Matching in Strings.

Welche Themenfelder stehen dabei im Vordergrund?

Zentrale Themen sind die algorithmische String-Suche, Laufzeitoptimierung, die Struktur von Präfixen und Suffixen sowie deren Anwendung in der Informatik.

Was ist die primäre Forschungsfrage oder das Ziel?

Das Ziel ist es, den KMP-Algorithmus als performante Alternative zum naiven Suchverfahren zu etablieren und die mathematischen Grundlagen seiner Laufzeitverbesserung aufzuzeigen.

Welche wissenschaftliche Methode kommt zur Anwendung?

Die Arbeit nutzt die deskriptive Analyse und den direkten Vergleich von Algorithmen anhand von Quellcode-Beispielen und Laufzeitabschätzungen in der O-Notation.

Was wird im Hauptteil der Arbeit behandelt?

Der Hauptteil gliedert sich in die Vorstellung des naiven Verfahrens, die theoretische Herleitung der KMP-Verbesserung mittels PartialMatchTable und die anschließende Verifizierung der Laufzeitvorteile.

Welche Schlüsselbegriffe charakterisieren diese Arbeit?

Die Arbeit wird maßgeblich durch Begriffe wie KMP-Algorithmus, Pattern Matching, Laufzeitkomplexität und Präfix-Suffix-Array definiert.

Warum ist der naive Suchalgorithmus für große Datenmengen ineffizient?

Da der naive Suchalgorithmus bei Mismatches den Vergleich oft an der falschen Stelle neu beginnt und bereits verglichene Zeichen mehrfach prüft, ergibt sich eine suboptimale Laufzeit.

Welche Rolle spielt die "PartialMatchTable" im KMP-Algorithmus?

Sie dient als Voranalyse-Tabelle, die Informationen über identische Präfixe und Suffixe liefert, um bei Nichtübereinstimmungen unnötige Vergleiche zu überspringen.

Warum eignet sich der KMP-Algorithmus besonders gut für die DNA-Forschung?

Da DNA-Sequenzen aus einem sehr kleinen Alphabet bestehen (A, G, C, T), ist die Trefferwahrscheinlichkeit für Präfix-Suffix-Übereinstimmungen sehr hoch, was die Effizienz des Algorithmus maximiert.

Ende der Leseprobe aus 17 Seiten  - nach oben

Details

Titel
Der Knuth-Morris-Pratt Algorithmus von 1977
Hochschule
Westfälische Hochschule Gelsenkirchen, Bocholt, Recklinghausen
Note
1.3
Autor
Johannes Dieker (Autor:in)
Erscheinungsjahr
2019
Seiten
17
Katalognummer
V1185621
ISBN (eBook)
9783346616913
ISBN (Buch)
9783346616920
Sprache
Deutsch
Schlagworte
knuth-morris-pratt algorithmus
Produktsicherheit
GRIN Publishing GmbH
Arbeit zitieren
Johannes Dieker (Autor:in), 2019, Der Knuth-Morris-Pratt Algorithmus von 1977, München, GRIN Verlag, https://www.hausarbeiten.de/document/1185621
Blick ins Buch
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
Leseprobe aus  17  Seiten
Hausarbeiten logo
  • Facebook
  • Instagram
  • TikTok
  • Shop
  • Tutorials
  • FAQ
  • Zahlung & Versand
  • Über uns
  • Contact
  • Datenschutz
  • AGB
  • Impressum