DE19513960A1 - Abbildung eines Graphen in einen Speicher - Google Patents
Abbildung eines Graphen in einen SpeicherInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/18—Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/12—Symbolic schematics
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database 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:
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 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:
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.
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)
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)
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)
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 |
-
1995
- 1995-04-18 US US08/750,887 patent/US5878407A/en not_active Expired - Lifetime
- 1995-04-18 WO PCT/EP1995/001450 patent/WO1996033470A1/de active Application Filing
- 1995-04-18 DE DE19513960A patent/DE19513960A1/de not_active Withdrawn
Cited By (2)
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 |