DE4411514A1 - Schaltungsanordnung zur schnellen Verarbeitung von lokalen Beschränkungen - Google Patents
Schaltungsanordnung zur schnellen Verarbeitung von lokalen BeschränkungenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, 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
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.
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₅).
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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).
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.
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)
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 |
-
1994
- 1994-04-02 DE DE4411514A patent/DE4411514A1/de not_active Ceased
Cited By (3)
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 |