-
1 Hintergrund der Erfindung
-
Ziel
der Erfindung ist es, die automatische Modellierung, Analyse (Verifikation)
und Echtzeitsimulation aufwendiger Konfigurationsprobleme auf Standardcomputern
(z. B. einem Personalcomputer) zu unterstützen. Mathematisch gesprochen,
können
solche Probleme auf endlichen Definitionsbereichen (engl., domains)
oder Intervallen in Form von Wertetabellen mit MN Kombinationen
ausgedrückt
werden, wobei jede dieser Kombinationen einen der beiden Booleschen
Werte wahr oder unwahr (legal oder nichtlegal) annehmen kann. Im
folgenden nehmen wir N Variablen an, jede mit M Elementen. Daher
sollen binäre
Variablen als ein Spezialfall mit M = 2 angenommen werden.
-
Offensichtlich
bewirken MN Kombinationen eine „kombinatorische
Explosion", und
es ist deshalb keine triviale Aufgabe, Probleme großer Konfigurationen
mit einer Vielzahl von Variablen zu lösen. Nichtsdestotrotz macht
es die vorliegende Erfindung möglich,
die scheinbar widersprüchlichen
Anforderungen der Vollständigkeit
(alle Kombinationen müssen
zugreifbar sein, um die logische Konsistenz sicher zu stell(en),
der Kompaktheit der Repräsentation
und der Geschwindigkeit der Simulation zu vereinigen.
-
Zum
Beispiel werden ineinander greifende Systeme für den Eisenbahnbetrieb durch
mehrere tausend Variablen, welche Signalwerte oder Schalterpositionen
repräsentieren,
gesteuert. Zur Veranschaulichung, selbst ein kleines ineinander
greifendes System mit 2000 binären
Variablen ist durch die enorme Anzahl von 22000 Zuständen oder
Kombinationen gekennzeichnet. Manche Kombinationen sind legal (erlaubt),
während andere
Kombinationen klar illegal sind, weil sie Unfälle verursachen würden. Um
diese Systeme mit konventioneller Technologie zu beherrschen, war
es nötig,
das System in Subsysteme von ausreichend geringer Größe herunterzubrechen,
um ihre Validation zu ermöglichen,
wobei nicht nur illegale, sondern ebenso eine große Anzahl
legaler Kombinationen ausgeschlossen werden können, was in einer weniger
effizienten Verwendung des Systems resultiert. Allgemein sind die
Systemvariablen nicht auf binäre
Werte eingeschränkt,
sondern weisen ebenso unterschiedliche Datentypen auf endlichen
Definitionsbereichen (z. B. mehrwertig logisch, Integer oder endliche
Gruppen von Intervallen) auf. Es ist höchst wünschenswert, in der Lage zu
sein, Konfigurationsprobleme in Systemen dieser Größe durch
computerisierte Hilfsmittel zu beherrschen, welche beinahe unmittelbar
vollständige
und korrekte Reaktionen bereitstellen könnten.
-
Ein
anderes Beispiel ist die Konfiguration von Produkten oder Dienstleistungen
(z. B., Autos, Computern oder Reisen) im Internet. Viele Produkte
sind in einer Vielzahl von Varianten verfügbar, welche vom Kunden aus
einer Vielzahl gegenseitig abhängiger
Optionen ausgewählt
werden müssen.
Daher sind nur einige Kombinationen dieser Optionen möglich oder
legal, während
andere Kombinationen aufgrund technischer oder kommerzieller Beschränkungen
illegal sind. Es ist deshalb wünschenswert,
E-Kommerz-Hilfsmittel zu gestalten, um dem Kunden zu ermöglichen,
interaktiv selbst aus sehr komplexen Produktmodellen nur die legalen Kombinationen
auszuwählen.
-
Während eine
Anzahl computerisierter Konfigurationshilfsmittel verfügbar geworden
sind, z. B. die in WO 90/09001 und
US
5,515,524 offenbarten Systeme, existiert immer noch ein
Bedarf an Systemen, welche die Anforderungen der Vollständigkeit
und Kompaktheit und Reaktionsgeschwindigkeit erfüllen. In diesem Zusammenhang
indiziert der Begriff „Vollständigkeit" die mathematische
Notwendigkeit, dass alle Kombinationen verifiziert worden sind,
um logische Konsistenz sicher zu stellen.
-
Die
vorliegende Erfindung stellt eine elegante Lösung für dieses Problem ohne das Problem
der „kombinatorischen
Explosion" bereit.
Wie durch die folgende Beschreibung verständlich wird, ist der springende Punkt
der Erfindung die Etablierung eines neuen Typs von Datenbank, im
folgenden als „Array-Datenbank" bezeichnet. Während die
Datenbank ein optimales Hilfsmittel für die oben indizierten und
im folgenden genauer beschriebenen komplexen Konfigurationsprobleme
ist, ist es selbstverständlich,
dass sie aufgrund ihrer einzigartigen innewohnenden Vorteile ebenso
für einen
breiten Bereich von Anwendungen nützlich ist, für den gegenwärtig konventionelle
Datenbanksysteme, gewöhnlich
relationale Datenbanken, verwendet werden.
-
Eine
wissenschaftliche/mathematische Diskussion von für diese Erfindung wichtigen
Prinzipien ist in Möller,
Gert L.: On the Technology of Array-based Logic. Ph.D. thesis, Elektroenergieingenieursabteilung, Technische
Universität
von Dänemark,
Januar 1995, gegeben.
-
2 Kurzoffenbarung der
Erfindung
-
In
einem Aspekt bezieht sich die Erfindung, wie in Anspruch 1 beansprucht,
auf ein Verfahren zum Erzeugen einer Datenbank, welche zum Konfigurieren
und/oder Optimieren eines Systems dient, das durch Variablen auf
finiten Definitionsbereichen und/oder Intervallen aufgespannt wird,
wobei das Verfahren umfasst: Erzeugen und Speichern eines adressierbaren
Konfigurationsraumes des gesamten Systems in einem Speicher oder
Aufzeichnungsmedium eines Computers in Form aller erlaubten kartesischen
Unterräume
von Zuständen
oder Kombinationen, welche der Verknüpfung im Wesentlichen aller
Systembeschränkungen
auf allen Variablen genügen,
wobei alle untereinander in Verbindung stehenden kartesischen Unterräume adressierbar sind
als erlaubte Kombinationen von Indizes von Verbindungsvariablen,
um eine Datenbank zu bilden, in welcher im Wesentlichen alle erlaubten
Lösungen
im System als verschachteltes Array gespeichert werden.
-
Im
folgenden wird die gemäß der Erfindung
erzeugte Datenbank als Array-Datenbank
bezeichnet, wobei dieser Ausdruck die Tatsache reflektiert, dass
alle legalen Lösungen
als eines oder mehrere verschachtelte Arrays in der Datenbank gespeichert
sind.
-
Definitionen
und Erklärungen,
welche für
manche der in der vorliegenden Beschreibung und den Ansprüchen verwendeten
Ausdrücke
relevant sind, lauten wie folgt:
„Konfigurieren" bezeichnet das Etablieren
im Wesentlichen aller legalen Kombinationen der Variablen, die im Wesentlichen
allen Beschränkungen auf
dem System genügen.
Bevorzugt werden alle legalen Kombinationen von Variablen, welche
allen Beschränkungen
auf dem System genügen,
etabliert, wobei in diesem bevorzugten Fall die legalen kartesischen
Unterräume
von Zuständen
oder Kombinationen der Verknüpfung
aller Systemeschränkungen
auf allen untereinander verbundenen Variablen genügen.
„Optimieren" bezeichnet das Anwenden
einer heuristischen Selektion von Kombinationen innerhalb eines
Satzes legaler Kombinationen.
Die Bezeichnung „Ein durch
Variablen auf endlichen Definitionsbereichen und/oder Intervallen
aufgespanntes System" indiziert,
dass jede Variable des Systems aus einem endlichen Satz von Elementen
oder Zustandswerten (z. B. logischen Wahrheitswerten) oder einem
endlichen Satz von Intervallen besteht.
Die Bezeichnung „Ein adressierbarer
Konfigurationsraum" indiziert,
dass im Wesentlichen alle legalen Kombinationen explizit repräsentiert
sind; im bevorzugten Fall sind alle legalen Kombinationen explizit
repräsentiert.
„Ein kartesischer
Unterraum" ist eine
kompakte Repräsentation
einer oder mehrerer legaler Kombinationen, wobei alle Kombinationen
ableitbar/berechnet sind als das kartesische Produkt der Elemente
oder Zustandswerte für
jede Variable.
„Systembeschränkungen" sind die Relationen
(Aussagefunktionen) auf für
das System definierten Variablen.
„Untereinander verbundene
Variablen" indiziert
Variablen, welche in mindestens zwei Relationen präsent sind.
„Eine Verbindungsvariable" bezeichnet eine
Variable, welche durch das Verfahren gemäß der Erfindung erzeugt und
zu einer gegebenen Relation mit einem einzigen Index, welche einen
kartesischen Unterraum identifiziert, hinzugefügt ist.
„Untereinander
verbundene legale kartesische Unterräume" bezeichnet legale kartesische Unterräume mit mindestens
einer gemeinsamen Variable.
-
Es
ist ein bedeutendes Merkmal der Erfindung, dass alle illegalen Zustände oder
Kombinationen, welche die Systembeschränkungen verletzen, aus den
Relationen ausgeschlossen sind. Ein solcher Ausschluss illegaler
Zustände
oder Kombinationen kann bevorzugt durchgeführt werden, während die
Datenbank durch das Verfahren gemäß der Erfindung erzeugt wird,
wobei die illegalen Zustände
oder Kombinationen, wann immer sie identifiziert werden, ausgeschlossen
werden. Ein widersprüchlicher
oder inkonsistenter Zustand liegt in einem System vor, falls nur
eine Relation des Systems keine legale Kombination oder keinen legalen
Zustand aufweist. Auf der anderen Seite wird ein System als konsistent
bezeichnet, falls mindestens ein Zustand oder eine Kombination legal
ist, z. b. allen Systembeschränkungen
genügt.
Falls bei der Erzeugung der Datenbank nur eine Relation eines Systems
gefunden wird, welche keine legale Kombination oder keinen legalen Zustand
aufweist, dann befindet sich das gesamte System in einem widersprüchlichen
oder inkonsistenten Zustand und muss ausgeschlossen werden.
-
Im
folgenden wird der Prozess des Zusammenführens von Relationen (das heißt, des
Kombinierens von Relationen, um zu einem komplexeren Untersystem
oder System zu gelangen) detaillierter besprochen. Es versteht sich,
dass auf jeder Ebene des Zusammenführungsprozesses Inkonsistenzen
oder Widersprüche identifiziert
werden und daher in einem Ausschluss des zusammengefügten Untersystems
oder Systems resultieren. Daher ist das System, wenn der Erzeugungsprozess
abgeschlossen ist, konsistent, da es durch alle Relationen, welche
mindestens einen legalen kartesischen Unterraum aufweisen, erklärt ist.
-
In
der vorliegenden Beschreibung und den vorliegenden Ansprüchen wird
die Bezeichnung „System" für ein gesamtes
System von Variablen oder alternativ für einen Teil eines gesamten
Systems von Variablen verwendet. In allen Fällen, welche für die vorliegende
Erfindung relevant sind, wird das in dieser Art verstandene System
vollständig
dadurch definiert, dass jede Kombination unter dem System entweder
legal oder illegal ist gemäß aller
Systembeschränkungen,
welche für
die Verwendung der Datenbank relevant sind, und bevorzugt gemäß unumschränkt aller
Systembeschränkungen.
Daher indiziert die Bezeichnung System, verwendet für ein gesamtes
System von Variablen, in Zusammenhang mit den Ansprüchen und
der Beschreibung, dass das gesamte System vollständig gemäß aller Systembeschränkungen,
welche relevant für
die Verwendung der Datenbank sind, und bevorzug gemäß unumschränkt aller
Systembeschränkungen
definiert ist. Wenn ein System von Variablen im obigen Sinne der
Bezeichnung nicht vollständig
definiert ist, dann ist nur der Teil des Systems, welcher tatsächlich vollständig definiert
ist, durch die Bezeichnung „System", wie sie in den
Ansprüchen
verwendet wird, abgedeckt. Die Bezeichnung „im Wesentlichen", wie sie in Anspruch
1 verwendet ist, indiziert, dass es möglich ist, ein System vorliegen
zu haben, welches nicht gemäß Systembeschränkungen,
die nicht relevant für
die Verwendung der Datenbank sind, definiert ist. Die Bezeichnung „im Wesentlichen" kann ebenso ein
System indizieren, in welchem der Prozess des Zusammenführens nicht
abgeschlossen ist und wo die Laufzeitumgebung angepasst werden muss,
um gewisse Tests auf Konsistenz durchzuführen. Während die letztere Variante
nicht als ideal betrachtet wird, kann sie nichtsdestotrotz für bestimmte
Anwendungen der Erfindung angewendet werden, wo das Echtzeittauglichkeit
der Laufzeitumgebung keine Voraussetzung ist.
-
Wie
oben angeführt
wurde, können
die Systembeschränkungen
durch Kombinieren einer oder mehrerer Relationen bestimmt werden,
wobei jede Relation die legalen kartesischen Unterräume von
Zuständen oder
Kombinationen auf einer gegebenen Untergruppe von Variablen repräsentiert.
Die Kombination der einen oder mehreren Relationen umfasst das Berechnen
der kartesischen Unterräume,
welche den kombinierten Beschränkungen
der einen oder mehreren Relationen genügen. Falls keine Relationen
gemeinsame Variable aufweisen, ist keine weitere Maßnahme zum
Kombinieren der Relationen notwendig.
-
Gemäß einem
wichtigen bevorzugten Merkmal der Erfindung werden alle Relationen mit
mindestens einer gemeinsamen Variable zusammengeführt. Die
Zusammenführung
umfasst das Kombinieren der Beschränkungen von zwei oder mehr
Relationen, welche durch das Aufweisen gemeinsamer Variablen verbunden
sind, zum Etablieren des/der kartesischen Unterraums/-räume, welche
den kombinierten Beschränkungen der
zwei oder mehreren Relationen genügen.
-
Die
Zusammenführung
der zwei oder mehr Relationen wird normalerweise durch das Kombinieren
der zwei oder mehr Relationen bis zu einer vordefinierten Grenze
durchgeführt.
Das Kombinieren umfasst die Operation des Ersetzens eines Satzes
von Relationen mit einer einzelnen Relation, welche den kombinierten
Beschränkungen
des Satzes genügt.
-
Die
Gruppe von Relationen ist nicht auf zwei Relationen beschränkt, sondern
kann allgemein jede endliche Anzahl von Relationen umfassen. In
einer bevorzugten Ausführungsform
der Erfindung wird der Fall, wo drei oder mehrere Relationen kombiniert
werden, typischerweise zerlegt in eine Anzahl paarweiser Kombinationen.
Diese paarweisen Kombinationen können
eine vorbestimmte Strategie umfassen, oder das Kombinieren kann
in einer zufälligen
Reihenfolge erfolgen.
-
Der
Kombinierungsprozess reduziert gewöhnlich die Anzahl von Relationen,
und die resultierende Anzahl von Relationen wird dann durch Verbinden
und Gruppieren in einen oder mehrere Cluster von Relation(en) zusammengeführt.
-
Ein
Cluster kann eine Relation oder eine Gruppe von untereinander verbundenen
Relationen umfassen. Diese Cluster sind im folgenden detaillierter
beschrieben.
-
Das
Verbinden der Relationen besteht aus dem Hinzufügen von Verbindungsvariablen
und dem Hinzufügen
einer oder mehrerer berechneter Relation(en), welche die Beschränkungen
auf der Verbindungsvariablen repräsentieren.
-
Das
Verbinden der Relationen kann innerhalb eines Clusters oder zwischen
Clustern erfolgen. Das Verbinden zwischen zwei Clustern kann durch
Etablieren einer Verbindungsrelation durchgeführt werden, welche zwei Verbindungsvariablen umfasst,
während
für ein
Verbinden innerhalb eines Clusters die Verbindungsrelation(en) alle
Verbindungsvariablen auf den Relationen in dem Cluster umfassen.
-
Falls
drei oder mehr durch gemeinsame Variablen untereinander verbundene
Relationen Schleifen oder geschlossene Pfade erzeugen, dann werden
sie in einen einzigen Cluster gruppiert, welcher die drei oder mehr
Relationen umfasst. Als Konsequenz sind die resultierenden Cluster
ohne Schleifen, z. B. in einer Baumstruktur, untereinander verbunden.
-
Die
Baumstruktur macht es möglich,
die Vollständigkeit
der Ableitung in der Laufzeitumgebung durch Zustandsübertragung
sicherzustellen, zum Beispiel, wenn eine Konfiguration oder Optimierung
durchgeführt wird.
-
Die
Bezeichnung „Vollständigkeit
der Ableitung" indiziert,
dass alle logischen Konsequenzen auf einer oder mehreren Variablen
abgeleitet werden müssen.
In wichtigen Ausführungsformen
der Erfindung bezieht sich die Vollständigkeit der Ableitung auf
alle logischen Konsequenzen auf allen Variablen, aber, wie oben
angeführt
ist, ist die Erfindung nicht darauf beschränkt.
-
Wenn
die Array-Datenbank zur Optimierung verwendet wird, sind eine oder
mehrere Zielfunktionen berücksichtigt.
Eine Zielfunktion einer gegebenen Untergruppe von Variablen, wobei
die Zielfunktion Eigenschaften der gegebenen Untergruppe von Variablen
ableitet, ist durch Ableiten der durch die auf jeder Verbindungsvariablen
mit der gegebenen Untergruppe von Variablen verbundenen Zielfunktion
auferlegten Beschränkungen
mit dem vollständigen
Konfigurationsraum verbunden.
-
Nachdem
die Array-Datenbank durch das Verfahren gemäß der Erfindung erzeugt worden
ist, können die
Zielfunktionen Informationen zwischen einer Gruppe von Variablen
und einer Gruppe von Zielfunktionswerten bereitstellen, z. B. Preis,
Gewicht, Farbe.
-
Falls
eine Gruppe von Zielfunktionswerten keine „natürliche" Ordnung, z. B. als Nummern, aufweist, kann
der Gruppe von Zielfunktionswerten eine beliebige Ordnung zugeordnet
werden.
-
Die
Eigenschaften der Zielfunktion können
bestimmt und die Beschränkungen
auf den Verbindungsvariablen auf jeder Kombination der gegebenen
Variablen abgeleitet werden. Das Abbilden kann ebenso eine allgemeine
Relation sein, welche eine oder mehrere Zielfunktionswerte für jede Kombination
der Variablen liefert.
-
In
einem anderen Aspekt bezieht sich die Erfindung auf ein Verfahren
zum Konfigurieren und/oder Optimieren eines durch Variablen auf
endlichen Definitionsbereichen aufgespannten Systems, wobei das
Verfahren folgende Schritte umfasst:
- – Bereitstellen
einer Datenbank, in welcher im Wesentlichen alle legalen Lösungen in
dem System als verschachtelte Arrays gespeichert sind.
- – Ableiten
eines der Eingabe-Anweisung und/oder -Anfrage entsprechenden Unterraumes
von Zuständen oder
Kombinationen, welcher aufgespannt wird durch eine oder mehrere
Variablen des durch das verschachtelte Array dargestellten Systems,
indem die Konsequenzen einer Anweisung und/oder Anfrage abgeleitet
werden, wobei die durch die Anweisung und/oder Anfrage definierten
Beschränkungen
auf die Datenbank angewendet werden.
-
„Ableiten" bezeichnet Ableiten
oder Bestimmen aller logischen Beeinflussungen oder Folgerungen
aus einem gegebenen Satz von Voraussetzungen, z. B. allen Systembeschränkungen.
-
„Abfrage" bezeichnet eine
Frage, für
welche die Array-Datenbank alle Antworten bereitstellen kann.
-
Eine
Frage kann sich auf die legale(n) Kombination(en) einer gegebenen
Gruppe von Variablen beziehen, welche den Systembeschränkungen
genügen
und möglicherweise
ebenso einer externe Aussage genügen.
-
Eine
externe Aussage kann eine Anzahl erklärter und/oder gemessener Zustände und/oder
Beschränkungen
aus der Umgebung sein.
-
Daher
wird eine Ableitung eines jeden Unterraums von Zuständen oder
Kombinationen auf einer gegebenen Untergruppe von Variable(n) entweder
ohne oder zusammengeführt
mit erklärten
und/oder gemessenen Zuständen
und/oder Beschränkungen
aus der Umgebung durchgeführt.
-
Die
Interaktion zwischen dem durch die Array-Datenbank repräsentierten
System und der Umgebung wird geeignet durch Mittel eines Zustandsvektors
(SV, engl. status vector) durchgeführt, welcher alle legalen Zustände oder
Werte jeder Variable repräsentiert.
-
Daher
kann ein Eingabezustandsvektor (SV1) die erklärten und/oder gemessenen Zustände aus
der Umgebung repräsentieren,
während
ein AusgabeZustandsvektor (SV2) abgeleitete Konsequenz(en) auf jeder Variable
des gesamten Systems repräsentieren
kann, wenn die Beschränkungen
von SV1 mit allen Systembeschränkungen
in der Array-Datenbank zusammengeführt worden sind.
-
Die
Ableitung kann durch Berücksichtigen
einer oder mehrerer Relation(en) und/oder einer oder mehrerer Zielfunktion(en)
gleichzeitig durch Zusammenführen
der gegebenen Untergruppe von Variablen in der Relation mit den
gegebenen Untergruppen von Zuständen
in dem Zustandsvektor und dann Ableiten der möglichen Zustände jeder
Variable durchgeführt
werden.
-
Die
Berücksichtigung
einer Relation kann durch Zusammenführen, z. B. Kombinieren, der
Relation und den Zuständen
der in der Relation präsenten
Variablen durchgeführt
werden. Das Resultat der Berücksichtigung
kann die Projektion (Vereinigung aller Elemente) auf jede Variable
der zusammengeführten
Relation sein, oder das Resultat kann die zusammengeführte Relation
sein. Die Zusammenführung
kann natürlich
eine Kombinierung sein, aber es sollte aus der hier geführten Diskussion
evident sein, dass die Berücksichtigung jeder
Relation nicht darauf beschränkt
ist.
-
In
einer bevorzugten Ausführungsform
der Erfindung werden zwei oder mehr Variablen parallel zusammengeführt; die
Projektion auf zwei oder mehr Variablen kann ähnlich parallel durchgeführt werden.
Die Erfindung ist nicht auf solche parallele Implementation beschränkt, und
die Erfindung kann ebenso gut sequentiell implementiert werden.
-
In
einer Ausführungsform
der Erfindung wird die Vollständigkeit
der Ableitung durch Berücksichtigen verbundener
Relationen erzielt, bis keine weiteren Konsequenzen auf jeglicher
Verbindungsvariable abgeleitet werden können. Diese Operation wird
als „Zustandsübertragung" bezeichnet. Eine
solche Zustandsübertragung
umfasst das parallele Berücksichtigen
zweier oder mehrerer Relationen. Die Erfindung ist natürlich nicht auf
solche parallele Implementation beschränkt, und die Erfindung kann
aufgrund der Clusterstruktur ebenso gut sequentiell implementiert
werden.
-
Ein
wichtiges Merkmal der Konfiguration und/oder Optimierung gemäß der Erfindung
ist, dass der widersprüchliche
Zustand identifiziert werden kann, wenn, wenn mindestens eine Relation
berücksichtigt
wird, keine legalen Zustände
oder Werte abgeleitet werden.
-
3 Figuren
-
Im
folgenden wird die Erfindung detaillierter gemäß folgenden Figuren beschrieben:
-
1 Modellieren
einer Array-Datenbank
-
2 Array-Datenbanksimulation
(Zustandsableitung)
-
3 Kompilierung
von Variablen und Relationen
-
4 Zusammenführung
-
5 Strategie
zum Kombinieren einer Liste von Relationen
-
6 Zusammenführungsgraph
der Relationen
-
7 Zusammenführungsgraph
von Clustern (Baum)
-
8 Gerichteter
Zusammenführungsgraph
von verbundenen Funktionen (Eingabe-Ausgabe-Datenfluss)
-
9 Zusammenführen von
Relationen in einem Cluster
-
10 Schleifenelimination,
welche eine Baumstruktur zusammengeführter Relationen liefert
-
11 Bestimmung
von Laufzeitclustern mit hinzugefügten Systemrelationen
-
12 Verbinden
von Clustern durch Zusammenfassen verbundener Relationen
-
13 Zusammenführung von
Relationenpaaren durch Projektion auf Verbindungsvariablen
-
14 Verbinden
einer Zielfunktion mit dem Konfigurationsraum
-
15 Die
Zustandsableitung auf einem einzelnen Cluster
-
16 Zustandsübertragung
auf verbundenen Clustern (azyklische Verbindung von Relationen)
-
17 Kombinatorisches
logisches Netzwerk
-
18 Nutzerschnittstellenbeispiel
-
19 Nutzerschnittstellenbeispiel
-
4 Zusammenfassung der
nachfolgenden Offenbarung
-
Die
Array-Datenbank (im folgenden als ADB bezeichnet) ist eine kompakte,
sogar vollständige
Repräsentation
aller legale Kombinationen von Konfigurationsproblemen auf endlichen
Definitionsbereichen oder Intervallen. Der Konfigurationsraum legaler
Zustände
oder Kombinationen ist geometrisch in Form verschachtelter Datenarrays
repräsentiert,
und die ADB kann sehr effizient durch einfache Operationen auf diesen
Arrays simuliert werden. Jeder Schritt im Prozess des ADB-Modellierens
und ADB-Simulierens ist in den Kapiteln 5 und 6 entsprechend beschrieben.
-
Der
Hauptdatenfluss des ADB-Modellierens ist in 1 zusammengefasst.
Input ist eine nutzerdefinierte Spezifikation der Systembeschränkungen
in Form eines Satzes von Regeln oder Relationen auf einer gegebenen
Gruppe von Variablen. Die ADB ist in einer dreistufigen Prozedur
modelliert, wie in dem Prozessblock ADB-MODEL in 1 skizziert.
- 1. Kompiliere Variablen und Relationen (Kapitel
5.1):
Jede nutzerdefinierte Variable und jede Relation wird
in die interne Array-Repräsentation überfragen.
In diesem Stadium werden die Relationen als unabhängige Elemente
angenommen.
- 2. Führe
Relationen zusammen, verifiziere System (Kapitel 5.2):
Der
Konfigurationsraum des gesamten Systems ist durch Zusammenführen miteinander
verbundener Relationen (Beschränkungselemination)
bestimmt. Das System wird simultan auf logische Konsistenz und Redundanz
getestet.
- 3. Erzeugte Zielfunktionen (Kapitel 5.3):
Optional können die
Relationen mit weiteren Attributen erweitert werden, wenn die legalen
Kombinationen, welche die Systembeschränkungen erfüllen, Variablen oder zu optimierenden
Zielfunktionen wie zum Beispiel einem Preis oder einem Gewicht zugeordnet
sind.
-
In
diesem Stadium ist der Prozess des ADB-Modellierens beendet. Der
gesamte Konfigurationsraum kann nun durch Koordinatenindizierung
und andere einfache Operationen auf den verschachtelten Arrays adressiert
werden.
-
Die
Hauptoperation der ADB-Simulation ist in 2 skizziert
und wird detaillierter in Kapitel 6 beschrieben.
-
Jedes
Element des Zustandsvektors SV repräsentiert den Zustand (die legalen
Werte) der zugehörigen
Variable. Im Eingabe-Zustandsvektor SV1 sind eine oder mehrere Variablen
aufgrund externer Messungen oder Aussagen beschränkt. SV2 repräsentiert
die resultierenden Beschränkungen
für alle
Variablen. Eine wichtige technische Anforderung ist die Vollständigkeit
der Ableitung; das heißt,
alle Beschränkungen
auf den Variablen im Ausgabezustandsvektor müssen abgeleitet werden.
-
Die
wichtigste technologische Neuerung der ADB kann wie folgt zusammengefasst
werden:
- 1. ADB-Simulation wird mit Vollständigkeit
der Ableitung in Echtzeit durchgeführt – mit vorhersagbarem Einsatz
von Verarbeitungszeit und Speicher. Die ADB-Simulation ist deshalb für eingebettete
Konfigurations- oder Steuersysteme geeignet und arbeitet gut auf
kleinen Computern.
- 2. Eine Voraussetzung für
(1) ist, dass alle Relationen vor der Simulation zusammengeführt werden
und dass der Konfigurationsraum des gesamten Systems geometrisch
in Form verschachtelter Arrays repräsentiert wird. Das gesamte
System wird automatisch auf logische Konsistenz (Verifikation) getestet. ADB-Modellierung
ist keine Echtzeitaufgabe. Auf großen Systemen kann der Modellierungsprozess
mit Vorteil auf einem geeigneten Modellierungsserver mit mehreren
Prozessoren berechnet werden.
- 3. Eine gemeinsame Repräsentation
aller Systembeschränkungen
(die Standardarrayform von Relationen) vereinigt aussagelogische,
eigenschaftslogische (mehrwertig logische) und relationale Algebra.
- 4. Jede Verarbeitung auf der Standardarrayform (ADB-Modellierung
und ADB-Simulation)
basiert auf einigen fundamentalen Array-Operationen, die alle für die parallele
Verarbeitung geeignet sind.
-
Die
unterschiedlichen regelbasierten Systeme auf dem heutigen Markt
repräsentieren
Regeln oder Relationen als unabhängige
Elemente (keine Zusammenführung).
Daher müssen
diese Regeln individuell durch Suche, anstatt durch einfache geometrische
Operationen auf Arrays verändert
werden. Die Verarbeitungszeit hängt
deshalb von der Ausdehnung der Suche ab, was in Anwendungen, wo
die Vollständigkeit
der Ableitung in Echtzeit sicher gestellt werden muss (z. B. ineinander
greifende Eisenbahnsysteme), ein Problem bedeutet.
-
5 ADB-Modellierung
-
Grundsätzlich bedeutet
die Aufgabe des ADB-Modellierens die Elimination von Beschränkungen;
das heißt,
alle nichtlegalen Kombinationen müssen eliminiert werden, was
eine explizite Repräsentation
aller legaler Kombinationen oder legaler kartesischer Unterräume liefert.
-
5.1 Kompiliere Variablen
und Relationen
-
Eingabe
sind die nutzerdefinierte Systembeschränkungen in Form von Variablen
(auf unterschiedlichen Datentypen oder Messskalen) sowie Regeln
oder Relationen auf diesen Variablen. Die Kompilierung ist eine
zweistufige Prozedur, wie in 3 gezeigt
ist.
-
5.1.1 Kompiliere den Definitionsbereich
von Variablen
-
Der
Definitionsbereich jeder Variable ist ein geordnete endliche Gruppe
(eine Liste) mit n einzelnen Elementen. Der Definitionsbereich (Unwahr,
Wahr) einer Aussagevariablen ist daher ein Spezialfall mit n = 2. Die
Liste kann eine explizite Repräsentation
aller Elemente in einem endlichen Definitionsbereich oder, im Falle
großer
oder sogar unendlicher numerischer Defintionsbereiche, eine geordnete
Gruppe disjunkter Intervalle sein.
-
Als
ein Beispiel betrachten wir den globalen Definitiansbereich eines
Systems mit sechs unterschiedlichen, in Tabelle 1 veranschaulichten
Zustandsvariablen.
-
Tabelle
1 Definitionsbereich eines Systems mit sechs Zustandsvariablen
-
A
und ALARM sind Aussagevariablen mit der Länge n = 2, während CDLOUR(x)
eine Eigenschaftsvariable ist, welche eine nominelle Skalenmessung
mit n = 4 repräsentiert.
In der internen Array-Repräsentation
ist jede Messung durch seine zugehörigen Definitionsbereichsindex
gegeben. LENGTH(x) und WIDTH(x) sind einfache Ordnungsskalenmessungen
mit einer expliziten Repräsentation
aller Definitonsbereichselemente, während TEMP(x) eine durch eine
endliche Gruppe von Intervallen gegebene Intervallskalenmessung
veranschaulicht. Ein Intervall ist durch seine untere und obere
Grenze definiert, welche durch den Wert und Typ jeder Grenze (0
= open, 1 = closed) gegeben sind.
-
5.1.2 Kompiliere jede
Relation in Standardarrayform
-
Jede
nutzerdefinierte Relation auf einer Untergruppe von Definitionsbereichsvariablen
wird in die Standardarrayform kompiliert, welche ein verschachteltes
Array mit zwei Elementen ist. Das erste Element ist die Gruppe legaler
kartesischer Unterräume,
während
das zweite Element die Definitionsbereichsindizes der zugehörigen Zustandsvariablen
sind. Sämtliche
nachfolgende Verarbeitung auf den Relationen basiert auf dieser
gemeinsamen Repräsentation,
welche als die Basiskomponente des ADB verstanden werden kann.
-
BEISPIEL
-
Gegeben
sei die folgende Relation auf den Variabien WIDTH und LENGTH in
Tabelle 1:
R: WIDTH ist kleiner als LENGTH
-
Das
heißt,
der komplette Zustandsraum alle legaler und nichtlegaler Kombinationen
ist:
Tabelle
2
-
Die
Standardarrayform von Tabelle 2 ist unten als Tabellen in zwei isomorphen
Formen mit acht legalen Kombinationen (erweiterte Farm) oder alternativ
zwei legalen kartesischen Unterräumen
(komprimierte Form) dargestellt:
Tabelle
3
-
BEISPIEL
-
Die
kompilierte Arrayform der Relation TEMP(>120) -> ALARM
auf dem Definitionsbereich in Tabelle 1 ist:
Tabelle
4
-
5.2 Fasse Relationen zusammen
-
Mathematisch
gesprochen sind die Beschränkungen
des gesamten Systems die Verknüpfung
aller Relationen. Bis hierher haben wir während der Kompilierung angenommen,
dass die nutzerdefinierten Relationen unabhängige Elemente sind.
-
Der
Konfigurationsraum des vollständigen
Systems wird nun durch Zusammenführen
der untereinander verbundenen Relationen berechnet (Elimination
der Konnektivitätsbeschränkungen).
-
Gleichzeitig
wird das System auf logische Konsistenz getestet: Wenn ein lokaler
Konfigurationsraum leer ist, liefert die Verknüpfung aller Systembeschränkungen
einen Widerspruch. Darüber
hinaus wird redundante und nicht benötigte Information automatisch
eliminiert.
-
Die
in 4 gezeigte Prozedur wird angewendet.
-
5.2.1 Kombiniere Relationen
bis zur Größengrenze
-
Die
einfachste Operation der Zusammenführung ist es, Relationspaare
mit gemeinsamen Variablen in einzelne Relationen zusammenzufassen,
welche die Verknüpfung
des Paares repräsentieren.
Verbundene Relationen werden kombiniert, wann immer es geeignet
ist: das heißt,
wenn die Größe des kombinierten
Ergebnisses geringer als eine gegebene Grenze ist. Wenn zwei Relationen
viele gemeinsame Variablen aufweisen, ist die kombinierte Relation
kleiner als die Argumente. Ähnlich
kann, wenn die Relationen spärlich
verbunden sind, die kombinierte Relation in der Größe explodieren.
Im Falle des Widerspruchs (logische Inkonsistenz) ist der Konfigurationsraum
der verbundenen Relation leer. Isolierte (nichtverbindende) Variable
ohne Bedeutung für
die Systemsimulation (vorläufige
Variablen) können
eliminiert werden.
-
Die
Strategie zum Kombinieren einer Liste von Relationen ist in
5 gezeigt.
Der Kombinierfaktor oder Konnektivitätsfaktor eines Relationspaares
wird verwendet, um die Größe des kombinierten
Resultats vorherzusagen. Der Kombinierfaktor (JF, engl. join factor)
eines verbundenen Paares ist definiert wie folgt:
wobei:
I
i:
Anzahl isolierter Variablen in Relation i
A
i:
Größe der Relations
i (Anzahl kartesischer Subräume)
T
i: Größe der Relation
i (Anzahl von Tupeln (Kombinationen))
C: Anzahl gemeinsamer
Variablen + Anzahl gemeinsamer vorläufiger Variablen
-
BEISPIEL
-
Gegeben
sei das kleine System mit drei Relationen R0, R1, R2:
Tabelle
5
-
Die
Kompilierung jeder Relation liefert:
Tabelle
6
-
Die
Relationen in Tabelle 6 können
in einer einzigen Relation {falls Gleichung hier nicht angezeigt
wird, bitte aus dem Originaldokument, Seite 15, Zeile 27, einfügen.} R
= R0 ∧ R1 ∧ R2 kombiniert
werden, welche den vollständigen
Konfigurationsraum repräsentiert:
Tabelle
7
-
Wir
haben daher die Aufgabe der Zusammenfügung bei diesem kleinen Beispiel
erledigt; alle Beschränkungen
der isolierten Relationen sind ebenso wie die Konnektivitätsbeschränkungen
in der kombinierten Relation repräsentiert. Das Ergebnis der
Modellierung des Systems ist daher eine Array-Datenbank mit der einzigen,
in Tabelle 7 dargestellten Relation.
-
Allgemein
umfasst die Array-Datenbank mehr als eine einzige Relation, wenn
Systeme sich vergrößern.
-
5.2.2 Gruppiere Relationen
in Cluster
-
In
diesem Stadium ist es nicht möglich,
weitere Relationen innerhalb der nutzerdefinierten Größenbegrenzung
zu kombinieren. Die Zusammenführungsstrategie
hängt nun
von den Eigenschaften des Zusammenführungsgraphen ab, welche die
Struktur untereinander verbundener Relationen darstellt. Die Relationen
sind durch die Knoten repräsentiert,
während
ein Bogen, welcher zwei Knoten (Relationen) verbindet, die gemeinsamen
Variablen repräsentiert.
-
Zwei
verschiedene Arten von Graphen sind speziell wichtig:
- – Bäume (Graphen
ohne geschlossene Pfade oder Schleifen): In diesem Fall ist es möglich, Vollständigkeit der
Ableitung durch Zustandsübertragung
auf den einfachen Verbindungen zwischen den Relationen sicherzustellen.
Beispiel: Tabelle
8
- – Graphen
mit geschlossenen Pfaden oder Schleifen: Die Schleifen müssen eliminiert
werden, um die Vollständigkeit
der Ableitung durch einfache Zustandsübertragung sicherzustellen.
Beispiel: Tabelle
9
-
Vor
einer weiteren Zusammenfassung werden die Relationen in Clustern
gruppiert, von denen alle ohne Schleifen miteinander verbunden werden
können.
Wenn der Zusammenführungsgraph
von Relationen ein Baum ist, ist jede Relation daher einem einzelnen
Cluster zugehörig.
-
6 veranschaulicht
den Zusammenführungsgraphen
eines gegebenen Systems. Natürlich
können wir
alle Schleifen durch Gruppieren der Relationen in einen einzigen
Cluster eliminieren. Jedoch ist es, um den nachfolgenden Zusammenführungsprozess
auf großen
Systemen am effizientesten zu machen, wünschenswert, die Relationen
in die maximale Anzahl von Clustern zu gruppieren. In diesem Beispiel
ist die maximale Anzahl von Clustern vier, wie in 7 gezeigt
ist.
-
Im
Falle von Eingabe-Ausgabe-Systemen ist jede Relation eine Funktion
(Ausgabe = f(Eingabe)). Der vordefinierte Fluss von Daten von Eingabeknoten
zu Ausgabeknoten ist in einem gerichteten Zusammenführungsgraph
dargestellt. Wenn der Graph azyklisch ist (keine Schleifen oder
starken Komponenten), ist der Datenfluss durch eine einfache Zustandsübertragung
von Eingabe zu Ausgabe vollständig.
Im Falle eines zyklischen Digraphen müssen die Schleifen durch Gruppieren
der zugehörigen
Relationen (Funktionen) in Clustern, wie es oben gezeigt ist, eliminiert
werden.
-
8 veranschaulicht
einen vordefinierten Datenfluss auf dem System in 6 unter
der Annahme, dass jede Relation eine Funktion ist. Wir merken an,
dass der Graph azyklisch ist und der Fluss daher mit einer Zustandsübertragung
von R0 nach R15 vollständig
ist.
-
5.2.3 Führe Relationen
in jedem Cluster zusammen
-
Die
Hauptschritte sind in 9 skizziert. Um die Vollständigkeit
der Ableitung sicher zu stellen, müssen alle Schleifen im Cluster
eliminiert werden (9.1). Das verschachtelte Laufzeitcluster
(9.2) ist eine alternative vollständige und
effiziente Repräsentation
des Clusterkonfigurationsraumes.
-
5.2.3.1 Schleifenelimination:
Bestimme Baumstruktur zusammengeführter Relationen (9.1)
-
Wenn
eine Liste von Relationen, welche einen oder mehrere Schleifen in
einem Cluster schließt,
groß und
spärlich
miteinander verbunden sind, macht die "kombinatorische Explosion" es unmöglich, die
Liste in eine einzige Relation zu kombinieren. Deshalb erzeugen
wir eine äquivalente,
aber sehr viel kompaktere Liste zusammengeführter Unterräume; das
heißt,
eine neue Liste von Relationen mit den folgenden Eigenschaften:
- – Jede
nutzerdefinierte Variable (Definitionsbereichsvariable) ist nur
in einer einzigen Relation vorhanden
- – Die
Relationen sind durch systemerzeugte Verbindungsvariablen miteinander
verbunden, welche eine Baumstruktur (ohne Schleifen) liefern.
- – Jeder
lokale kartesische Unterraum legaler Kombinationen ist einer einzigen
Verbindungsvariablen mit einem einzigen Index zugeordnet.
-
Daher
isolieren wir Variablen, welche in einer einzigen Relation präsent sind,
und führen
die Zusammenführung
nur auf Unterräumen
mit gemeinsamen Variablen durch. Die in 5 gezeigte
fünfstufige
Prozedur kann auf jede Gruppe von Relationen verwendet werden, selbst
wenn der Zusammenführungsgraph
azyklisch ist.
-
BEISPIEL
-
Gegeben
seien die Clusterrelationen R0, R1, R2, welche eine einzelne Schleife
bilden:
Tabelle
10
-
Die
Standardarrayform jeder kompilierten Relation ist:
Tabelle
11
-
Liste
von Relation(en) auf isolierten (nichtverbindenden) Variablen (
10.1 und
10.2):
Tabelle
12
-
Liste
von Relationen auf verbindenden Variablen (
10.1):
Tabelle
13
-
Wenn
die Liste von Relationen auf verbindenden Variablen kombiniert ist
(
10.4), erhalten wir das folgende Ergebnis mit
zwei Relationen auf isolierten Definitionsbereichsvariablen und
einer gemeinsamen Verbindungsvariable Link0:
Tabelle
14
-
Die
Baumstruktur zusammengeführter
Relation erfüllt
die Anforderung der Vollständigkeit,
Kompaktheit und Simulationsgeschwindigkeit. Die Vollständigkeit
der Ableitung ist durch Zustandübertragung
auf den Relationen im Baum (siehe Abschnitt 0) sicher gestellt.
Die im folgenden vorzustellende, verschachtelte Clusterrepräsentation
ist eine alternative (isomorphe) Repräsentation.
-
Manchmal
weisen die nutzerdefinierten Relationen interne Systemvariablen
(vorläufige
Variablen) auf, welche eliminiert werden können. Ein Beispiel sind Netzwerkprobleme
mit Eingabe- und Ausgabeknoten (weiche mit der Umgebung verbunden
sind) und eine Anzahl interner Knoten, welche Eingabe- und Ausgabeknoten
verbinden. Wenn die Netzwerkbeschränkungen in der ADB repräsentiert
sind, ist es wünschenswert,
die internen Variablen zu eliminieren und nur die Unterräume auf
den Eingabe-Ausgabe-Variablen zu repräsentieren.
-
5.2.3.2 Bestimmte verschachtelte
Laufzeitcluster (Optional)
-
Das
Ziel der folgenden Aufgabe ist es, eine sehr kompakte Laufzeitclusterrepräsentation
zu bestimmen, welche durch einfaches Koordinatenindizieren und Tabellensuche
ohne Zustandsübertragung
simuliert werden kann – selbst
auf kleinen Computern und Steuerungen wie zum Beispiel elektronischen
Relais.
-
Das
Laufzeitcluster besteht aus den ursprünglichen Definitionsbereichrelationen,
erweitert durch Verbindungsvariablen, welche die kartesischen Unterräume adressieren,
und einer Gruppe von Systemrelationen, welche die Relationen zwischen
Verbindungsvariablen repräsentieren.
Der Einfluss jedes kartesischen Unterraums auf das gesamte System
wird durch Erklären
des zugehörigen
Verbindungsvariablenindex und dann Ableiten des Zustands jeder Verbindungsvariablen
bestimmt. Diese Ableitung ist zum Beispiel durch Zustandsableitungen
auf jedem Verbindungsvariablenindex realisiert. Die Zustandsableitungen
können
parallel ausgeführt
werden.
-
Die
Bestimmung der verschachtelten Laufzeitcluster ist in 11 gezeigt.
-
BEISPIEL
-
Betrachten
wir wieder das Cluster Tabelle 10 mit drei Relationen R0, R1, R2:
Das
unten dargestellte Laufzeitcluster besteht aus den drei Definitionsbereichrelationen
(linke Zeile) und den drei zugehörigen
Systemrelationen (rechte Zeile). Zum Beispiel werden in der system
relation 0 die drei Indizes der Verbindungsvariable Link0 (welche
den kartesischen Unterraum von R0 repräsentiert) als die Eingabe zum Ableiten
der Beschränkungen
auf jeder Verbindungsvariable verwndet. Daher repräsentiert
system relation 0 den Einfluss des kartesischen Unterraums in R0
auf das gesamte System.
-
-
-
5.2.4 Verbindungscluster
-
Wir
haben nun die Zusammenführung
der Relation(en) in jedem Cluster ausgeführt, und der letzten Schritt
im Prozess der Zusammenführung
ist es, alle Relationenpaare zusammenzuführen, weiche Cluster verbinden.
Zum Beispiel müssen
in dem in 7 skizzierten System die Relationenpaare
(3cluster0, 3cluster1),
(9 10) und (10 12) zusammengeführt
werden.
-
Der
Datenfluss beim Verbinden von Clustern ist in 12 gezeigt.
-
Das
Ergebnis des Zusammenführens
eines Relationenpaares ist eine neue Relation (welche im folgenden
als Verbindungsrelation bezeichnet wird) auf den gemeinsamen Variablen
und den beiden Verbindungsvariablen. Wenn die Gruppe von Verbindungsrelationen
zu der Array-Datenbank hinzugefügt
wird, ist es möglich,
die Vollständigkeit
der Ableitung durch Zustandsübertragung
auf die Cluster und die Verbindungesrelationen sicher zu stellen.
-
13 veranschaulicht
detaillierter die Zusammenführung
jedes Relationenpaares (13.2).
-
BEISPIEL
-
Gegeben
sie das Relationenpaar R0, R1:
Tabelle
16
-
Offensichtlich
ist der einfachste Weg zum Zusammenführen dieser einfachen Relationen,
die Paare zu einer einzigen Relation zu kombinieren:
Tabelle
17
-
Jedoch
werden wir, um die isomorphe Form von Verbindungsrelationen zu veranschaulichen,
die Standardfeldform von R0, R1 mit Verbindungsvariablen erweitern:
Tabelle
18
-
Das
Zusammenführen
der Unterräume
der gemeinsamen Variablen C, D liefert die folgende Verbindungsrelation:
Tabelle
19
-
Zusätzlich zur
den Argumentrelationen R0, R1 macht es die Verbindungsrelation möglich, den
gesamten Konfigurationsraum auf den Indizes der Verbindungsvariablen
zu adressieren. Auf großen
und spärlich
verbundenen Relationen ist dies eine kompaktere Repräsentation
als das Kombinieren der Relationen.
-
5.3 Füge Zielfunktionen hinzu (Optional)
-
Der
Konfigurationsraum legaler Kombinationen kann mit nutzerdefinierten
Zielfunktionen erweitert werden, um heuristisch verändert zu
werden, z. B. einem Fuzzywert (für
Fuzzylogikberechnungen), einem Gewicht oder einem Preis (zur Optimierung).
-
Eine
Zielfunktion O ist auf einer Teilmenge der Zustandsvariablen S0, S1, ..., Sn definiert: O = f(S0,
S1, ..., Sn) und
wird in die Standardarrayform kompiliert.
-
BEISPIEL
-
Gegeben
sei ein Systemmodell mit den Konfigurationsräumen (WIDTH, LENGTH) und der
Zielfunktion PRIZE = f(WIDTH, LENGTH), welche in einer einzelnen
Relation in Standardarrayform repräsentiert sind:
Tabelle
20
-
Wenn
die Zielfunktion während
der Systemsimulation optimiert werden soll, können wir ebenso die Konfigurationsräume großer Definitionsbereiche
in Form kartesischer Unterräume
repräsentieren,
auf welchen die Zielfunktion monoton ist:
Tabelle
21
-
Die
Zielfunktion eines jeden kartesischen Unterraumes ist durch ein
Intervall mit der unteren und oberen Grenze gegeben, und die zugehörigen Zustandsvariablen
sind geordnet, um die Zielfunktion steigend zu machen.
-
Die
Zielfunktion kann auf eine von zwei Arten mit dem Konfigurationsraum
verbunden sein:
- 1. Falls der Konfigurationsraum
der Zustandsvariablen S0, S1,
..., Sn in einer einzigen Relation (in Standardarrayform)
repräsentiert
ist, kann die Relation mit einem weiteren Attribut O erweitert werden,
welches die Zielfunktion repräsentiert.
Dies wird als spezieller Fall angenommen, welcher in Tabelle 3 gezeigt
ist.
- 2. Allgemein ist es komfortabler, die Zielfunktion als eine
neue Relation in Standardarrayform den Attributen O, S0,
S1, ..., Sn und
den mit dem Konfigurationsraum von S0, S1, ..., Sn zugehörigen Verbindungsvariablen hinzuzufügen.
-
Das
Flussdiagramm des Hinzufügens
von Zielfunktionen ist in 14 gezeigt.
-
BEISPIEL
-
Gegeben
sei der folgende Konfigurationsraum in Form von drei Relationen:
Tabelle
22
-
Die
Zielfunktion Y = f(B, E) wird der Array-Datenbank durch eine Projektion
auf alle den Zustandsvariablen B, E zugehörigen Verbindungsvariablen
hinzugefügt:
Tabelle
23
-
6 ADB-Simulation
-
Wenn
die Modellierungsaufgabe beendet ist, ist die Array-Datenbank für eine sehr
effiziente Simulation vorbereitet, welche in Echtzeit durchgeführt werden
kann. Die Hauptoperation für
die ADB-Simulation ist die in 2 gezeigte
Zustandsableifung. Der Zustandsvektor repräsentiert den Zustand (die legalen
Werte) jeder Zustandsvariable. Im Eingabezustandsvektor SV1 sind
eine oder mehrere Variablen aufgrund externer Messungen oder Aussagen
beschränkt.
Der abgeleitete Zustandsvektar SV2 repräsentiert die resultierenden
Beschränkungen
auf allen Variablen, wenn die Systembeschränkungen und die Beschränkungen
des Eingabezustandsvektors zusammengeführt werden.
-
Die
Zustandsableitung wird durch Mittel einiger Array-Operationen (geeignet
zur parallelen Verarbeitung) auf den Basiskomponenten der Array-Datenbank
realisiert:
- – die Relationen
- – die
Relationencluster
- – die
untereinander verbundenen (verbundenen) Relationencluster, und
- – die
verbundenen Zielfunktionen
-
6.1 Die Zustandsableitung
auf einer einzelnen Relation
-
Die
Zustandsableitung auf einer einzelnen Relation in Standardfeldform
wird durch Zusammenführen (durch
Durchschnitt) des Eingabezustandsvektors (SV1) mit der Relation
realisiert, woraufhin eine Projektion auf jede Variable der Relation
folgt, welche den Ausgangszustandsvektor (SV2) liefert. Die Zusammenführung und
Projektion sind unten detaillierter beschrieben.
-
BEISPIEL
-
Zur
Veranschaulichung betrachten wir abermals das System mit den Relationen
R0, R1, R2:
Tabelle
24
-
Die
Ummodellierung des Systems in eine einzelne Relation (durch Zusammenführen von
R0, R1, R2) liefert:
Tabelle
25
-
Wir
werden nun alle Folgerungen der externen Messung A = 1 (wahr) ableiten.
Die folgende dreistufige Prozedur wird angewendet:
-
1. Identifiziere alle
beschränkten
Variablen im Eingabezustandsvektor SV1.
-
A
ist beschränkt
oder eingeschränkt
auf 1, während
die anderen Variablen unbeschränkt
sind und daher allen der mögliche
Definitionsbereichswert (0 1) zugeordnet wird. Der Eingabezustandsvektor
SV1 ist deshalb:
Tabelle
26
-
2. Fasse die Beschränkungen
der Relation und den Eingabezustandsvektor zusammen.
-
Jeder
kartesische Unterraum in der Relation wird Element für Element
(Variable für
Variable) mit SV1 geschnitten. Die effizienteste Operation ist es,
nur die beschränkten
Eingabevariablen auszuwählen
und die Schnittmenge Achse für
Achse (geeignet zum parallelen Verarbeiten, falls erwünscht) zu
berechnen. Ungültige (leere)
kartesische Unterräume
werden gelöscht.
In dem vorliegenden Beispiel ist nur der erste kartesische Unterraum
leer und wird deshalb gelöscht:
Tabelle
27
-
3. Der Ausgabezustandsvektor
SV2 ist die Projektion (Vereinigung aller Elemente) auf jeder Achse.
-
Diese
Operation ist ebenso zur parallelen Verarbeitung auf jeder Achse
geeignet. Die Achsenprojektion in Tabelle 27 liefert den folgenden
Ausgabezustandsvektor SV2:
Tabelle
28
-
Wir
folgern, dass A = E = 1, während
die anderen Variablen unbeschränkt
sind (unwichtig oder Tautologie).
-
Diese
grundlegende Zustandsableitung auf einer einfachen Relation ist
das Fundament für
die Zustandsableitung auf Relationenclustern und miteinander verbundenen
Clustern. Darüber
hinaus sollte berücksichtigt
werden, dass diese Operation auf jeden Datentyp (Skala der Messung)
auf jeder Relation in Standardarrayform angewendet werden kann,
einschließlich
Zielfunktionen. Im Falle von Zielfunktionen kann der Eingabezustandsvektor
durch Optimierungskriterien wie zum Beispiel den Minimalpreis einer
gegebenen Konfiguration eingeschränkt werden.
-
6.2 Die Zustandsableitung
auf einem verschachtelten Relationencluster
-
Die
Struktur des verschachtelten Laufzeitclusters mit Definitionsbereichrelationen
und Systemrefationen auf gemeinsamen Verbindungsvariablen wurde
oben eingeführt
(Modellierungsschritt 2.3.2). Der Zustand der Cluster kann sehr
effizient in einer in 15 gezeigten fünfstufigen
Prozedur abgeleitet werden.
-
Der
Schlüssel
zur effizienten Zustandsableitung ist es, dass jeder kartesische
Unterraum im komplexen Konfigurationsraum eine einzige Projektion
auf die Verbindungsvariablen aufweist, welche nacheinander parallel
abgeleitet (15.1–15.2)
und dann indiziert (15.4–15.5) werden können. In diesem Prozess wird
keine heuristische Suche verwendet.
-
Die
Identifikation beschränkter
Eingabevariablen (15.1) wird zum Auswählen jener
Definitionsbereichsrelationen verwendet, welche Kandidaten dafür sind,
berücksichtigt
zu werden (es gibt keinen Grund, nur Definitionsbereichsrelationen
mit unbeschränkten
Variablen zu berücksichtigen – aus diesen
Relationen lassen sich keine weiteren Beschränkungen auf dem Zustandsvektor
ableiten). Jedoch ist Schrift (15.1)
nicht wesentlich; alle Definitionsbereichsrelationen können als
Kandidaten für
den nachfolgenden Schritt (15.2) gewählt werden.
Die Definitionsbereichrelationen (15.2)
könne eine
nach der anderen oder parallel berücksichtigt werden, wobei sie
einen lokalen Ausgabezustandvektor liefern, vermutlich mit neuen
Beschränkungen
auf manchen Variablen. Falls die Verbindungsvariablen noch unbeschränkt sind,
ist die Zustandsableitung abgeschlossen (15.3).
-
Falls
manche Verbindungsvariablen beschränkt sind, wird der Einfluss
auf den vollständigen
Cluster durch Berücksichtigen
der Systemrelationen (15.4)
(eine nach der anderen oder parallel) abgeleitet.
-
Schließlich wird
der vollständige
Einfluss auf die Definitionsbereichsvariablen durch Berücksichtigen aller
Definitionsbereichsrelationen mit neuen Beschränkungen auf den zugehörigen Verbindungsvariablen (15.5) abgeleitet. Das Ergebnis ist der vollständige Ausgabezustandsvektor.
-
Zusammenfassend
kann die parallele Verarbeitung auf verschiedenen Ebenen vorgestellt
werden:
- 1. Parallele Zusammenführung (Schneidung)
jeder Achse in den individuellen Relationen.
- 2. Parallele Projektion auf jede Achse in den individuellen
Relationen.
- 3. Parallele Zustandsableitung auf Definitionsbereichsrelationen
(10.2).
- 4. Parallele Zustandsableitung auf Systemrelationen (10.4).
- 5. Parallele Zustandsableitung auf Definitionsbereichsrelationen
(10.5).
-
BEISPIEL
-
Gegen
sei die verschachtelte Clusterrepräsentation des folgenden Systems:
Tabelle
29
-
Darüber hinaus
sei ein Eingabezustandvektor SV1 gegeben. Die Zustandsableitung
auf dem Cluster wird, wie in 15 veranschaulicht
ist, realisiert:
-
1. Identifiziere beschränkte Definitionsbereichsvariablen
im Eingabezustandsvektoc (15.1)
-
Nur
Variable A ist beschränkt:
Tabelle
30
-
2. Berücksichtige alle Definitionsbereichsrelationen
mit beschränkten
Definitionsbereichsvariablen (15.2)
-
R0
ist die einzige Definitionsbereichsrelation auf der beschränkten Variable
A. Daher gibt es keinen Grund, R1 und R2 zu berücksichtigen. Das Berücksichtigen
von R0 liefert einen lokalen Ausgabezustandsvektor mit neuen Beschränkungen
auf Link0:
Tabelle
31
-
3. Berücksichtige alte zu beschränkten Verbindungsvariablen
zugehörigen
Systemrelationen (15.4)
-
-
4. Berücksichtige alle Definitionsbereichsrelationen
mit beschränkten
Verbindungsvariablen (15.5)
-
Die
beschränkten
Verbindungsvariabien zugehörigen
Definitionsbereichsrelationen werden berücksichtigt, wobei sie den globalen
Ausgabezustandsvektor SV2 liefern:
Tabelle
33
Tabelle
34
-
6.3 Zustandsübertragung
-
Die
Zustandsübertragung
auf untereinander verbundenen Clustern wird durch Zustandsübertragung realisiert,
wie in 16 gezeigt ist. Alle Clusterrelationen
mit beschränkten
Variablen werden berücksichtigt und
der Zustandsvektor wiederholt aktualisiert, bis keine weitere Information
mehr abgeleitet werden kann. In der Praxis wird die Übertragung
durch die Verbindungsvariablen gesteuert: Wenn keine weiteren Beschränkungen
auf den Verbindungsvariablen abgeleitet werden können, ist die Übertragung
beendet.
-
Die
Vollständigkeit
der Ableitung ist mit der Zustandsübertragung sicher gestellt,
wann immer der Zusammenführungsgraph
azyklisch ist. Daher kann die Zustandsübertragung in den folgenden
Strukturen verwendet werden:
- – Der Konfigurationsraum
untereinander verbundener Cluster auf gemeinsamen Verbindungsvariablen
- – Zielfunktionen,
welche mit dem Konfigurationsraum auf gemeinsamen Verbindungsvariablen
verbunden sind
- – Dynamische
Systeme mit vordefinierten Eingabe- und Ausgabevariablen (azyklischer
Digraph).
-
7 Veranschaulichende Beispiele
-
Die
folgenden kleinen Beispiele veranschaulichen verschiedene Anwendungen
der Erfindung.
-
7.1. Kombinatorisches
Netzwerk
-
Die
Beschränkungen
des kleinen, in
17 gezeigten kombinatorischen
Netzwerks sind durch die Verbindungen der logischen Steuerelemente
gegeben. Die Eingabedatei für
die Array-Datenbank beschreibt den Definitionsbereich (engl., domain)
von Variablen und die nutzerdefinierten Relationen:
-
Das
Modellieren der Array-Datenbank liefert das folgende Resultat mit
allen zu einer einzigen Datenbankrelation mit nur 4 legalen Zuständen oder
Kombinationen kombinierten nutzerdefinierten Relationen:
Tabelle
35
-
Wir
folgern, dass I1 = O2 und I2 = O1; das heißt, alle Steuerelemente können entfernt
werden.
-
In 18 ist
ein Beispiel einer Simulationsumgebung dargestellt. Die Variable
O2 ist mit dem Zustand O2 = 1 (wahr) mit allen abgeleiteten Konsequenzen
angeführt/zugeordnet.
Es ist zu sehen, dass jede Variable oder Kombination von Variablen
als Eingabe verwendet werden kann – es existiert keine Unterscheidung
zwischen Eingabe- und Ausgabevariablen.
-
7.2 Alarmsystem
-
Gegeben
sei die folgende Eingabedatei für
ein kleines Alarmsystem mit drei Zustandsvariablen auf verschiedenen
Datentypen.
-
-
Die
beiden Relationen haben eine gemeinsame Variable TEMP und müssen deshalb
zusammengeführt
werden. Das Kombinieren der Relationen liefert die folgende Array-Datenbank
mit drei legalen kartesischen Unterräumen auf einer einzigen Relation:
Tabelle
36
-
Beachte,
dass die Relation mit den legalen Definitionsbereichswerten anstelle
der Definitionsbereichsindizes dargestellt ist. Die interne binäre Repräsentation
ist in Tabelle 37 gezeigt.
-
-
7.3 Produktkonfiguration
-
Wir
nehmen jetzt an, dass ein Autohersteller alle möglichen Kombinationen von Kundenwünschen im Internet
verfügbar
haben möchte.
-
Gegen
sei die folgende Array-Datenbankeingabedatei mit den logischen Beschränkungen
der Autos:
-
Beachte,
dass die nutzerdefinierten Relationen in jeder Reihenfolge und auf
viele verschiedene Arten geschrieben werden können. In den oben erwähntert Relationen
hat der Nutzer viele symbolische Ausdrücke mit logischen Implikationen
(IF-THEN) anstelle einiger Tabellen geschrieben. Der Modellierungsprozess
ist unabhängig
vom Eingabeformat.
-
Das
Modellieren der Eingabedatei liefert die folgende Array-Datenbank
mit fünf
Relationen, welche den Konfigurationsraum des Autos repräsentiert.
Diese Relationen werden durch gemeinsame Verbindungsvariablen verbunden:
Tabelle
38
-
Die
Array-Datenbank in Tabelle 38 kann auf einem Internetserver gespeichert
werden, um sie für
jeden Klienten aus dem Netzwerk zugreifbar zu machen. Dies wird
auf eine von zwei Arten realisiert:
- – Die Array-Datenbank
wird vor der Simulation zum Klienten übertragen
- – Die
Array-Datenbank wird auf dem Server gespeichert und vom Klienten über das
Netzwerk simuliert (nur der Zustandsvektor wird übertragen)
-
Zur
Veranschaulichung sei angenommen, dass ein Kunde ein Auto mit zwei
Türen wünscht. Der
abgeleitete Zustandsvektor ist mit allen Folgerungen in
19 dargestellt.
Wir folgern, dass nur die Cabrioletautos mit zwei Türen verfügbar sind – und das
Sonnenscheindach keine legale Option ist! ZEICHNUNGSLEGENDEN Fig.
1
Input | Eingabe |
(system
constraints) | (Systembeschränkungen) |
ADB-Model | ADB-Modell |
1.
Compile variable and relations | 1.
Kompiliere Variablen und Relationen |
2.
Colligate relations, verify system | 2.
Führe Relationen
zusammen, verifiziere System |
3.
Add object funktions (optional) | 3.
Füge Zielfunktionen
hinzu (optional) |
Array
database | Array-Datenbank |
The
configuration space with all legal combinations | Der
Konfigurationsraum mit allen legalen Kombinationen |
Fig.
2
Array
database | Array-Datenbank |
System | System |
input
state vector (external influences; assumptions) deduced implications
or conclusions | Eingabezustandsvektor
(externe Einflüsse;
Annahmen) abgeleitete Implikationen oder Lösungen |
Fig.
3
COMPILE | KOMPILIERE |
Compile
the domain of variables into unique indices (legal elements) | Kompiliere
die Definitionsbereiche von Variablen in einzelne Indizes (legale
Elemente) |
Compile
jede relation into standard array form (legal Cartesian subspaces) | Kompiliere
jede Relation in Standardfeldform (legale kartesische Unterräume) |
END | ENDE |
Fig.
4
Join
relations until size limit Contradiction? | Kombiniere
Relationen bis zur Größengrenze
Widerspruch? |
YES | JA |
NO | NEIN |
Only
isolated (independent) relation(s)? | Nur
isolierte (unabhängige)
Relation(en)? |
YES | JA |
NO | NEIN |
Group
relations into clusters Colligate each cluster Contradiction? | Gruppiere
Relationen in Cluster Führe
jeden Cluster zusammen Widerspruch? |
YES | JA |
NO | NEIN |
Link
interconnected clusters Contradiction? | Verbinde
untereinander verbundene Cluster Widerspruch? |
YES | JA |
NO | NEIN |
CONTRADICTION | WIDERSPRUCH |
END | ENDE |
Fig.
5
JOIN | KOMBINIEREN |
Determine
join factor of each Connected relation pair Join relation pair with
minimum join factor Contradiction? | Bestimme
Kombinierfaktor für
jedes verbundene Relationenpaar Kombiniere Relationenpaar mit minimalem
Kombinierfaktor Widerspruch? |
YES | JA |
CONTRADICTION | WIDERSPRUCH |
NO | NEIN |
Eliminate
non-connecting interim variables | Eliminiere
nichtverbindende Interimsvariablen |
More
connected relations? | Weitere
verbundene Relationen? |
NO | NEIN |
YES | JA |
Size
of joined result < limit | Größe des verbundenen
Resultats < Beschränkung |
YES | JA |
NO | NEIN |
END | ENDE |
Fig.
7
Fig.
9
COLLIGATE
RELATIONS IN A CLUSTER | FÜHRE RELATIONEN
IN EINEM CLUSTER ZUSAMMEN |
Cycle
elimination | Schleifenelimination |
Detemine
tree structure Of linked relations on isolated (colligated) subspaces
Contradiction? | Bestimme
Baumstruktur verbundener Relationen auf isolierten (zusammengeführten) Unterräumen Widerspruch? |
YES | JA |
CONTRADICTION | WIDERSPRUCH |
NO | NEIN |
Determine
run-time cluster | Bestimme
Laufzeitcluster |
END | ENDE |
Fig.
10
CYCLE
ELIMINATION | SCHLEIFENELIMINATION |
Single
relation? | Einzelne
Relation? |
YES | JA |
Divide
each relation into two relations, both of which are extended with
a common link variable: | Teile
jede Relation in zwei Relationen auf, von denen beide mit einer
gemeinsamen Verbindungsvariable erweitert werden: |
1)
Relation on isolated (non-connecting) variables | 1)
Relation auf isolierten (nichtverbindenden) Variablen |
2)
Relation on connecting variables Update list of relations on isolated
variables More relations on connecting variables? | 2)
Relation auf verbindenden Variablen Aktualisiere Liste von Relationen
auf isolierten Variablen Weitere Relationen auf verbindenden Variablen? |
NO | NEIN |
TREE
STRUCTURE OF COLLIGATED RELATIONS | BAUMSTRUKTUR
ZUSAMMENGEFÜHRTER
RELATIONEN |
YES | JA |
Join
new list of relations on Connecting variables until given size limit
Contradiction? | Kombiniere
neue Liste von Relationen auf verbindenden Variablen bis zur gegebenen
Größenbeschränkung Widerspruch? |
NO | NEIN |
YES | JA |
CONTRADICTION | WIDERSPRUCH |
Fig.
11
DETERMINE
RUN-TIME CLUSTER | BESTIMME
LAUFZEITCLUSTER |
Determine
Cartesian subspaces of each cluster relation | Bestimme
kartesische Unterräume
jeder Clusterrelation |
Add
link variable i to domain relation i. | Füge Verbindungsvariable
i zur Definitionsbereichsrelation i hinzu. |
Each
Cartesian subspace is associated with a unique | Jeder
kartesische Unterraum ist einem einzelnen |
link
variable index j | Verbindungsvariablenindex
j zugehörig |
Assignment:
i = j = 0 | Zuordnung:
i = j = 0 |
Input
state vector SV1: | Eingabezustandsvektor
SV1: |
Assign
(variable i) = (element j) | Ordne
zu: (Variable i) = (Element j) |
Output
status vector SV2: | Ausgabezustandsvektor
SV2: |
Deduce
state of each link variable | Leite
Zustand jeder Verbindungsvariable ab |
Add
SV2 as Cartesian subspace j in system relation i | Füge SV2 als
kartesischen Unterraum j in der Systemrelation i hinzu. |
More
elements? | Weitere
Elemente? |
YES | Ja |
NO | NEIN |
More
link variables? | Weitere
Verbindungsvariablen? |
YES | JA |
NO | NEIN |
LIST
OF DOMAIN RELATIONS AND SYSTEM RELATIONS | LISTE
VON DEFINTIONSBEREICHS-RELATIONEN UND
SYSTEMRELATIONEN |
Fig.
12
LINK
CLUSTERS | VERBINDE
CLUSTER |
Identify
relation pairs connecting clusters. | Identifiziere
Relationenpaare, welche Cluster verbinden. |
Each
relation has an associated link variable Colligate each relation
pair Contradiction? | Jede
Relation hat eine zugehörige
Verbindungsvariable Führe
jedes Relationenpaar zusammen Widerspruch? |
YES | JA |
NO | NO |
CONTRADICTION | CONTRADICTION |
Add
list of link relations | Füge Liste
von Verbindungsrelationen hinzu |
COLLIGATED | ZUSAMMENGEFÜHRTE |
ARRAY
DATABASE | ARRAY-DATENBANK |
Fig.
13
COLLIGATE
RELATION PAIR | FÜHRE RELATIONENPAAR
ZUSAMMEN |
Common
variables? | Gemeinsame
Variablen? |
NO | NEIN |
NO
COLLIGATION | KEINE
ZUSAMMENFÜHRUNG |
YES | JA |
Link
variables? | Verbindungsvariablen? |
YES | JA |
NO | NEIN |
Add
link variables to each relation Colligate (join) Cartesian Subspace
pairs on common variables Contradiction? | Füge Verbindungsvariablen
jeder Relation hinzu Führe
(kombiniere) kartesische Unterraumpaare auf gemeinsamen Variablen
zusammen Widerspruch? |
YES | JA |
NO | NEIN |
CONTRADICTION | WIDERSPRUCH |
Add
state of each link Variable to each joined Cartesian subspace Generate
standard array form of new colligated relation (link relation) | Füge Zustand
jeder Verbindungsvariable zu jedem kombinierten kartesischen Unterraum
hinzu Erzeuge Standardarrayform der neu zusammengeführten Relation
(Verbindungsrelation) |
LINK
RELATION | VERBINDUNGSRELATION |
Fig.
14
ADD
OBJECT FUNCTION | FÜGE ZIELFUNKTION
HINZU |
Identify
all relations representing the configuration space of state variables
Identify assoc ated link variables Compute each combination (subspace)
of S0, S1, ..., Sn: Determine value(s) of O = f(S0, S1, ..., Sn) Deduce
contraints on L0, L1, ... Lm Generate standard array form of object
function on S0, S1, ..., Sm, O, L0, L1, ..., Lm | Identifiziere
alle Relationen, welche den Konfigurationsraum von Zustandsvariablen
repräsentieren
Identifiziere zugehörige
Verbindungsvariablen Berechne jede Kombination (Unterraum) von S0,
S1, ..., Sn: Bestimme Werte von O = f(S0, S1, ..., Sn) Leite Beschränkungen
auf L0, L1, ..., Lm ab Erzeuge Standardarrayform von Zielfunktion
auf S0, S1, ..., Sm, O, L0, L1, ..., Lm |
OBJECT
FUNCTION WITH LINKS TO CONFIGURATION SPACE | ZIELFUNKTION
MIT VERBINDUNGEN ZUM KONFIGURATIONSRAUM |
Fig.
15
STATE
DEDUCTION ON NESTED CLUSTER | ZUSTANDSABLEITUNG
AUF VERSCHACHTELTEM CLUSTER |
[Identify
bounded variables in the input state vector] Any bounded link variables? | [Identifiziere
beschränkte
Variablen im Eingabezustandsvektor] Irgendwelche beschränkten Verbindungsvariablen? |
NO | NEIN |
YES | JA |
Consult
the associated system relations [with bounded link variable] | Konsultiere
die zugehörigen
Systemrelationen [mit der beschränkten
Verbindungsvariablen] |
DEDUCED
OUTPUT | ABGELEITETER |
STATE
VECTOR | ZUSTANDSVEKTOR |
Fig.
16
STATE
PROPAGATION | ZUSTANDSÜBERTRAGUNG |
Identify
list of relations (clusters) with at least one bounded input state
variable Contradiction? | Identifiziere
Liste von Relationen (Clustern) mit mindestens einer beschränkten Eingabezustandsvariable
Widerspruch? |
YES | JA |
NO | NEIN |
Any
new bounded link variable(s)? | Irgendeine/irgendwelche
beschränkte(n)
Verbindungsvariable(n)? |
YES | JA |
NO | NEIN |
DEDUCED
OUTPUT STATE | ABGELEITETER
AUSGABEZUSTAND |
Generate
a list of relations (clusters) with at least one bounded link variable | Erzeuge
eine Liste von Relationen (Cluster) mit mindestens einer beschränkten Verbindungsvariable |