DE4411514A1 - Schaltungsanordnung zur schnellen Verarbeitung von lokalen Beschränkungen - Google Patents

Schaltungsanordnung zur schnellen Verarbeitung von lokalen Beschränkungen

Info

Publication number
DE4411514A1
DE4411514A1 DE4411514A DE4411514A DE4411514A1 DE 4411514 A1 DE4411514 A1 DE 4411514A1 DE 4411514 A DE4411514 A DE 4411514A DE 4411514 A DE4411514 A DE 4411514A DE 4411514 A1 DE4411514 A1 DE 4411514A1
Authority
DE
Germany
Prior art keywords
variables
circuit
circuit arrangement
variable
output side
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.)
Ceased
Application number
DE4411514A
Other languages
English (en)
Inventor
Joerg-Ingo Jakob
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JAKOB JOERG INGO
Original Assignee
JAKOB JOERG INGO
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JAKOB JOERG INGO filed Critical JAKOB JOERG INGO
Priority to DE4411514A priority Critical patent/DE4411514A1/de
Publication of DE4411514A1 publication Critical patent/DE4411514A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Complex Calculations (AREA)

Description

Stand der Technik
Beschränkungsnetze (englisch: Constraint Nets) sind ein aktives Forschungsgebiet der Künstlichen Intelligenz. Bisherige Implementationen von Beschränkungsnetzen sind softwarebasiert. Im weiteren wird eine Schaltungsanordnung vorgeschlagen, mit der sich lokale Beschränkungen (englisch: Constraints) in Hardware realisieren lassen. Lokale Beschränkungen sind die elementaren Bausteine eines Beschränkungsnetzes. Ein Beschränkungsnetz BN besteht aus einer endlichen Menge von Variablen X = {X₁ . . . Xm}, von denen jede sowohl mit einem (diskretwertigen oder kontinuierlichen) Variablengrundbereich (Grundbereich) D₁ . . . Dm verbunden ist, als auch mit einer Menge von Beschränkungen B = {B₁ . . . Bt}. Formal besteht jede Beschränkung Bi aus zwei Teilen:
  • - die Menge von Variablen Si = {Xi1, . . . , Xÿ(i)} ⊆ X, über die die jeweilige Beschränkung definiert ist (auch bezeichnet als Beschränkungs-Untermenge);
  • - eine mathematische Relation reli, welche über Si definiert ist: reli ⊆ Di1 x . . . x Dÿ(i).
Gilt für eine Beschränkungs-Untermenge Si ⊂ X, so nennt man die mit Si verbundene Beschränkung Bt eine lokale Beschränkung; gilt für eine Beschränkungs-Untermenge Si = X, so nennt man die mit Si verbundene Beschränkung Bi eine globale Beschränkung. Die Mächtigkeit (Kardinalzahl) |Si| einer Beschränkungs-Untermenge Si wird auch als Grad der Konsistenz bezeichnet, die die mit ihr verbundene Beschränkung Bi erreicht; ist der Konsistenzgrad von Bi etwa k, spricht man auch von k-Konsistenz (des Beschränkungsnetzes BN), zu der die Beschränkung Bi ihren Teil beiträgt. Als Schema SCH eines Beschränkungsnetzes bezeichnet man die Menge aller Beschränkungs- Untermengen Si, für die Beschränkungen definiert sind, d. h. SCH(BN) = {S₁ . . . St}, Si ⊆ X. Als Lösung eines Beschränkungsnetzes wird jede gültige Belegung aller Variablen Xi mit je genau einem Wert aus den jeweiligen Grundbereichen Di verstanden, die keine der Beschränkungen Bi verletzt. Bei Beschränkungsnetzen über diskretwertige Variablen lassen sich alle Lösungen durch systematisches Aufzählen aller Variablenkombinationen finden. Es gibt allerdings effizientere Verfahren. Da die Variablenwerte im allgemeinen Untermengen des Variablengrundbereiches sind, die häufig aus mehr als einem Element bestehen, enthält ein aktuell gültiger Variablenwert typischerweise Unsicherheit. Erst wenn der aktuell gültige Variablenwert eine Menge der Mächtigkeit 1 (ein gültiger Wert) bzw. 0 (leere Menge/Inkonsistenz entdeckt) ist, wird die Unsicherheit einer Variablenbelegung vollständig abgebaut. Eine aktuelle Übersicht der Grundlagen von Beschränkungen und Beschränkungsnetzwerken findet sich in S. C. Shapiro, Encyclopedia of Artificial Intelligence, 2. Auflage, John Wiley: New York 1992; Schlagwörter "Constraint Networks" und "Constraint Satisfaction" (Seiten 276-293). Der dort angegebene Stand der Technik einschließlich Literaturquellen beschäftigt sich ausnahmslos mit der softwaremäßigen Realisation von lokalen Beschränkungen. Es sind auch dem einreichenden Erfinder keine Realisationen von lokalen Beschränkungen in der Form von digitalen Schaltkreisen (z. B. als Koprozessor oder anwendungsspezifischer integrierter Schaltkreis) bekanntgeworden. Die fachsprachlichen Ausdrücke zur Mengenlehre und zu mathematischen Relationen und Funktionen orientieren sich an A. Hilbert, Nachschlagebücher für Grundlagenfächer: Mathematik, VEB Fachbuchverlag: Leipzig 1989. Die Fig. 1 bzw. 3 bis 5 (Schaltungen) orientieren sich an DIN 40900 Teil 12 (M. Klein, Einführung in die DIN-Normen, 11. Auflage, Teubner: Stuttgart 1993 und Beuth: Berlin 1993; DIN 40900 Teil 12, S. 707-715) bzw. der praktischen Anwendung dieser Norm, wie sie z. B. in U. Tietze, Ch. Schenck, Halbleiter-Schaltungstechnik, 8. Auflage, Springer: Berlin 1986, insbesondere Seiten 190-268, 563-593, 635-696, sowie in P. Pernards, Digitaltechnik, 2. Auflage, Hüthig: Stuttgart 1989 anhand von Beispielen vorgestellt wird. Die Darstellung von Bussen orientiert sich an U. Tietze, Ch. Schenck, a. a. O. Die in Schaltungsausführung 2 verwendete symbolische zeitliche Logik wurde vorgestellt in J. F. Allen, Maintaing Knowledge about Temporal Intervals, November 1983, Volume 26, Number 11, Communications of the ACM; S. 832-843. Eine Erörterung von Bitvektoren zur Darstellung von Mengen findet sich z. B. in G. L. Steele, Common Lisp: The Language, Digital Press: Bedford, Massachusetts, USA 1984; S. 221.
Beispiel 1: Beschränkungsnetz mit lokalen Beschränkungen
Aufgrund der Neuigkeit des Gebietes "Beschränkungsnetze" wird ein praktisches Beispiel gegeben. Das Beschränkungsnetz BN bestehe aus sechs Variablen Xi, welche die Menge X = {X₁, X₂, X₃, X₄, X₅, X₆} bilden. Fünf der sechs Variablen sollen den diskreten Variablengrundbereich Di = {2, 3, 4, 5, 6} haben, i ∈ {1, 2, 4, 5}. Es gelte außerdem D₃ = {2, 3, 4, 6}. Dann sollen die folgenden fünf Beschränkungen Bi, i ∈ {1, 2, 3, 4, 5}, zwischen den Variablen gelten:
X₁+X₂X₃(B₁)
X₁+X₅X₆(B₂)
X₃+X₄=9(B₃)
X₁+X₃X₅(B₄)
X₆X₃(B₅).
In Fig. 2 ist dieses Beschränkungsnetz graphisch dargestellt (gemäß einem graphischen Standard zur Darstellung von Beschränkungen, vorgeschlagen in: S. Becker, GRECO: Graphische Darstellung von Constraint-Netzen, Technischer Bericht TUHH-ETVIII-1993- 03, Arbeitsbereich Prozeßautomatisierungstechnik, Technische Universität Hamburg- Harburg, Hamburg 1993). Die sechs großen Kreise stehen für die sechs globalen Variablen X₁ bis X₆, einschließlich des jeweiligen Variablengrundbereiches der Variable. Die fünf Rechtecke stehen für die fünf Beschränkungen Bi; sie sind innen jeweils beschriftet mit der Relation, die die einzelnen Variablen beeinflußt (eine Funktion wird als eine spezielle Relation angesehen); den verbundenen globalen Variablen werden dazu lokale Namen (z. B. V₁, V₂, V₃) gegeben. Die Kanten verbinden je einen Kreis (Variable) mit einem Rechteck (Beschränkung); auf diese Weise erkennt man, welche Variable von welcher Beschränkung eingeschränkt wird. Eine Konstante (z. B. 9 in (B₃)) wird durch den Wert der Konstanten eingeschlossen in einem kleinen Kreis gekennzeichnet; eine Konstante entspricht also einer Variable mit einem Grundbereich von genau einem Wert. Durch systematisches Probieren erhält man nun die beiden einzigen Lösungen X₁=2, X₂=2, X₃ =4, X₄=5, X₅=6, X₆=5 bzw. X₁=2, X₂=2, X₃=4, X₄=5, X₅=6, X₆=6 für das obige Beschränkungsnetz. Beginnt man z. B. willkürlich mit der Belegung X₁=2 und X₂=2, so erhält man wegen (B₁): 2+2=4X₃, oder X₃ ∈ D₃/{2, 3}={2, 3, 4, 6} {2, 3} = {4, 6}. Der Grundbereich von V wird also durch Anwendung von (B1) stark beschränkt. Bemerkenswert ist, daß je Variable Mengen legaler Belegungswerte verwaltet werden müssen (und nicht bloß einzelne Werte). Diese Eigenschaft schlägt sich auch in der Schaltungsanordnung nieder, wie sie erfindungsgemäß vorgeschlagen wird. - Untersucht man die Struktur des obigen Beschränkungsnetzes, erhält man folgende Merkmale:
  • - Vier der fünf lokalen Beschränkungen sind vom Grad 3 und tragen zur 3-Konsistenz (manchmal auch als Pfad-Konsistenz (englisch: Path Consistency) bezeichnet) des Netzes bei.
  • - Eine der fünf lokalen Beschränkungen ist vom Grad 2 und trägt zur 2-Konsistenz (manchmal auch als Kanten-Konsistenz (englisch: Arc Consistency) bezeichnet) des Netzes bei.
  • - Die auftretenden Relationen (Funktionen) sind V₁+V₂V₃, V₁+V₂=V₃, V₁ V₂ sowie V₁+V₂V₃.
Da diese Erfindung eine Schaltungsanordnung nur für einzelne, lokale Beschränkungen Bi betrachtet, wird die Lösungssuche für das Gesamtnetz nicht weiter erörtert.
Problem
Der im Patentanspruch 1 angegebenen Erfindung liegt das Problem zugrunde, auf welche Weise überhaupt lokale Beschränkungen wirtschaftlich als digitale Schaltungsanordnung realisiert werden können, damit eine schnelle Berechnung lokale Beschränkungen durch Digitalelektronik möglich wird. Bisher bekannte Ausführungen lokaler Beschränkungen sind softwarebasiert.
Lösung
Dieses Problem wird durch die in Patentanspruch 1 aufgeführten Merkmale gelöst, zu denen unter anderen die Zuordnung von Mengen von Objekten zu einzelnen Variablen gehört, sowie die ausgangsseitige Hindurchführung von Variablen durch die Schaltungsanordnung. Die interne Beschaltung zur Ausführung einer lokale Beschränkung sorgt dann dafür, daß die mengenmäßige Belegung einer ausgangsseitigen Variablen eine, echte oder unechte, Teilmenge der gleichen Variablen eingangsseitig ist. Patentansprüche 2 bis 8 geben weitere wahlweise Ausgestaltungen der Erfindung an.
Erreichte Vorteile
Der mit der Erfindung erreichte Vorteil besteht insbesondere darin, daß mit der vorgestellten Schaltungsanordnung ein Mittel zur Verfügung steht, das eine schnelle Berechnung von lokalen Beschränkungen durch Rückgriff auf die Digitaltechnik erlaubt.
Übersicht der Erfindung
In Fig. 1 (Übersichtsschaltbild) ist die allgemeine Form der erfindungsgemäßen Schaltungsanordnung wiedergegeben. Gemäß der hier vorgestellten Erfindung werden lokale Beschränkungen als digitale Schaltungsanordnung ausgeführt. Herausragende Merkmale der Erfindung sind:
  • - Die m (lokalen) Variablen Vk tauchen im Übersichtsschaltbild zweimal auf: sie werden der Schaltung einmal eingangsseitig zugeführt (k ∈ {1, 2, . . . , m}) und heißen dann Vk,E.
  • - Zweitens werden die m Variablen Vk auch ausgangsseitig fortgeführt und heißen dann Vk,A. Auf diese Weise kann die Beschränkung (in der Form der digitalen Schaltungsanordnung) auf die Variablen einwirken und die zulässigen Variablenbelegungen (gemäß Variablengrundbereich) ausgangsseitig beschränken, soweit zwingend für diese Beschränkung erforderlich.
  • - Eine wahlweise Änderungslogik ÄL, welche anzeigt, ob sich Variablenwerte ausgangsseitig verändert haben.
  • - Eine wahlweise Konsistenzlogik KL, welche anzeigt, ob die lokale Beschränkung bei der gegenwärtigen Variablenbelegung in sich widerspruchsfrei ist oder nicht.
  • - Ein optionales eingangsseitiges Steuersignal S, mit dem z. B. Betriebszustände umgeschaltet werden können oder Takt- oder Setzsignale zugeführt werden.
  • - Alle Signale sind als Bus ausgeführt (in der Figur kenntlich gemacht durch einen schrägen Balken, manchmal darunter mit Angabe der Busbreite); allerdings ist die jeweilige Busbreite noch unbekannt und von der jeweiligen Anwendung (Typ der lokalen Beschränkung) und Schaltungsausführung abhängig. Auch Busse der Breite 1 sind möglich, sie entsprechen dem gewöhnlichen logischen Einzelsignal.
Eingangsseitig sind m Variablen V1,E . . . Vm,E vorhanden, die auch ausgangsseitig auftauchen (allerdings möglicherweise verändert, d. h. spezialisiert und mit weniger Unsicherheit behaftet). Die m Variablen nehmen dabei, anders als bei konventionellen digitalen Schaltungsanordnungen, im allgemeinen nicht genau einen Wert an, sondern stets eine Menge von potentiellen Werten, d. h. den Variablengrundbereich oder Teilmengen davon, und im Extremfall sogar die leere Menge (sog. Inkonsistenz des Beschränkungsnetzes). Die Variablenwerte sind also im allgemeinen Mengen von Zahlen (siehe Schaltungsausführung 1) oder Mengen von Symbolen (siehe Schaltungsausführung 2) und keine einzelnen Zahlen oder Symbole. Die Mächtigkeit dieser Mengen nimmt dabei monoton ab (|Vk,A||Vk,E|), bezogen auf eine einzelne erfindungsgemäße Schaltungsanordnung für Beschränkungen gemäß Fig. 1. Ausgangsseitig treten gemäß Fig. 1 noch zwei weitere wahlweise Signale auf: ein Konsistenzsignal K und ein Änderungssignal (Vektor) Ä. Das Konsistenzsignal K ist logisch "1" (d. h., die lokale Beschränkung ist bezüglich ihrer Variablen konsistent), außer wenn:
  • - eine Variable ausgangsseitig die leere Menge annimmt;
  • - innerhalb der Schaltungsanordnung ein nicht auflösbarer Widerspruch zwischen Variablen auftritt (bei Beschränkung (B3) aus Beispiel 1 etwa 2+3=9).
In den letzten beiden Fällen nimmt das Konsistenzsignal K den Wert logisch "0" an. Damit zeigt die lokale Beschränkung an, daß sie für die aktuelle eingangsseitige Variablenbelegung eine Inkonsistenz (d. h., einen Widerspruch zwischen Variablenwerten) entdeckt hat. Das Konsistenzsignal kann wie beschrieben als Einzelsignal ausgeführt sein, oder bei Bedarf auch als Bus ausgeführt werden und damit genauer anzeigen, bei welcher Variablen eine Inkonsistenz entdeckt wurde.
Schließlich zeigt das Änderungssignal Ä (ein Vektor aus bis zu m+1 Einzelsignalen) für jede interessierende Variable durch den Zustand logisch "1" an, daß die Mächtigkeit der Variablen Vk bezogen auf die lokale Beschränkung abgenommen hat, daß also |Vk,A|<|Vk,E|. Deshalb ist Ä ein Vektor bzw. typischerweise ein Bussignal der Breite m. Dann zeigt die m+1 Stelle von Ä an, daß sich überhaupt eine der m Variablen verändert hat (logisches Oder über die Signale Ä[m:1]).
Natürlich kann man signalweise auch eine umgekehrte Zuordnung der Logikpegel treffen, ohne damit die erfindungsgemäße Bedeutung zu verändern, wie dem Fachmann oder der Fachfrau bekannt ist. Schließlich kann man anwendungsbezogen einige der Vektorelemente (Signale) auch weglassen.
Die herkömmliche Struktur gerichteter Eingangs- und Ausgangsvariablen einer digitalen Schaltungsanordnung wird mit dieser Erfindung also durchbrochen. Es besteht keine strenge Direktionalität zwischen Ein- und Ausgangsvariablen mehr. Jede vorkommende Variable einer lokalen Beschränkung mit Mengenbelegung ist im Prinzip sowohl eingangsseitige als auch ausgangsseitige Variable und tritt daher zweimal auf. Es kann sein, daß die einzelne Variable unverändert bleibt (eingangsseitiger Variablenwert gleich ausgangsseitiger Variablenwert), oder daß mehrere oder alle Variablen ausgangsseitig verändert werden. Die genaue Richtung des ausgangsseitigen Datenflusses steht also nicht starr fest und kann nur durch Studium der ausgangsseitigen Änderungen der Variablenwerte festgestellt werden. Deshalb wird hier der Begriff "multidirektionaler Datenfluß" bevorzugt, im Gegensatz zum herkömmlichen unidirektionalen Datenfluß (z. B. bei der ALU 74181 von den Eingangsworten A und B zum Ausgangswort/Ergebnis C). Wo das Ergebnis einer Beschränkung abgelegt wird, soweit dieses Ergebnis eine ausgangsseitige Veränderung der Werte der Eingangsvariablen darstellt, läßt sich also nicht sicher vorhersagen. Die einzig sichere Aussage besteht darin, daß die ausgangsseitigen Variablen (echte oder unechte) Teilmengen der gleichen Variablenwerte eingangsseitig sind. In herkömmlichen, direktionalen Schaltungen herrschen daneben direktionale Bauelemente vor, auch aufgrund der gegenwärtigen am Markt verfügbaren digitalen Schaltungstechnologien, welche in der Regel direktional aufgebaut sind. Die hier vorgestellte Erfindung benutzt also in der Regel intern solche direktionalen, konventionellen Schaltelemente (Schaltnetze oder Schaltwerke), um nach außen eine multidirektionale Schaltung zu realisieren.
Realisierte Schaltungsausführungen der Erfindung
Die nachfolgenden Schaltungsausführungen der erfindungsgemäßen Schaltungsanordnung wurden in der Form anwenderprogrammierbarer Gate-Arrays realisiert. Zur Anwendung kamen die FPGA-Familien TPC10 bzw. TPC12 der Firma Texas Instruments. Allgemein lassen sich digitale Schaltkreise auch kompatibel zur TTL-Familie SN74 . . . aufbauen; wegen des hohen Bekanntheitsgrades wird bei den Schaltungsausführungen auch darauf hingewiesen, wie die Schaltungen jeweils unter Zuhilfenahme von Integrierten Schaltkreisen der Familie SN74 . . . (und Kompatible) realisiert werden könnte.
Schaltungsausführung 1a: Multidirektionaler Addierer (Sparversion)
In Fig. 3 findet sich die erfindungsgemäße Realisation eines multidirektionalen Addierers (entspricht der Relation "V₁+V₂=V₃" aus Fig. 2). Der vorgestellte Addierer benutzt dabei duale Ganzzahlenarithmetik, Zweierkomplementdarstellung für negative Zahlen und eine feste Wortbreite von 16 Bit. Diese Merkmale des multidirektionalen Addierers wurden jedoch nur der Einfachheit halber gewählt und sind austauschbar; mit einer gleichartigen Anordnung ließe sich z. B. ein multidirektionaler Fließkommaaddierer mit z. B. 80 Bit Wortbreite nach dem IEEE-Standard bauen, wie für den Fachmann oder die Fachfrau sofort erkennbar. Dabei wird die Dualzahl V₁ der Relation "V₁+V₂=V₃" eingabeseitig als (16+1)-Bit-breiter Bus ausgeführt, genannt V1,E[16:0]. Bit 15 von V1,E ist dabei das höchstwertige Bit (MSB, Most Significant Bit) der Dualzahl V₁, Bit 0 ist das niederstwertige Bit (LSB, Least Significant Bit). Bit 16 von V1,E ist ein Anzeigebit, das anzeigt, ob die Dualzahl V₁ zur Zeit exakt bestimmt ist oder nicht exakt bestimmt ist. Bedeutung: Falls die Dualzahl V₁ exakt bestimmt ist, was gleichbedeutend sein soll mit |V₁|=1 (d. h., die Mächtigkeit der Variablen V₁, als Menge betrachtet, ist 1), wird gesetzt V1,E16=1. Falls die Dualzahl V₁ noch nicht exakt bestimmt ist, was dann gleichbedeutend ist mit 1<|V₁||Grundbereich(V₁)| = 65536, wird gesetzt V1,E16= 0; die Dualzahl heißt dann noch unbestimmt. Die Dualzahl V₁ nimmt also entweder genau einen Wert an, oder maximal so viele Werte, wie ihre Variablengrundmenge einzelne Werte hat; zwischen diesen beiden Wertebereichen (nämlich 1 bzw. 2 bis 65536) sind bei Schaltungsausführung 1a keine Abstufungen vorgesehen; erfindungsgemäß sind solche Abstufungen jedoch denkbar und auch durchaus sinnvoll (ökonomische Aufwandsabwägung). Dies ist eine Vereinfachung, um nicht bis zu 65536 Zahlen (bei 16 Bit-Dualzahlen) verwalten zu müssen, denn V₁ ist ja grundsätzlich eine Menge von Zahlen. (Eine andere denkbare Vereinfachung wäre z. B. die Hinzunahme von offenen, halboffenen oder geschlossenen Zahlenintervallen mit Verwaltung von unterer und oberer Intervallgrenze.) - Mit Schaltungsausführung 2 wird weiter unten eine Schaltung vorgestellt, die tatsächlich in Ausprägung der hier vorgestellten Erfindung (Symbol-) Mengen exakt verwaltet.
Die Dualzahlen V₂ und V₃ der Relation "V₁+V₂=V₃" werden gleichfalls als (16+1)-Bit-breiter Bus ausgeführt, genannt V2,E[16:0] bzw. V3,E[16:0]. Die zu Dualzahl V₁ gemachten Anmerkungen gelten alle sinngemäß. Gilt für eine (oder mehrere) der Dualzahlen V₁, V₂, V₃ bzw. deren schaltungstechnische Äquivalente V1,E[16 : 0], V2,E[16:0], V3,E[16:0], daß V1,E16 = 0, V2,E16 = 0, oder daß V3,E16 = 0, so soll diese Dualzahl als unbestimmt bezeichnet werden, abgekürzt U (siehe oben; siehe Wahrheitstabelle unten). U entspricht also einer 16-Bit-Dualzahl 0′XXXXXXXX′XXXXXXXX (X = Don′t-Care: entweder logisch "0" oder logisch "1"). (Die Hochkommata dienen hier nur zur übersichtlichen Gliederung der Binärzahlen bzw. Bitvektoren.) Gilt für eine (oder mehrere) der Dualzahlen V₁, V₂, V₃ bzw. deren schaltungstechnische Äquivalente V1,E[16:0], V2,E[16 : 0], V3,E[16:0], daß V1,E16=1, V2,E16=1, oder daß V3,E16=1, so soll diese Dualzahl als bestimmt bezeichnet werden, abgekürzt B (siehe Wahrheitstabelle unten). B entspricht also einer 16-Bit-Dualzahl 1′XXXXXXXX′XXXXXXXX (X = Don′t-Care). Ist sie bestimmt, stellen jeweils Bits 15 bis 0 der Variablen eine wohlbestimmte Dualzahl im Zweierkomplement dar. Dann kann Schaltungsausführung 1a mit folgender Wahrheitstabelle beschrieben werden:
Erklärungen zur Wahrheitstabelle: Das jeweils sechzehnte Bit V1,E16, V2,E16, V3,E16 der drei eingangsseitigen Variablen V1,E[16 : 0], V2,E[16 : 0], V3,E[16 : 0] bestimmt, ob die jeweilige Dualzahl (Variable) eingangsseitig unbestimmt ist oder bestimmt. Ist sie bestimmt, stellen jeweils Bits 15 bis 0 der Variablen eine wohlbestimmte Dualzahl im Zweierkomplement dar; ist sie unbestimmt, kommt als Zahlenwert der gesamte Grundbereich der verbundenen Variablen in Frage. Aus den eingangsseitigen Bits Nr. 16 der Variablen läßt sich nun bestimmen, ob es dem multidirektionalen Addierer möglich sein wird, ausgangsseitig Ergebnisse auszurechnen, die weniger unbestimmt sind als eingangsseitig (d. h., ob Unsicherheit abgebaut werden kann). Die drei Bits (V1,E16, V2,E16, V3,E16) spannen neun mögliche Fälle auf:
  • - (V1,E16, V2,E16, V3,E16) = (0, 0, 0): Alle eingangsseitigen Variablen sind unbestimmt; also müssen die ausgangsseitigen Variablen auch unbestimmt sein.
  • -(V1,E16, V2,E16, V3,E16) = (0, 0, 1) oder (V1,E16, V2,E16, V3,E16) = (0, 1, 0) oder (V1,E16, V2,E16, V3,E16) = (1, 0, 0): Genau eine eingangsseitige Variable ist bestimmt; also kann nur diese eine ausgangsseitige Variablen auch bestimmt sein, sie ist dann gleich der gleichen Variable eingangsseitig. Die beiden anderen Variablen verbleiben auch ausgangsseitig unbestimmt. - Aus Gründen der Schaltungsökonomie kann hier sogar gefordert werden, daß alle drei ausgangsseitigen Variablen unbestimmt sind. Denn wegen der bekannten Gleichheit der bereits bestimmten eingangsseitigen Variable mit ihrer ausgangsseitigen Entsprechung wird die ausgangsseitige Entsprechung möglicherweise nicht abgefragt werden, was man zu der vereinfachten Schaltung gemäß Fig. 3 (sog. Sparversion) benutzen kann. - In der Wahrheitstabelle steht in diesem Fall für die eine ausgangsseitige Variable, deren eingangsseitige Entsprechung bereits bestimmt ist U (B): das soll bedeuten, daß sie gemäß Schaltungsausführung 1a (entsprechend Fig. 3) aus wirtschaftlichen Gründen nicht bestimmt wird, obwohl sie gemäß Schaltungsausführung 1b bestimmt werden kann unter Hinzunahme von drei zusätzlichen, 17-Bit-breiten Multiplexern (siehe Schaltungsausführung 1 b). Solche speziellen, wirtschaftlichen und beschränkungsbezogenen Abwägungen lassen sich im Rahmen der hier vorgestellten Erfindung häufig treffen und sind dem Fachmann oder der Fachfrau einsichtig und ohne Mühe durchführbar. Sie werden deshalb im weiteren nicht weiter (außer in Schaltungsausführung 1b) kommentiert.
  • - (V1,E16, V2,E16, V3,E16) = (0, 1, 1) oder (V1,E16, V2,E16, V3,E16) = (1, 0, 1) oder (V1,E16, V2,E16, V3,E16) = (1, 1, 0): Genau zwei eingangsseitige Variablen sind bestimmt; also kann auch die dritte, noch unbestimmte eingangsseitige Variable durch Ausführung einer Addition oder Subtraktion bestimmt werden (entweder gemäß V₃= V₁+V₂, oder gemäß V₂=V₃-V₁, oder gemäß V₁=V₃-V₂; deshalb sind drei konventionelle, unidirektionale Addierer/Subtrahierer ADD/SUB vorhanden). Damit sind dann alle drei ausgangsseitigen Variablen bestimmt worden, die vorhandene Unsicherheit wurde also von dem multidirektionalen Addierer abgebaut.
  • - (V1,E16, V2,E16, V3,E16) = (1, 1, 1): Alle drei eingangsseitigen Variablen sind bestimmt; damit sind auch alle drei ausgangsseitige Variablen bereits bestimmt (sie sind gleich den jeweiligen eingangsseitigen Variablen). Jedoch kann es sein, daß ein Widerspruch auftritt (z. B. "2+3=9", entsprechend Zeile 9 der Wahrheitstabelle). In diesem Falle geht das Konsistenzsignal, anders als in den anderen 8 aufgezählten Fällen, auf logisch "0" (K = 0). Damit wurde der (von außen, über die drei Eingangsvariablen herangeführte) Widerspruch durch die Schaltungsausführung erfolgreich aufgedeckt.
Schaltungsbeschreibung zu Fig. 3: Als eigentliche Verarbeitungselemente zur Durchführung der 16-Bit-Additionen bzw. -Subtraktionen (im Zweierkomplement) werden die Schaltungselemente ADD bzw. SUB herangezogen. ADD und SUB lassen sich z. B. unter Verwendung von Schaltkreisen des Typs 74181 und 74182 herstellen, die entsprechend den Datenblättern durch Mehrfachverwendung dieser Schaltkreise auf 16 Bit Wortbreite gebracht werden. 74181 läßt sich auch durch einfache Beschaltung der Mode- Eingänge zwischen Addition (A+B) und Subtraktion (A-B) umschalten. In den Bibliotheken der FPGA-Familie TPC10/12 von Texas Instruments andererseits befindet sich ein Bibliothekselement FADD16 bzw. VADC16C, welches bereits einen fertigen 16- Bit-Addierer (A + B = C) mit Carry-In-Eingang realisiert. Durch Negation der 16 Bits des Datenwortes B und Setzen von Carry-In = 1 kann ein solches Bibliothekselement auch als Subtrahierer benutzt werden (siehe z. B. U. Tietze, C. Schenck, Halbleiter- Schaltungstechnik, S. 584/585, 8. Auflage, Springer: Berlin 1986). Die einfachen Gatter der Schaltungsausführung 1a (Inverter, Und- und Oder-Gatter usw.) stehen auch mit der Familie SN74 . . . zur Verfügung, bzw. stehen als Bibliothekselemente der FPGA-Familie TPC10/12 zur Verfügung. (Im weiteren werden als logische Operatoren benutzt: + für logisches Oder, & für logisches Und, nicht für logische Negation.) Die drei Zweifach-Und- Gatter der Fig. 3 stellen fest, ob ein von den Addierern/Subtrahierern errechnetes Wort aufgrund der Bestimmtheit der beiden Eingangswörter auch bestimmt (gültig) ist, gemäß: V1,E16 & V2,E16 = V3,A16, V3,E16 & V1,E16 = V2,A16, V2,E16 & V3,E16 = V1,A16. Das Dreifach-Und-Gatter berechnet ein Hilfssignal V123-bestimmt = V1,E16 & V2,E16 & V3,E16, welches dann in die Änderungs- bzw. Konsistenzlogik ÄL bzw. KL eingespeist wird. Die Änderungslogik hat drei Ausgangssignale Ä[2 : 0], die so errechnet werden: Ä3 = V1,E16 & V2,E16 & (nicht V123-bestimmt), Ä2 = V1,E16 & V3,E16 & (nicht V123- bestimmt), Ä1 = V2,E16 & V3,E16 & (nicht V123-bestimmt). Die drei Änderungssignale zeigen an, welches der ausgangsseitigen Wörter von den Addierern/Subtrahierern neu bestimmt worden ist und eine Änderung erfahren hat, da diese Änderung an die Außenwelt (d. h., an die andere Beschränkungen im Beschränkungssystem BN) weitergegeben werden muß. Die Konsistenzlogik erzeugt ein ausgangsseitiges Konsistenzsignal K; K ist stets logisch "1", außer wenn die drei Eingangsvariablen V1,E[16:0], V2,E[16:0], V3,E[16 : 0] bestimmt sind (d. h. V1,E16, V2,E16, V3,E16 sind alle logisch "1"), die Addition jedoch auf einen Widerspruch führt (d. h. V1,E[15:0]+V2,E[15:0] = V3,A[15:0] ≠ V3,E[15:0]), in diesem Fall ist K logisch "0". Es gilt: K = (nicht (V123-bestimmt))+ (V3,E[16:0] = V3,A(16 : 0]). Den Vergleich der beiden Variablen V3,E[15:0] und V3,A[15:0] auf Gleichheit kann man mit handelsüblichen Komparatoren durchführen (7485 und Kompatible), die auf die erforderliche Wortbreite von 16 Bit zusammengeschaltet werden; oder man nimmt mehrere Bibliothekselemente vom Typ ICMP8 der FPGA-Familie TPC10/12 und verschaltet sie zu einem Komparator von 16 Bit Wortbreite. Solche Schaltungen sind z. B. in P. Pernards, Digitaltechnik, Hüthig: Heidelberg 1989, S. 75-77, beschrieben. Die so abgeleiteten Signale K und Ä[3 : 1] entsprechen der obigen Wahrheitstabelle. - Aus der Schaltungsbeschreibung wird offensichtlich, daß durch weitgehende Parallelisierung (ein Addierer, zwei Subtrahierer) die Errechnung der Ergebnisse beschleunigt wird auf Kosten der Chipfläche bzw. der Anzahl der verwendeten Schaltkreise, welche beide ansteigen. Natürlich wäre es möglich, eine funktional gleichartige Schaltung z. B. mit nur einem einzigen, umschaltbaren Addierer/Subtrahierer aufzubauen; Zwischenergebnisse müßten dann in Verriegelungsspeichern (Latches) abgelegt werden, und eine Art Mikroprogrammsteuerung müßte den internen Ablauf der Schaltung überwachen, bei längerer Rechenzeit. Solche Abwägungen zwischen Chipfläche, Rechenzeit und Kosten sind dem Fachmann oder der Fachfrau geläufig, sie verändern jedoch nicht den Kern der hier vorgelegten Erfindung. Auf eine detaillierte Erörterung möglicher Varianten kann daher verzichtet werden. Schließlich ist es auch hier und da möglich, durch gezielte Verwendung von Treibern, auch in Abhängigkeit von der verwendeten Schaltungstechnologie, Einzelsignale zu verstärken und die Gesamtrechenzeit zu verkürzen. Auch diese Technik ist dem Fachmann oder der Fachfrau ausreichend bekannt und braucht nicht erörtert zu werden.
Schaltungsausführung 1b: Multidirektionaler Addierer mit Multiplexern
Die Schaltungsausführung 1b entspricht der Schaltungsausführung 1a gemäß Fig. 3, außer daß der Schaltungsausführung 1a ausgangsseitig noch drei 17-Bit-breite Multiplexer nachgeschaltet werden. Die drei nachgeschalteten Multiplexer werden dabei angesteuert unter Zuhilfenahme der drei Ä[3:1]-Signale. Auf diese Weise wird erreicht, daß die Einträge U (B) der obigen Wahrheitstabelle (lies: "aus wirtschaftlichen Gründen unbestimmt, im Prinzip aber bestimmbar") ersetzt werden können durch B (d. h., bestimmt). Die Schaltungsausführung 1b ist durch die drei Multiplexer wirtschaftlich aufwendiger, kann aber in einigen Anwendungen des multidirektionalen Addierers nützlich oder notwendig sein. Die Schaltung realisiert folgende Wahrheitstabelle:
Schaltungsbeschreibung der zusätzlichen Multiplexer: Das Änderungssignal Ä[3:1] aus Schaltungsausführung 1a dient jetzt nicht nur zur Signalisierung von Änderungen an die Außenwelt, sondern wird auch dazu benutzt, die drei ausgangsseitig nachgeschalteten 17- Bit-Multiplexer zu steuern. Solange Ä[k] = 0 (k ∈ {1, 2, 3}), schaltet der für Variable/Wort k zuständige Multiplexer einfach die Eingangswerte auf den Ausgang (man beachte, daß der neue Ausgang Vk,A[16 : 0] jetzt "hinter" den Multiplexern liegt): Vk,A[16 : 0]=Vk,E[16:0]. Nur wenn Ä[k] = 1, wird der schaltungsanordnungsintern neu errechnete Variablenwert auf den Ausgang durchgeschaltet. Mit dieser Modifikation von Schaltungausführung 1a wird die sich ergebende Wahrheitstabelle "sauberer" im Sinn der hier vorgelegten Erfindung, wie bereits unter Schaltungsanordnung 1a erläutert. Dies geschieht unter Inkaufnahme der zusätzlichen Kosten und Laufzeit für die Multiplexer. - Die Multiplexer können wie folgt realisiert werden: in der Familie SN74 . . . z. B. unter Verwendung von 74157 (oder ähnlichen Schaltkreisen), die durch entsprechende parallele Anordnung auf die gewünschte Wortbreite (17 Bit) gebracht werden; in der FPGA-Familie TPC10/12 unter Verwendung der Bibliothekselemente MX2, MX4, MX8 oder MX16.
Schaltungsausführung 2: Multidirektionales zeitliches Schließen
Erfindungsgemäß können auch nicht-numerische Schaltungsausführungen der Schaltungsanordnung für Beschränkungen realisiert werden. Dies soll an einer multidirektionalen Schaltungsausführung für zeitliches Schließen verdeutlicht werden. In der deutschen Offenlegungsschrift DE 40 07 415 A1 ist eine Klasse von unidirektionalen Schaltnetzen beschrieben, die als Variablengrundmengen die Menge der Symbole der möglichen relativen Lage je zweier Zeitintervalle verwendet (nämlich z. B. die 13 Symbole (in Mengennotation): {equals, finished-by, finishes, started-by, starts, met-by, meets, overlapped-by, overlaps, contains, during, after, before}). Aus der gegenseitigen Lage von je zwei Zeitintervallen I₁ zu I₂ bzw. I₂ zu I₃ aus einer Menge von drei Zeitintervallen I₁, I₂, I₃ kann dann auf die relative zeitliche Lage der beiden Zeitintervalle I₁ zu I₃ geschlossen werden. Die in der deutschen Offenlegungsschrift DE 40 07 415 A1 beschriebene Klasse von unidirektionalen Schaltnetzen vollzieht diesen elementaren zeitlichen Schluß. Damit Symbolmengen von digitalen Schaltungen verarbeitet werden können, muß eine digitale Kodierung solcher Symbolmengen gewählt werden. Dazu werden die Symbole über sog. Bitvektoren kodiert; bei 13 Symbolen benötigt man ein 13- Bit-Wort oder einen 13-Bit-breiten Bitvektor. Jedes Bit ist einem bestimmten Symbol aus der Symbolmenge zugeordnet. Ist das zugeordnete Bit = 1, so soll das Symbol in der Menge vorhanden sein; ist das zugeordnete Bit = 0, so soll das Symbol in der Menge nicht vorhanden sein. (Natürlich ist auch die entgegengesetzte Zuordnung möglich: Bit = 1 zeigt Abwesenheit an, Bit = 0 Anwesenheit in der Menge.) Beispiel: Willkürlich sei zugeordnet Symbol before Bit 0 (LSB), Symbol after Bit 1, . . . , Symbol equals Bit 12 (MSB). Dann lassen sich die drei Variablen V₁, V₂, V₃, welche über die relative Lage dreier Zeitintervalle I₁, I₂, I₃ zueinander berichten sollen, und deren Grundbereich die Symbolmenge {equals [MSB], finished-by, finishes, started-by, starts, met-by, meets, overlapped-by, overlaps, contains, during, after, before [LSB]} sei, jeweils als Bitvektoren der Länge 13 kodieren. Die jeweiligen Bitvektoren sollen deshalb geschrieben werden als Datenbusse V₁[12 : 0], V₂[12 : 0], V₃[12:0]. Es bestehe dann die Zuordnung V₁[12 : 0] ↔ (I₁, I₂), V₂[12 : 0] ↔ (I₂, I₃), V₃[12 : 0] ↔ (I₁, I₃). Durch die eingangsseitigen Zuordnungen von zeitlichen Relationen zu Variablen V1,E[12:0], V2,E[12 : 0], V3,E[12 : 0] können die Symbolmengen bzw. Bitvektoren auch in dem allgemeinen Kodierungsschema der hier vorgestellten Erfindung präsentiert werden (siehe Fig. 1). Entsprechend gelten die ausgangsseitigen Zuordnungen V1,A[12 : 0], V2,A[12:0], V3,A[12 : 0] für die neuerrechneten Werte der lokalen Variablen V₁, V₂, V₃. Die neuberechneten zeitlichen Relationen stehen also schließlich in kodierter Form an den Ausgängen der Schaltungsausführung bereit (Fig. 4). Die in Fig. 4 wiedergegebene Schaltung erfüllt folgenden Zweck: Die wechselseitige Beeinflussung der drei zeitlichen Relationen V₁, V₂, V₃ führt dazu, daß die Anzahl der gültigen Symbole ausgangsseitig (verglichen mit der Eingangsseite) monoton abnimmt. Beispiel: Sei eingangsseitig V1,E = 0′1100′0001′0001 ↔ {finished-by, finishes, overlaps, before}, V2,E = 0′0001′1000′0001 ↔ {starts, met-by, before}, V3,E = 1′0100′1100′0110 ↔ {equals, finishes, met-by, meets, during, after}. Dann errechnet die Schaltungsausführung 2 ausgangsseitig V1,A = 0′0100′0000′0001 ↔ {finishes, before}, V2,A = 0′0001′1000′0000 ↔ {starts, met-by}, V3,A = 0′0000′0100′0110 ↔ {meets, during, after} (errechnet werden die jeweiligen Bitvektoren). Der Vorteil der in Schaltungsausführung 2 beschriebenen Schaltung, die ein spezieller Fall der hier vorgestellten Erfindung ist, besteht in der Darstellung von elementaren zeitlichen Schließschritten als lokale Beschränkung, in der Zusammenfassung mehrerer elementarer Schließschritte zu einer lokalen Beschränkung und damit in größerer Geschwindigkeit gegenüber rein softwarebasierten Lösungen zur Abarbeitung des elementaren zeitlichen Inferenzschrittes, bzw. gegenüber der rein direktionalen Lösung aus DE 40 07 415 A1. Schaltungsbeschreibung: Die drei Eingangsvariablen sind 13-Bit- Worte, welche die je 8192 möglichen Eingangswerte der Eingangsvariablen V1,E[12:0], V2,E[12 : 0], V3,E[12 : 0] annehmen können (dabei bedeute die Belegung 0′0000′0000′0000 die leere Menge, d. h. keine der zeitlichen Relationen sei gültig). Die drei Schaltelemente SAZS ("Schaltungsanordnung für zeitliches Schließen") sind unidirektionale Schaltnetze, die den Schaltungsanordnungen für zeitliches Schließen entsprechen, die in DE 40 07 415 A1 vorgeschlagen werden (hier: Schaltnetz nach DE 40 07 415 A1 für 13-wertige Zeitlogik nach Allen). Die Schaltelemente SAZS haben je zwei 13-Bit-Worte als Eingänge (A und B), und errechnen ein 13-Bit-Wort ausgangsseitig (Wort C); außerdem signalisiert ein Signal INKON durch Annahme von Zustand logisch "1" (Bedeutung: Inkonsistenz entdeckt), ob das ausgangsseitige Wort C = 0′0000′0000′0000. Will man aus den konventionellen SAZS-Schaltelementen eine Beschränkungs-Schaltungsanordnung zur Darstellung des Zusammenhanges zwischen drei zeitlichen Variablen V1,E[12 : 0], V2,E[12:0], V3,E[12 : 0] aufbauen, muß man auf ein rückgekoppeltes Schaltwerk zurückgreifen. Diese Rückkopplung wird geschlossen durch das gesteuerte Und-Gatter, das je Ausgangsvariable dreizehnmal vorhanden ist, um die dreizehn Bits eines jeden SAZS-Ergebnisses C mit dem zugehörigen eingangsseitigen Wort Vk,E[12:0] zu verknüpfen (k = ∈ {1, 2, 3}). Die 3×13 gesteuerten Und-Gatter befinden sich in Fig. 4 jeweils oberhalb eines der drei Schaltelemente SAZS. Das errechnete Ergebnis C jedes SAZS-Schaltelementes muß über ein bitweises logisches Und mit der entsprechenden eingangsseitigen Variablen verknüpft werden (dies entspricht dem Durchschnitt der eingangsseitigen Menge mit der entsprechenden intern errechneten Menge über die 13 zeitlichen Relationen). Damit die Rückkopplungsschleife in einen definierten Zustand versetzt werden kann, muß so lange das Steuersignal S auf logisch "1" gehalten werden, bis jeweils die rückgekoppelten Worte C auf einen nicht zufälligen und stabilen Zwischenwert einschwingen. Dann muß das Steuersignal S auf logisch "0" abgesenkt und dort belassen werden. Schließlich stellen sich die Ausgangsvariablen V1,A[12:0], V2,A[12:0], V3,A[12 : 0] nach Ablauf von maximal zwei Gesamtgatterdurchlaufzeiten längs der jeweiligen Rückkopplungsschleife (d. h., zweimal die Summe aller Gatterdurchlaufzeiten) auf die gewünschten Ausgangswerte ein. Auch andere Zeitlogiken, wie z. B. in DE 40 07 415 A1 beschrieben, lassen sich auf diese Weise als lokale Beschränkung realisieren. Erwähnenswert ist noch das Schaltelement ZI, welches eine Zeitvariable "invertiert"; die Inversion ist jedoch keine aussagenlogische Inversion, sondern die Inversion einer Zeitvariablen (sei z. B. A = {before, meets, overlaps, starts, during, finishes, equals}, so lautet die Inverse gemäß der verwendeten Allen′schen Zeitlogik AI = {after, met-by, overlapped-by, started-by, contains, finished-by, equals}). Das Schaltelement ZI läßt sich sehr einfach durch Pufferung der Signale und Umbenennung eines jeden Signals in seine Inverse realisieren (Fig. 5); lediglich das Signal equals wird auf sich selbst abgebildet. Eine noch wirtschaftlichere Version, die jedoch möglicherweise langsamer arbeitet wegen einer vielleicht bestehenden hohen ausgangsseitigen Signalverzweigung, entsteht durch Ersetzen der dreizehn Signaltreiber (Puffer) aus Fig. 5 durch Drahtbrücken. Die Schaltungsausführung aus Fig. 4 hat darüberhinaus eine Änderungslogik ÄL und eine Konsistenzlogik KL. Die Änderungslogik besteht aus drei 13-Bit-Identitätsvergleichern (Komparatoren), jeweils bis auf die Wortbreite genauso aufgebaut wie der 16-Bit-Vergleicher, der bereits unter Schaltungsanordnung 1a beschrieben wurde. Das Identitätssignal jedes Vergleichers wird noch ausgangsseitig negiert; d. h. z. B. Ä3 berichtet durch Annahme von logisch "1" über die Ungleichheit (Nicht-Identität) von V3,A gegenüber V3,E, und entsprechend für Ä2 und Ä1. Auf ein viertes Signal Ä4, welches die Änderung von mindestens einem der Signale Ä1, Ä2, Ä3 berichtet, wurde in Fig. 4 verzichtet; es kann aber jederzeit durch ein Dreifach-Oder- Gatter realisiert werden gemäß Ä4 = Ä1 + Ä2 + Ä3. Die Konsistenzlogik in Fig. 4 ist schließlich ein Dreifach-Oder-Gatter mit negiertem Ausgang: K = nicht(INKON1 + INKON2 + INKON3).
Weitere Schaltungsausführungen der Erfindung
Obige Schaltungsausführungen geben je ein Beispiel für eine rein quantitative (numerische) lokale Beschränkung (multidirektionaler Addierer), sowie für eine rein qualitative (symbolbasierte) lokale Beschränkung (multidirektionales zeitliches Schließen).
Beide lokalen Beschränkungen sind dritten Grades. Zur Verdeutlichung des Spektrums an Möglichkeiten, welches mit der hier vorgestellten Erfindung abgedeckt wird, sollen einige weitere Schaltungsausführungen kurz vorgestellt werden. Es handelt sich dabei entweder um Schaltungsausführungen, die mit der FPGA-Familie TPC10/12 von Texas Instruments als anwendungsspezifische Schaltkreise realisiert worden sind, oder um gedankliche Varianten solcher Schaltungsausführungen, die jederzeit als Logikschaltungen realisiert werden können.
Schaltungsausführung 3: Vorzeichenwechsler
Setzt man in Schaltungsausführung 1a oder 1b einfach V3,E = {0} (d. h. V3,E[16 : 0] = 1′00000000′00000000), so erhält man eine rein quantitative lokale Beschränkung zweiten Grades, die als Vorzeichenwechsler arbeitet; gemäß V2,A=V3,E -V1,E=0 -V1,E = -V1,E bzw. V1,A=V3,E -V2,E=0 - V2,E = -V2,E. Natürlich läßt sich die Tatsache, daß nun ständig V3,E={0} ist, dahingehend ausnutzen, die sich ergebende Schaltung aussagenlogisch zu vereinfachen, um auf diese Weise Schaltelemente einzusparen und die Schaltung zu beschleunigen. Die entsprechenden Techniken sind dem Fachmann oder der Fachfrau bekannt.
Schaltungsausführung 4: Multidirektionaler Addierer mit Konstante
Ersetzt man in Schaltungsausführung 1a oder 1b einfach eine eingangsseitige Variable mit einem (jedoch außerhalb der Schaltungsanordnung noch frei wählbaren) konstanten Wert (z. B. V3,E = { 9}, wie von Beschränkung (B3) in Beispiel 1 gefordert), so kann man auf Bit 16 einer solchen Variable ein- und ausgangsseitig verzichten, da es ja schaltungsanordnungsintern fest auf logisch "1" gesetzt werden kann, und die Schaltung intern dadurch etwas vereinfachen. Außerdem kann man für bestimmte Anwendungen V₃ nun sogar ausgangsseitig einsparen, da sich der Wert von V3,A nicht verändern wird; die Schaltungsanordnung vereinfacht sich möglicherweise noch einmal. V₃ büßt so die Mengeneigenschaft ein, es reicht ein- oder ausgangsseitig aus, V₃ als einzelne, konstante Zahl darzustellen. V₁ und V₂ behalten jedoch die Mengeneigenschaft weiterhin als notwendig bei und kennzeichnen die sich so ergebende neue Schaltungsanordnung als eine erfindungsgemäße (die Mehrzahl der Variablen ist sowohl eingangs- wie ausgangsseitig vorhanden bzw. benutzt die Mengendarstellung).
Schaltungsausführung 5: Hybrides zeitliches Schließen
In S. Becker, Hybrid Temporal Constraints for Scheduling, Beitrag für die European Conference on Artificial Intelligence (ECM ′94), Amsterdam 1994 wird ein Algorithmus beschrieben, mit dem sich zwei mit Unsicherheit behaftete, quantitativ beschreibbare Zeitintervalle (jeweils dargestellt durch die sechs Variablen Frühester-Anfang, Spätester-Anfang, Frühestes-Ende, Spätestes-Ende, Kürzeste-Dauer, Längste-Dauer) von Unsicherheit befreien lassen, da sie bekanntermaßen in einer (sicheren oder unsicheren) qualitativen, symbolischen zeitlichen Relation zueinander stehen (wegen solcher zeitlicher Relationen siehe Schaltungsausführung 2). Umgekehrt kann die eine unsichere symbolische zeitliche Relation bei wenig numerischer Unsicherheit zwischen den beiden Zeitintervallen durch eine exaktere symbolische zeitliche Relation ersetzt werden. Dieser Sachverhalt kann als lokale Beschränkung 13. Grades formuliert werden (zwei Zeitintervalle mit je sechs numerischen Variablen, eine symbolische zeitliche Relation (Variable) zwischen beiden Zeitintervallen). Eine erfindungsgemäße Realisierung ist möglich und wurde erdacht und teilweise für die FPGA-Familie TPC10/12 mit einem Digitalsimulator simuliert bzw. teilweise als anwenderprogrammierte Gate-Arrays verwirklicht. Bemerkenswert ist neben der hohen Ordnung dieser lokalen Beschränkung die Tatsache, daß die 13 Variablen nicht alle vom gleichen Typ sind (12 numerische, eine symbolische Variable). Solche lokalen Beschränkungen mit "gemischten" Variablen sollen als hybride lokale Beschränkungen bezeichnet werden. Auch hybride lokale Beschränkungen und lokale Beschränkungen eines Grades größer als zehn lassen sich also ohne Schwierigkeiten gemäß der hier vorgeschlagenen Erfindung realisieren. - Bei Schaltungsanordnungen mit vielen ein- und ausgangsseitigen Variablen kann es wegen der sich ergebenden großen, mit der Außenwelt auszutauschenden Bitanzahl (z. B. bei monolithischer Integration) zweckmäßig sein, die Variablen über einen dedizierten Ein- und Ausgabe-Bus gegenüber der Außenwelt zu multiplexen und in Verriegelungsspeichern zwischenzuspeichern.
Aus dem Vorstehenden ist zu entnehmen, daß unter Verwendung der erfindungsgemäßen Schaltungsanordnung lokale Beschränkungen besonders schnell in der Form von Logikschaltungen realisiert werden können.

Claims (8)

1. Schaltungsanordnung zur schnellen Verarbeitung von lokalen Beschränkungen (Constraints) zwischen m diskreten oder kontinuierlichen Variablen (Datenworten), dadurch gekennzeichnet: Daß sämtliche oder wenigstens die Mehrzahl der m Variablen (Datenworte) von der zu realisierenden lokalen Beschränkung beeinflußt werden, wobei sämtliche oder wenigstens die Mehrzahl der m Variablen (Datenworte) wertmäßig belegt werden durch Mengen (Mengen von Zahlen, Adressen, Zeichen, Zeichenketten, Symbolen usw., im Gegensatz zu Zahlen, Adressen, Zeichen, Zeichenketten, Symbolen als Variableneinzelwerte); daß sämtliche oder wenigstens die Mehrzahl der m Variablen sowohl eingangsseitig als auch ausgangsseitig auftreten (ein- und ausgangsseitig bezogen auf die erfindungsgemäße Schaltungsanordnung); daß die Werte der ausgangsseitig auftretenden Variablen stets echte oder unechte Teilmengen des Wertes der jeweils gleichen Variable eingangsseitig sind, soweit die jeweilige Variable die Mengendarstellung benutzt; daß die Variablen aufgrund ihrer Mengeneigenschaft häufig als Busse ausgeführt werden; daß die lokale Beschränkung im Inneren der erfindungsgemäßen Schaltungsanordnung realisiert wird durch Verschaltung konventioneller digitaler Schalt- und Verarbeitungselemente (z. B. Verschaltung herkömmlicher direktionaler Gatter, Addierer, Multiplizierer, Multiplexer, und allgemeiner herkömmlicher direktionaler Schaltnetze und Schaltwerke, bei denen meist die gleiche Variable nicht sowohl eingangs- als auch ausgangsseitig auftritt, sondern nur entweder ein- oder ausgangsseitig), die die zu erzielende ausgangsseitige Beschränkung der Variablen erzeugt, soweit die jeweilige Variable die Mengendarstellung benutzt; daß die schaltungsanordnungsinternen, herkömmlichen direktionalen Schalt- und Verarbeitungselemente weitgehend parallelisiert werden, um eine schnelle Verarbeitung der lokalen Beschränkung zu gewährleisten.
2. Schaltungsanordnung nach Patentanspruch 1, dadurch gekennzeichnet, daß eine Belegung der ein- und ausgangsseitigen Mengen (Variablen) durch Aufzählung aller Elemente über Bitvektor-Kodierung erfolgt, oder daß Belegung der ein- und ausgangsseitigen Mengen (Variablen) durch geordnete Paare (Intervallgrenzen offener, halboffener oder geschlossener Intervalle), oder daß eine Belegung der ein- und ausgangsseitigen Mengen (Variablen) durch ein System von zwei möglichen Variablenwerteklassen (bestimmt mit exaktem Wert/unbestimmt) erfolgt. Diese Belegungsarten können auch nebeneinander verwendet werden.
3. Schaltungsanordnung nach Patentanspruch 1, dadurch gekennzeichnet, daß die lokale Beschränkung sich schaltungsanordnungsintern wahlweise über Steuereingänge beeinflussen läßt (z. B. durch Setzen oder Rücksetzen von Schaltungsteilen, Umschalten des Betriebszustandes der Schaltungsanordnung, Ansteuern der Schaltung mit Taktsignalen).
4. Schaltungsanordnung nach Patentanspruch 1, dadurch gekennzeichnet, daß die Schaltungsanordnung ausgangsseitig über erfolgte Änderungen der ausgangsseitigen Variablenwerte (Mengen) in bezug auf die gleichen Variablen eingangsseitig berichtet mittels einer sogenannten Änderungslogik. Ausgangsseitige Änderungen einer Variablen werden angezeigt durch Annahme des Wertes logisch "1" durch das zugeordnete Änderungssignal.
5. Schaltungsanordnung nach Patentanspruch 1, dadurch gekennzeichnet, daß die Schaltungsanordnung ausgangsseitig entdeckte Widersprüche (Inkonsistenzen) zwischen Variablenwerten berichtet mittels einer sogenannten Konsistenzlogik. Ausgangsseitige Inkonsistenz einer Variablen wird angezeigt durch Annahme des Wertes logisch "0" durch das zugeordnete Konsistenzsignal.
6. Schaltungsanordnung nach Patentanspruch 1, nebst Mischformen der Schaltungsanordnungen 2, 3, 4 oder 5 (z. B. Schaltungsanordnung nach Patentanspruch 1, versehen mit Änderungslogik nach Patentanspruch 4, sowie versehen mit Steuersignalen nach Patentanspruch 3, aber nicht versehen mit Konsistenzlogik nach Patentanspruch 5).
7. Schaltungsanordnung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Schaltung in monolithischer Integration realisiert ist.
8. Schaltungsanordnung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Schaltung aus einem oder mehreren anwenderprogrammierbareren Logikbausteinen realisiert wird.
DE4411514A 1994-04-02 1994-04-02 Schaltungsanordnung zur schnellen Verarbeitung von lokalen Beschränkungen Ceased DE4411514A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE4411514A DE4411514A1 (de) 1994-04-02 1994-04-02 Schaltungsanordnung zur schnellen Verarbeitung von lokalen Beschränkungen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE4411514A DE4411514A1 (de) 1994-04-02 1994-04-02 Schaltungsanordnung zur schnellen Verarbeitung von lokalen Beschränkungen

Publications (1)

Publication Number Publication Date
DE4411514A1 true DE4411514A1 (de) 1995-10-05

Family

ID=6514522

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4411514A Ceased DE4411514A1 (de) 1994-04-02 1994-04-02 Schaltungsanordnung zur schnellen Verarbeitung von lokalen Beschränkungen

Country Status (1)

Country Link
DE (1) DE4411514A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19725965C2 (de) * 1997-06-19 2000-07-27 Naser Abdelwahab Verfahren eines deduktiven Kataloges zur allgemeinen Constraintsbehandlung im erweiterten relationalen Datenbankkonzept
DE102015013593A1 (de) 2015-10-15 2017-04-20 makmad.org e.V. Effizientes Verfahren zur logischen Vervollständigung eines deduktiven Kataloges zur allgemeinen Constraintsbehandlung im erweiterten relationalen Datenbankkonzept
DE102018008923A1 (de) 2018-10-09 2020-05-20 makmad.org e. V. Verfahren zur Erstellung einer effizienten, logisch vollständigen, ontologischen Ebene im erweiterten relationalen Datenbankkonzept

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19725965C2 (de) * 1997-06-19 2000-07-27 Naser Abdelwahab Verfahren eines deduktiven Kataloges zur allgemeinen Constraintsbehandlung im erweiterten relationalen Datenbankkonzept
DE102015013593A1 (de) 2015-10-15 2017-04-20 makmad.org e.V. Effizientes Verfahren zur logischen Vervollständigung eines deduktiven Kataloges zur allgemeinen Constraintsbehandlung im erweiterten relationalen Datenbankkonzept
DE102018008923A1 (de) 2018-10-09 2020-05-20 makmad.org e. V. Verfahren zur Erstellung einer effizienten, logisch vollständigen, ontologischen Ebene im erweiterten relationalen Datenbankkonzept

Similar Documents

Publication Publication Date Title
EP3028140B1 (de) Konstruieren einer schaltung geeignet zur erzeugung von zufallsbits und schaltung zur erzeugung von zufallsbits
DE3885188T2 (de) Elektrische Schaltung mit Verwendungsmöglichkeit in einem A/D-Wandler.
EP0049216B1 (de) Rechenwerkeinheit mit einer parallelen bidirektionalen Schiebeeinrichtung
DE2758130A1 (de) Binaerer und dezimaler hochgeschwindigkeitsaddierer
EP0257362A1 (de) Addierer
DE2618633C3 (de) PCM-Decodierer
EP0139207B1 (de) Schaltung zur CSD-Codierung einer im Zweierkomplement dargestellten, binären Zahl
DE4411514A1 (de) Schaltungsanordnung zur schnellen Verarbeitung von lokalen Beschränkungen
DE69713247T2 (de) Lernverfahren in Binärsystemen
DE2800858A1 (de) Digital-kodierter frequenzgenerator
DE1241159B (de) UEbertragschaltung fuer ein Schnelladdierwerk
DE3046772C2 (de) Taktgenerator
DE3936503A1 (de) Digitales verschwommen-folgerungssystem
DE2855946A1 (de) Pla-addierschaltung
DE4308112A1 (de) Schaltung zur CSD-Codierung einer binären Zweierkomplement- oder Dualzahl
DE2831589A1 (de) Schaltungsanordnung zur bildung von periodischen impulsmustern
DE2451356A1 (de) Nichtlinearer digital-analog-wandler
DE69414538T2 (de) Digital/Analogwandlerschaltung
CH509706A (de) Digital-Analog-Wandler
DE2155437A1 (de) Logischer Frequenzteiler
EP0080970A1 (de) Auf nichtganze Teilungszahlen einstellbarer Frequenzteiler
EP0603188B1 (de) Digitale logikschaltung zur bestimmung des minimums oder des maximums von zwei operanden
DE1211006B (de) Datenverarbeitungssystem
DE3138833A1 (de) Anordnung zum durchfuehren einer mathematischen operation und einige anwendungen dieser anordnung
DE102005046104B4 (de) Schaltnetz zur parallelen Wandlung einer Vorzeichen-/Betragsdarstellung in eine binäre Zweierkomplementdarstellung

Legal Events

Date Code Title Description
8122 Nonbinding interest in granting licences declared
8120 Willingness to grant licences paragraph 23
8110 Request for examination paragraph 44
8131 Rejection