DE19513960A1 - Abbildung eines Graphen in einen Speicher - Google Patents

Abbildung eines Graphen in einen Speicher

Info

Publication number
DE19513960A1
DE19513960A1 DE19513960A DE19513960A DE19513960A1 DE 19513960 A1 DE19513960 A1 DE 19513960A1 DE 19513960 A DE19513960 A DE 19513960A DE 19513960 A DE19513960 A DE 19513960A DE 19513960 A1 DE19513960 A1 DE 19513960A1
Authority
DE
Germany
Prior art keywords
graph
vertex
vertices
search
indices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19513960A
Other languages
English (en)
Inventor
Enis Olgac
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intergraph Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to DE19513960A priority Critical patent/DE19513960A1/de
Priority to PCT/EP1995/001450 priority patent/WO1996033470A1/de
Publication of DE19513960A1 publication Critical patent/DE19513960A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/18Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/12Symbolic schematics
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

Die Erfindung betrifft ein Verfahren zur Abbildung eines Graphen in einen Speicher, ein Verfahren zur graphischen Darstellung eines Graphen sowie ein Computersystem zur Abbildung eines Graphen in einen Speicher.
Graphen dienen zur Darstellung von Beziehungen zwischen Objekten. Sie werden oft zur Modellierung oder Darstellung eines realen Prozesses, Ablaufs oder einer Struktur verwendet. Insbesondere für die Darstellung von Netzwerken, z. B. eines Transport- oder Kommunikationsnetzwerks, werden Graphen verwendet.
Es ist aus dem Stand der Technik bekannt, Graphen nicht nur zur Darstellung und Modellierung eines realen Systems, das aus verschiedenen, zumindest logisch voneinander getrennten Objekten besteht, zu benutzen, sondern den Graphen auch zu Analysezwecken zu verwenden. Grundlegende Beispiele hierfür finden sich in "Foundations of Computer Science, Computer Science Press, Alfred V. Aho, Jef frey D. Ullman" und in "Introduction to Algorithms, The MIT Press, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest".
Die praktische Anwendungen von Graphen ist jedoch problematisch, da es im Stand der Technik keine praktikable Methode gibt, einen Graphen so abzubilden, daß die Topographie des Graphen von einem Computer automatisch verarbeitet werden kann. Ebenso ist das Problem - insbesondere einen komplexen, räumlichen Graphen - auf der begrenzten ebenen Fläche eines Computerbildschirmes übersichtlich darzustellen, ungelöst.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zur Abbildung eines Graphen in einen Speicher sowie ein Computersystem zur Ausführung eines solchen Verfahrens zu schaffen.
Die der Erfindung zugrundeliegenden Aufgaben werden mit den Merkmalen der Patentansprüche 1 oder 9 bzw. 11 gelöst.
Das erfindungsgemäße Verfahren ermöglicht es, einen Graphen mittels eines Trippels von Indices darzustellen. Diese Indices können in dem Speicher eines Computersystems gespeichert werden, so daß der Graph mittels des Computers analysiert werden kann. Beispielsweise kann die Frage, ob eine Beziehung zwischen einem ersten Knoten - im weiteren Vertex - und einer zweiten Vertex besteht, durch eine einfache Vergleichsoperation der in dem Speicher befindlichen Indices beantwortet werden. Ebenso lassen sich die Vertices, die auf einem Pfad von einer ersten zu einer zweiten Vertex in dem Graphen liegen, durch ebensolche Vergleichsoperationen bestimmen. Auch die Frage nach einem kürzesten Pfad zwischen 2 Vertices läßt sich so mittels Vergleichsoperationen beantworten. Das erfindungsgemäße Verfahren hat weiter den Vorteil, daß die Anzahl der durchzuführenden Operationen zur Ermittlung der in dem Speicher abzuspeichernden Trippel, die den Graphen beschreiben, nur linear mit der Anzahl der Vertices und der Kanten "edges" des Graphen anwächst.
Anwendungsgebiete des erfindungsgemäßen Verfahrens sind insbesondere - neben den eingangs erwähnten Anwendungsgebieten - die Kontrollfluß-Analyse, die Datenfluß-Analyse, die Modellierung von Geschäftsprozessen, von Hard- und Softwarekonfigurationen und die Netzwerkmodellierung.
Besondere Vorteile bietet die Anwendung des erfindungsgemäßen Verfahrens für Computergraphik. Werden nämlich die durch die Anwendung des erfindungsgemäßen Verfahrens aufgefundenen Trippel als Koordinaten der Vertices in einem Koordinatensystem aufgefaßt, so ergibt sich daraus eine geordnete Darstellung des Graphen in mehreren hintereinander geschichteten planaren Teilgraphen.
Ein Ausführungsbeispiel der Erfindung ist in der Zeichnung dargestellt und wird im folgenden näher beschrieben.
Es zeigen
Fig. 1 einen Graphen G;
Fig. 2 die Ermittlung einer ersten Abbildung des Graphen G;
Fig. 3 die Ermittlung einer zweiten Abbildung des Graphen G;
Fig. 4 die Ermittlung einer dritten Abbildung des Graphen G;
Fig. 5 die aufgefundenen Trippel der Abbildung des Graphen G;
Fig. 6 einen weiteren Graphen G′ und die dazugehörigen Trippel von Indices;
Fig. 7 einen weiteren Graphen G′′ und die dazugehörigen Trippel von Indices.
Zur Tiefensuche in dem Graphen G soll bei dieser Ausführungsform der folgende Algorithmus zur Anwendung kommen:
Es werden zunächst die globalen Variablen des Algorithmus definiert:
  • - pre-clock; der Ausgangswert von pre-clock ist gleich 0,
  • - post-clock; der Ausgangswert von post-clock ist die Anzahl der Vertices des Graphen G, wenn die Tiefensuche in Vorwärtsrichtung statt findet, sonst ist der Ausgangswert gleich 0,
  • - ein Stack, der sich gegenwärtig in Verarbeitung befindlichen Vertices; der Ausgangsinhalt des Stacks sind alle Vertices, bei denen die Tiefensuche begonnen werden kann, die sogenannten Sources des Graphen G, wenn die Tiefensuche in Vorwärtsrichtung stattfindet, sonst ist der Ausgangsinhalt die sogenannten Sinks des Graphen G,
  • - ein Datenfeld zur Speicherung einer gegenwärtig in Verarbeitung befindlichen Vertex, im weiteren Current- Vertex genannt.
Für jede Vertex werden die folgenden lokalen Variablen definiert:
  • - eine Liste der Nachfolger der betreffenden Vertex, wobei als Nachfolger all diejenigen Vertices bezeichnet sind, die mit der betreffenden Vertex in einer unmittelbaren Beziehung stehen. In der Liste der Nachfolger - im weiteren Successor genannt - befindet sich ein Zeiger - im weiteren Pointer genannt. Vor Ausführung der Tiefensuche befindet sich der Zeiger vor dem ersten Element in der Successor- Liste,
  • - ein Datenfeld zur Speicherung der Variablen "Pre-Order"; der Wert von Pre-Order ist anfangs gleich 0,
  • - ein Feld zur Speicherung von "Post-Order"; der Wert von Post-Order ist anfangs gleich 0.
Der Algorithmus zur Tiefensuche beinhaltet die folgenden Schritte:
  • 1. wenn der Stack leer ist:
    • a) gehe zum Schritt 8
  • 2. wenn der Stack nicht leer ist:
    • a) wähle die Vertex (u) am Anfang des Stacks als die Current-Vertex
    • b) gehe zu Schritt 3
  • 3. wenn das Datenfeld der Pre-Order-Zahl der Current-Vertex (u) nicht gleich 0 ist:
    • a) gehe zum Schritt 5
  • 4. wenn das Datenfeld der Pre-Order-Zahl der Current-Vertex (u) gleich 0 ist:
    • a) inkrementiere die Pre-Clock um 1
    • b) kopiere den Inhalt der Pre-Clock in das Datenfeld der Pre-Order-Zahl der Vertex (u),
    • c) gehe zum Schritt 5
  • 5. wenn der Pointer der Successor-Liste der Current-Vertex (u) an dem Ende der Successor-Liste ist:
    • a) kopiere den Inhalt der Post-Clock in das Datenfeld der Post-Order-Zahl der Vertex (u)
    • b) dekrementiere die Post-Clock um 1
    • c) entferne die Vertex (u) von dem Stack
    • d) gehe zum Schritt 1
  • 6. wenn es eine Vertex (v) auf der rechten Seite des Pointers in der Successor-Liste der Current-Vertex (u) gibt und die Pre-Order-Zahl der Vertex (v) gleich 0 ist:
    • a) addiere die Vertex (v) zu dem Anfang des Stack
    • b) bewege den Pointer eine Position nach rechts
    • c) gehe zum Schritt 1
  • 7. wenn es eine Vertex (v) auf der rechten Seite des Pointers in der Successor-Liste der Current-Vertex (u) gibt und die Pre-Order-Zahl der Vertex (v) nicht gleich 0 ist:
    • a) bewege den Pointer eine Position nach rechts
    • b) gehe zum Schritt 5
  • 8. beende die Tiefensuche.
Nach Beendigung der Tiefensuche beinhalten die eingangs definierten Datenstrukturen die folgenden Ergebnisse:
die globalen Variablen:
  • - die Pre-Clock beinhaltet die Anzahl der Vertices in dem Graphen G,
  • - die Post-Clock ist gleich 0, wenn die Tiefensuche in Vorwärtsrichtung stattfindet, sonst gleich der Anzahl "n" der Vertices des Graphen G.
  • - der Stack ist leer
die lokalen Variablen jeder Vertex:
  • - der Pointer in der Successor-Liste ist an dem Ende der Liste,
  • - die Pre-Order-Zahl beinhaltet den Wert der Pre-Clock zu dem Zeitpunkt als die betreffende Vertex entdeckt wurde,
  • - die Post-Order-Zahl beinhaltet den Wert der Post-Clock zu dem Zeitpunkt als die betreffende Vertex von dem Stack entfernt wurde, oder mit anderen Worten, zu dem Zeitpunkt als die Verarbeitung der betreffenden Vertex beendet war.
Für die Ausführung der Breitensuche wird in diesem Ausführungsbeispiel der folgende Algorithmus verwendet:
Definition der verwendeten Datenstrukturen:
Globale Variable:
  • - "proc-clock"; der Wert von proc-clock ist anfangs gleich 0,
  • - eine Warteschlange "queue" derjenigen Vertices, die gerade verarbeitet werden; anfangs beinhaltet queue alle diejenigen Vertices, an denen die Breitensuche begonnen werden kann. Das sind die Senken - im weiteren Sinks - des Graphen G; im Falle einer Breitensuche in Vorwärtsrichtung sind dies die Sources des Graphen G.
  • - ein Datenfeld zur Speicherung der gegenwärtig verarbeiteten Vertex, also der Current-Vertex.
Lokale Variable für jede Vertex:
  • - eine Successor-Liste mit einem Pointer, der anfangs links von der ersten Vertex in der Successor-Liste steht,
  • - ein Datenfeld zur Speicherung der Verarbeitungsordnung - im weiteren "Processing-Order"; anfangs ist der Wert von Processing-Order gleich 0,
  • - ein Datenfeld zur Speicherung des Verarbeitungszustandes - im weiteren "Processing-State"; anfangs hat Processing- State einen ersten logischen Wert - im weiteren "White" -,
zur Breitensuche werden folgende Schritte ausgeführt:
  • 1. ändere den Processing-State aller Vertices in der Queue zu einem zweiten logischen Wert - im weiteren "Black".
  • 2. wenn die Queue leer ist:
    • a) gehe zum Schritt 7
  • 3. wenn die Queue nicht leer ist:
    • a) wähle diejenige Vertex (u) an dem Anfang der Queue als die Current-Vertex
    • b) inkrementiere die Proc-Clock um 1
    • c) kopiere den Inhalt der Proc-Clock in das Datenfeld der variablen Processing-Order der Vertex (u)
    • d) gehe zum Schritt 4
  • 4. wenn der Pointer in der Successor-Liste der Current-Vertex (u) an dem Ende der Successor-Liste ist:
    • a) entferne die Vertex (u) von der Queue
    • b) gehe zum Schritt 2
  • 5. wenn es eine Vertex (v) rechts von dem Zeiger in der Successor-Liste der Current-Vertex (u) gibt und der Processing-State der Vertex (v) White ist:
    • a) addiere die Vertex (v) zu dem Ende der Queue
    • b) verändere den Processing-State der Vertex (v) zu Black
    • c) bewege den Pointer eine Position nach rechts
    • d) gehe zum Schritt 4
  • 6. wenn es eine Vertex (v) rechts von dem Pointer in der Successor-Liste der Current-Vertex (u) gibt und der Processing-State der Vertex (v) Black ist:
    • a) bewege den Pointer eine Position nach rechts
    • b) gehe zum Schritt 4
  • 7. beende die Breitensuche.
Nach der Beendigung der Breitensuche beinhalten die eingangs definierten Datenstrukturen die folgenden Ergebnisse:
die globalen Variablen:
  • - die Proc-Clock beinhaltet die Anzahl der Vertices in dem Graphen G
  • - die Queue ist leer
die lokalen Variable jeder Vertex:
  • - der Pointer der Successor-Liste ist an dem Ende der Successor-Liste
  • - die Processing-Order beinhaltet den Wert, den die Proc- Clock zu dem Zeitpunkt hatte, als diejenige Vertex zu der die Processing-Order gehört zur Verarbeitung ausgewählt wurde
  • - der logische Zustand von Processing-State ist Black.
Außer den oben beschriebenen Algorithmen für die Tiefen- bzw. Breitensuche sind aus dem Stand der Technik eine Vielzahl äquivalenter Algorithmen bekannt, die sich ebenso zum Einsatz in einem erfindungsgemäßen Verfahren eignen.
Die Fig. 1 zeigt einen Graphen G, auf den eine Ausführungsform des erfindungsgemäßen Verfahrens angewendet werden soll. Der Graph G besteht aus den Vertices A, B, C, D, E, F, G, K, L, M, N, P, R, S und den dazugehörigen Kanten - im weiteren Edges - wie in Fig. 1 oben angegeben.
Der Graph G der Fig. 1 soll mittels des erfindungsgemäßen u Verfahrens durch Indices dargestellt werden, die in einem Speicher z. B. eines Computers gespeichert werden. Dazu wird der Graph G einer ersten Abbildung unterworfen, die sich aus insgesamt 5 Tiefensuchen und einer Breitensuche ergibt:
Tiefensuche Nummer 1: der Graph G wird einer Tiefensuche in Vorwärtsrichtung unterworfen, wobei die Nachfolger der Vertices - im weiteren "Successors" - in jeder beliebigen Ordnung - im Beispiel in alphabetischer Ordnung - aneinander gereiht werden können. Das Ergebnis der 1. Tiefensuche ist eine topologische Ordnung des Graphen G. Die Fig. 2a zeigt die Ausgangswerte der verwendeten Datenstrukturen. Der Ausgangswert von Pre-Clock ist gleich 0, der Ausgangswert von Post-Clock ist gleich 15; es gibt zunächst keine gegenwärtig verarbeitete Vertex "Current-Vertex"; der Stack beinhaltet lediglich die Source A des Graphen G. Die erste Spalte der Fig. 2a zeigt die Vertices des Graphen G, die zweite Spalte, die zu der jeweiligen Vertex gehörigen Nachfolger in dem Graphen G "Successors", die dritte Spalte, die Pre-Order- Zahl jeder Vertex und die vierte Spalte, die Post-Order-Zahl jeder Vertex. Fig. 2b zeigt die einzelnen bei der Tiefensuche Nr. 1 durchlaufenden Schritte des hier verwendeten Algorithmus zur Tiefensuche. Fig. 2b zeigt nur diejenigen Schritte des Algorithmus, die tatsächlich ausgeführt werden und die entsprechenden Daten, die dadurch verändert werden. Die Nummerierung der Schritte der Fig. 2b entspricht dabei der Nummerierung in dem oben beschriebenen Algorithmus, wie auch sonst im weiteren eine einheitliche Nummerierung eingehalten wird.
Fig. 2c zeigt das Ergebnis der Tiefensuche Nr. 1. Die Pointer in der Successor-Liste sind - wie auch in der Fig. 2a - durch einen " + " symbolisiert. Die Pointer aller Vertices stehen nach Ausführung der Tiefensuche Nr. 1 am äußerst rechten Rand der Successor-Liste.
Fig. 2d zeigt die Datenstrukturen, die für die nachfolgende Breitensuche in dem Graphen G in Vorwärtsrichtung verwendet werden. Die Proc-Clock ist gleich 0, eine Current-Vertex ist noch nicht definiert, da die Verarbeitung noch nicht begonnen hat; die Queue beinhaltet die Source A des Graphen G. In der ersten Spalte der Fig. 2d befindet sich die Liste der Vertices, in der zweiten Spalte die Liste der Nachfolger "Successors" jeder Vertex, in der dritten Spalte die Processing-Order, in der vierten Spalte der logische Processing-State "State", der anfangs "White" ist.
Die Durchführung der Breitensuche basiert auf dem Ergebnis der Tiefensuche Nr. 1, da die Successor-Listen entsprechend der in der Tiefensuche Nr. 1 aufgefundenen Post-Order sortiert sind. Das bedeutet, daß die Successor-Liste jeder Vertex entsprechend der in der Tiefensuche Nr. 1 aufgefundenen Post-Order sortiert ist und zwar in absteigender Reihenfolge. Derjenige Vertex in einer Successor-Liste, der nach Ausführung der ersten Tiefensuche die größte Post-Order-Zahl hat, kommt dementsprechend an den Anfang der Successor-Liste. Fig. 2e zeigt die Durchführung der Breitensuche nach dem oben beschriebenen Algorithmus, wobei wiederum die Nummerierung der einzelnen Schritte der Fig. 2e den Schritten in dem beschriebenen Breitensuche - Algorithmus entspricht.
Fig. 2f zeigt die Datenstruktur der Fig. 2d nach Beendigung der Breitensuche.
Nachfolgend wird basierend auf dem Ergebnis der Breitensuche eine weitere Tiefensuche in dem Graphen G durchgeführt. Die Tiefensuche Nr. 2 wird dabei in entgegengesetzter Richtung, das heißt in Rückwärtsrichtung durchgeführt. Das bedingt im Vergleich zu der Tiefensuche Nr. 1, daß die Successor-Listen durch entsprechende Listen von Vorgängers für jede Vertex ausgetauscht werden. Die zweite Spalte der Fig. 2g zeigt dementsprechend die Vorgänger jeder Vertex in dem Graphen G - im weiteren "Predecessors" genannt. Zum Beispiel hat die Vertex F die Vorgänger "Predecessors" B, G, N, wie auch aus der Fig. 1 ersichtlich. Die Predecessor-Liste der Fig. 2g ist basierend auf dem Ergebnis der Breitensuche sortiert. Jede Predecessor Liste ist nach der ansteigenden Prossing-Order der Fig. 2f sortiert, das heißt, diejenige Vertex in einer Predecessor-Liste mit der kleinsten Processing-Order steht am Anfang der Predecessor-Liste, worauf die weiteren Vertices der Liste in aufsteigender Reihenfolge folgen.
Fig. 2h zeigt die Ausführung der Tiefensuche in Rückwärtsrichtung in dem Graphen G, wobei wiederum die Nummerierung der Schritte in der Fig. 2h den Schritten in dem zuvor beschriebenen Tiefensuchen Algorithmus entsprechen. Der Unterschied zum zuvor beschriebenen Tiefensuchen Algorithmus ist nur der, daß - entsprechend der Änderung der Richtung bei der zweiten Tiefensuche - die Nachfolger "Successors" durch die Vorgänger "Predecessors" einer Vertex ersetzt worden sind.
Fig. 21 zeigt die Datenstruktur der Fig. 2g nach Beendigung der zweiten Tiefensuche.
Basierend auf dem Ergebnis der zweiten Tiefensuche wird danach eine dritte Tiefensuche in Vorwärtsrichtung durchgeführt, wobei die Nachfolger "Successors" in den Successor-Listen jeder Vertex in absteigender Pre-Order Reihenfolge sortiert sind, wobei die in der zweiten Tiefensuche aufgefundene Pre-Order zugrundegelegt wird (vgl. Spalte 3 der Fig. 2i). Fig. 2k zeigt die Datenstruktur der Fig. 2j nach Durchführung der dritten Tiefensuche in Vorwärtsrichtung. Basierend auf dem Ergebnis der dritten Tiefensuche wird danach eine vierte Tiefensuche in Rückwärtsrichtung durchgeführt, wobei die Vorgänger "Predecessors" der Vertices in abfallender Post-Order Reihenfolge vor der Durchführung der Tiefensuche sortiert werden (Fig. 21). Es werden wiederum die in der vorhergehenden Tiefensuche aufgefundenen Post-Order-Zahlen für die Sortierung zugrundegelegt (vgl. Spalte 4 der Fig. 2k). Das Ergebnis der vierten Tiefensuche zeigt die Fig. 2m.
Basierend auf der vierten Tiefensuche in Rückwärtsrichtung wird danach eine fünfte Tiefensuche in Vorwärtsrichtung durchgeführt. Vor Durchführung der fünften Tiefensuche in Vorwärtsrichtung werden wiederum die Successor-Listen der Vertices in aufsteigender Post-Order-Reihenfolge sortiert (Fig. 2n), wobei die bei der vierten Tiefensuche ermittelten Post-Order-Zahlen zugrundegelegt werden (vgl. Spalte 4 der Fig. 2m). Das Ergebnis der fünften Tiefensuche in Vorwärtsrichtung zeigt die Fig. 2o. Die in der fünften Tiefensuche ermittelten Post-Order-Zahlen (vgl. die 4. Spalte der Fig. 20) sind die Abbildung des Graphen G. Diese Abbildung wird im weiteren Base-Index "BsIndex" bezeichnet werden. Die Vertex A hat beispielsweise durch die erste Abbildung des Graphen G den Index 1 erhalten, die Vertex B den Index 4, die Vertex C den Index 2, . . . entsprechend der Spalte 4 "BsIndex" der Fig. 20.
Basierend auf dem aufgefundenen BsIndex können durch je eine weitere Tiefensuche zwei weitere Abbildungen des Graphen G aufgefunden werden.
Zur Auffindung einer zweiten Abbildung - im weiteren Forward- Index "FwdIndex" - wird dazu der Graph G einer weiteren Tiefensuche in Vorwärtsrichtung unterworden. Die Nachfolger "Successors" in der Successor-Liste jeder Vertex werden dabei entsprechend dem BsIndex vor der Durchführung der 6. Tiefensuche sortiert und zwar in ansteigender Reihenfolge. Der Nachfolger "Successor" in einer Successor-Liste mit dem kleinsten BsIndex kommt deshalb an den Anfang der Successor-Liste. Das ergibt die in der Fig. 3a gezeigten Datenstruktur. Basierend auf dieser Datenstruktur wird die 6. Tiefensuche in Vorwärtsrichtung nach dem oben erläuterten Algorithmus durchgeführt. Das Ergebnis ist die Datenstruktur der Fig. 3b. Die Post-Order-Zahlen der Vertices stellen den gesuchten Forward-Index "FwdIndex" dar. Beispielsweise ist der FwdIndex der Vertex A gleich 1, der FwdIndex von B gleich 9 . . . (entsprechend der Spalte 4 der Fig. 3b).
Mittels einer 7. Tiefensuche in Rückwärtsrichtung wird eine dritte Abbildung des Graphen G bestimmt und zwar der sogenannte Backward-Index "BwdIndex". Dazu werden zunächst die Vorgänger "Predecessors" in der Predecessor-Liste jeder Vertex nach ihrem jeweiligen Base-Index "BsIndex" (vgl. Spalte 4 der Fig. 20) in absteigender Reihenfolge sortiert. Diejenige Vertex innerhalb einer Predecessor-Liste, die den größten Base-Index aufweist, steht deshalb am Anfang der Liste. Aus dieser Sortierung der Vorgänger "Predecessors" ergibt sich die Sortierung der Spalte 2 in Fig. 4a. Das Ergebnis der Durchführung der 7. Tiefensuche in Rückwärtsrichtung nach dem oben erläuterten Algorithmus ergibt das in Fig. 4b gezeigte Ergebnis. Die Post-Order-Zahl jeder Vertex gibt deren Backward-Index "BwdIndex" an (vgl. Spalte 4 der Fig. 4b).
Die Ergebnisse der oben beschriebenen 3 Abbildungen des Graphen G sind in der Fig. 5 zusammengefaßt. Die erste Spalte der Fig. 5 gibt den Base-Index "BsIndex", die dritte Spalte den Forward- Index "FwdIndex" und die vierte Spalte den Backward-Index "BwdIndex" der Vertices des Graphen G an. Die Vertices des Graphen G sind in der Spalte 2 der Fig. 5 aufgelistet. Daraus ergibt sich für jede der aufgelisteten Vertices ein Indice- Trippel aus Base-Index, Forward-Index und Backward-Index. Beispielsweise ist der Vertex A das Trippel (1, 1, 1), der Vertex E das Trippel (7, 13, 13) zugeordnet.
Aus der Fig. 5 ergibt sich, daß für den Graphen G der Fig. 1 Forward- und Backward-Index für jede Vertex gleich sind. Daraus folgt eindeutig, daß es sich bei dem Graphen G um einen planaren Graphen handelt. Die Fig. 6b zeigt einen weiteren nicht redundanten planaren Graphen G′. Der Graph G′ ist in dem Sinne nicht redundant, daß keine edges in ihm enthalten sind, die "Abkürzungen" darstellen. Eine "Abkürzung" in diesem Sinne wäre eine edge zwischen der Vertex 11 und der Vertex 5. Eine solche edge ist jedoch redundant, da die Information, daß eine Beziehung zwischen der Vertex 11 und der Vertex 5 vorliegt, auch ohne diese edge in dem Graphen G′ beinhaltet ist. Diese Information ist durch die mittelbare Beziehung dieser Vertices über die Vertex 1 im Graphen G′ beinhaltet. Wäre diese redundante edge in dem Graphen G′ vorhanden, würde sie durch eine erfindungsgemäße Abbildung eliminiert werden.
Die Fig. 6a zeigt die Ergebnisse der Abbildungen entsprechend der Fig. 5. Da wiederum Forward- und Backward-Index des Graphen G′ der Fig. 6b gleich sind, folgt, daß auch der Graph G′ planar ist.
Die Fig. 7b zeigt einen Graphen G′′; Fig. 7a das dazugehörige Ergebnis der Abbildungen entsprechend der Fig. 5. In diesem Fall sind Forward- und Backward-Index verschieden. Daraus folgt eindeutig, daß es sich bei dem Graphen G′′ der Fig. 7b um einen nicht-planaren Graphen handelt. Das bedeutet, daß sich der Graph G′′ in einer Ebene nicht ohne die Kreuzung zweier seiner Kanten darstellen läßt.
Dieses Verfahren zur Abbildung eines Graphen G in einen Speicher insbesondere in den Speicher eines Computersystem - erfordert also lediglich, daß die Vertices, die Kanten "Edges", die Quellen "Sources" und die Senken "Sinks" (vgl. Fig. 1 oben) in den Computer eingegeben werden. Das Verfahren zur Abbildung des Graphen G wird dann nach den oben erläuterten Algorithmen mittels elektronischer Datenverarbeitung durchgeführt, so daß danach für jede Vertex des Graphen in dem Speicher des Computersystems, ein Zahlen-Trippel abgespeichert ist. Die Gesamtheit der so aufgefunden Zahlen-Trippel beinhaltet die gesamte topologische Information, die in einem Graphen G enthalten ist. Mit Hilfe der aufgefundenen Abbildung eines Graphen G, das heißt mit Hilfe der für jede seiner Vertices aufgefundenen Zahlen-Trippel, lassen sich beispielsweise Unmittelbar folgende Fragen beantworten:
  • 1. Es handelt sich um einen linearen Graphen, wenn BsIndex = FwdIndex = BwdIndex ist.
  • 2. Es handelt sich um einen planaren Graphen, wenn BsIndex ungleich FwdIndex = BwdIndex ist.
  • 3. Es handelt sich um einen nicht-planaren Graphen, wenn alle 3 Indices für eine Vertex des Graphen ungleich sind.
  • 4. Es gibt eine Beziehung zwischen einer beliebigen ersten Vertex A und einer beliebigen zweiten Vertex B des Graphen G, genau dann, wenn
    • a) der BsIndex der Vertex A < BsIndex der Vertex B,
    • b) der FwdIndex der Vertex A < FwdIndex der Vertex B, und
    • c) der BwdIndex der Vertex A < BwdIndex der Vertex B.
  • Wird die erste Tiefensuche nicht in Vorwärts- sondern in Rückwärtsrichtung durchgeführt, kehren sich die Größenverhältnisse entsprechend um, d. h. "<" wird dann zu "<".
  • 5. Für den Fall eines planaren Graphen sind die Bedingungen b) und c) gleich; für den Fall eines linearen Graphen sind alle 3 Bedingungen gleich, so daß lediglich zu prüfen bleibt, ob der BsIndex der Vertex A kleiner als der BsIndex der Vertex B ist. Die Beantwortung der Frage, ob eine Beziehung zwischen einer Vertex A und einer Vertex B in dem Graphen G besteht, erfordert nur eine geringe Rechenleistung für das Computersystem. Zur Beantwortung dieser Frage müssen ja lediglich die 3 mittels der Abbildung aufgefundenen Indices der Vertex A und der Vertex B jeweils miteinander verglichen werden. Ein weiterer Vorteil des erfindungsgemäßen Verfahrens ist, daß die aufgefundene Aussage, daß eine Beziehung zwischen Vertex A und Vertex B besteht, ohne eine Unsicherheit behaftet ist was nach dem Stand der Technik der Fall wäre.
  • 6. Durch die Aneinanderreihung von Beziehungen, symbolisiert durch die Kanten "Edges" des Graphen G, ergeben sich Sogenannte Pfade. Basierend auf der aufgefundenen Abbildung des Graphen G lassen sich alle Vertices bestimmen, die zu einem Pfad von einer beliebiegen Vertex A zu einer beliebigen Vertex B in einem Graphen G gehören. Dazu müssen alle Vertices bestimmt werden, die sowohl eine Beziehung zu der Vertex A als auch eine Beziehung zu der Vertex B haben.
  • 7. Mit Hilfe des erfindungsgemäßen Verfahrens läßt sich auch ein kürzester Pfad von einer zu einer Vertex werden:
    • a) für einen Pfad P von A nach B kommen nur diejenigen Vertices Vi in Frage, deren BsIndex größer als der BsIndex von A, aber kleiner als der BsIndex von B sind.
    • b) stelle für jede dieser Vertices Vi in ansteigender Reihenfolge der Base-Indices folgendes fest:
      • aa) gibt es eine Beziehung von der Vertex Vi zu der Vertex B ? Wenn das nicht der Fall ist, kann die Vertex Vi nicht zu einem Pfad von A nach B gehören. Es wird dann die nächste Vertex Vi + 1 mit dem nächstgrößeren BsIndex geprüft.
      • bb) Falls die Bedingung aa) erfüllt ist: gibt es eine Beziehung von einer Vertex Vj, die zu einem Pfad Pj gehört, zu der gegenwärtig überprüften Vertex Vi ?. Solange noch keine solche Vertex Vj festgestellt wurde, ist dies die Vertex A. Wenn das der Fall ist, ergibt sich daraus, daß die gegenwärtig überprüfte Vertex Vi ebenfalls zu dem Pfad Pj dazugehört. Da die Vertex Vj, diejenige Vertex in dem Pfad Pj ist, die den größten BsIndex in dem Pfad aufweist, ist zugleich sichergestellt, daß die gegenwärtig überprüfte Vertex Vi unmittelbar auf die Vertex Vj in dem Pfad Pj folgt. Die gegenwärtig überprüfte Vertex Vi, die zu dem Pfad Pj gehört, wird dann in einer weiteren Rekursion zur Vertex Vj in der Ausführung des Schritts b) - insbesondere bb) - für diese Vertex.
        Wenn es keine Beziehung zwischen der Vertex Vj in dem Pfad Pj zu der Vertex Vi gibt, wobei Vj und Vi minimale Differenzen in ihrem BsIndex aufweisen, so muß überprüft werden, ob es andere Pfade Pj + 1 gibt, zu denen die gegenwärtig überprüfte Vertex Vi gehört. Dazu muß für die letzte bisher aufgefundene Vertex V in jeden der weiteren Pfade P, das heißt für die jeweilige Vertex V mit dem größten BsIndex, überprüft werden, ob es eine Beziehung zwischen dieser Vertex V und der gegenwärtig überprüften Vertex Vi gibt. Wenn das der Fall ist, folgt daraus, daß die Vertex Vi in dem betreffenden Pfad P unmittelbar auf die zuletzt aufgefundene Vertex V folgt.
    • c) Bestimmung der Länge aller aufgefundenen Pfade, ggf. unter Berücksichtigung numerischer Informationen der Beziehungen. Stellt beispielsweise der Graph G ein Computernetzwerk dar, so kann die zu der einzelnen Beziehung zwischen 2 Vertices gehörige numerische Information beispielsweise eine Aussage über die Leitungslänge treffen.
    • d) Ermittle aus den unter c) bestimmten Pfadlängen, den Pfad der kleinsten Länge Pmin.
Die durch die erfindungsgemäße Abbildung des Graphen G erzeugte Abbildung in dem Speicher eines Computersystems, kann vorteilhafterweise für die graphische Darstellung des Graphen G zum Beispiel auf einem Bildschirm des Computersystems benutzt werden. Werden die einzelnen Trippel von Indices als Koordinaten der jeweiligen Vertex in einem Koordinaten-System interpretiert, so werden die planaren Teilgraphen des Graphen G in einer Ebene dargestellt. Die daraus resultierenden verschiedenen Ebenen sind an bestimmten Vertices miteinander verknüpft. Diese Vertices können z. B. röhrenförmig dargestellt werden. Dadurch ist eine übersichtliche und speicherplatzsparende Darstellung gewährleistet.
Das erfindungsgemäße Verfahren ist auch nicht auf azyklische gerichtete Graphen beschränkt. Es ist auch auf ungerichtete Graphen anwendbar, wenn bei einem ungerichteten Graphen in an sich bekannter Weise eine Richtung fingiert wird.
Ein weiterer Vorteil des erfindungsgemäßen Verfahrens ergibt sich daraus, daß die aufgefundene Abbildung des Graphen G in dem Speicher keinerlei Redundanz aufweist. Dies kann allerdings - gerade bei der Bestimmung eines kürzesten Pfades auch als nachteilig empfunden werden. Bestünde beispielsweise in dem Graphen der Fig. 1 eine unmittelbare Beziehung zwischen den Vertices A und L, so würde diese Beziehung in den aufgefundenen Trippeln von Indices nicht mehr zum Ausdruck kommen. Falls die Information, daß es eine unmittelbare Beziehung zwischen den Vertices A und L gibt, von Bedeutung ist, und die in der Abbildung enthaltende Information, daß eine solche Beziehung über die Vertex C besteht, nicht ausreicht, kann wie folgt Abhilfe geschaffen werden:
Nach Durchführung einer ersten erfindungsgemäßen Abbildung des Graphen in den Speicher, werden diejenigen Kanten "Edges" identifiziert, die bei der Abbildung weggefallen sind. Dies sind die redundanten Kanten "Edges". In diejenigen Kanten "Edges", die durch die Abbildung zunächst weggefallen sind, werden fiktive Knoten eingefügt. Nach der Einfügung der fiktiven Knoten in den Graphen wird danach das erfindungsgemäße Verfahren zum zweiten mal durchgeführt, wobei dann auf die Redundanten Kanten "Edges" erhalten bleiben.
Das erfindungsgemäße Verfahren kann als Bibliotheks-Programm in einem Betriebssystem integriert sein. Bei Einfügung eines Speichermediums, etwa einer Diskette oder einer CD-Rom in den Leser eines Computersystems, wird dann ein Computersystem realisiert, das das erfindungsgemäße Verfahren ausführen kann.

Claims (13)

1. Verfahren zur Abbildung eines Graphen G in einen Speicher gekennzeichnet durch die folgenden Schritte:
  • a) Tiefensuche in dem Graphen G in einer ersten Richtung;
  • b) Breitensuche in dem Graphen G in der ersten Richtung;
  • c) vier weitere Tiefen-suchen in dem Graphen G, wobei die Richtungen der Tiefensuchen abwechselnd in einer zweiten und der ersten Richtung durchgeführt werden,
wobei die Durchführung der Breiten- bzw. Tiefensuchen in den Schritten b) und c) jeweils auf dem Ergebnis des jeweils vorhergehenden Suchvorgangs basiert.
2. Verfahren nach Anspruch 1 dadurch gekennzeichnet, daß vor Durchführung der Suchvorgänge in den Schritten 1. b) und 1. c) die Listen der Nachfolger jeder Vertex des Graphen G entsprechend dem Ergebnis des jeweils vorhergehenden Suchvorgangs sortiert werden.
3. Verfahren nach einem oder mehreren der Ansprüche 1 oder 2 gekennzeichnet durch folgende Schritte:
  • a) Tiefensuche in der ersten Richtung in dem Graphen G basierend auf der Abbildung (BsIndex) zur Erzeugung einer zweiten Abbildung (FwdIndex);
  • b) Tiefensuche in der zweiten Richtung in dem Graphen G basierend auf der Abbildung (BsIndex) zur Erzeugung einer dritten Abbildung (BwdIndex).
4. Verfahren nach Anspruch 3 dadurch gekennzeichnet, daß vor Durchführung der Suchvorgänge in den Schritten 3. a) und 3. b) die Listen der Nachfolger jeder Vertex des Graphen G entsprechend der ersten Abbildung (BsIndex) sortiert werden.
5. Verfahren zur Feststellung, ob in einem Graphen G eine Beziehung zwischen einer ersten Vertex A und einer zweiten Vertex B besteht, wobei der Graph G in einen Speicher durch eine erste Abbildung nach einem oder mehreren der vorhergehenden Ansprüche und durch eine zweite und dritte Abbildung nach einem oder mehreren der Ansprüche 3 oder 4 abgebildet ist, dadurch gekennzeichnet, daß jeweils die Indizes X (BsIndex) der ersten Abbildung, Y (FwdIndex) der zweiten Abbildung und Z (BwdIndex) der dritten Abbildung der Vertices A und B aus dem Speicher ausgelesen werden, und daß geprüft wird, ob die entsprechenden Indizes X, Y, Z der Vertices A und B jeweils in einem vorbestimmten Größenverhältnis zueinander stehen.
6. Verfahren zur Feststellung aller Vertices, die zu einem Pfad von einer Vertex A zu einer Vertex B in einem Graphen G gehören, wobei der Graph G in einen Speicher durch eine erste Abbildung nach einem oder mehreren der vorhergehenden Ansprüche und durch eine zweite und dritte Abbildung nach einem oder mehreren der Ansprüche 3 oder 4 abgebildet ist, dadurch gekennzeichnet, daß jeweils die Indizes X (BsIndex) der ersten Abbildung, Y (FwdIndex) der zweiten Abbildung und Z (BwdIndex) der dritten Abbildung der Vertices A und B aus dem Speicher ausgelesen werden, und daß alle Vertices des Graphen G, deren Indizes zwischen den Indizes der Vertices A und B liegen, festgestellt werden.
7. Verfahren zur Feststellung eines kürzesten Pfades Pmin von einer Vertex A zu einer Vertex B eines Graphen G dadurch gekennzeichnet, daß das Verfahren nach Anspruch 5 oder 6 rekursiv angewendet wird.
8. Verfahren nach einem oder mehreren der vorhergehenden Ansprüche dadurch gekennzeichnet, daß der Graph G eine Abkürzung zwischen zweier seiner Vertices enthält und in die der Abkürzung entsprechende Kante des Graphen G eine Vertex eingeführt wird.
9. Verfahren zur Abbildung eines Graphen G in einen Speicher, dadurch gekennzeichnet, daß für jede Vertex Vi des Graphen G ein Trippel von Indizes in dem Speicher abgelegt wird und das Trippel von Indizes einer Vertex Vj zu dem entsprechenden Trippel von Indizes einer Vertex Vk genau dann in einem vorbestimmten Größenverhältnis steht, wenn es eine Beziehung in dem Graphen G zwischen den Vertices Vj und Vk gibt.
10. Verfahren zur graphischen Darstellung eines Graphen G dadurch gekennzeichnet, daß die durch ein Verfahren nach einem oder mehreren der vorhergehenden Ansprüche aufgefundenen Abbildungen des Graphen G zur Bestimmung der Koordinaten der Vertices des Graphen G dienen.
11. Computersystem mit Mitteln zur Ausführung eines Verfahrens nach einem oder mehrerer der vorhergehenden Ansprüche.
12. Speichermedium für ein Computersystem, dadurch gekennzeichnet, daß auf dem Speichermedium ein Computer- Programm zur Ausführung eines Verfahrens nach einem oder mehrerer der Ansprüche 1 bis 10 gespeichert ist, so daß bei Einfügung des Speichermediums in das Computersystem, ein Computersystem nach Anspruch 11 realisiert ist.
DE19513960A 1995-04-18 1995-04-18 Abbildung eines Graphen in einen Speicher Withdrawn DE19513960A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE19513960A DE19513960A1 (de) 1995-04-18 1995-04-18 Abbildung eines Graphen in einen Speicher
PCT/EP1995/001450 WO1996033470A1 (de) 1995-04-18 1995-04-18 Abbildung eines graphen in einen speicher

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19513960A DE19513960A1 (de) 1995-04-18 1995-04-18 Abbildung eines Graphen in einen Speicher
PCT/EP1995/001450 WO1996033470A1 (de) 1995-04-18 1995-04-18 Abbildung eines graphen in einen speicher

Publications (1)

Publication Number Publication Date
DE19513960A1 true DE19513960A1 (de) 1996-10-24

Family

ID=8165992

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19513960A Withdrawn DE19513960A1 (de) 1995-04-18 1995-04-18 Abbildung eines Graphen in einen Speicher

Country Status (3)

Country Link
US (1) US5878407A (de)
DE (1) DE19513960A1 (de)
WO (1) WO1996033470A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636800B1 (en) 1997-10-27 2003-10-21 Siemens Aktiengesellschaft Method and device for computer assisted graph processing
EP2706489A1 (de) * 2012-09-06 2014-03-12 Günther Helbok Computergestütztes Verfahren zur automatischen Zuweisung von Arbeitsaufgaben in einem Arbeitsablauf-Verwaltungs-System

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665687B1 (en) 1998-06-26 2003-12-16 Alexander James Burke Composite user interface and search system for internet and multimedia applications
US7269585B1 (en) * 1998-06-26 2007-09-11 Alexander James Burke User interface and search system for local and remote internet and other applications
US7530050B2 (en) * 2000-03-14 2009-05-05 Fusionops Method and system for developing software using nodes
US8271541B2 (en) * 2004-03-31 2012-09-18 Fusionops Corporation Method and apparatus for developing composite applications
US7469256B1 (en) 2004-04-29 2008-12-23 Sap Ag Cached persistent data management through state tracking
US7590639B1 (en) * 2004-04-29 2009-09-15 Sap Ag System and method for ordering a database flush sequence at transaction commit
US7653651B1 (en) 2004-04-29 2010-01-26 Sap Ag System and method for transparent persistence management
US7296028B1 (en) 2004-04-30 2007-11-13 Sap Ag System and method for mapping object-oriented program code to a database layer
WO2006038498A1 (ja) * 2004-10-01 2006-04-13 Turbo Data Laboratories Inc. 配列の生成方法、及び、配列生成プログラム
JP2007066125A (ja) * 2005-09-01 2007-03-15 Fumihiro Okabe グラフ探索アルゴリズム及びそれを用いたグラフ探索装置
US9807849B2 (en) * 2008-09-10 2017-10-31 Enlighted, Inc. Automatically commissioning lighting controls using sensing parameters of the lighting controls
US8161048B2 (en) * 2009-04-24 2012-04-17 At&T Intellectual Property I, L.P. Database analysis using clusters
US8676818B2 (en) * 2010-05-03 2014-03-18 International Business Machines Corporation Dynamic storage and retrieval of process graphs representative of business processes and extraction of formal process models therefrom

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163016A (en) * 1990-03-06 1992-11-10 At&T Bell Laboratories Analytical development and verification of control-intensive systems
US5257363A (en) * 1990-04-09 1993-10-26 Meta Software Corporation Computer-aided generation of programs modelling complex systems using colored petri nets
US5530957A (en) * 1992-08-07 1996-06-25 At&T Corp. Storing trees in navigable form
US5553206A (en) * 1993-02-12 1996-09-03 International Business Machines Corporation Method and system for producing mesh representations of objects
US5649165A (en) * 1995-01-31 1997-07-15 Fujitsu Limited Topology-based computer-aided design system for digital circuits and method thereof
US5630051A (en) * 1995-03-06 1997-05-13 Motorola Inc. Method and apparatus for merging hierarchical test subsequence and finite state machine (FSM) model graphs
US5555270A (en) * 1995-03-13 1996-09-10 Motorola Inc. Method and apparatus for constructing unique input/output sequence (UIO) sets utilizing transition distinctness measurements

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636800B1 (en) 1997-10-27 2003-10-21 Siemens Aktiengesellschaft Method and device for computer assisted graph processing
EP2706489A1 (de) * 2012-09-06 2014-03-12 Günther Helbok Computergestütztes Verfahren zur automatischen Zuweisung von Arbeitsaufgaben in einem Arbeitsablauf-Verwaltungs-System

Also Published As

Publication number Publication date
US5878407A (en) 1999-03-02
WO1996033470A1 (de) 1996-10-24

Similar Documents

Publication Publication Date Title
DE69535098T2 (de) Verfahren und -vorrichtung zur Suche von Bildern in einer Datenbank
DE69521507T2 (de) System und verfahren zur auf einem modell basierender prüfung von lokalen entwurfsregeln
DE68926849T2 (de) Struktur und Verfahren zur Anordnung rekursiv abgeleiteter Daten in einer Datenbank
DE602004003361T2 (de) System und verfahren zur erzeugung von verfeinerungskategorien für eine gruppe von suchergebnissen
DE3855706T2 (de) Automatisierte Rechnung von Materialien
DE3889882T2 (de) Modellierungssystem für Festkörper.
DE19513960A1 (de) Abbildung eines Graphen in einen Speicher
DE112016005536T5 (de) Bestimmen von reihenfolgen einer ausführung eines neuronalen netzes
DE19612016A1 (de) Verfahren zur rechnergestützten Geometriemodellierung
DE2909153A1 (de) Einrichtung zur elektronischen verarbeitung von bild- und/oder zeichenmustern
DE10014492A1 (de) Prüfverfahren für Halbleiterwafer
DE69232452T2 (de) Expertensystem mit einem Wissenserfassungsunterstützungssystem
DE69223979T2 (de) Fuzzy-züruckgewinnungsgerät und verfahren dafür
DE3855494T2 (de) Abfragevorrichtung und -methode
DE60217748T2 (de) Verfahren und Gerät zur Anzeige eines Bildraumes
DE69224718T2 (de) Klassifizierungsverfahren für Rechnerarchitekturen
EP2854045B1 (de) Verfahren und System zum Bewerten von erhobenen Messwerten eines Systems
DE10032322A1 (de) System und Verfahren zur Auffindung der Kombination aus Operation/Werkzeug, welche den integrierten Ausfall in einer Halbleiterfertigungseinrichtung verursacht
DE69432544T2 (de) Verfahren und Gerät zum Wiederauffinden von dynamischen Bildern und zur Verwaltung von Bildern
EP2064672A2 (de) Verfahren und vorrichtung zur bildverarbeitung
DE10111831A1 (de) Verfahren zum automatischen Suchen und Sortieren von Fehlersignaturen von Wafern
DE68928208T2 (de) Regelprüfungeinrichtung und Fuzzy-Interferenzverfahren
DE69227230T2 (de) Befehlserkennungsgerät und -verfahren
EP2642749B1 (de) Vorrichtung und Verfahren zur Optimierung der Bestimmung von Aufnahmebereichen
WO2021239476A1 (de) Verfahren und systeme zum bereitstellen von synthetischen gelabelten trainingsdatensätzen und ihre anwendungen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: INTERGRAPH HARDWARE TECHNOLOGIES CO., LAS VEGAS, N

8128 New person/name/address of the agent

Representative=s name: HOFFMANN & EITLE, 81925 MUENCHEN

8139 Disposal/non-payment of the annual fee