[go: up one dir, main page]

DE2423265B2 - Optimierende Rechenmaschine - Google Patents

Optimierende Rechenmaschine

Info

Publication number
DE2423265B2
DE2423265B2 DE2423265A DE2423265A DE2423265B2 DE 2423265 B2 DE2423265 B2 DE 2423265B2 DE 2423265 A DE2423265 A DE 2423265A DE 2423265 A DE2423265 A DE 2423265A DE 2423265 B2 DE2423265 B2 DE 2423265B2
Authority
DE
Germany
Prior art keywords
bits
diagonal
decoder
addresses
address
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.)
Granted
Application number
DE2423265A
Other languages
English (en)
Other versions
DE2423265A1 (de
DE2423265C3 (de
Inventor
Philippe St.-Genest-Malifaux Eschenbrenner
Jean St.-Germain-En-Laye Ledieu
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.)
Cybco Sa Paris
Original Assignee
Cybco Sa Paris
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
Priority claimed from FR7317373A external-priority patent/FR2230260A5/fr
Priority claimed from FR7344816A external-priority patent/FR2255000A6/fr
Application filed by Cybco Sa Paris filed Critical Cybco Sa Paris
Publication of DE2423265A1 publication Critical patent/DE2423265A1/de
Publication of DE2423265B2 publication Critical patent/DE2423265B2/de
Application granted granted Critical
Publication of DE2423265C3 publication Critical patent/DE2423265C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Operations Research (AREA)
  • Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)
  • Train Traffic Observation, Control, And Security (AREA)
  • Control By Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

Die Erfindung betrifft eine optimierende Rechenmaschine nach dem Oberbegriff des Patentanspruchs 1.
Sehr komplexe Aufgaben der sog. Ablaufplanung kommen auf zahlreichen Gebieten vor, z. B. im Luft- und Eisenbahnverkehr, bei der Erzeugung und Verteilung von Energie, die Herstellung von Kraftfahrzeugen mittels Rohstoffen und Teilen aus verschiedenen Werken usw. Derartige Ablaufplanungs-Aufgaben mit sehr zahlreichen Variablen könnten an sich durch einzelne Digitalrechner gelöst werden, falls diese eine ausreichend große Speicherkapazität und hinreichend kleine Rechenzeiten haben. Tatsächlich werden zur Lösung derartiger Ablaufplanungs-Aufgaben umfangreiche Sätze von Digitalrechnern verwendet, die dann in ca. zehn Minuten eine Lösung finden.
Falls es jedoch zu einer plötzlichen Betriebsstörung im Betriebsablauf kommt, ist es bisher unmöglich, in kurzer Zeit eine neue Lösung der betreffenden Ablaufplanungs-Aufgabe zu ermitteln, da die verwendeten Digitalrechner nicht so leistungsfähig sind, obwohl eine schnelle Umstellung der Ablaufplanung insbesondere im Verkehrswesen und bei der Verteilung elektrischer Energie äußerst erwünscht ist. y-,
Zur Beschreibung der Ablaufplanungs-Probleme bedient man sich des Begriffs »System«, d. h., die jeweilige Anwendungsrealität der Ablaufplanung kann durch ein System beschrieben werden.
Bekanntlich können die verschiedenen Zustände wi eines durch eine bestimmte Anzahl von Variablen definierten Systems durch die einzelnen Punkte eines geometrischen Raums, dessen Anzahl an Dimensionen gleich der Anzahl der System-Variablen entspricht, dargestellt werden. Ein Systemzusland entspricht also b-> danach einem Raumpunkt, so daß der Übergang des Systems von einem Zustand in einen anderen dem Weg von einem Rmimpiinkt /u einem anderen gleichwertig ist. Sofern die Anzahl dieser Raumpunkte endlich ist, bedeutet dies eine Quantifizierung bzw. Digitalisierung des Raums und damit auch der System-Variablen.
Ziel der Ablaufplanung ist es nun, einen optimalen Übergang von einem Anfangszustand zu einem Endzustand des Systems zu finden, also einen optimalen Weg zwischen Anfangs- und Endpunkt des entsprechenden geometrischen Raums zu ermitteln, wobei der optimale Weg normalerweise unter Umgehung von Hindernissen im betreffenden Raum, also unter Ausschluß gewisser System-Zustände, gefunden werden muß.
Verfahren zur Ermittlung des kürzesten Wegs zwischen zwei durch Hindernisse getrennten Punkten in einer Ebene sind bereits bekannt.
So ist es z. B. bekannt (E. F. M ο ο r e, »The shortest path through a maze«, Annals of the Computation Laboratory of Harvard University, Bd. 30,1959, S. 285), in jedes Koordinaten-Kästchen der von einem Koordinatennetz überzogen gedachten Ebene die Anzahl der Schritte einzuschreiben, um die das betreffende Kästchen von dem Anfangspunkt getrennt ist. Genauer gesagt, mit z. B. A als Anfangspunkt und B als Endpunkt wird in die an das Kästchen mit A angrenzenden Kästchen die Ziffer »1« eingeschrieben, worauf in sämtliche Kästchen, die an Kästchen mit »1« angrenzen, die Ziffer »2« eingeschrieben wird usw. Nach η Schritten ist dann der Endpunkt B erreicht. Der kürzeste Weg wird nun so ermittelt, daß man ausgehend vom Endpunkt B jeweils die benachbarten Kästchen verbindet, deren Inhalt bei jedem Schritt um »1« abnimmt.
Dieser bekannte Algorithmus gibt zwar außer dem optimalen Weg auch dessen Länge an (n Schritte im vorhergehenden Beispiel), jedoch müßte eine optimierende Rechenmaschine, die nach diesem Algorithmus arbeitet, notgedrungen N2 Speicherplätze aufweisen, wenn die Anzahl der quantisierten bzw. digitalisierten Werte, die von jeder der beiden Variablen bzw. Koordinaten der Ebene angenommen werden kann, gespeichert wird. Da normalerweise N die Größenordnung von einigen Tausend hat, verbietet sich ein derartiges Vorgehen, weil die Anzahl der Speicherplätze gleich N2 ist, also mehr als eine Million betrüge Außerdem müßten diese Speicherplätze so beschaffen sein, daß sie eine Zahl mindestens gleich der Länge des optimalen Wegs speichern, was in vielen Fällen sich derr Wert 2Λ/ nähern würde und damit wieder zu Speicherschwierigkeiten führte.
Zur Vermeidung des zuletzt genannten Nachteils is< es zwar bereits bekanntgeworden (vgl. S. B. A k e r s, A modification of Lee's path connection algorithm, IEEE Transactions on Electronic Computers, Bd. EC-K [1967], S. 97), die in den Kästchen eingeschriebener Zahlen eine derartige Folge bilden zu lassen, daß dii einem Symbol dieser Folge vorangehende Zahl von de nachfolgenden Zahl verschieden ist, um auf diese Weisi die Speicherelemente so vorzusehen, daß sie nur eim begrenzte Anzahl von Bits speichern, z. B. 2. Eine diesel Algorithmus anwendende optimierende Rechenmaschi ne müßte aber immer noch N2 Speicherplätze aufwci sen.
Ähnliche Schwierigkeiten hinsichtlich der notwcndi gen Anzahl von N2 Speicherplätzen würden bei de Anwendung eines anderen bekanntgewordenen Alge rithmus (C. Y. L c c, »An algorithm for path connection and its applications«, IEEE Transaction on Electroni Computers, Bd. F-C-IO, S. 346-365, September 1961
auftreten, bei dem folgendermaßen iterativ vorgegangen wird:
Zunächst wird in sämtliche Kästchen der Ebene »0« eingeschrieben, während eine »1« in das Kästchen mit dem Endpunkt A eingeschrieben wird. Darauf wird in r> sämtliche Kästchen, die noch eine »0« enthalten und an Kästchen mit bereits eingeschriebener »1« angrenzen, eine »1« eingeschrieben. Das Einschreiben der Einsen schreitet so lange schrittweise fort, bis nach η Schritten ein Kästchen L erreicht ist, von dem aus man mit einem einzigen Schritt das Kästchen mit dem Endpunkt B erreichen kann.
Der sog. erste optimale Elementarvorgang, dem das System unterworfen werden muß, ist dann der, der das System von B in L überführt. Ist dieser erste optimale Elementarvorgang ausgeführt, so werden sämtliche Kästcheninhalte der Ebene auf »0« gebracht (gelöscht), und der Prozeß wird durch erneutes Einschreiben einer »1« wiederholt, wobei jedoch der Punkt L als neuer Endpunkt genommen wird. Nach n— 1 Schritten wird ein Punkt M erreicht, von dem aus der Punkt L mit einem einzigen Schritt erreicht werden kann, so daß der zweite optimale Elementarvorgang derjenige ist, der das System vom Punkt L in den Punkt M überführt.
Das betreffende Verfahren wird entsprechend durch Iteration fortgesetzt, bis man am Anfangspunkt A angekommen ist. Die Gesamtzahl der dabei ausgeführten Schritte beträgt
30
mit η = Länge des kürzesten Wegs zwischen A und B.
Eine nach diesem bekannten Verfahren arbeitende Rechenmaschine würde nicht nur immer noch N2 Speicherplätze benötigen, sondern bei ihr könnte auch die Rechenzeit sehr lang werden, wenn die Länge des optimalen Wegs sehr groß ist, wie deutlich die vorstehende Formel für die Gesamtzahl der auszuführenden Schritte zeigt, selbst wenn die Anzahl der Einschränkungen sehr gering wäre.
In diesem Zusammenhang ist es noch bekanntgeworden (vgl. C. Y. L e e, a.a.O.), worauf noch weiter unten genauer einzugehen sein wird, die Änderung des numerischen Inhalts der Kästchen in der für das System repräsentativen Ebene durch Ausbreitung einer gedachten Welle in dieser Ebene zu simulieren, wobei jedes v> Kästchen die Welle der vorangehenden angrenzenden Kästchen empfängt, ausgenommen nur diejenigen Kästchen, die verbotenen Zuständen — Einschränkungen — des Systems entsprechen, da diese Kästchen die Welle nicht fortpflanzen können.
Erreicht diese gedachte Welle einen der dem Zielpunkt vorausgehenden Punkte, so kann eine erste optimale Elementarentscheidung getroffen werden. Da dieser optimale Elementarvorgang der erste gefundene ist, ist der Zielpunkt der Welle im allgemeinen τ, repräsentativ für den Anfangszustand des Systems, während der Ausgangspunkt der Welle dem Endzustand des Systems entspricht. Die sich ausbreitende gedachte Welle ist also eine rücklaufende Welle in bezug auf Anfangs- und Endzustand des Systems, da sie sich von mi dessen Endzustand zu dessen Anfangszustand fortpflanzt und dabei die Kästchen- bzw. Zellen-Inhalte ändert.
Wohl gemerkt, es handelt sich bei dem Konzept der gedachten rücklaufendcn Welle nicht um eine physikali- hr> sehe Realität, sondern nur um ein Denkmodcll zum leichteren Verständnis der zeitlichen Änderung des Inhalts der Koordinaten-Kästchen der das System darstellenden Ebene bzw. der entsprechenden Speicherund Rechenzellen in der Rechenmaschine selbst.
Es ist Aufgabe der Erfindung, eine optimierende Rechenmaschine der eingangs genannten Art zu schaffen, die die genannten Schwierigkeiten beim bekannten Stand der Technik überwindet, indem die Anzahl der bisher benötigten Speicherplätze von N3 beträchtlich verringert, aber auch die Rechenzeit beträchtlich verkürzt wird, indem die Wegesuche in der Koordinatenebene nicht mehr schrittweise erfolgt, sondern nur noch von Einschränkung zu Einschränkung, wobei schließlich auch keine zusätzlichen Speicherplätze erforderlich sein sollen, deren maximale Anzahl in die Größenordnung der Länge des optimalen Wegs kommt.
Die Lösung dieser Aufgabe erfolgt erfindungsgemäß durch die Lehre nach dem kennzeichnenden Teil des Patentanspruchs 1.
Die erfindungsgemäße Rechenmaschine kommt nicht nur mit 2N Speicherplätzen für Rechen- und Speicher-Zellen aus, was den baulichen Aufwand bei Zugrundelegung von N mindestens tausend erheblich verringert, sondern arbeitet praktisch in Echtzeit selbst bei sehr großer Anzahl der Einschränkungen. Die erfindungsgemäße Rechenmaschine löst also kombinatorische Aufgaben, für die die Rechenzeit eines Digitalrechners allein bisher zu lang war.
Zur Erläuterung des Unterschieds zwischen der erfindungsgemäßen Rechenmaschine und dem eingangs erörterten bekannten Stand der Technik sei auf das grundsätzlich für sich bekannte Konzept nach Lee zurückgegriffen, wonach die Änderung des Kästchenbzw. Zellen-Inhalts durch die Ausbreitung einer gedachten rücklaufenden Welle darstellbar ist:
Während bei Anwendung der bekannten Algorithmen die zugehörige optimierende Rechenmaschine notwendigerweise N2 Speicherplätze zur Speicherung des Verlaufs der gesamten Welle im zu untersuchenden Teil der Ebene erfordert, interessiert bei der erfindungsgemäßen Rechenmaschine nicht mehr die ganze Welle, sondern nur die Wellenfront, weshalb man zur Beobachtung der Änderung der 2Λ/ Punkte der Wellenfront während ihrer Ausbreitung nur 2/V Speicherplätze benötigt.
Da außerdem die Wellenfront nur beim Auftreffen auf Einschränkungen (Hindernisse) gestört wird, also zwischen zwei Einschränkungen keine Änderung erfährt, braucht die Form der Wellenfront auch nur von Einschränkung zu Einschränkung untersucht zu werden, d. h., die früher betrachtete schrittweise Entwicklung der Welle fällt weg. Damit kann die erfindungsgemäße Rechenmaschine auch viel schneller als Rechenmaschinen, die die bekannten Algorithmen anwenden, arbeiten, so daß sie selbst bei praktisch unbegrenzter Anzahl von Einschränkungen Ablaufplanungs-Probleme im Echtzeitbetrieb löst.
Damit stellt der Inhalt der Speicher-Zellen bei der erfindungsgemäßen Rechenmaschine nicht mehr wie früher die Anzahl der von der Welle bis zum betreffenden Kästchen (Zelle) durchlaufenen Schritte dar, sondern nur die Abweichung zwischen der Anzahl der tatsächlich durchlaufenen Schritte und derjenigen Anzahl Schritte, die die gedachte Welle bei fehlenden Einschränkungen durchlaufen hätte. Mit anderen Worten, die Speicher-Zellen speichern nur noch die Verzerrung der Wcllcnfront beim Durchlaufen jeder Einschränkung gegenüber einer ohne diese Einschränkungen sich ausbreitenden, also ungestörten Bezugswcl-Ic.
Da unter Umständen diese Abweichung bzw. Verzerrung der Wellenfront verhältnismäßig groß werden könnte, so daß die entsprechenden Speicherelemente eine genügende Anzahl von Bits, ausgelegt für die maximal mögliche Abweichung, enthalten müßten, sieht die Erfindung weiter vor, nicht die Absolutwerte dieser Abweichung zu speichern, sondern nur jeweils ein lnkrement »0« oder »1«, je nachdem, ob sich die Wellenfront von Zelle zu Zelle ändert. Die Verarbeitung dieser Inkremente der Abweichung bzw. »Störung« der Wellenfront durch die Einschränkungen führt zu einer weiteren Vereinfachung der erfindungsgemäßen Rechenmaschine.
Vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben.
Anhand der Zeichnung wird die Erfindung beispielsweise näher erläutert. Es zeigt
F i g. 1 eine Ebene, die ein System mit zwei digitalen Variablen beschreibt,
F i g. 2 eine ebene Darstellung, in der die Wellenfront rechteckig ist,
F i g. 3 ein Beispiel von Einschränkungen, um die dadurch für eine gedachte rücklaufende Welle entstehenden Störungen zu veranschaulichen,
Fig.4 die Abweichung zwischen einer ungestörten und einer durch eine Einschränkung gestörten Wellenfront,
F i g. 5 eine geometrische Konstruktion, mit der bei Kenntnis einer Einschränkung die durch sie gestörte Wellenfront konstruierbar :st,
F i g. 6 die Ermittlung der gestörten Wellenfront im Fall mehrerer Einschränkungen, von denen eine die Wellenfront nicht stört,
F i g. 7 die Ermittlung der Länge des Wegs, der von einem Ausgangspunkt der Welle zu einem Zielpunkt führt,
F i g. 8 die Definition der Diagonaladressen,
F i g. 9 das Blockschaltbild eines Ausführungsbeispiels der erfindungsgemäßen optimierenden Rechenmaschine, wobei sämtliche folgenden Figuren sich auf F i g. 9 beziehen,
F i g. 10 ein Organisationsbeispiel des Speichers in der Rechenmaschine,
F i g. 11 schematisch die Mittel zur Auswahl der im Diagonaladressen-Intervall JB, ///gelegenen Speicherstellen,
Fig. 12 ein Diagramm zur Erläuterung der Art und Weise der Auswahl des genannten Intervalls JB, HJ
Fig. 13 eine Logik K zur Freigabe geeigneter Ausgänge der Speicherplätze,
Fig. 14 das Schaltbild einer halben Speicher-Steckkarte mit Logiken zur Freigabe der Ausgänge,
Fig. 15 das Schaltbild eines Decodierers für niedere Diagonaladresse mit 3 Bits,
Fig. 16 das Schaltbild eines Decodierers für hohe Diagonaladresse mit 3 Bits,
F i g. 17 das Schaltbild eines Decodierers mit 4 Bits für niedere oder hohe Diagonaladresse,
F i g. 18 ein Blockschaltbild eines Addierers,
F i g. 19 eine Baugruppe des Addierers,
Fig.20 das Zusammenwirken der verschiedenen Baugruppen des Addierers,
F i g. 21 den Ausgang des Addierers,
F i g. 22 das Schaltbild einer Steuerschaltung Σ,
Fig.23 den Teil der Steuerschaltung, der den Vergleich von niederer und hoher Diagonaladresse ermöglicht,
F i g. 24 die gesamte Steuerschaltung,
F i g. 25 ein schematisches Schaltbild der Folgesteuereinrichtung und
F i g. 26 die verschiedenen Betriebsphasen der Folgesteuereinrichtung von F i g. 25.
ϊ Wie bereits weiter oben angegeben wurde, kann ein System mit η Variablen stets symbolisch durch die Punkte eines n-dimensionalen Raums dargestellt werden, wobei jeder Dimension eine Variable zugeordnet ist. In der Folge wird zur Vereinfachung vorausgesetzt,
ίο daß das System, für das ein optimales Fortschreiten gesucht wird, ein System mit zwei Variablen ist, so daß seine möglichen Zustände durch die Punkte einer Ebene dargestellt werden können. Die Verteilung der Punkte dieser Ebene kann mehrere Formen annehmen, wie aus F i g. 1 und 2 hervorgeht.
In der in F i g. 1 dargestellten Ebene nehmen die repräsentativen Punkte die Ecken von gleichseitigen Dreiecken ein. Die gedachte Welle, die die laufende Veränderung des Inhalts der Speicherelemente der
2(i optimierenden Rechenmaschine simuliert, breitet sich von Punkt zu Punkt, in Richtung der Pfeile, aus. Die Weglängen oder Schrittweiten zwischen den Punkten sind ab= ac= ad Die eingekreisten Punkte stellen die verbotenen Zustände des Systems dar, die die Welle nicht fortpflanzen, daher sind die Wege, die davon ausgehen, gesperrt. Die jedem Punkt zugeordneten Ziffern stellen die Anzahl ausgeführter Testschritte dar, ausgehend vom Anfangspunkt a. Die Wellenfront ist in diesem Fall ein Parallelepiped (Parallelogramm).
In F i g. 2 ist die Wellenfront rechtwinklig, und der Weg auf den Achsen X und Y zwischen zwei aufeinanderfolgenden Punkten ist dem Weg auf der Diagonale gleich. In der Folge wird zur Vereinfachung die repräsentative Ebene mit rechtwinkligen Achsen angenommen wie in F i g. 2.
In F i g. 3 ist eine Einschränkung (genau genommen ein Einschränkungs-Feld aus mehreren unmittelbar benachbarten Einschränkungen) dargestellt, die durch eine Menge \on »verbotenen« Punkten, die die Welle nicht fortpflanzen, definiert ist (zur leichteren Erklärung ist diese Einschränkung rechteckig). Die Zahlen in den Kästchen zeigen wiederum die Anzahl ausgeführter Schritte an, ausgehend vom Ausgangspunkt der Welle im Schnittpunkt der Achsen Xund Y, und gestatten die Darstellung der Wellenfront, insbesondere hinter der Einschränkung.
Enthält die Ebene nur eine Einschränkung, so zeigt Fig.4 die Abweichung zwischen der ungestörten Wellenfront Wund der gestörten Wellenfront Phinter der Einschränkung.
Die geometrische Konstruktion der gestörten Wellenfront kann auf einfache Weise, wie in Fig.5 angegeben ist, durch Projektion der Einschränkung auf die anfängliche, nicht gestörte Wellenfront Λ/Perfolgen, wobei zwei Schnittpunkte definiert werden, von denen aus die gestörte Wellenfront P aufgezeichnet werden kann.
Es ist möglich, daß gewisse Einschränkungen die Wellenfront nicht stören, z. B. die Einschränkung 2 in
bo Fig.6, da man im geraden Teil der Wellenfront keinen Ausschnitt vorsehen kann.
F i g. 7 erläutert die zu treffende elementare Entscheidung in bezug auf die Längen der drei Wege, die zu den drei, dem Endpunkt vorausgehenden Punkten führen.
Der Ausgangspunkt der Welle (die in Wirklichkeit den Endzustand des Systems darstellt, da die Welle rücklaufend ist) trägt die Bezeichnung D und der Zielpunkt (der den Anfangszustand des Systems
darstellt) trägt die Bezeichnung A. Die drei dem Punkt A vorausgehenden Punkte sind die Punkte A', A"und A'". Die Länge des bei /!"endenden Wegs ist beispielsweise gleich 14. Der vorausgehende Punkt (oder ggf. die vorausgehenden Punkte), für den die Länge minimal ist, bestimmt den ersten Elementarvorgang, dem das System unterzogen werden soll. Im Fall der Fig. 7 ist die kleinste der drei Längen gleich 14: diese Länge wird für die Punkte /!"und A'"gefunden. Der erste optimale Elementarvorgang bringt somit das System vom durch den Endpunkt A dargestellten Ausgangszustand zum durch den vorausgehenden Punkt A" dargestellten Zustand oder, im Sonderfall der F i g. 7, zum durch den Punkt /!'"dargestellten Zustand.
Der Punkt A" (oder A") wird dann als neuer Zielpunkt der Welle genommen, und eine neue Folge von Arbeitsschritten führt zum zweiten Elementarvorgang, ausgehend vom durch den Punkt A '"dargestellten Zustand, zum nächstfolgenden Zustand.
Nach und nach werden auf diese Weise sämtliche Elementarvorgänge gefunden, deren Gesamtheit den optimalen Übergang vom Anfangszustand in den Endzustand bildet.
Alle diese Betrachtungen über die Suche nach optimalen Elementarvorgängen in einer Ebene gelten zum großen Teil auch für die Verfahren nach dem bekannten Stand der Technik, wie dieser in den weiter oben angeführten Literaturstellen beschrieben ist.
In der Folge wird nun die erfindungsgemäße optimierende Rechenmaschine mit ihren wesentlichen Eigenschaften anhand von F i g. 8 und 9 und der Tabelle I beschrieben.
Die optimierende Rechenmaschine enthält P= 2Λ/ Zellen. Zum besseren Verständnis wird eine optimierende Rechenmaschine mit P= 18 Zellen betrachtet, was zur Verarbeitung des in Fig.8 gezeigten Problems ausreicht.
Jede der 18 Zellen ist durch eine Adresse, Diagonaladresse genannt, gekennzeichnet, wobei die Adressen von 0 bis 17 numeriert sind. Jede Zelle kann somit als einer jeden der 18 Diagonalen der repräsentativen Ebene zugeordnet betrachtet werden.
Jede Einschränkung wird in Speichermitteln durch zwei Zahlen gespeichert, wobei die eine »hohe Diagonaladresse« genannte Zahl, mit H bezeichnet, in der repräsentativen Ebene dem auf der höchsten Diagonale dieser Ebene gelegenen Punkt der Einschränkung entspricht und die andere »tiefe Diagonaladresse« genannte Zahl, mit B bezeichnet, dem auf der tiefsten Diagonale der Ebene gelegenen Punkt der Einschränkung entspricht.
Die Einschränkung Nr. 1 der F i g. 8 hat beispielsweise die Adressen H= 13 und B= 8. Der Inhalt einer Zelle mit der Adresse X wird symbolisch mit (X) bezeichnet.
Dieser Streifen von 18 Zellen dient dazu, die Störung bzw. Verzerrung der Wellenfront beim Vorbeilaufen an einer Einschränkung in 18 Punkten zu berechnen. Man könnte sich eine optimierende Rechenmaschine denken, für die die Rechen- und die Speicher-Zellen jeweils eine Zahl genau entsprechend der Abweichung, ausgedrückt in Anzahl von Schritten, der gestörten Wellenfront gegenüber einer ungestörten Wellenfront enthielten. Man würde dann also anfangs in den Zellen die Zahl »0« für die Zellen mit den Adressen von 0 bis Il einschließlich und die Zahlen »I«, »2«, »3«, »4«, »5« bzw. »6« in den Zellen mit den Adressen von 12 bzw. 17 einspeichern, wobei die Gesamtheit dieser Zahlen die Abweichung zwischen der anfänglichen rechteckigen
15
20
25
30
35
40
50
55
(1O
b5 Wellenfront von F i g. 8 und einer linearen theoretischen Wellenfront darstellen würde, die mit der Achse OK zusammenfällt. Hier werden jedoch Berechnung und Speicherung der Zunahme der Abweichung vorgezogen, wenn man von einer Zelle zur folgenden geht, gegenüber der eigentlichen Abweichung. Diese Zunahme ist nämlich eine sehr einfache Zahl zwischen zwei aufeinanderfolgenden Zellen, da sie nur »1« (wenn die Abweichung um eine Einheit zunimmt) oder »0« (wenn die Abweichung sich nicht ändert) sein kann. Die 18 Zellen der optimierenden Rechenmaschine können daher ein »Inkrement« berechnen und speichern, dessen Wert entweder »0« oder »1« ist. Zu Beginn ist das Inkrement der Zellen gleich 0 für die Zellen mit den Adressen von »0« bis »11« einschließlich, und dieses Inkrement wird »1« für die Zellen mit den Adressen von 12bisl7.
Zur Verarbeitung einer Einschränkung, die durch ihre hohe Diagonaladresse H und ihre niedrige Diagonaladresse B definiert ist, führt die optimierende Rechenmaschine die folgenden Operationen aus:
Unterhalb der niederen Diagonaladresse bleiben die Inkremente unverändert;
ab der niedrigen Diagonaladresse, nämlich für B+\, 5+2 usw. bis B+S, wird S-mal »1« eingeschrieben, wobei S gleich (H)-(B) ist, d. h.
gleich der Anzahl der Inkremente, die vor der Verarbeitung der jeweiligen Einschränkung in den Zellen mit den Diagonaladrossen B+\ bis H gezählt wurden (welches Diagonaladressen-Intervall symbolisch JB, ///abgekürzt wird),
in den Zellen mit den Diagonaladressen B+S+\ bis H wird das Inkrement »0« gespeichert und
jenseits der Zelle mit der Diagonaladresse H bleiben die Inkremente unverändert.
Die Verarbeitung der Einschränkungen erfolgt also
unter Feststellung des Inhalts des Zielpunkts, was dadurch erhalten wird, daß die Summe aller »1«-Bits gebildet wird, die bis zu diesem Zielpunkt enthalten sind.
Tabelle I
I H III IV V
Adresse Anfangs- Anfangs- Inkrement Inkrement
abwei inkrement nach Ein nach Ein
chung schrän schrän
kung Nr. 1 kung Nr. 2
17 6 1 1 1
16 5 1 1 0
15 4 1 1 1
14 3 i 1 1
13 2 1 0 1
12 1 1 0 0
11 0 0 0 0
10 0 0 1 1
9 0 0 1 1
8 0 0 0 0
7 0 0 0 0
6 0 0 0 0
5 0 0 0 0
4 0 0 0 0
3 0 0 0 0
2 0 0 0 0
1 0 0 0 0
0 0 0 0 0
Tabelle I erläutert den Algorithmus. In Spalte 1 dieser Tabelle stehen die von 0 bis 17 numerierten Diagonaladressen und in Spalte II die Anfangsabweichung der Zellen. In Spalte III stehen die den Abweichungen der Spalte II entsprechenden Inkremente. Dieses Inkrement ist gleich »0« bis zur Adresse 11 und gleich »1« von Adresse 12 bis Adresse 17. Spalte III stellt folglich den Anfangszustand der Zellen dar, wenn diese zur Verarbeitung der Inkremente gedacht sind.
Nach der Verarbeitung der ersten, durch die Adressen B=8 und //=13 definierten Einschränkung findet man in den Zellen ein Inkrement gleich 0 oder 1, je nachdem, ob der Zellenabweichung identisch oder um Eins höher als die Abweichung der vorausgehenden Zelle ist. Nach der Verarbeitung dieser ersten Einschränkung sind dann die neuen Inkremente diejenigen der Spalte IV.
In Spalte V sind die aufeinanderfolgenden Inkremente nach der zweiten Einschränkung aufgezeichnet. Zwischen den Adressen B= 12 und //=16 wurden 3 Einsen gezählt, und in Spalte V findet man von der in Adresse 12+1 =13 an drei Einsen, jeweils in 13, 14 und
15, wobei das Intervall 12 — 16 nachher, bei der Adresse
16, durch eine »0« vervollständigt wird.
In Tabelle I wurde die Verarbeitung der Einschränkungen 3 und 4, die auf dieselbe Weise wie die Einschränkungen 1 und 2 verarbeitet würden, nicht dargestellt.
Zusammenfassend sieht man, daß für jede Verarbeitung die folgenden Arbeitsschritte ausgeführt werden:
30
— Summierung sämtlicher Einsen im Intervall JB, H] was die Summe Sergibt,
— Nullrückstellung (Löschung) der im Intervall JB, H] enthaltenen Zellen,
— Einschreiben einer Anzahl Einsen gleich der vorher berechneten Summe S, ausgehend von der unmittelbar nach der niederen Diagonaladresse gelegenen Adresse, anschließend Einschreiben von Nullen bis zur hohen Diagonaladresse,
— nach der letzten Verarbeitung führt man die Summierung sämtlicher eingeschriebenen Einsen bis zum Zielpunkt einschließlich durch, was die charakteristische Länge dieses Zielpunkts ergibt.
Das Blockschaltbild des Ausführungsbeispiels der erfindungsgemäßen optimierenden Rechenmaschine in Fig.9, die die eben genannten Operationen ausführt, besitzt die folgenden Baugruppen: ή>
einen Speicher Mmit P= 2/V Bit-Stellen, wobei jedes Bit ein Inkrement für eine Zelle darstellt,
eine Freigabeeinrichtung Vzur Freigabe aller Ausgänge der im Diagonaladressen-Intervall von B+1 bis H — JB, HJ- enthaltenen Speicherstellen, «
einen mit dem Ausgang des Speichers M über die Freigabeeinrichtung V verbundenen Addierer ADDi zum Addieren aller im Intervall JB, H] enthaltenen »1«-Bits,
eine Löscheinrichtung RZ zum Löschen der Speicher- «1 stellen des Speichers Aiim Intervall JB, HJ
eine Schreibeinrichtung Ezum Schreiben
einer Anzahl »1 «-Bits gleich der Summe 5, ausgehend von der Diagonaladresse B+ 1 bis zu X= B+ S, und
von »O«-Bits von der Diagonaladresse X+ 1 bis zu H, (,--, und
eine an einen Digitalrechner ORD angeschlossene Folgesteuereinrichtung SEQ, die:
ix) das Schreiben und Lesen im Speicher M, die Freigabeeinrichtung V und den Addierer ADD I bei jeder Verarbeitung einer Einschränkung steuert,
ß) einen Übergang von der Verarbeitung einer Einschränkung zur Verarbeitung der nachfolgenden Einschränkung gestattet und
y) nach der letzten Verarbeitung gestattet, die Summe der eingeschriebenen »1 «-Bits bis zur Diagonaladresse der Zellen, die den drei Folgezuständen des Anfangszustands entspricht, zu entnehmen.
Im folgenden werden Ausführungsbeispiele der Baugruppen von F i g. 9 genauer beschrieben, wobei noch einmal darauf hingewiesen werden soll, daß die Verarbeitung nur der Inkremente der Abweichung, nicht der Abweichungen selbst, zwischen ungestörter und durch die Einschränkungen gestörter Wellenfront den baulichen Aufwand weiter beträchtlich reduziert.
Aufbau des Speichers M
Der Speicher M hat so viel Bit-Stellen als Zellen vorhanden sind, d. h. P Bit-Stellen, wobei jedes Bit das lnkrerr.ent mit d:m Wert »0« oder »1« für die entsprechende Zelle darstellt. Um zu vermeiden, daß gleichzeitig die den P Zellenadressen zugeordneten P Speicherinhalte zu verarbeiten sind, ist es vorteilhaft, den Speicher zu 2i Zeilen mit je 2r Bits zu organisieren, mit P=2i+r. Die Zeile, der eine Adresse zugeordnet ist, ist dann durch die q Bits höchsten Gewichts der besagten Adresse definiert. Zur Vereinfachung der Schreibweise und nur zum besseren Verständnis wird im folgenden ein Speicher mit 2048 Stellen (2") betrachtet, der zu 24=16 Zeilen mit 27 = 128 Bits organisiert ist. Jede Zeile wird dann vorteilhafterweise in 16 Bytes zerlegt, die von /= 1 bis 16 numeriert sind, wobei die Bits eines Byte von J= 1 bis /=8 numeriert sind. Jedes der 128 Bits einer Zeile ist somit durch eine Schreibweise mit zwei Indizes Ai^bezeichnet.
Der Grundaufbau des Speichers M in diesem Sonderfall ist durch Fig. 10 illustriert. Der Speicher ist aus integrierten Schaltkreisen aufgebaut, von denen jeder 16 Worte zu 4 Bits enthält. Zwei integrierte Schaltkreise in Serienschaltung bilden 16 Bytes. 32 Schaltkreise in Serie gestatten folglich die Bildung von 16 Zeilen zu 128 Bits.
Die Ein- und Ausgänge des Speichers sind jeweils oben und unten in der genannten Figur durch 128 senkrechte Striche dargestellt. Eine Schreib-Lesesteuerleitung E/L gestattet es, jede der integrierten Schaltkreise mit einem Schreib- oder Lesebefehl zu adressieren. Die Ein- und Ausgangs-Schaltkreise der Speicherplätze sind in dieser Figur nicht abgebildet und werden später beschrieben.
Es können Speicherschaltkreise verwendet werden, die während der Lesephase auf jeden Ausgang das Komplement zum gespeicherten Bit geben. Zum Schreiben einer Information genügt es, die Schreib- und Lese-Steuerleitung E/L auf »1« zu bringen und die im adressierten Wort zu speichernde Information auf die Eingänge zu schalten.
Die den Speicher bildenden Schaltkreise können z. B. einbaufertige Schaltungen vom Typ SN 7489 N sein.
Mit einem solchen zu 16 Wortzeilen organisierten Speicher werden die 4 hochgewichteten Bits einer Adresse, die 11 umfaßt, zur Auswahl einer Zeile unter den 16 vorhandenen bestimmt. Die Gesamtheit dieser 4 hochgewichteten Bits wird nachstehend mit B, für die
niedere Diagonaladresse und mit Hx für die hohe Diagonaladresse bezeichnet oder allgemein mit A\.
Aufbau der Auswahlschaltung für das Intervall JB, H]
Wie bereits oben erklärt wurde, ist es notwendig, sämtliche Ausgänge der im Intervall ]B, H]enthaltenen Speicherplätze anzusteuern, damit der Addierer ADD i die Summation aller in diesem Intervall enthaltenen »1 «-Bits durchführen kann.
Es ist zweckmäßig, diese Freigabe in zwei Stufen durchzuführen, durch Ansteuerung einerseits der links von B gelegenen Ausgänge und andererseits derjenigen, die rechts von H gelegen sind, mit anschließender Kombination dieser beiden Ansteuerungen. Diese Art der Freigabe benutzt also »Dreieck«-Decodierer in dem Sinne, daß ihre Wahrheitstabelle eine dreieckförmige Konfiguration aufweist, wie eine solche in der untenstehenden Tabelle II für den Fall von 3 Bits dargestellt ist. Der komplementäre Decodierer, in dem »0« durch »1« ersetzt wurden und umgekehrt, wäre selbstverständlich ebenfalls ein »Dreieck«-Decodierer.
Tabelle II
abc 1234567
000
00 1
0 1 0
0 1 1
1 00
1 0 1
1 1 0
1 1 1
0000000
1000000
100000
1 1
1 1 1
1 1
1 1
1 1 1
0000
000
1100
1110
1 1 1
Die Komplexität eines »Dreieck«-Decodierers steigt mit der Anzahl Bits sehr rasch an. Daher ist es vorzuziehen, die Anzahl der zu verarbeitenden Bits zu unterteilen, was dazu führt, mehrere Decodierer zu kombinieren. Zu diesem Zweck ist vorgesehen, jede Zeile mit 128 Bits in 16 Bytes zu unterteilen, wodurch es gestattet wird, eines der Bits einer Zeile durch zwei Adressen zu adressieren, eine mit 4 Bits zur Ansteuerung eines Bytes unter den 16 vorhandenen und eine mit 4r> 3 Bits zur Ansteuerung eines Bits unter den 8 vorhandenen.
Das heißt, eine beliebige Adresse A mit 11 Bits ist in ein aus 4 Bits mit hohem Gewicht gebildetes Wort Ax, ein aus 4 Bits mit mittlerem Gewicht gebildetes Wort Ai und ein aus 3 Bits mit niedrigem Gewicht gebildetes Wort Ai unterteilt (diese Wörter sind jeweils für die niedere Diagonaladresse mit B1, B2, Bj und für die hohe Diagonaladresse mit Hi, H2, ^bezeichnet).
Die Freigabeeinrichtung V für die Ausgänge der im w Intervall ]B, H]enthaltenen Speicherplätze ist genauer in F i g. 11 abgebildet und enthält einen Decodierer DECOD B für die niedere Diagonaladresse und einen Decodierer DECOD H für die hohe Diagonaladresse. Der Decodierer DECOD B für die niedere Diagonal- «ι adresse enthält einen Decodierer DECOD B\ mit 4 Bits, einen Decodierer DECOD B2 mit 4 Bits und einen Decodierer DECOD B1 mit 3 Bits. Der Decodierer DECOD H für die hohe Diagonaladresse enthält in entsprechender Weise einen Decodierer DECOD H1 ^ mit 4 Bits, einen Decodierer DECOD H2 mit 4 Bits und einen Decodierer DECOD Hi mit 3 Bits.
Der Decodierer DECOD B2 besitzt 4 Eingänge und 1 b Ausgänge, die in der Folge mit B'2 bezeichnet werden, wobei / von 1 bis 16 variieren kann. Der Decodierer DECOD B3 besitzt 3 Eingänge und 8 mit Bi bezeichnete Ausgänge, wobei; von 1 bis 8 variiert.
Der Decodierer DECOD H2 besitzt 4 Eingänge und 16 mit Hi bezeichnete Ausgänge, wobei /von 1 bis 16 variieren kann, der Decodierer DECOD H3 3 Eingänge und 8 mit Hl bezeichnete Ausgänge, wobei ebenfalls j von 1 bis 8 variiert.
Die Decodierer DECODBx und DECODHx gestatten die Freigabe einer Zeile. In dieser Zeile werden die Stellen jeweils durch die Decodierer DECOD B2 - DECOD B3 für die niedere Diagonaladresse und durch die Decodierer DECOD H2 - DECOD H3 für die hohe Diagonaladresse freigegeben. Letztere Freigabe einer Zeile erfolgt durch Freigabe-Logiken VAL Jeder Ausgang S'-J der Speicherstelle M'-J ist mit einer Freigabe-Logik VA L und dem Addierer ADDi verbunden.
Wie in F i g. 13 dargestellt, enthält die Freigabe-Logik VAL zur Freigabe der Speicherausgänge im Intervall ]B, H/ein jedem Ausgang zugeordnetes logisches Verknüpfungsglied P-J, genauer ein NOR-Glied, das an den Ausgang einer jeden Speicherstelle M'-i angeschlossen ist, wobei der Ausgang des NOR-Glieds an den Addierer ADDi angeschlossen ist. Einer der beiden Eingänge des NOR-Glieds ist mit dem Ausgang S'-i der Speicherstelle M'i verbunden und der andere Eingang mit dem Ausgang einer Logik K'-i, von der nachstehend das Funktionsprinzip und der Aufbau angegeben werden.
In Fig. 12 sind die 128 Stellen einer Speicherzeile schematisch dargestellt. Diese Speicherstellen sind, wie bereits weiter oben erklärt, durch eine Notation mit zwei Indizes bezeichnet: M'i. Die schraffierte Speicherstelle ist die übliche Stelle des /-ten Byte und des /-ten Bits in diesem Byte. Zunächst wird vorausgesetzt, daß die niedere Diagonaladresse B und die hohe Diagonaladresse H der zu verarbeitenden Einschränkung in derselben Zeile auftreten, d. h. B1 = Hx. Der Fall Bx φ Hx wird später besprochen.
Zur Freigabe des Intervalls ]B, H] werden die links von B (B einschließlich) gelegenen Ausgänge und die rechts von H (H ausschließlich) gelegenen Ausgänge angesteuert.
Im Rahmen der Fig. 12 wird vorausgesetzt, daß die schraffierte Speicherstelle M'-J der niederen Diagonaladresse entspricht, links von der die Ausgänge angesteuert werden sollen.
Die Ansteuerungen (Freigaben oder Sperrungen) erfolgen mit Hilfe von dreieckförmigen Decodierern, denen die Konfiguration der in Tabelle 1 abgebildeten Wahrheitstabelle gegeben wurde.
Im folgenden wird der logische Zustand eines Decodiererausgangs mit einem kleinen Buchstaben bezeichnet, z. B. bi für den logischen Zustand des Ausgangs B\ des Decodierers DECOD B2 oder hj, für den logischen Zustand des Ausgangs Hi des Decodierers DECOD Hi.
Schließt man nun die Speicherstellen Af ■', Af-2
Af-8 direkt an den Ausgang S] des Decodierers B2 an
und die Speicherstellen Al2·1, Af22 AP-8 an den
Ausgang B\ usw., so werden sämtliche Bytes von 1 bis / für jedes beliebige j angesteuert. Dies ist in Fig. 12 symbolisch dargestellt durch den Strich, der vom ersten Bit des ersten Byte bis zum letzten Bit des /-ten Byte durchläuft.
Werden nun die Ausgänge der Speicherstellen M' bei
beliebige j an die Ausgänge B'*1 angeschlossen, so befindeü sich diese Ausgänge im logischen Zustand gleich dem der Speicherstellen M'+' im vorhergehenden Fall. Man erhält dann in diesem Fall eine Freigabe bis zum vorhergehenden Byte. Dies ist in F i g. 12 durch die zweite durchgehende Zeile dargestellt, die beim letzten Bit des Al -ten Byte endet.
Zur Auswahl der Speicherstellen von /'= 1, j= I bis M-i muß man dem durch die zweite Zeile in F i g. 12 dargestellten Zustand das Segment anfügen, das von j= 1 bis j im /-ten Byte geht. Nun ist das logische Produkt bi ■ b{ (worin der Punkt die UND-Verknüpfung symbolisiert) gleich »1«, wenn bj, und bj gleich »1« sind; dieser Ausdruck ist gleich »1« auf der ganzen Länge der auf der dritten Zeile der F i g. 12 dargestellten Segmente. Zur Freigabe sämtlicher Ausgänge links von M'j muß man folglich die Zeilen 2 und 3 kombinieren, was darauf hinausläuft, die logische Operation
fci+' + b>2 ■ hl
auszuführen, worin das Zeichen » + « die ODER-Verknüpfung symbolisiert.
Wünscht man nur NAND-Glieder zu benutzen, würde die vorangehende Operation wie folgt geschrieben werden:
worin das Zeichen »|« die NAN D-Verknüpfung symbolisiert.
Jeder Ausgang einer Speicherstelle M'-J muß folglich mit einer an die Ausgänge B2 undÄ2 + 1des Decodieren DECOD B2 und an den Ausgang Bi des Decodierers DECOD Bi angeschlossenen Logik verbunden sein, die mit den an diesen 3 Ausgängen erscheinenden logischen Zuständen folgende logische Operation ausführt
b2 + l + b[ ■ h{
oder, was aufs gleiche hinausläuft, die Operation
!>ί Ι H) wird die vorangehende Verknüpfung in folgender Form geschrieben:
worin das Zeichen »|« wiederum die NAND-Verknüpfung symbolisiert.
In Fig. 13 wird ein Beispiel einer Logik K'-' dargestellt, die nur aus NAND-Gliedern aufgebaut ist.
ίο Die Logik K>> besitzt 6 Eingänge, von denen 3 an die Decodierer für niedere Diagonaladressen DECOD B2 und DECOD B3 angeschlossen sind und die 3 anderen an die Decodierer für hohe Diagonaladressen DECOD H2 UtIdDECODH3.
Genauer gesagt, ein NAND-Glied PB ist mit den Ausgängen ßi und Bi und sein Ausgang mit dem Eingang eines NAND-Glieds PBH mit 4 Eingängen verbunden, das außerdem mit dem vorher komplementierten und symbolischÖ2 + 'bezeichneten AnschlußB2 + 1 verbunden ist.
Auf die gleiche Weise enthält der obere Teil der Logik /Cw ein NAND-Glied PH, das die Ausgänge Hi, Hi der Decodierer für hohe Diagonaladressen aufnimmt, wobei der Ausgang des NAND-Glieds PH an den Eingang des NAND-Glieds PBH angeschlossen_|s_t, der außerdem den komplementierten AusgangH',~l aufnimmt.
Die Logik K'i hat ihren Ausgang auf »1« für alle Stellen, die in der Vereinigung der beiden Intervalle/Ί, ß/und ]H, 1287enthalten smcl. wenn ! das erste B'1 der Zeile und 128 das letzte Bit bezeichnet. Wird dieser Ausgang an ein NOR-Glied P-i angeschlossen, das mit dem Ausgang S'-i der Speicherstelle M'·' verbunden ist, so werden sämtliche Ausgänge, die sich nicht in der Vereinigung [\, B]+JH, 128Jbefinden, freigegeben, d. h. schließlich die Ausgänge des Intervalls ]B, HJ was auch das gesuchte Ergebnis ist.
Man könnte selbstverständlich dieselbe Funktion mit anderen Verknüpfungsgliedern darstellen, z. B. zunächst durch Ausführung der Operation
Was die Ansteuerung der rechts von der hohen Diagonaladresse gelegenen Ausgänge betrifft, ist die Aufgabenstellung ähnlich. Es wird ein »Dreieck«-Decodierer verwendet, dessen Wahrheitstabelle zu derjenigen des Decodierers der niederen Diagonaladresse symmetrisch ist.
Schließt man sämtliche Stellen eines Byte vom /-ten so Rang an den Ausgang Hi an, so werden alle Bytes rechts von //ausgesteuert, das die hohe Diagonaladresse H enthaltende einbegriffen. Es muß also noch eine Verschiebung um eine Stelle stattfinden, und folglich müssen die Bytes an den AusgangHj"1 angeschlossen werden. Zur Ansteuerung der zwischen Mjj und M'-s gelegenen Stellen muß man für den Decodierer DECOD H3 eine zum Decodierer DECOD B3 symmetrische Wahrheitstabelle nehmen und die Kombination der logischen Zustände hi ■ hi ausführen. Die Logik zur Ansteuerung der rechts von der hohen Diagonaladresse gelegenen Elemente muß folglich mit den Ausgängen Hi und//i~'des Decodierers DECOD H2 und mit dem Ausgang Hi des Decodierers DECOD H3 verbunden sein und nachstehende logische Operation ausführen
hi'1 + h'2-hi.
Wünscht man nur NAND-Glieder zu verwenden, so [\,B]+]H, 128J
und dann durch Verwendung eines UND-Glieds am Ausgang der Speicherstellen.
In Fig. 14 ist die Hälfte einer Speicher-Steckkarte abgebildet. Diese umfaßt einen integrierten Schaltkreis 10 von 16 · 4 Bits, eine Schreibschaltung 12, ein Pufferregister 14, eine Schreib-Steuerleitung 16, eine mit dem Taktgeber verbundene Leitung H, Logiken K'-J, K'-2, Κ'*, K'-4, wenn die Speicher-Steckkarte vom /-ten Rang ist sowie NOR-Glieder P-J... P·". Die Auswahl einer Zeile erfolgt durch die 4 Bits, die das Wort A\ bilden (B\ oder Hi, je nachdem, ob es sich um eine niedere oder hohe Diagonaladresse handelt). Die Eingänge der Logiken K sind mit den Decodierern verbunden (vgl. oben), und ihre Ausgänge sind einerseits an die NOR-Glieder P und andererseits an die Schreibschaltung 12 angeschlossen.
Die Schreibschaltung 12 gestattet nach Erhalten der Summe S, die sämtlichen im Intervall JB, ///auftretenden »1«-Bits spricht, die Nullrückstellung bzw. Löschung des ganzen Intervalls JB, H], damit nachher die gewünschte Anzahl »''--Bits darin eingeschrieben werden kann. Das Pulferregister 14 ermöglicht die weitere Speicherung der Speicherausgangszustände für die Dauer der Übergangszeit von einer Zeile zur anderen. Eine vollständige Steckkarte wird durch
Ergänzung mit einem zweiten integrierten Schaltkreis 10' erhalten, der an ähnliche Elemente wie der Schaltkreis 10 angeschlossen wird. Als integrierten Schaltkreis 10 kann man SN 7489 N und als Pufferregister SN 7475 N benutzen.
Nach der nun erfolgten Beschreibung der Speicher-Steckkarte und der Logiken zur Freigabe der Ausgänge wird jetzt der Aufbau der Decodierer mit 4 und 3 Bits, die die genannten Logiken steuern, genauer betrachtet.
Die Wahrheitstabelle des Decodierers DECOD B3 ist in Tabelle Ml angegeben.
Tabelle b c III bl b] bi b\ 0 bl D 0
a OO b\ 0 0 0 0 0 0 0
O 0 1 1 1 0 0 0 0 0 0
O 10 1 1 1 0 0 0 0 0
O 1 1 1 1 1 1 0 0 0 0
O 00 1 1 1 1 1 1 0 0
1 0 1 1 1 1 1 1 1 0 0
1 1 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1
Ausgehend von Tabelle III ist es dem Fachmann ein leichtes, eine Logik aufzubauen, die diese Funktionen erfüllt. Zur besseren Erklärung wird in Fig. 15 eine solche Logik dargestellt, die somit ein Beispiel für ehien Decodierer des Typs DECOD B3 angibt.
Die Wahrheitstabelle des Decodierers DECOD H3 wird durch die Komplemente der logischen Zustände der Tabelle III gebildet. Es ist also unnötig, sie aufzuzeichnen. Ein Beispiel einer Logik, die diese Funktionen ausführt, ist in F i g. 16 gegeben.
Die WahrheitPtabelle des Decodierers DECOD B2 mit 4 Bits ist in Tabelle IV wiedergegeben. Ihr entspricht das Schaltbild der Fig. 17, worin auch die Ausgänge angegeben sind, die es gestatten, den komplementären Zustand zu erhalten.
Tabelle IV
abcd
123456789 10 11...
0000 000 1 00 10 00 11 0 100 0 10 1 0 110 Olli 1000 100 1 10 10 10 11 1100 110 1 1110 1111
10000
110
110
1110
11110
1 1 1 1 1 0 ..
1111110.
11111110
11111 11111 11111 11111 11111
110. 111 0 111 . 111 . 111 .
1111111111 1111111111 1111111111
Tabelle V
abcd
12 3 4
. 16
0000 1111... 1
0001 0 1 1 .... 1
1110 0 11
1111 0 0 1
Ersichtlich gilt
= b\, h\ =
h2 s = b\b und h? = 1
Man kann folglich, ausgehend vom Schaltbild von F i g. 17, einen Decodierer DECOD H2 erhalten durch Verschiebung der Ausgänge, wie dies im rechts gelegenen Teil dieser Figur dargestellt ist.
Aufbau des Addierers ADD I
Der Addierer ADD 1 erhält logische Signale nur von den freigegebenen Speicherausgängen, d. h. von denjenigen, die im Intervall JB, ///enthalten sind. Seine Rolle ist die Bildung der Summe S aller in diesem Intervall enthaltenen »1«-Bits. Es ist vorteilhaft, einen Addierer zu verwenden, der wie folgt arbeitet.
Die 128 Bits sind in 4 Gruppen mit 31 Bits aufgeteilt,
jo da die 4 restlichen Bits gesondert verarbeitet werden. Jede Gruppe wird in einem Addierwerk verarbeitet, dessen Ausgänge nachher an ein anderes Addierwerk angeschlossen werden. Ein Blockschaltbild ist in F i g. 18 dargestellt. Den Gruppen mit 31 Bits zugeordnete Addierer 20, 22, 24 und 26 liefern Signale von 5 Bits an einen Addierer 30, der außerdem das 125_ 126. und 127. Bit der betreffenden Zeile erhält. Der Ausgang des Addierers 30 gibt ein Wort von 7 Bits ab, das die Summe der im Intervall ]B, ///enthaltenen »1 «-Bits darstellt, das
128. Bit ausgenommen, das, wie weiter unten erklärt, gesondert verarbeitet wird.
Jede der die Gruppen mit 31 Bits verarbeitenden Schaltungen kann vorteilhafterweise aus Addiererbaugruppen aufgebaut werden, z. B. vom Typ SN 7483, von denen jede zur Bildung der Summe von zwei Worien mit 4 Bits Uu U2, U3, Ua bzw. Vi, V2, V3, V4 vorgesehen ist. Es werden 6 Worte von 1 Bit jeweils auf die Eingänge Cj, U\, V,, (Λ, V3, V4 geschaltet und U3 wird auf »1« gebracht, während U2 und V2 auf »0« gesetzt werden. Die Summe von G, U\ und U2 wird bei Σ\ und Z2 ausgegeben, und die in Tabelle VI dargestellte Wahrheitstabelle zeigt, daß die Summe von Ua, V3, V4 bei Σα und Cq ausgegeben wird für: C4, U3 = 0\ und V4 = OO ist die Summe 01, (
Tabelle VI
K4 V3
C0 X4 Z3
Die Wahrheitstabelle des Decodierers DECOD H2 ist durch die vereinfachte Tabelle V gegeben.
0 0 0 0 0 1
0 0 1 0 1 0
0 1 0 0 1 1
0 1 1 1 0 0
1 I 0 0 0 1 1
1 0 1 1 0 0
1 1 0 1 0 1
1 1 1 1 I 0
Diese Schaltungsanordnung wird viermal wiederholt, und für jede Anordnung werden die ausgegebenen zwei Worte mit 2 Bits einer neuen Schaltung zugeführt, von der nur der erste Addierer sowie der Übertragungseingang benutzt werden. Man erhält so vier Worte mit 3 Bits, die je zu zweit addiert werden, mit Hilfe von zwei anderen integrierten Schaltungsmoduln, deren Übertragungseingänge zwei neue Worte mit 1 Bit erhalten, und schließlich werden die erhaltenen zwei Worte von 4 Bits mit dem 31. Wort von 1 Bit an einen 11. Addierer ausgegeben. Das Schaltbild einer solchen Schaltung ist in F i g. 20 dargestellt.
Zur Summation der den Addierern 20, 22, 24 und 26 entstammenden vier Worte mit 5 Bits wird die Schaltung 16 von Fig. 18 benutzt, die in vorteilhafter Weise aus Teilschaltungen entsprechend dem Schaltbild in Fig. 21 organisiert sind, bestehen kann. Für jedes Wortpaar wird für die 4 ersten Bits ein Schaltungsmodul benutzt und die Hälfte eines anderen für das 5. Bit, während der Übertragseingang des Addierers eines der 2η übriggebliebenen Worte von 1 Bit benutzt, d. h. das 125.
Die Ausgänge werden von einer aus einem Einbaumodul und einem halben Modul bestehenden dritten Schaltungsanordnung abgenommen, während der neue Übertragseingang das dritte (übriggebliebene) der vier Worte mit 1 Bit (das 127.) benutzt.
Nach Erhalt der Summe Sder»l «-Bits im Intervall JB. ///bleibt noch die Adresse X= 5+S zu berechnen, bis zu der von der niederen Diagonaladresse ausgehend die »1«-Bits einzuschreiben sind. Diese Addition erfolgt durch eine Schaltung Σ, deren Schaltbild in Fig.22 angegeben ist.
Diese Schaltung enthält:
— einen Pufferspeicher MT von 8 Bits, der die 7 Bits js des Wortes B2B1 über sieben Verknüpfungsglieder P erhält, die gleichzeitig durch den Anschluß 40 gesteuert werden; das an den Ausgängen des Pufferspeichers MT anstehende Wort mit 7 Bits bildet ein Wort X2Xi, 4(i
— einen Addierer ADD 2 mit 8 Bits, der die aus dem Pufferspeicher MT stammenden 7 Bits und die vom Addierer ADDl kommenden 7 Bits sowie das am Anschluß 42 dargestellte 128. Bit erhält, das vom Addierer ADD I nicht berücksichtigt worden war,
— 8 Verknüpfungsglieder P\ die geöffnet sind, wenn die Verknüpfungsglieder P geschlossen sind und umgekehrt und die den 8 Ausgängen des Addierers ADDTl und den 8 Eingängen des Pufferspeichers WTvorgeschaltet sind, ■> <>
— ein Zählwerk G mit 4 Bits, das auf B\ voreingestellt ist und dessen Taktgebereingang 44 mit dem achten hochgewichteten Ausgang des Addierers ADDI verbunden ist; das am Ausgang des Zählwerks Q anstehende Wort Xi von 4 Bits stellt die hochge- -,<■> wichteten 4 Bits der Adresse Xdar, deren 7 Bits mit schwachem Gewicht außerdem dem Wort X2Xi entsprechen.
Der Pufferspeicher kann aus 2 Moduln vom Typ SN W) 7474 N und der Addierer ADD2 mit 8 Bits aus 2 in Kaskade geschaltete Moduln SN 7483 aufgebaut werden.
Die Ausgangssignale des Addierers ADD2 können dank der Verknüpfungsglieder P'in den Pufferspeichern t/, gespeichert werden.
Auf diese Weise kann so oft wie nötig das Ausgangssignal des Addierers ADDi wieder hinzuaddiert werden, um (vgl. weiter unten) den Fall zu berücksichtigen, daß die Adressen B und H sich nicht in der gleichen Zeile befinden: ßi Φ H\.
Aufbau der Steuerschaltung
Die Steuerschaltung ist in Fig.23 schematisch dargestellt. Sie umfaßt:
ein auf B\ voreingestelltes Zählwerk C2, eine Weiche AXmit 2 Eingängen,
die X\ und Hi aufnehmen, und mit einem Steueranschluß 50, der bestimmt, welches der Worte X\ oder H1 am Ausgang 52 erscheint,
einen Vergleicher COMP, dessen Eingänge mit dem Zählwerk C2 und mit dem Ausgang der Weiche AK verbunden sind,
eine Weiche AH, die durch das über den Anschluß 50 abgegebene Steuersignal und durch das über einen Anschluß 52 abgegebene Komplementsignal gesteuert wird und deren Eingang mit dem Ausgang des Vergleichers COMPverbunden ist.
Die Weiche AH besitzt 2 komplementäre Ausgänge 53 und 55, von denen jeder eins der 2 Verknüpfungsglieder einer Weiche PH steuert, deren eines das Wort Λ2 Xi und deren anderes das Wort H2 Hi erhält. Die Ausgänge der Verknüpfungsglieder der Weiche PH sind mit den Decodierern DECODH2 und DECODH1 verbunden.
Die Arbeitsweise dieser Weiche ist folgende: B] und H\ werden auf den Vergleicher COMP gegeben. Bei H\ = Si entriegelt dieser Vergleicher die Weiche PH, die H2 und H3 auf den Decodierer für hohe Diagonaladressen überträgt. Der Decodierer für niedere Diagonaladressen erhält so eine Spannung, wie man später sehen wird, und die Addition der »1« erfolgt. Das Ergebnis 5 dieser Addition wird der niederen Diagonaladresse zugefügt zur Bildung der Adresse X, und »1«-Bits werden Sund X weiter eingeschrieben.
Nach dieser Operation wird durch das an dem Anschluß 52 erscheinende Signal »1« der Zustand der Weiche AH verändert, so daß H2 H3 durch X2 X3 am Ausgang der Weiche PH ersetzt wird. Aus der Definition von X2 Xz folgt, daß das Schreiben der »1 «-Bits die Adresse Xnicht überschreitet. Das über den Anschluß 50 zugeführte Steuersignal wirkt ebenfalls auf die Weiche AX ein, die das Wort X\ an den Vergleicher abgibt; da jedoch vorausgesetzt war ßi = H\, so folgt daraus ΛΊ = Hi, was das vom Vergleicher COM? ausgegebene Signal nicht verändert.
In der ganzen vorausgehenden Beschreibung wurde zur Vereinfachung vorausgesetzt, daß die niederen unc hohen Diagonaladressen einer Einschränkung sich ir der gleichen Zeile befanden. Im folgenden wird nun die Arbeitsweise der optimierenden Rechenmaschine er klärt, wenn AVi von B\ verschieden ist.
Ist Hi von B\ verschieden, so fügen die im Addierei ADDl und im Addierer ADD2 ausgeführten Additio nen die Summe Si der Einsen der Zeile B\ zu B. Dh Folgesteuereinrichtung S£(?gibt dann einen Impuls afc der das Zählwerk C2 inkremcnliert, und eine neui Addition
Si + Si + S2
wird ausgeführt. Diese Additionen werden fortgesetz bis Gleichheit zwischen dem Inhalt von C2 und H erreicht ist. Solange diese Gleichheit nicht erreicht is ist das Wiedereinschreiben der »!«-Bits gesperr Sobald der Inhalt des Zählwerks C2 gleich Hi wird, lös
ein (nicht dargestelltes) Flipflop folgende Operationen aus:
— Wiedereingabe des Worts B\ in das Zählwerk C2,
— Bildung des am Anschluß 52 erscheinenden Signals »1«, das über die Weiche AX die Verzweigung von X, zum Vergleicher COMPund über die Weiche PH die Verzweigung von X2 X} zum Decodierer für hohe Diagonaladressen steuert,
— Freigabe des Wiedereinschreibens von »1 «-Bits im Intervall ]B,X].
Das Schaltbild der vollständigen Steckkarte mit der gesamten Steuerschaltung ist in Fig. 24 dargestellt. In dieser Figur finden sich die Baugruppen der Fig. 23 wieder, und zwar das Zählwerk C2, der Vergleicher COMP, die Weichen AX, AH und PH, der Addierer ADD2, die Verknüpfungsglieder P und P' (die symbolisch nur durch ein einziges Glied dargestellt sind), der Pufferspeicher MT und das auf B\ voreingestellte Zählwerk C
Im unteren Teil gestattet die Logik PB das Eingreifen des Decodierers für niedere Diagonaladressen nur, wenn in der Zeile B\ gearbeitet wird.
Im Schaltbild der Fig. 24 stammen die (links) dargestellten Steueranschlüsse /» tu, AB, M 3, M2 von der Folgesteuereinrichtung SEQ in Fig.9. Diese Folgesteuereinrichtung ist schematisch in Fig. 25 dargestellt. Sie enthält ein Flipflop 62, drei in Kaskade geschaltete Monoflops M], M2, M] und eine Start-Stop-Kippscha!tung64.
Im vereinfachten Fall Si = H, arbeitet diese Folgesteuereinrichtung wie folgt:
Ein erster Übertragungsimpuls tn kommt vom Digitalrechner und sieht das Laden der Register Si, S2, Bs und des Zählwerks C2 vor. Ein zweiter Impuls tu lädt die Register Hi. H2 und H3, stellt das Flipflop 62 auf Null zurück und schaltet die Start-Stop-Kippschaltung 64 ein. Diese betätigt die Monoflops, die folgende Aufgaben haben:
M] gestattet das Laden der sich auf der Steckkarte befindenden Pufferspeicher, deren Ausgänge den Addierer ADD 2 steuern,
— M2 hat als Funktion das Einschreiben von Nullen und die lnkrementierung des Inhalts vom Zählwerk Ci,
M) überträgt die Ausgangssignale des Addierers ADD 2 in die zugeordneten Pufferspeicher MT.
Ist der Inhalt des Zählwerks C2 gleich W1, so läßt der Impuls M2 das Flipflop 62 kippen, was einen neuen Zyklus einschaltet, worin Xi den Vergleicher und X2 Xj den Decodierer für hohe Diagonaladressen steuern. Das Einschreiben der »!«-Bits erfolgt zwischen Sund X.
1st der Inhalt des Zählwerks C2 gleich Xi wegen des Kippens des Flipflops 62, so schallet der von M2 kommende Impuls die Start-Stop-Kippschaltung 64 ab. Das entsprechende Phasendiagramm ist in Fig. 26 gegeben, stets für den Fall Si = Wi.
Weiter oben wurde angegeben, daß die Adresse X, bis zu der »!«-Bits ausgehend von der niederen piagonaladresse S einer Einschränkung eingeschrieben werden müssen, durch Addieren von B zur Summe S der im Intervall ]B, HJ stehenden »!«-Bits erhallen wurde. Diese Addition wird in der Schaltung Σ der Fig.22 ausgeführt.
Bei einer bevorzugten Ausgestaltung der optimierenden Rechenmaschine kann die für einen Elemcntarvorgang ausgehend von einem Zustand mit der Adresse A zu treffende Entscheidung direkt vom Wert von X abgeleitet werden. Ist die Adresse A kleiner als die Adresse X, die nach Verarbeitung der letzten Einschränkung erhalten wurde, so liegt A unterhalb der Diagonale X, und die zu treffende optimale Entscheidung besteht darin, einen Weg auszuwählen, der unterhalb der genannten Einschränkung verläuft. Ist die Adresse A größer als X, so befindet sich A oberhalb der Diagonalen X, und die zu treffende optimale Entschei-
in dung besteht darin, einen Weg auszuwählen, der oberhalb der Einschränkung verläuft.
Wenn außerdem aus irgendeinem Grund, der z. B. an Entscheidungen gebunden ist, die in anderen als in der gerade betrachteten Ebene getroffen werden müssen, veranlaßt wird, in besagter Ebene einen Weg auszuwählen, der nicht der optimale Weg ist, so ist sofort die durch diese nicht optimale Wahl hervorgerufene »Strafe« bekannt, die ganz einfach die Differenz I A - XI der Adressen ist.
2Π Die vorausgehende Beschreibung bezieht sich stets auf die Verarbeitung eines zweidimensionalen Raumes, der einem System von zwei Variablen entspricht.
Selbstverständlich gehört zum sachlichen Schutzbereich der Erfindung auch eine optimierende Rechenma-
2-3 schine, die entweder parallel oder seriell ρ (ρ—1)/2 Aufgaben entsprechend dem Auffinden eines optimalen bzw. kürzesten Wegs für ein System mit ρ Variablen löst, wobei die Anzahl ρ (p-1)/2 der Anzahl verschiedener, je zu zweit kombinierter Variablen
so entspricht und jedes der ebenen Probleme wie oben beschrieben verarbeitet wird. In diesem Fall zeigt die optimierende Rechenmaschine p(p—1)/2 optimale Elementarvorgänge an, die in beliebiger Weise kombiniert werden können, um den optimalen Elementarvorgang im p-dimensionalen Raum aufzufinden.
Nur der Vollständigkeit halber sei gesagt, daß man für diese Kombination das wohlbekannte »Entscheidungsbaum«-Verfahren anwenden kann, das darin besteht, alle in den verschiedenen Ebenen als Funktion der entsprechenden Weglänge erhaltenen Elementarwege zu ordnen und sukzessiv alle Eventualitäten, die den Wegen mit abnehmender Länge entsprechen, auszuschalten, so daß am Ende der kürzeste Weg übrigbleibt. Mit diesem Algorithmus kann man die optimale, im p-dimensionalen Raum zu treffende Entscheidung finden und durch Projektion auf jede Ebene den optimalen Vorgang in jeder der Ebenen. Man kann jedoch auch andere Kombinations-Algorithmen anwenden.
Im allgemeinsten Fall enthält eine optimierende Rechenmaschine zum Aufsuchen eines optimalen bzw. kürzesten Wegs zwischen einem Anfangs- und einem Endzustand eines Systems mit ρ Variablen 7/(1 Zi^p):
A) die bereits beschriebenen Mittel zum Auffinden " und Speichern eines jeden der p(p- l)/2 optimalen
Elementarvorgänge für die p(p- l)/2-Systeme mit zwei Variablen 7",=/»und T1= n, mit ηίφη.
B) Mittel zur Ausführung der Kombination dieser p(p—\)l2 optimalen Elementarvorgängc, die den
h" optimalen Elementarvorgang für das System mit ρ Variablen ergibt.
In einer leicht abgewandelten Variante enthält die optimierende Rechenmaschine
A) die bereits beschriebenen Mittel zum Auffinden und Speichern für jedes der p(p- l)/2, als Funktion von zwei Variablen T1= m und Τ,-η, mit
betrachteten Systeme der Längen der drei Wege, die in den drei möglichen aufeinanderfolgenden Zuständen des Anfangszustandes enden,
B) Mittel zur Speicherung der auf diese Weise pip-
erhaltenen3 -
Längen,
C) Entscheidungsmittel, die besagte 3
Längen
vergleichen und einen der 2p— 1 möglichen, aufeinanderfolgenden Zustände für das System mit ρ Variablen auswählen, was den ersten optimalen Elementarvorgang definiert,
Die Daten können durch jedes klassische Computer-Peripheriegerät eingegeben werden (Lochkarten, Magnetbänder usw.) oder durch jedes andere Mittel (hydroelektromechanische Meßwertgeber usw.). Die Ergebnisse können durch Peripheriegeräte aller Art angezeigt werden: Bildschirmgeräte für farbige Anzeige, Schnelldrucker, Servogeräte.
Es versteht sich, daß über dieses Beispiel hinausgehend die optimierende Rechenmaschine sehr viel komplexere Aufgaben mit viel mehr als vier Variablen und einer bedeutenden Anzahl von Einschränkungen lösen kann.
D) Mittel, um in jeder der
Ebenen zu
überprüfen, ob besagter optimaler Elementarvor- r> Tabelle VII gang mit den in dieser Ebene angezeigten Einnschränkungen kompatibel ist.
Zur Veranschaulichung wird nachstehend ein absichtlich sehr einfaches Beispiel der Lösung einer Aufgabe -'< > mit Hilfe der erfindungsgemäßen Rechenmaschine gegeben, und zwar zur Illustration der Art und Weise, in der der optimierenden Rechenmaschine die Aufgabe gestellt wird, und der Form, in welcher diese sie löst.
Die Aufgabe betrifft 4 Züge, die sich ursprünglich auf 2"> 4 verschiedenen Gleisen befinden, welche Gleise sich zu einem einzigen Gleis mit 7 aufeinanderfolgenden Blockabschnitten vereinigen. Nach dem 7. Blockabschnitt teilt sich das einzige Gleis wieder in 4 Gleise, die aufs neue durch einen der 4 Züge belegt werden können, so Die Züge fahren mit Geschwindigkeiten, die nicht gleich sein müssen. Aus Sicherheitsgründen wird gefordert, daß wenigstens ein Blockabschnitt zwischen 2 Zügen frei bleibt. Die Aufgabe besteht nun darin, herauszufinden, auf welche Weise die Züge fahren müssen, um die )5 zeitlich optimale Lösung zu erhalten.
In dieser Aufgabe hängt die Gesamtsituation von vier Variablen 71, T2, 7*3, T4 ab, die die Besetztzeiten der Blockabschnitte darstellen. Es gibt sechs verschiedene Möglichkeiten, um diese Variablen zu zweit zu kombinieren, so daß die Aufgabe in sechs verschiedenen Ebenen behandelt werden muß.
Die Lage der Einschränkungen in jeder Ebene ist durch die Bedingung bestimmt, nach der mindestens ein freier Blockabschnitt zwischen 2 Zügen vorhanden sein muß, was bedeutet, daß, wenn der Zug Ti sich z. B. im Blockabschnitt 5 befindet, der Zug T2 sich weder im Blockabschnitt 4 noch im Blockabschnitt 6 noch selbstverständlich im Blockabschnitt 5 befinden kann. Ist auf diese Weise der Ort der Einschränkungen in den so sechs Ebenen bestimmt, so lassen sich daraus die Koordinaten der hohen und niederen Punkte der Einschränkungen ableiten, die die Daten der Aufgabe bilden, die der Rechenmaschine einzugeben ist. Diese Koordinaten sind in der Tabelle VlI zusammengestellt. Der optimierenden Rechenmaschine werden ebenfalls die Zuggeschwindigkeiten mitgeteilt, z. B. 9, 13, 14 und 17.
Die optimierende Rechenmaschine kann das Ergebnis in Form einer Befehlsfolge ausgeben, wie sie in der bo Tabelle VIII zusammengestellt ist. In dieser Tabelle sind lediglich die Entscheidungsänderungen angegeben; so ist für die nicht ausdrücklich erwähnten Durchfahrten 2 und 3 die zu treffende Entscheidung die gleiche wie für die Durchfahrt 1, d. h. »Vorfahren des Zuges Nr. 2«. Die h5 optimierende Rechenmaschine gibt ebenfalls die Gesamtdauer der optimalen Lösung an, die im behandelten Beispiel 27 Testschritte beträgt.
Ebenen Einschränkungen Y Koordinaten des Y
Koordinaten des 0 niederen Punktes 3
hohen Punktes I X 5
X 3 0 7
Ebene 2,1 2 5 1 10
3 7 2 12
4 10 3 13
6 0 4 2
8 1 6 3
9 2 0 5
Ebene 3,1 2 3 1 9
3 5 2 12
4 9 3 14
6 0 4 2
8 1 6 3
9 2 0 5
Ebene. 3,2 3 3 1 9
5 5 3 12
T
/
9 5 14
10 0 7 5
12 1 10 8
13 5 0 11
Ebene 4,1 2 8 1 13
3 11 2 15
4 13 3 17
6 0 4 5
8 1 6 8
9 5 0 Il
Ebene 4,2 3 13 1 17
5 0 3 5
7 1 10 8
13 5 0 Il
Ebene 4,3 2 8 1 13
3 Il 2 15
5 13 3 17
9 5
12 9
14
27 28
24 Tabelle VIII Hierzu 15 23 265
Durchfahrt
1 Folgende Züge; fahrer, vor
4 2
6 2-4
7 2
9 2-4
10 1-2-4
11 2-4
13 1-2-4
14 2-3-4
15 1-3-4
16 1-4
17 3-4
18 1-3-4
21 3-4
22 1-3-4
24 1-3
3
Blatt Zeichnungen

Claims (6)

u> Patentansprüche:
1. Optimierende Rechenmaschine zum Auffinden des kürzesten Weges zwischen einem vorgegebenen Anfangs- und einem vorgegebenen Endzustand eines Systems, dessen momentaner Zustand durch zwei digitale Variablen — Koordinaten — beschrieben ist, deren jede Λ/äquidistante Werte annehmen kann,
mit einem Eingabe-Speicher-Werk für die Anfangsund Endzustand-Koordinaten und für \erbotene Zustände — Einschränkungen — des Systems darstellende Koordinaten,
mit Rechen- und Speicher-Zellen zur Speicherung und Inkrementierung ihres Inhaltes mittels eines Inkrementbildners,
mit einer Einrichtung zur Änderung des Zelieninhalts in Abhängigkeit von den Einschränkungen derart, daß die zeitliche Änderung des Zelleninhalts durch die Ausbreitung einer gedachten rückiaufenden Welle darstellbar ist, die sich schrittweise in der Koordinaten-Ebene — Matrix — mit N2 Punkten vom Endzustandspunkt bis zum Anfangszustandspunkt fortpflanzt, so daß jeder Punkt die Welle von den vorausgehenden angrenzenden Punkten mit Ausnahme der die Welle nicht fortpflanzenden Einschränkungspunkte empfängt, mit einem Vergleicher,
der an den Ausgang der Speicherzellen angeschlossen ist und die Inhalte der dem vorausgehend ermittelten Koordinatenpunkt benachbarten Zellen jeweils vergleicht mit dem Inhalt des vorausgehend ermittelten Koordinatenpunktes und jeweils als neuen Koordinatenpunkt denjenigen mit dem nächstniedrigeren Inhalt auswählt, und — zur Berechnung des vollständigen Weges zwischen Anfangs- und Endzustand — eine Iterationseinrichtung enthält, die ihrerseits aufweist: ein Speicherglied für den durch den Vergleicher ausgewählten Koordinatenpunkt als neuen Anfangszustand,
eine Einrichtung zum Wiedereinschreiben der ursprünglichen Zelleninhalte,
einen Befehlsgeber für die Steuerung der Einrichtung zur Änderung des Zelleninhalts, des Vergleichers, des Speicherglieds und der Einrichtung zum Wiedereinschreiben der ursprünglichen Zelleninhalte für eine neue Verarbeitung der Zelleninhalte und eine Speichereinheit für die aufeinanderfolgende Speicherung der Menge der bei jedem Iterationsablauf gefundenen optimalen Schritte, die nach und nach den gesuchten kürzesten Weg vom Anfangszum Endzustand ergeben,
gekennzeichnet durch folgende Merkmale:
25
jo
35
45
50
55
a) daß die Rechen- und Speicher-Zellen (F i g. 9 und 11) in der Anzahl P=2 ■ N (Fig.8) vorhanden sind,
b) daß jeder der P Zellen eine Adresse — Diagonaladresse (0 bis 17 in Fi g. 8) — zugeordnet ist, und zwar derart, daß die P Diagonaladressen 0 bis P— 1 durchlaufen und so die Zellen P Diagonalen der Koordinatenebene zugepzlnet gedacht werden können (F i g. 8),
c) daß (Teil von SEQ) Glieder enthält zur Speicherung:
des Inkrements »0« für die Zellen mit den Eingabe-Speicher-Werk
b5
Diagonaladressen 0 bis /V und
des Inkrements »1« für die Zellen mit den Diagonaladressen Λ/+ 1 bis P— 1,
d) daß das Eingabe-Speicher-Werk jede Einschränkung mittels zwei Zahlen speichert (Fig.8),
deren eine Zahl H (z.B. 13) — hohe Diagonaladresse — der in der Koordinatenebene gelegenen höchsten Diagonale entspricht, die gerade noch das Einschränkungsfeld (z. B. 1, 2,3 in F i g. 6) berührt, und
deren andere Zahl B (z. B. 8) — niedere Diagonaladresse — der in der Koordinatenebene gelegenen unteren Diagonale entspricht, die gerade noch das Einschränkungsfeld berührt,
e) daß der Inkrementbildner derart ausgebildet ist, daß er bei jedem Iterationsablauf den Zelleninhalt in Abhängigkeit von den Diagonaladressen B und H der verarbeiteten Einschränkung inkrementiert und
el) das inkrement der Zellen mit den Diagonaladressen 0 bis B auf »0« hält,
e2) die Anzahl S1 von Inkrementen berechnet, die vor der Verarbeitung der jeweiligen Einschränkung in den Zellen mit den Diagonaladressen B+1 bis //gezählt wurden,
e3) den Inhalt der Zellen mit den Diagonaladressen ß+1 bis//löscht,
e4) das Inkrement »1« in den Zellen mit den Diagonaladressen ß+1, ß+2, ..., B+S speichert,
e5) das Inkrement »0« in den Zellen mit den Diagonaladressen ß+ 5+1 bis //speichert und
e6) die Inkremente der Zellen mit den Diagonaladressen H-r 1 bis P— 1 unverändert läßt.
2. Rechenmaschine nach Anspruch 1, gekennzeichnet durch
einen Speicher (M) mit P=2N Bit-Stellen, wobei jedes Bit ein Inkrement für eine Zelle darstellt, eine Freigabeeinrichtung (V) zur Freigabe aller Ausgänge der im Diagonaladressen-Intervall von ß+1 bis H- JB, H]- enthaltenen Speicherstellen, einen mit dem Ausgang des Speichers (M) über die Freigabeeinrichtung (V) verbundenen Addierer (ADDi) zum Addieren aller im Intervall ]B, H] enthaltenen »1«-Bits,
eine Löscheinrichtung (RZ) zum Löschen der Speicherstellen des Speichers (M)\m Intervall]B, H], eine Schreibeinrichtung (E)zum Schreiben einer Anzahl »1«-Bits gleich der Summe S, ausgehend von der Diagonaladresse ß-t-1 bis zu X= B+S, und
von »Ow-Bits von der Diagonaladresse X+1 bis zu H, und
eine an einen Digitalrechner (ORD) angeschlossene Folgesteuereinrichtung (SEQ), die:
Oi) das Schreiben und Lesen im Speicher (M), die Freigabeeinrichtung (V) und den Addierer (ADDi) bei jeder Verarbeitung einer Einschränkung steuert,
ß) einen Übergang von der Verarbeitung einer Einschränkung zur Verarbeitung der nachfolgenden Einschränkung gestattet und
γ) nach der letzten Verarbeitung gestattet, die Summe der eingeschriebenen »1 «-Bits bis zur Diagonaladresse der Zellen, die den drei
Folgezuständen des Anfangszustands entspricht, zu entnehmen (F i g. 9).
3. Rechenmaschine nach Anspruch 2, dadurch gekennzeichnet,
daß der Speicher (M) zu 2i Zeilen mit 2r Bits bei P= 29+"Organisiert ist,
daß die Zeile, zu der eine Diagonaladresse gehört, durch die q Bits mit dem höchsten Gewicht dieser Diagonaladresse definiert ist, die ein Wort B\ für eine niedrige Diagonaladresse und ein Wort H\ für eine hohe uiagonaladresse bilden, und
daß die Freigabeeinrichtung (V) aufweist:
einen Decodierer (DECOD B) für niedere Diagonaladressen, dessen Eingänge mit den Mitteln zur Speicherung der niederen Diagonaladressen und dessen Ausgänge mit Freigabe-Logiken VAL zur Freigabe der dem Intervall ]B, H] entsprechenden Speicherausgänge verbunden sind und der einen Decodierer (DECOD B{) von q Bits enthält, der q Eingänge und 2? Ausgänge besitzt, und
einen Decodierer (DECOD H) für hohe Diagonaladressen. dessen Eingänge mit den Mitteln zur Speicherung der hohen Diagonaladressen und dessen Ausgänge mit den Freigabe-Logiken VAL verbunden sind und der einen Decodierer (DECOD H\) von q Bits enthält, der q Eingänge und 2f Ausgänge besitzt (F i g. 11).
4. Rechenmaschine nach Anspruch 3, dadurch gekennzeichnet,
daß jede Speicher-Zeile von 2r Bits zu 2S Worten von je 2' Bits mit 5+1 = rorganisiert ist und daß:
a) der Decodierer (DECOD B) für niedere Diagonaladressen außer dem Decodierer (DE- COD B\) von q Bits enthält:
al) einen Decodierer (DECOD B2) von s Bits, die den s Bits mit mittlerem Gewicht der niederen Diagonaladresse entsprechen, die ein Wort B2 bilden, und
a2) einen Decodierer (DECOD B3) von t Bits, die den t Bits mit dem geringsten Gewicht der niederen Diagonaladresse entsprechen, die ein Wort B3 bilden, und
b) der Decodierer (DECOD H) für hohe Diagonaladressen außer dem Decodierer (DECOD H\) von q Bits enthält:
bl) einen Decodierer (DECOD H2) von s Bits, die den s Bits mit mittlerem Gewicht der hohen Diagonaladresse entsprechen, die ein Wort H2 bilden, und
b2) einen Decodierer (DECOD H3) von ( Bits, die den t Bits mit dem geringsten Gewicht der hohen Diagonaladresse entsprechen, die ein Wort H3 bilden,
c) daß der Speicher (M) eine Kapazität von 2" =2048 Bits besitzt, die zu 24= 16 Zeilen von 27=128 Bits organisiert sind, unterteilt in 16 Bytes, numeriert von /=1 bis 16, wobei die Bits eines Byte von j= 1 bis /=8 numeriert sind und jedes der 128 Bits einer Zeile somit durch zwei Indizes i, j als Speicherstelle M'-J (Fig. 13) beschrieben ist,
d) daß jede Diagonaladresse durch ein Wort von 11 Bits definiert ist, das aus drei Worten B\, B2 und B3 für die niedere Diagonaladresse und drei Worten Wi, H2 und H3 für die hohe Diagonaladresse zusammengesetzt ist, welche Wörter jeweils durch die vier höchstgewichteten Bits
der Diagonaladresse, durch die 4 Bits mit dem mittleren Gewicht bzw. durch die 3 Bits mit dem geringsten Gewicht gebildet sind,
e) daß der Decodierer (DECOD B2) von s Bits des Decodieren für niedere Diagonaladressen, der 4 Eingänge und 16 Ausgänge ΒΊ (7=1 bis 16) besitzt, alle Bytes links vom die niedere Diagonaladresse enthaltenden Byte einschließlich diesem auswählt,
f) daß der Decodierer (DECOD B3) von f Bits des Decodierers für niedere Diagonaladressen, der 3 Eingänge und 8 Ausgänge Bi (j= I bis 8) besitzt, in jedem Byte alle Stellen links von der durch den Wert von B3 im binären Dezimalcode dargestellten Stelle einschließlich dieser auswählt,
g) daß der Decodierer (DECOD H2) von 5 Bits des Decodierers für hohe Diagonaladressen, der 4 Eingänge und 16 Ausgänge H'2 (7=1 bis 16) besitzt, alle Bytes rechts vom die hohe Diagonaladresse enthaltenden Byte einschließlich diesem auswählt,
h) daß der Decodierer (DECOD H3) von f Bits des Decodierers für hohe Diagonaladressen, der 3 Eingänge und 8 Ausgänge H{ (7=1 bis 8) besitzt, in jedem Byte die Stellen rechts von der durch den Wert von H3 im binären Dezimalcode dargestellten Stelle einschließlich dieser auswählt,
i) daß die Freigabe-Logiken VAL jeweils aufweisen (F ig. 13):
ein NOR-Glied (P- J), das an den Ausgang jeder Speicherstelle (M'- J) angeschlossen ist und von dem
der Ausgang an den Addierer (ADDi), einer der beiden Eingänge an den Ausgang der Speicherstelle (M'')und der andere Eingang an den Ausgang einer Logik (K'-')mw. 6 Eingängen angeschlossen sind,
von denen 3 Eingänge mit den 2 Ausgängen ß; und Si +'des Decodierers (DECOD B2) von s Bits des Decodierers für niedere Diagonaladressen bzw. mit dem Ausgang B{ des Decodierers (DECOD B3) von t Bits des Decodierers für niedere Diagonaladressen verbunden sind und für diese 3 Eingänge die Logik die Verknüpfung
b'2 + l + b2 ■ b{
ausführt,
und die 3 anderen Eingänge mit dem 2 Ausgängen Hi und Wi"' des Decodierers (DECOD H3) von f Bits des Decodierers für hohe Diagonaladressen bzw. mit dem Ausgang Hi'des Decodierers (DECOD H3) von f Bits des Decodierers für niedere Diagonaladressen verbunden sind und für diese 3 Eingänge die Logik (K'J)d\e Verknüpfung
h'r1 + Ix2 ■ hi
ausführt,
wobei b und h den logischen Zustand der entsprechenden Ausgänge B bzw. H bezeichnen.
5. Rechenmaschine nach Anspruch 4, dadurch gekennzeichnet, daß jede Logik (K'-^enthält:
ein NAND-Glied (PH) mit 2 Eingängen, von denen einer mit dem Ausgang Hi und der andere mit dem Ausgang Hi verbunden ist,
ein NAND-Glied (PB) mit 2 Eingängen, von denen einer mit dem Ausgang Bi und der andere mit dem Ausgang B{ verbunden ist,
ein NAND-Glied (PBH)mil4 Eingängen, von denen der erste und der zweite mit dem Ausgang des einen NAND-Glieds (PH)bzu/. dem Ausgang des anderen NAND-Glieds (PB), der dritte mit dem komplementiertenAusgang Hi'1, d.h.Hi'1, und der vierte mit dem komplementierten Ausgang Bi'', d. h. ßj + l sowie der Ausgang mit einem der 2 Eingänge des NOR-GliedsfP^verbunden sind(Fig. 13).
6. Rechenmaschine nach einem der Ansprüche 2 — 5, gekennzeichnet durch eine Schaltung Σ (F i g. 22) zur Berechnung der Summe S+ B,
die an den Ausgang des Addierers (ADDX) angeschlossen ist und deren Ausgang die Diagonaladresse X angibt, bis zu der »1«-Bits eingeschrieben werden müssen,
wobei die Diagonaladresse X auch mit ΛΊ, X2, Xi bezeichnet ist, mit
X\ = das aus den 4 Bits mit hohem Gewicht der
Diagonaladresse gebildete Wort, ~3
X2 = das aus den 4 Bits mit mittlerem Gewicht gebildete Wort und
Xi = das aus den 3 Bits mit dem geringsten Gewicht gebildete Wort.
DE2423265A 1973-05-14 1974-05-14 Optimierende Rechenmaschine Expired DE2423265C3 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR7317373A FR2230260A5 (de) 1973-05-14 1973-05-14
FR7344816A FR2255000A6 (de) 1973-12-14 1973-12-14

Publications (3)

Publication Number Publication Date
DE2423265A1 DE2423265A1 (de) 1974-11-21
DE2423265B2 true DE2423265B2 (de) 1978-05-18
DE2423265C3 DE2423265C3 (de) 1979-01-11

Family

ID=26217721

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2423265A Expired DE2423265C3 (de) 1973-05-14 1974-05-14 Optimierende Rechenmaschine

Country Status (8)

Country Link
US (1) US3974481A (de)
JP (1) JPS5548332B2 (de)
CH (1) CH592343A5 (de)
DE (1) DE2423265C3 (de)
GB (1) GB1451881A (de)
IT (1) IT1014170B (de)
LU (1) LU70067A1 (de)
NL (1) NL7406451A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4424037A1 (de) * 1994-07-11 1996-01-18 Ibm Verfahren und System zur automatischen, rechnersystemgestützten Optimierung

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4122523A (en) * 1976-12-17 1978-10-24 General Signal Corporation Route conflict analysis system for control of railroads
US4210962A (en) * 1978-06-30 1980-07-01 Systems Control, Inc. Processor for dynamic programming
IT8448723A0 (it) * 1983-08-13 1984-02-13 British Aerospace Se in corrispondenza di una serie sistema per l'assegnazione di risordi richieste e metodo per determinare la distribuzione ottimale delle risorse
GB8328909D0 (en) * 1983-10-28 1983-11-30 Hutton G H Manufacturing pattern-bearing article
CA1253965A (en) * 1985-04-01 1989-05-09 Declan G. Murray Tactical routing system and method
US4642890A (en) * 1985-10-31 1987-02-17 At&T Technologies, Inc. Method for routing circuit boards
WO1988005947A1 (en) * 1987-01-29 1988-08-11 Lockheed Corporation Array processor for optimizing state variables and travel costs between two topographical points
US4914615A (en) * 1987-09-04 1990-04-03 At&T Bell Laboratories Calculator of matrix products
US5136538A (en) * 1987-09-04 1992-08-04 At&T Bell Laboratories Preconditioned conjugate gradient system
US5107452A (en) * 1987-09-04 1992-04-21 At&T Bell Laboratories Computation optimizer
US4905144A (en) * 1987-11-02 1990-02-27 Fmc Corporation High speed path optimization co-processor
US5072379A (en) * 1989-05-26 1991-12-10 The United States Of America As Represented By The Adminstrator Of The National Aeronautics And Space Administration Network of dedicated processors for finding lowest-cost map path
US5548773A (en) * 1993-03-30 1996-08-20 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Digital parallel processor array for optimum path planning
FR2761176B1 (fr) * 1997-03-18 1999-05-14 Aerospatiale Procede et dispositif pour determiner un trajet de vol optimal d'un aeronef
US6937992B1 (en) * 2000-12-29 2005-08-30 Arrowstream, Inc. Transport vehicle capacity maximization logistics system and method of same
US8112300B2 (en) * 2005-04-22 2012-02-07 Air Liquide Large Industries U.S. Lp Production optimizer for supply chain management

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3411140A (en) * 1965-03-17 1968-11-12 Itt Network status intelligence acquisition, assessment and communication
FR1586705A (de) * 1968-09-19 1970-02-27
US3794983A (en) * 1973-04-17 1974-02-26 K Sahin Communication method and network system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4424037A1 (de) * 1994-07-11 1996-01-18 Ibm Verfahren und System zur automatischen, rechnersystemgestützten Optimierung

Also Published As

Publication number Publication date
IT1014170B (it) 1977-04-20
GB1451881A (en) 1976-10-06
CH592343A5 (de) 1977-10-31
NL7406451A (de) 1974-11-18
DE2423265A1 (de) 1974-11-21
LU70067A1 (de) 1974-10-01
US3974481A (en) 1976-08-10
JPS5548332B2 (de) 1980-12-05
DE2423265C3 (de) 1979-01-11
JPS50124548A (de) 1975-09-30

Similar Documents

Publication Publication Date Title
DE2423265C3 (de) Optimierende Rechenmaschine
DE2008663C3 (de) Datenspeicher- und Datenspeicheransteuerschaltung
DE1901343C3 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE1178623C2 (de) Programmgesteuerte datenverarbeitende Maschine
DE2803989A1 (de) Wahlfreie zugriffsspeichervorrichtung fuer digitale daten
DE68921161T2 (de) Programmierbares digitales Filter.
DE1302494B (de)
DE68927611T2 (de) Digitales neuronales Netwerk
DE2803425A1 (de) Digitaleinrichtung zur ermittlung des wertes von komplexen arithmetischen ausdruecken
DE2259725B2 (de) Funktionsspeicher aus assoziativen Zellen mit mindestens vier Zuständen
DE2854782A1 (de) Datenverarbeitungssystem
EP0178424B1 (de) Zellenstrukturierter digitaler Multiplizierer mit semisystolischem Aufbau
DE1925427A1 (de) Datenuebertragungsvorrichtung zum UEbertragen von Daten zwischen Informationsspeichern
DE1524898A1 (de) Datenspeicher fuer Datenverarbeitungsanlagen zur gleichzeitigen Entnahme mehrerer Worte
DE2946119A1 (de) Datenverarbeitungseinrichtung
DE1774601A1 (de) Verfahren zur Ausfuehrung von Spruengen in eine Befehlssequenz,die aus einer Vielzahl von Befehlssequenzen in einem Befehlss? eines Computers auswaehlbar ist
DE2136210A1 (de) Zentraleinheit fur eine EDV-Anlage
DE69206604T2 (de) Schnelle Addierkette.
DE2403669B2 (de) SpezialComputer
DE2459476C3 (de)
DE2309029A1 (de) Elektronische digital-datenverarbeitungs-anlage der gattung mit parallelverarbeitung mehrerer binaerer signale
DE2459476A1 (de) Schaltungsanordnung fuer nichtzyklische datenpermutationen
DE2649147C2 (de) Anordnung zum wahlweisen Durchführen von logischen und arithmetischen Operationen
DE1916377C3 (de)
DE69804248T2 (de) Verfahren zur berechnung der schnellen fourier-transformation und der schnellen invers-fourier-transformation

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8320 Willingness to grant licences declared (paragraph 23)