Gerichtete Graphen mit SQL lösen – Teil 2


Das Problem besteht nun darin, diese Tabellen mit Zuständen und Übergängen ausgehend von der Menge der Token zu erstellen. Wie bei den bereits besprochenen Problemen mit gerichteten Graphen beginnt man auch hier mit einem Ausgangsknoten (in diesem Fall dem Ausgangszustand) und versucht, alle Verbindungen zwischen den einzelnen Zuständen zu finden. Jede Verbindung ist eine Menge der bislang erkannten Zeichen, zum Beispiel:

Zustand 0: Ausgangszustand, Leerstring
Zustand 1: Zustand 'A'
Zustand 2: Zustand 'AA'
Zustand 3: Zustand 'AB'
Zustand 4: Zustand 'ABC'

Man kann die Tabelle mit den Übergängen ausfüllen, indem man den jeweiligen Buchstaben (oder, in einem realistischeren Programm, den regulären Ausdruck) mit dem aktuellen Zustand sowie mit dem Zielzustand verknüpft. Der folgende Code füllt die Tabelle aus und optimiert diese:

Der erste Ausdruck fügt den Ausgangszustand ein. Um die Token dann in unterschiedliche Längen aufzuspalten, können alle Zustände durchnummeriert werden. Im nächsten Schritt wird die Tabelle mit den Übergängen mit denjenigen Zeichen gefüllt, die erforderlich sind, um von einem Zustand zum nächsten zu gelangen. Und schließlich wird die Token-ID an den Zielzustand angehängt, um anzuzeigen, dass dieser Zustand ein vollständiges Token repräsentiert. Wenn man zum Beispiel drei Token hinzufügt (1 = AAA, 2 = ABC, 3 = ASC) und dann den obigen Code ausführt, ergibt sich ein Datensatz wie in Tabelle A.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Internet-Tempo in Deutschland: Viel Luft nach oben

Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.

16 Stunden ago

Erste Entwickler-Preview von Android 16 verfügbar

Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…

16 Stunden ago

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

1 Tag ago

Digitale Produkte „cyberfit“ machen

Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.

1 Tag ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…

2 Tagen ago

Apple schließt Zero-Day-Lücken in iOS, iPadOS und macOS

Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…

2 Tagen ago