DE2423265C3 - Optimierende Rechenmaschine - Google Patents

Optimierende Rechenmaschine

Info

Publication number
DE2423265C3
DE2423265C3 DE2423265A DE2423265A DE2423265C3 DE 2423265 C3 DE2423265 C3 DE 2423265C3 DE 2423265 A DE2423265 A DE 2423265A DE 2423265 A DE2423265 A DE 2423265A DE 2423265 C3 DE2423265 C3 DE 2423265C3
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.)
Expired
Application number
DE2423265A
Other languages
English (en)
Other versions
DE2423265B2 (de
DE2423265A1 (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; CALCULATING OR 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

Xi =
Xi =
das aus den 4 Bits mit hohem Gewicht der Diagonaladresse gebildete Wort,
das aus den 4 Bits mit mittlerem Gewicht gebildete Wort und
das aus den 3 Bits mit dem geringsten Gewicht gebildete Wort.
25
30
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.
Zur Beschreibung der Ablaufpianungs-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 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 Systernzustand entspricht also danach einem Raumpunkt, so daß der Obergang des Systems von einem Zustand in einen anderen dem Weg von einem Raumpunkt zu 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 Endzusland 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ändc, gefunden werden muß.
Verfahren zur Ermittlung des kürzesten Wegs zwischen zwei durch Hindernisse gelrennten Punkten in einer Ebene sind bereits bekannt.
So ist es z. B. bekannt (E. F. Moore, »The shortest path through a maze«, Annals of the Computation Laboratory of Harvard University Dd. 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 η üßle 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 Λ/2 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 dem Wert 2Λ/ nähern würde und damit wieder zu Speicherschwierigkeiten führte.
Zur Vermeidung des zuletzt genannten Nachte:'s ist 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-16 [1967], S. 97), die in den Kästchen eingeschriebenen Zahlen eine derartige Folge bilden zu lassen, daß die einem Symbol dieser Folge vorangehende Zahl von der nachfolgenden Zahl verschieden ist. um auf diese Weise die Speicherelemente so vorzusehen, daß sie nur eine begrenzte Anzahl von Bits speichern, z. B. 2. Eine diesen Algorithmus anwendende optimierende Rechenmaschine müßte aber immer noch N2 Speicherplätze aufweisen.
Ähnliche Schwierigkeiten hinsichtlich der notwendigen Anzahl von ΛΡ Speicherplätzen wurden bei der Anwendung eines anderen bekanntgewordenen Algorithmus (C. Y. L e e, »An algorithm for path connections and its applications«, IEEE Transaction on Electronic Computers, Bd. EC-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 »I« 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ästcJ.fjn mit bereits eingeschriebener »I« 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 w.m mit einem in einzigen Schrill 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), iinfl rlor Prr^vpR iuirrl Hnr^h gfnpntps Einschreiben 6!HCr »1« wiederholt, wobei jedoch der Punkt L als neuer Endpunkt genommen wird. Nach />-l 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. Lee, 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 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 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ücldaufenden Welle nicht um eine physikalisehe Realität, sondern nur um ein Denkmodell zum leichteren Verständnis der zeitlichen Änderung des Inhalts der Koordinaten-Kästchen der das System darstellenden Ebene bzw. der entsprechenden Speicherund Rechenzelien 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 N2 beträchtlich verringert, aber auch die Rechenzeit beträchtlich verkürzt wird, indem die Wegesuche in der Koordinateneberte flicht 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 '
Willi IUUIIgOg
UUIIg
lic Kcc
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 2N 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 Wellenfront beim Durchlaufen jeder Einschränkung gegenüber einer ohne diese Einschränkungen sich ausbreitenden, also ungestörten Bezugswelle.
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 inkrement »Οι oder »I«, 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
Fi g. I eine Ebene, die ein System mit zwei digitalen Varinblen hpsphreiht.
F i g. 2 eine ebene Darstellung, in der die Wellenfront rechteckig ist,
Fig. 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,
Fig.5 eine geometrische Konstruktion, mit der bei Kenntnis einer Einschränkung die durch sie gestörte Wellenfront konstruierbar ist,
Fig.6 die Ermittlung der gestörten Wellenfront im Fall mehrerer Einschränkungen, von denen eine die Wellenfront nicht stört,
Fig. 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,
Fig. 10 ein Organisaticnsbeispiel des Speichers in der Rechenmaschine,
Fig. 11 schematisch die Mittel zur Auswahl der im biagonaladressen-lntervall ]B. H] gelegenen Speicherstellen,
Fig. 12 ein Diagramm zur Erläuterung der Art und Weise der Auswahl des genannten Intervalls JB, H]
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,
Fig. 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 Σ,
F i g. 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 schettiatisches Schaltbild der Folgestcuereinrichtungund
F i g. 26 die verschiedenen Betriebsphasen der Folgesleuereinrichtung von F i g. 25.
Wie bereits weiter oben angegeben wurde, kann ein System mit η Variablen stets symbolisch durch die Punkte eines /j-dimensionalcn 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 Fig. 1 und2 hervorgeht.
In der in Fig. I dargestellten Ebene nehmen di>* repräsentativen Punkte die Ecken von gleichseitigen Dreiecken ein. Die gedachte Welle, die die laufende Vpränrlpriincr Ηρς Inhalts der Sne!chere!eniente der 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 In Fig.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
V) angenommen wie in Fig. 2.
In Fig. 3 ist eine Einschränkung (genau genommen ein Einschränkungs-Feld aus mehreren unmittelbar benachbarten Einschränkungen) dargestellt, die durch eine Menge von »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 Λ'und 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 NPund 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 /VPerfolgen, 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 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 A "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 Elcmentarvorgang, 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 A "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 Fig. 7, zum durch den JPunkt A "'dargestellten Zustand.
Der Punkt A" (oder A") wird dann als neuer Zielpunkt der Welle genommen, und eine neue Folge jyon Arbeitsschritten führt zum zweiten Elementarvorgang, ausgehend vom durch den Punkt A '"dargestellten Zustand, zum nächstfolgenden Znslnnrl.
Nach und nach werden auf diese Weise sämtliche Elementarvc-.gä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 ODtimierende Rechenmaschine mit ihren wesentlichen Eigenschaften anhand von F i g. 8 und 9 und der Tabelle I beschrieben.
Die optimierende Rechenmaschine enthält P=2N Ze'len. Zum besseren Verständnis wird eine optimierende Rechenmaschine mit P= 18 Zellen betrachtet, was zur Verarbeitung des in Fig. 8 gezeigten Problems aus eicht.
(ede 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 //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 5=8. Der Inhalt einer Zelle mit der Adresse X wird symbolisch mit (^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 11 einschließlich und die Zahlen »1«, »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 Welleiiffont von F i g. 8 und einer linearen theoretischen Wellenfront darstellen würde, die mit der Achse OV zusammenfällt. Hier werden jedoch Berechnung und Speicherung der Zunahme der Abweichung vorgezo· -> gen, wenn man von einer Zelle zur folgenden geht, gegenüber der eigentlichen Abweichung. Diese Zunahme ist nämlich eine sehr einfache Zahl zwischen ?.wci aufeinanderfolgenden Zellen, da sie nur »I« (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 !•nkrcment der Zellen gleich 0 für die Zellen mit den Γι Adressen von »0« bis »II« einschließlich, und dieses Inkrement wird »1« für die Zellen mit den Adressen ν,οίι 12 bis 17.
■ Zur Verarbeitung einer Einschränkung, die durch ihre hohe Disgonaladressc H und ihre niedrige Diagona!- ädresse B definiert ist, führt die optimierende Rechenmaschine die-folgenden Operationen aus:
Unterhalb der niederen Diagonaladrcsse bleiben die Inkremente unverändert;
ab der niedrigen Diagonaladresse, nämlich für 21» ß+1, ß+2 usw. bis B+S, wird 5-mal »1« eingeschrieben, wobei 5 gleich (H)-(B) ist, d.h. gleich der Anzahl der Inkremente, die vor der Verarbeitung der jeweiligen Einschränkung in den Zellen mit den Diagonaladressen B+1 bis H jii gezählt wurden (welches Diagonaladressen-Intervall symbolisches, /-//abgekürzt wird), in den Zellen mit den Diagonaladressen ß+S+1 bis //wird das Inkrement »0« gespeichert und jenseits der Zelle mit der Diagonaladresse H Vi 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
Adresse
II
Anfangs-
abwci-
chung
III
Anfangsinkremcnt
IV
Inkrement nach Einschrän kung Nr. 1
Inkrement nach Einschrän kung Nr. 2
6
5
4
3
2
I 0
0 0
9 0
8 0
7 0
6 0
5 0
4 0
3 0
2 0
1 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0
I I 1
1 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Tabelle I erläutert den Algorithmus. In Spalte I 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 S=8 und H= 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 Ipkremente diejenigen der Spalte IV.
In Spalte V sind die aufeinanderfolgenden Inkremente nach der zweiten Einschränkung aufgezeichnet. Zwischen den Adressen B= 12 und H=\f> wurden 3 Einsen gezählt, und in Spalte V findet man von der Adresse \2+ 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:
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 5. 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ämllicher 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. 4. die die eben genannten Operationen ausführt, besitzt die folgenden Baugruppen: ,»
einen Speicher /V/mit P= 2NBit-Stellen, wobei jedes Bit ein Inkrement für eine Zelle darstellt,
eine Freigabeeinrichtung V/ur Freigabe aller Ausgange der im Diagonaladressen Intervall von B+ I bis // — ]B. H]- enthaltenen Speichersiellen. ,-,
einen mit dem Ausgang des Speichers M über die Freigabeeinrichtung V verbundenen Addierer ADD I zum Addieren aller im Intervall ]B. H] enthaltenen »!«-Bits.
eine Löscheinrichtung Rl zum Loschen der Speicherstellen des Speichers Mim Intervall JB, H],
eine Schreibeinrichtung £zum Schreiben
einer Anzahl »!«-Bits gleich der Summe 5, ausgehend von der Diagonaladresse B+1 bis zu A-= B+ S, und
von »O«-Bits von der Diagonaladresse X+\ bis zu H. μ und
eine an einen Digitalrechner ORD angeschlossene Folgesteuereinrichtung SEQ. die:
ex.) das Schreiben und Lesen im Speicher M, die Freigabeeinrichtung V und den Addierer ADD] bei jeder Verarbeitung einer Einschränkung steuert,
ß) einen Obergang von der Verarbeitung einer Einschränkung zur Verarbeitung der nachfolgenden Einschränkung gestattet und
γ) nach der letzten Verarbeitung gesla'tet, die Summe der eingeschriebenen »!«-Bits bis zur Diagonaladresse der Zellen, die den drei Folgezuständen des Anfangszustands entspricht, zu entnehmen.
Im folgenden werden Ausführungsbeispiele der Baugruppen von Fig.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 Inkrement mit dem 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 2·* Zeilen mit je 2' 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 2" =128 Bits organisierl ist. Jede Zeile wird dann vorteilhafter weise in Ib Bytes zerlegt, die von /= 1 bis 16 numeriert sind, wobei die Bits eines Byte von j= 1 bis y = 8 numeriert sind. Jedes der 128 Bits einer Zeile ist somit durch eine Schreibweise mit zwei Indizes M' bezeichnet
Der Grundaufbau des Speichers M in diesem Sonderfall ist durch Fig. 10 illustriert. Der Speicher ist aus integrierten Schallkreisen aufgebaut, von denen jeder Ib Worte /u 4 Bits enthält. Zwei integrierte Schaltkreise in .Serienschaltung bilden Ib Bytes. 32 Schaltkreise in Serie gestatten folglich die Bildung von !6 Zeilen/u 128 Bits
Die Hin und Ausgänge des Speichers sind jeweils oben und unten in der genannten Figur durch 128 senkrechte Striche dargestellt. Eine Schreib-Lesesteuer leitung /:" I. gestattet es, jede der integrierten Schalt kreise mit einem Schreib- oder Lesebefehl zu adressieren. Die Hin- und Ausgangs Schaltkreise der Speicher pl.it/e sind in dieser Figur nicht abgebildet und werden spater beschrieben.
Hs können Speicherschaltkreise verwendet werden, die während der Lesephase auf jeden Ausgang das Komplement /um gespeicherten Bit geben. Zum Schreiben einer Information genügt es, die Schreib- und Lese Steuerleitiing E/l. auf »1« /u 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 II 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 H\ 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 JB, ///enthaltenen Speicherplätze anzusteuern, damit der Addierer ADD I die Summation aller in diesem Intervall enthaltenen »!«-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 ti 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 würden und umgekehrt, wäre selbstverständlich ebenfalls ein »Dreieck«-Decodierer.
Tabelle II
α h < 12 3 4 5 6 7 8 2^
0 0 0
00 I
ü I 0
0 1 I
1 0 0
I 0 1
I I 0
1 I I
0 0 0 0 0 0 0
00000 0
0 0 0 0 0
0000
10 0 0
110 0
I I 1 0
I 1
Die Komplexität eines »Dreicck«-Decodierers steigt mit der Anzahl Bits sehr rasch an. Daher ist es vorzuziehen, die Anzahl der zu verarbeitenden Bits zu unterteilen, was dazu führl, mehrere Decodierer zu kombinieren. Zu diesem Zweck ist vorgesehen, jede Zeile mit 128 Bits in 16 Bytes zu unterteilen, wodurch es gestaltet wird, eines der Bits einer Zeile durch zwei Adressen zu adressieren, eine mil 4 Bits zur Ansteuerung eines Bytes unter den 16 vorhandenen und eine mil j> 3 Bits zur Ansleucrung eines Bits unlcr den 8 vorhandenen.
Das hcißi. eine beliebige Adresse A mit 11 Bils ist in ein aus 4 Bits mil hohem Gewicht gebildetes Won A,. ein aus 4 Bits mit minierem Gcwichl gebildetes Wort Ai in und ein aus 3 Bits mit niedrigem Gewicht gebildetes Wort Ai unterteilt (diese Wörter sind jeweils für die niedere D'agonal.idrcssc mil Bu B1. B\ und für die hohe Diagonaladresse mit IU. Hi. /Λ bezeichnet).
Die Freigabeeinrichtung V für die Ausgänge der im γ, Intervall ]B. ///enthaltenen Speicherplätze ist genauer in Fig. Il abgcbildei und enthält einen Decodierer DECOD B für die niedere Diagonaladresse und einen Decodierer DHCOl) H für die hohe Diagonaladresse. Der Decodierer DHCOD B für die niedere Diagonal- bo adresse enthält einen Decodierer DECOD B\ mit 4 Bits, einen Decodierer DECOD B2 mit 4 Bits und einen Decodierer DECOD Bi mit 3 Bits. Der Decodierer DECÖD H für die hohe Diagonaladresse enthält in entsprechender Weise einen Decodierer DECOD H\ 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 16 Ausgänge, die in der Folge mit B\ bezeichnet werden, wobei / von 1 bis 16 variieren kann. Der Decodierer DECOD Bi besitzt 3 Eingänge und 8 mit Bi bezeichnete Ausgänge, wobei j von 1 bis 8 variiert.
Der Decodierer DECOD H2 besitzt 4 Eingänge und 16 mit ΗΊ bezeichnete Ausgänge, wobei / von 1 bis 16 variieren kann, der Decodierer DECOD Hi 3 Eingänge und 8 mit Hi bezeichnete Ausgänge, wobei ebenfalls j von 1 bis 8 variiert.
Die Decodierer DECOD Bx und DECOD H\ gestatten die Freigabe einer Zeile. In dieser Zeile werden die Stellen jeweils durch die Decodierer DECOD B2 — DECOD Bi 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 SL' der Speicherstelle ML> ist nr.. einer Freigabe-Logik VAL und dem Addierer ADDi verbunden.
Wie in F i g. 13 dargestellt, enthält die Freigabe-Logik VA L zur Freigabe der Speicherausgänge im Intervall JB, ///ein jedem Ausgang zugeordnetes logisches Verknüpfungsglied P1', genauer ein NOR-Glied, das an den Ausgang einer jeden Speicherstelle M'' angeschlossen ist, wobei der Ausgang des NOR-Glieds an den Addierer ADDX angeschlossen ist. Einer der beiden Eingänge des NOR-Glieds ist mit dem Ausgang 5'' der Speicherstelle M'' verbunden und der andere Eingang mit dem Ausgang einer Logik ', von der nachstehend das Funklionsprinzip 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 mil zwei Indizes bezeichnet: M· >. 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 // der zu verarbeitenden Einschränkung in derselben Zeile auftreten, d. h. B, = H\. Der Fall B\ Φ //, wird später besprochen.
Zur Freigabe des Intervalls JB. HJ 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 Speichcrstcllc M' > der niederen Diagonaladresse entspricht, links von der die Ausgänge angesteuert werden sollen.
Die Ansteueriingen (Freigaben oder Sperrungen) erfolgen mit Hilfe von dreicckförmigen Decodierern. denen die Konfiguration der in Tabelle I abgebildeten Wahrheitstabelle gegeben wurde.
Im folgenden wird der logische Zustand eines Decodiererausgangs mit einem kleinen Buchstaben bezeichnet. / B. b': für den logischen Zustand des Ausgangs fl. des Decodieren DFCOD B1 oder hi für den logischen Zustand des Ausgangs Hi des Decodierers DI.CODlU.
SchheUt man nun die Speichersteüen M", fcP\ .... /V/1·8 direkt an den Ausgang S] des Decodierers B2 an
Und die Speicherstellen M2-1, M2-2 /W28 an den
Ausgang B\ usw., so werden sämtliche Bytes von I 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 ß'+l angeschlossen, so befinden 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 Fig. 12 durch die zweite durchgehende Zeile dargestellt, die beim letzten Bit des/-1-ten Byte endet
Zur Auswahl der Speicherstellen von /=1, /=1 bis M1·' muß man dem durch die zweite Zeile in Fig. 12 dargestellten Zustand das Segment anfügen, das von j= 1 bis j im /-ten Byte geht. Nun ist das logische Produkt b'i ■ bi (worin der Punkt die UND-Verknüpfung symbolisiert) gleich »1«, wenn bi und obgleich »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 ML> muß man folglich die Zeilen 2 und 3 kombinieren, was darauf hinausläuft, die logische Operation
wird die vorangehende Verknüpfung in folgender Form geschrieben:
in
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 21I werden:
worin das Zeichen »|« die NAND-Verknüpfung symbolisiert.
Jeder Ausgang einer Speichers"»IIe M'' muß folglich mit einer an die Ausgänge ΒΊ undßi^'des Decodierers DECOD Bi und an den Ausgang Ρ·ί des Decodierers DECOD B] angeschlossenen Logik verbunden sein, die mit den an diesen 3 Ausgängen erscheinenden logischen Zuständen folgende logische Operation ausführt
Aifl + i»2-hi
oder, was aufs gleiche hinausläuft, die Operation
Was die Ansteuerung der rechts von der hohen Diagonaladresse gelegenen Ausgänge betrifft, ist die Aufgabenstellung ähnlich. Es wird ein »Dreiecktt-Decodierer verwendet, dessen Wahrheitstabelle zu derjenigen des Decodierers der niederen Diagonaladressc symmetrisch ist.
Schließt man sämtliche Stellen eines Byte vom /-ten Rang an den Ausgang H'2 an, so werden alle Bytes rechts von Hausgesteuert, 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 Ausgang/-/; 'angeschlossen werden. Zur Ansteuerung der /wischen M i1 und M'" gelegenen Stellen muß man für den Decodierer DECOD Hi eine zum Decodierer DtXOD B> symmetrische Wahrlicitstabellc nehmen und die Kombination der logischen Zustände h'i ■ h{ ausführen. Die Logik zur Ansteuerung der rechts von der hohen Diagonaladrcsse gelegenen Elemente muß folglich mit den Ausgängen Hi undf/i" 'des Decodierers DECOD H2 und mit dem Ausgang Hi des Decodierers DECOD Hj verbunden sein Und nachstehende logische Operation ausführen
/ii ' + IS1 hl.
Wünscht man nur NAND-Glieder zu verwenden, so
V) M" 1I(M I/li).
worin das Zeichen »|« wiederum die NAND-Verknüpfung symbolisiert
In Fig. 13 wird ein Beispiel einer Lofik K'' dargestellt, die nur aus NAND-Gliedern aufgebaut ist Die Logik K'J besitzt 6 Eingänge, von denen 3 an die Decodierer für niedere Diagonaladressen DECOD Bi und DECOD B^ angeschlossen sind und die 3 anderen an die Decodierer für hohe Diagonaladressen DECOD Hi und DECOD H1.
Genauer gesagt, ein NAND-Glied PB ist mit den Ausgängen B·, und B{ und sein Ausgang mit dem Eingang eines NAND-Glieds PBH mit 4 Eingängen verbunden, das außerdem mit dem vorher komplementierten und symbolisch Si *' bezeichneten Anschluß Si"' verbunden ist.
Auf die gleiche Weise enthält der obere Teil der Logik K" ein NAND-Glied PH, das die Ausgänge H\, Hi der Decodierer für hohe Diagonaladressen aufnimmt, wobei der Ausgang des NAND-Glieds PH an den Eingang des NAND-Glieds PBHangeschlossen ist, der außerdem den komplementierten Ausgang//'. ' aufnimmt.
Die Logik K'' hat ihren Ausgang auf »1« für alle Stellen, die in der Vereinigung der beiden Intervalle /Ί, BJund ]H, 1287enthalten sind, wenn 1 das erste Bit der Zeile und 128 das letzte Bit bezeichnet. Wird dieser Ausgang an ein NOR-Glied P > angeschlossen, das mit dem Ausgang S'' der Speicherstelle M1 · verbunden ist. so werden sämtliche Ausgange, die sich nicht in der Vereinigung /1, B]+ ]H, 128ybefinden, freigegeben, d. h. schließlich die Ausgänge des Intervalls JB, H], was auch das gesuchte Ergebnis ist.
Man könnte selbstverständlich dieselbe Funktion mit anderen Verknüpfungsgliedern darstellen, /.. B. zunächst durch Ausführung der Operation
[\. B]+JH. \28J,
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 //, Logiken K·', K'!, K' '. K'\ wenn die Speicher-Steckkarte vom /-ten Ri:ng ist sowie NOR-Glieder P ' ... P \ Die Auswahl einer Zeile erfolgt durch die 4 Bits, die das Wort A, bilden (B1 oder Hi, je nachdem, ob es sich um eine
T) niedere oder hohe Diagonaladresse handelt). Die Eingänge der Logiken K sind mit den Dccodierern verbunden (vgl. oben), und ihre Ausgänge sind einerseits an die NOR-Glieder /' und andererseits an die Schreibschaltung 12 angeschlossen.
W! Die Schreibschaltung 12 gestattet nach Erhalten der Summe S1 die sämtlichen im Intervall JB, H] auftretenden »!«'Bits spricht, die Nullrückslcllung bzw. Löschung des ganzen Intervalls JB, HJ damit nachher die gewünschte Anzahl »!«-Bits darin eingeschrieben werden kann. Das Pufferregister 14 ermöglicht die weitere Speicherung der Spcichcrausgangszustände für die Dauer der Übergangszeit von einer Zeile zur änderen. Eine vollständige Steckkarte wird .durch
Tabelle II b c Al h] *i A3 65 i>l O
a O O O O O O O O O
O O 1 I O O O O O C
O I O O O C O O
O I I O O O O
U O O I O O O
1 O I I 1 O O
I I O 1 1 1 I
1 1 1 1 1 1
I
0 0 0 O
0 0 0 1
00
0 0
I 0
I I
0 0
0 1
1 0
2 3 4 5 6 7 8 9 IO 11 ...
0000
0
0
0
0 0 0
0 0 1
0 I 0
0 I 1
1 00
I 0 I
I I 0
Die Wahrheitstabclle des Decodierers DECOD Hi ist durch die vereinfachte Tabelle V gegeben.
0 .
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 genanrwen Logiken steuern, genauer betrachtet.
Die Wahrheitstabelle des Decodierers DECOD B> ist in Tabelle III angegeben.
Tabelle V
α b c il
2 3 4
16
0000
00 0 1
0 I
1 I I 0 0 II
1111 0 0 1
Ersichtlich gilt
= hl hi = bl /ils =
und /ii6 =
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 einen Decodierer des Typs DECOD B1 angibt.
Die Wahrheitstabelle des Decodierers DECOD Ht wird durch die Komplemente der logischen Zustände dei Tabelle ill gebildet. Es ist also unnötig, sie aufzuzeichnen. Ein Beispiel einer Logik, die diese Fur ktionen ausführt, ist in Fi g. 16 gegeben.
I )ie Wahrheitstabelle des Decodierers DECOD B^ mit 4 Eits 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
α b ( d
Man kann folglich, ausgehend vom Schaltbild von Fig. 17, einen Decodierer DECOD H2 erhalten durch Verschiebung der Ausgänge, wie dies im rechts .'Ii gelegenen Teil dieser Figur dargeste:, ist.
Aufbau des Addierers ADD I
Der Addierer ADD 1 erhalt logische Signale nur von den freigegebenen Speicherausgängen, d. h. von denje-
_>-, nigen, eis im Intervall ]B. ///enthalten sind. Seine Rolle ist die Bildung der Summe S aller in diesem Intervall enthaltenen »!«-Bits. Es ist vorteilhaft, einen Addierer zu verwenden, der wie folgt arbeitet.
Die 128 Bits sind in 4 Gruppen mit 31 Bits aufgeteilt, da die 4 restlichen Bits gesondert verarbeitet werden. Jede Gruppe wird in einem Addierwerk verarbeitet, dessen Ausgange nachher an eir anderes Addierwerk angeschlossen werden. Ein Blockschaltbild ist in F ig. 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 »!«-Bitsdarstellt,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. /. B. vom Typ SN 7483. von
■r, denen jede zur Bildung der Summe von zwei Worten mit 4 Bits i/|. (/.·. i/|, //4 b/w. V1. V·, V1. V4 vorgesehen ist. Ks werden b Worte von I Bit jeweils auf die F.ingänge C. 111. V1. i/(. V1. V, geschaltet und II, wird auf »I« gebracht, während /', und V. auf »0« gesetzt
-,ο werden. Die Summe von C „ i/| und (/-wird bei Σ-, und 2.· ausgegeben, und die in Tabelle VI dargestel'te Wahrheitstabelle zeigt, daß die Summe von IU. V1. V4 b?i L\ jnd C], ausgegeben wird für: II,. i/, = 01 und V4 = 00 ist die Summe 01. daher Ο£%Σ, = 001.
Tabelle Vl
I1 ( . h
(„ I1 i.
0 0 0 0 0 1
0 0 1 0 I 0
0 1 0 0 1 I
0 t I 1 0 0
1 0 0 0 I I
i 0 I I 0 0
I I 0 I 0 I
I I I I I 0
Diese Schaltungsanordnung wird viermal wiederholt, und für jede Anordnung werden die ausgegebenen zwei Worte mil 2 Bils 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 Schallungsrrioduln, 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 I BiI an einen II. Addierer in ausgegeben. Das Schaltbild einer solchen Schaltung ist in Fig. 20 dargestellt.
Zur Summation der den Addierern 20, 22, 24 und 26 entstammenden vier Worte mil 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 ü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 »!«-Bits im Intervall ]B. H]bleibt noch die Adresse X— B+ S zu berechnen, bis zu der von der niederen Diagonaladresse ausgehend die >>1 «-Bits einzuschreiben sind. Diese Addition erfolgt w durch eine Schaltung Σ. deren Schaltbild in Fig. 22 angegeben ist.
Diese Schaltung enthält:
— einen Pufferspeicher MT von 8 Bits, der die 7 Bits ji des Wortes B2Bi ü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. ao
— einen Addierer ADD 2 mit 8 Bits, der die aus dem Pufferspeicher /V/rstammenden 7 Bits und die vom Addierer ADDX 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üpfungsgüeder P', die geöffnet sind, wenn die Verknüpfungsglieder P geschlossen sind und umgekehrt und die den 8 Ausgängen des Addierers ADD2 und den 8 Eingängen des Pufferspeichers /V/Tvorgeschaltet sind,
— ein Zählwerk G mit 4 Bits, das auf Bi voreingestellt ist und dessen Taktgebereingang 44 mit dem achten hochgewichteten Ausgang des Addierers A DD 2 verbunden ist; das am Ausgang des Zählwerks G anstehende Wort X\ von 4 Bits stellt die hochge- « wichteten 4 Bits der Adresse Xdar, deren 7 Bits mit schwachem Gewicht außerdem dem Wort XiX% entsprechen.
Der Pufferspeicher kann aus 2 Moduln vom Typ SN 7474 N und der Addierer ADD 2 mit 8 Bits aus 2 in Kaskade geschaltete Moduln SN 7483 aufgebaut werden.
Die Ausgangssignale des Addierers ADD 2 können dank der Verknüpfungsglieder fin den Pufferspeichern gespeichert werden.
Auf diese Weise kann so oft wie nötig das Ausgangssignal des Addierers ADD I wieder hinzuaddiert werden, um (vgl. weiter unten) den Fall zu berücksichtigen, daß die Adressen B und H sich nicht in dergleichen Zeile befinden: ßi Φ Η\.
Aufbau der Steuerschaltung
Die Steuerschaltung ist in Fig.23 schematisch dargestellt. Sie umfaßt:
ein auf B\ voreingcstelltcs Zählwerk G,
eine Weiche /tXmit 2 Eingängen,
die ΛΊ und Hi aufnehmen, und mit einem Steueranschluß 50, der bestimmt, welches der Worte Xi oder /7i am Ausgang 52 erscheint,
einen Verglcicher COMP, dessen Eingänge mit dem Zählwerk G 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 Vergleichen GOMPverbundcn ist.
Die Weiche AH besitzt 2 komplementäre Ausgänge 53 und 55, von denen jeder eins der 2 Verknüpfungsgüeder einer Weiche PH steuert, deren eines das Wort X2 Xi und deren anderes das Wort Hi H\ erhält. Die Ausgänge der Verknüpfungsgüeder der Weiche Wsind mit den Decodierern DECODH2 und DLCODH, verbunden.
Die Arbeitsweise dieser Weiche ist folgende:
B\ und Hi werden auf den Vergleicher COMP gegeben. Bei Hi — Bi entriegelt dieser Vergleicher die Weiche PH. die H2 und Hi 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 Sdieser Addition wird der niederen Diagonaladresse zugefügt zur Bildung der Adresse X, und »1 «-Bits werden Sund Zweiter eingeschrieben.
Nach dieser Operation wird durch das an dem Anschluß 52 erscheinende Signal »1« der Zustand der Weiche AH verändert, so daß H2 Hi durch X2 Xi am Ausgang der Weiche PH ersetzt wird. Aus der Definition von X2 X1 folgt, daß das Schreiben der »1 «-Bits die Adresse X nicht überschreitet. Das über den Anschluß 50 zugeführte Steuersignal wirkt ebenfalls auf die Weiche AX ein, die das Wort Xi an den Vergleicher abgibt: da jedoch vorausgesetzt war Bi = Hi. so folgt daraus ΛΊ = H,. was das vom Vergleicher COMP ausgegebene Signal nicht verändert.
In der ganzen vorausgehenden Beschreibung w?de zur Vereinfachung vorausgesetzt, daß die niederen und hohen Diagonaladressen einer Einschränkung sich in der gleichen Zeile befanden. Im folgenden wird nun die Arbeitsweise der optimierenden Rechenmaschine erklärt, wenn Hi von Bi verschieden ist.
Ist Hi von Bi verschieden, so fügen die im Addierer ADDi und im Addierer ADD2 ausgeführten Additionen die Summe 5Ί der Einsen der Zeile B\ zu B. Die Folgesteuereinrichtung SEQgxbi dann einen Impuls ab, der das Zählwerk C2 inkrementiert, und eine neue Addition
Bi+ Si+ S2
wird ausgeführt. Diese Additionen werden fortgesetzt, bis Gleichheit zwischen dem inhalt von C2 und H-, erreicht ist. Solange diese Gleichheit nicht erreicht ist, ist das Wiedereinschreiben der »!«-Bits gesperrt Sobald der Inhalt des Zählwerks C2 gleich H\ wird, löst
ein (nicht dargestelltes) Flipflop folgende Operationen aus:
— Wiedereingabc des Worts B\ in das Zählwerk C2,
— Bildung des am Anschluß 52 erscheinenden Signals »I«, das über die Weiche AX die Verzweigung von ΛΊ /.um Vergleichcr COMPund über die Weiche PH die Verzweigung von X2 Xi zum Decodierer für hohe Diagonaladressen steuert,
— Freigabe des Wicdercinschreibens von »!«-Bits im Intervall JB. 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 Vcrgleicher COMP, die Weichen AX. AH und PH. der Addierer ADDI, tiiu Vui'kiiupfui'igsgücüt:! P ufiu F' (uiu symbolisch nur durch ein einziges Glied dargestellt sind), der Pufferspeicher MT und das auf Öi vorangestellte Zählwerk G.
Im unteren Teil gestattet die Logik PB das Eingreifen des Decodiercrs für niedere Diagonaladressen nur. wenn in der Zeile B\ gearbeitet wird.
Im Schaltbild der Fig. 24 stammen die (links) dargestellten Steucranschlüssc in, Ui, AB, M 3, M2 von der Folgcsteucreinrichtung SEQ in Fig.9. Diese Folgesteuereinrichtung ist schematisch in Fig. 25 dargestellt. Sie enthält ein Flipflop 62, drei in Kaskade geschaltete Monoflops Mx, M2, Mi und eine Slarl-Stop-Kippschaltung64.
Im vereinfachten Fall Bx-Hx arbeitet diese Folgesteuereinrichtung wie folgt:
Ein erster Übertragungsimpuls in kommt vom Digitalrechner und sieht das Laden der Register B\, B2, Sj und des Zählwerks G vor. Ein zweiter Impuls /;/ lädt die Register Hx. H1 und Hi, stellt das Flipflop 62 auf Null zurück und schaltet die Start-Slop-Kippschallung 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 Inkrementierung des Inhalts vom Zählwerk G,
— M1 überträgt die Ausgangssignale des Addierers ADD2 in die zugeordneten Pufferspeicher MT.
ist der Inhalt des Zählwerks C2 gleich H1, so läßt der Impuls M2 das Flipflop 62 kippen, was einen neuen Zyklus einschaltet, worin ΛΊ den Vergleicher und X2 Xi den Decodierer für hohe Diagonaladressen steuern. Das Einschreiben der »1 «-Bits erfolgt zwischen ßund X.
Ist der Inhalt des Zählwerks Gj gleich X\ wegen des Kippens des Flipflops 62. so schaltet der von M2 kommende Impuls die Start-Stop-Kippschaltung 64 ab. Das entsprechende Phasendiagramm ist in Fig.26 gegeben, stets für den Fall B1 = H\.
Weiter oben wurde angegeben, daß die Adresse X, bis zu der »!«-Bits ausgehend von der niederen Diagonaladresse B einer Einschränkung eingeschrieben werden müssen, durch Addieren von B zur Summe S der im Intervall ]B. H] stehenden »!«-Bits erhalten wurde. Diese Addition wird in der Schaltung Σ der Fig.22 ausgeführt.
Bei einer bevorzugten Ausgestaltung der optimierenden Rechenmaschine kann die für einen Elementarvorgang 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 erhallen 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 Entscheidung 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 - X\ der Adressen ist.
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 Rechenmaschine, die entweder parallel oder seriell ρ (ρ—\)/2 Aufgaben entsprechend dem Auffinden eines optimalen bzw. kürzesten Wegs für ein System mit ρ Variablen löst, wobei die Anzahl ρ (p-l)/2 der Anzahl
• verschiedener, je zu zweit kombinierter Variablen entspricht und jedes der ebenen Probleme wie oben beschrieben verarbeitet wird. In diesem Fall zeigt die optimierende Rechenmaschine p(p-l)/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 <i<p):
A) die bereits beschriebenen Mittel zum Auffinden '5 und Speichern eines jeden der pfp— l)/2 optimalen Elemenlarvorgänge für die p(p— l)/2-Systeme mit zwei Variablen 7",= mund T,— n,mit γπφπ,
B) Mittel zur Ausführung der Kombination dieser p(p—\)l2 optimalen Elementarvorgänge, die den 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-1)/2, als Funktion von zwei Variablen T= m und T1= n, mit πίφπ.
26
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
erhaltenen 3 p n Ί Längen,
C) Ehlscheid'ingsmillel, die besagte 3''"'., " Längen
vergleichen und einen der 2/'-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 Compulcr-Peripheriegeräl eingegeben werden (Lochkarlen, Magnetbänder usw.) oder durch jedes andere Mittel (hydroelektromechanische Meßwertgeber usw.). Die 1S Ergebnisse können durch Peripheriegeräte aller Art angezeigt werden: Bildschirmgeräte für farbige Anzeige, Schnelldrucker, Servogefü 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- H gang mit den in dieser Ebene angezeigten Einnschränkungen kompatibel ist.
Tabelle VIl
Ebene 3,1 Ebene 3,2
Zur Veranschauiichung 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 25 Ebene 2,1 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, in 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 J5 {zeitlich optimale Lösung zu erhalten.
In dieser Aufgabe hängt die Gesamtsituation von vier ■^Variablen Ti, T2, Tj, T4 ab, die die Besetztzeiten der jBIockabschnitte 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ß.
i 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 ; frnuß, 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 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 VII 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 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 I, d. h. »Vorfahren des Zuges Nr. 2«. Die &5 optimierende Rechenmaschine gibt ebenfalls die Gesamtdauer der optimalen Lösung an, die im behandelten Beispiel 27 Testschritte beträgt
liboncn Einschränkungen Koordinaten des
Koordinaten des niederen Punktes
hohen Punktes .V Y
X Y
Ebene 4,1
Ebene 4,2
Ebene 4,3
3
5
7
10
12
13
13
2
3
5
9
12
14
0
I
10
13
5
13
0
1
11
13
0
1
2
3
4
6
3 5 7 IO
2 II
3 13
4 15
ö 17
0 5
I 8
3 II
10 17
0 5
J 8
2 11
3 13
5 15
9 17
27 28
24 Tabelle VIII Hierzu 15 23 265
Diirchf'ahrl
I Folgende Züge fahren voi
4 2
6 2-4
7 2
9 2-4
IO 1-2-4
Il 2-4
(3 1-2-4
14 2-3-4
15 H3-4
16 i-i
Ί7 3-4
18 1-3-4
3-4
η 1-3-4
24 t-3
3
iilail ZcichiHiiigcn

Claims (6)

  1. Patentansprüche:
    I. Optimierende Rechenmaschine zum Auffinden des kürzesten Weges zwischen einam vorgegebenen Anfangs- und einem vorgegebenen Endzustand eines Systems, dessen momentaner Zustand durch zwei digitale Variablen — Koordinaten — beschrieben ist, deren jede Näquidistante Werte annehmen kann,
    mit einem Eingabe-Speicher-Werk für die Anfangsund Endzustand-Koordinaten und für verbotene Zustände — Einschränkungen — des Systems darstellende Koordinaten,
    mit Rechen- und Speicher-Zellen zur Speicherung und Inkrementierung ihres Inhaltes mittels eines Inkremen tbildners,
    mit einer Einrichtung zur Änderung des Zelleninhalts in Abhängigkeit von den Einschränkungen derart, daß Ίίε zeitliche Änderung des Zelleninhalts 2u durch die Ausbreitung einer gedachten rücklaufenden 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 i^oordinatenpunkt benachbarten Zellen jeweils vergleicht mit Jem Im.alt des vorausgehend ermittelten Koordinate.ipunktes und jeweils als neuen Koordinatenpunkt de: jenigen 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 /um 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 Zeileninhalte 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:
    a) daß die Rechen- und Speicher-Zellen (Fig. 9 und II) in der Anzahl />=2·Λ/ (Fig.8) vorhanden sind,
    b) daß jeder der P Zellen eine Adresse — Diagonälädresse (0 bis 17 in Fig.8) — zugeordnet ist, und zwar derart, daß die P Diagonaladressen 0 bis P-1 durchlaufen und so die Zellen P Diagonalen der Koordinatenebene zugeordnet gedacht werden können (Fig. 8),
    c) daß das Eingabe-Speicher-Werk (Teil von SEQ) Glieder enthält zur Speicherung:
    des Inkrements »0« für die Zellen mit den Diagonaladressen 0 bis /Vund des Inkrements »I« für die Zellen mit den Diagonaladressen N+1 bis P-],
    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 einspricht, 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 DiagonaJadressen B und H der verarbeiteten Einschränkung inkrementiertund
    el) das Inkrement der Zellen mit den Diagonaladressen 0 bis Sauf »0« hält,
    e2) die Anzahl 5 von Inkrementen berechnet, die vor der Verarbeitung der jeweiligen Einschränkung in den Zellen mit den Diagonaladressen B+ 1 bis W gezählt wurden,
    e3) den Inhalt ά·:τ Zellen mit den Diagonaladressen B+ 1 bis Hlö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 B+S+\ bis f/speicherl und
    e6) die Inkremente der Zellen mit den Diagonaladressen H+ 1 bis P- 1 unverändert läßt.
  2. 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 B+ 1 bis H JB. H]- enthaltenen Speicherstellen, einen mit dem Ausgang des Speichers (M) über die Freigabeeinrichtung (V) verbundenen Addierer (ADDY) zum Addieren aller im Intervall ]B, H] enthaltenen »!«-Bits.
    eine Löscheinrichtung (RZ) zum Löschen der Speicherstellen des Speichers (M)\m Intervall ]B, H], eine Schreibeinrichtung (E)/.um Schreiben einer Anzahl »1 «-Bits gleich der Summe 5. ausgehend von der Diagonaladresse B+ I bis zu X= B+ S, und
    von »O«-Bits von der Diagonaladresse .V+ 1 bis zu H, und
    eine an einen Digitalrechner (ORD) angeschlossene Folgesteuercinrichtung fSirpj, die:
    ix) das Schreiben und Lesen im Speicher (M), die ho Freigabeeinrichtung (V) und den Addierer
    (ADD\) bei jeder Verarbeitung einer Einschränkungsteuert,
    ß) 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 »!«-Bits bis zur Diagonaladresse der Zellen, die den drei
    35
    Folgezuständen des Anfangszustands entspricht, zu entnehmen {Fig. 9).
  3. 3. Rechenmaschine nach Anspruch 2, dadurch gekennzeichnet,
    daß der Speicher (M) zu 2" Zeilen mit 2' Bits bei P=2i* ""organisiert ist,
    daß die Zeile, zu der eine Diagonaladresse gehört, durch die q Bits mit dem höchsten Gewicht dieser Diagonaladrtsse definiert ist, die ein Wort B1 für eine niedrige Diagonaladresse und ein Wort W1 für ln eine hohe Diagonaladresse bilden, und
    daß die Freigabeeinriehtungf V)aufweist:
    einen Decodierer (DECOD B) für niedere Diagonaladressen, dessen Eingänge mit den Mitteln zur Speicherung der niederen Diagonaladressen und 1^ dessen Ausgänge mit Freigabe-Logiken VAL zur Freigabe der dem Intervall ]B, H] entsprechenden Speicherausgänge verbunden sind und der einen Decodierer (DECOD B1) von q Bits enthält, der q Eingänge und 2t Ausgänge besitzt, und J(1
    einen Decodierer (DECOD H) für hohe Diagonal adressen, dessen Eingänge mit den Mlaeln 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 2"< Ausgänge besitzt (Fig. II).
  4. 4. Rechenmaschine nach Anspruch J, dadurch gekennzeichnet,
    daß jede Speicher-Zeile vun 2' Bits zu 2% Worten von in je 2' Bits mit s + t = /-organisiert ist und daß.
    a) der Decodierer (DECOD B) für niedere Diagonaladressen außer dem Decodierer (DE- CODB1) von q Bits enthält: η
    al) einen Decodierer (DECOD B2) von s Bits, die den 5 Bits mit mittlerem Gewicht der niederen Diagonaladresse entsprechen, die ein Wort Bi bilden, und
    a2) einer Decodierer (DECOD Si) von t Bits, die w den t Bits mit dem geringsten Gewicht der niederen Diagonaladresse entsprechen, die ein Wort Bi bilden, und
    b) der Decodierer (DECOD H)iür hohe Diagonaladressen außer dem Decodierer (DECOD H\) 4-, von q Bits enthält:
    bl) einen Decodierer (DECOD Hi) von s Bits, die den s Bits mit mittlerem Gewicht der hohen Diagonaladresse entsprechen, die ein Wort Hi bilden, und
    b2) einen Decodierer (DECOD Ht) von t Bits, die den / Bits mit dem geringsten Gewicht der hohen Diagonaladresse entsprechen, die ein Wort//,bilden.
    c) daß der Speicher (M) eine Kapazität von γ, 2" = 2048 Bits besitzt, die zu 2* = 16 Zeilen von 2'= 128 Bits organisiert sind, unterteilt in 16 Bytes, numeriert von ;= 1 bis 16, wobei die Bits eines Byte von /= I bis / = 8 numeriert sind und jedes der 128 Bits einer Zeile somit durch /wer t,o Indizes /, j als Speicherstelle M>> (Fig. 13) beschrieben ist,
    d) daß jede Diagonaladresse durch ein Wort von 11 Bits definiert ist, das aus drei Worten Bi, Bi und Bs für die niedere Diagonaladresse und drei Worten H\, H2 und Hs für die hohe Diagonaladresse zusammengesetzt ist, welche Wörter jeweils durch die vier höchstgcwichteten 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 S> (V=I bis 16) besitzt, alle Bytes links vom die niedere Diagonaladresse enthaltenden Byte einschließlich diesem auswählt,
    f) daß der Decodierer (DECOD B1) von t 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 Sj im binären Dezimalcode dargestellten Stelle einschließlich dieser auswählt,
    g) daß der Decodierer (DECOD H2) von s Bits des Decodierers für hohe Diagonaladressen, der 4 Eingänge und 16 Ausgänge H': (7=1 bis 16) besitzt, alle Bytes rechts vom die hohe Diagonaladresse enthaltende*! Byte einschließlich diesem auswählt.
    h) daß der Decodierer (DECOD //,) von t Bits des Decodierers für hohe Diagonaladressen, der 3 Eingänge und 8 Ausgänge H{ (J= 1 bis 8) besitzt, in jedem Byte die Stellen rechts von der durch den Wert von Hi im binären Dezimalcode dargestellten Stelle einschließlich dieser auswählt,
    i) daß die Freigabe-Logiken VAL jeweils aufweisen (Fi g. 13):
    ein NOR-Glied (P ')· das an den Ausgang jeder Speicherstelle (M' ') angeschlossen ist und von dem
    der Ausgang an den Addierer (ADDt). einer der beiden Eingänge an den Ausgang der Speicherstelle (M' ')und der andere Eingang an den Ausgang einer Logik (K") mit 6 Eingängen angeschlossen sind,
    von denen 3 Eingänge mit den 2 Ausgängen B': und B2' 'des Decodierers (DECOD B7) von .s Bits des Decodierers für niedere Diagonaladressen bzw. mit dem Ausgang B{ des Decodierers (DECOD S1) von / Bits des Decodierers für niedere Di:gonalacressen verbunden sind und für diese 3 Eingänge die Logik die Verknüpfung
    ausführt.
    und die 3 anderen Eingänge mit dem Γ Ausgängen H': und //; ' des Decodierers (DFCOD H1) von t Bits des Decodierers für hohe Diagonaladressen bzw. mit dem Ausgang Hides Decodierers (DECOD H1) von t Bits des Decodierers für nieder? Diagonaladressen verbunden sind und für diese 3 Eingänge die Logik (K' ','die Verknüpfung
    'I2 ! + 'I2 · H
    ausführt,
    wobei b und h den logischen Zustand der entsprechenden Ausgänge B bzw. H bezeichnen.
  5. 5. Rechenmaschine nach Anspruch 4, dadurch gekennzeichnet, daß jede Logik (7^'Vefithält:
    ein NAND-Glied (PH) mit 2 Eingängen, von denen einer mit dem Ausgang H\ 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 Bi verbunden ist,
    ein NAND-Glied (PBH)mit 4 Eingängen, von denen der erste und der zweite mit dem Ausgang des einen NAND-Glieds (PH)bzw. dein Ausgang des anderen NAN D-Glieds (PB), der dritte_rnit dem komplementicrtenAusgang /-/i ', d. h.H'i'', und der vierte mit dem komplementierten Ausgangßi ',d.h. B'2*' sowie der Ausgang mit einem der 2 Eingänge des NOR-Glieds (P*1) verbunden sind (F i g. 13).
  6. 6. Rechenmaschine nach einem der Ansprüche 2-5, gekennzeichnet durch eine Schaltung Σ (F i g. 22) zur Berechnung der Summe 5+ B.
    die an den Ausgang des Addierers (ADD 1) angeschlossen ist und deren Ausgang die Diagonaladresse X angibt, bis zu der »I«-Bits eingeschrieben werden müssen,
    wobei die Diagonaladresse X auch mit X\, X2. X\ bezeichnet ist, mit
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 DE2423265B2 (de) 1978-05-18
DE2423265C3 true 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)

Families Citing this family (17)

* 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
US5107452A (en) * 1987-09-04 1992-04-21 At&T Bell Laboratories Computation optimizer
US5136538A (en) * 1987-09-04 1992-08-04 At&T Bell Laboratories Preconditioned conjugate gradient system
US4914615A (en) * 1987-09-04 1990-04-03 At&T Bell Laboratories Calculator of matrix products
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
DE4424037C2 (de) * 1994-07-11 1997-11-20 Ibm Verfahren und System zur automatischen, rechnersystemgestützten Optimierung
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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE2423265C3 (de) Optimierende Rechenmaschine
DE2803989C2 (de) Digitaldatenspeicher mit wahlfreiem Zugriff
DE3781694T2 (de) Virtuelle prozessortechniken in einem feldmultiprozessor.
DE2259725C3 (de) Funktionsspeicher aus assoziativen Zellen mit mindestens vier Zuständen
DE1302494B (de)
DE4403917A1 (de) Vorrichtung zum Berechnen einer Besetzungszählung
DE2854782A1 (de) Datenverarbeitungssystem
DE1115488B (de) Datenverarbeitungssystem
DE2946119A1 (de) Datenverarbeitungseinrichtung
DE2403669C3 (de) SpezialComputer
DE2121490A1 (de) Orthogonaler Datenspeicher
DE69206604T2 (de) Schnelle Addierkette.
DE2459476C3 (de)
DE2459476A1 (de) Schaltungsanordnung fuer nichtzyklische datenpermutationen
DE2649147C2 (de) Anordnung zum wahlweisen Durchführen von logischen und arithmetischen Operationen
DE2349590A1 (de) Vorrichtung zur datenverarbeitung
DE2233164B2 (de) Schaltungsanordnung zur uebertragung von aufeinanderfolgenden bitstellen zwischen zwei registern
DE69209826T2 (de) Schnelle Addierkette
DE3587612T2 (de) Suchverfahren für Assoziationsmatrix.
DE1474041C3 (de) Anordnung zum Sortieren von in zufälliger Reihenfolge aufgenommener Informationsbit Gruppen
DE2016443C3 (de)
DE2136536B2 (de) Verfahren und Anordnung zur Korn pnmierung und Dekompnmierung binarer Daten
DE1549582B1 (de) Anordnung zur bestimmung der niedrigstwertigen bit position
DE1474574C (de) Assoziativer Informationsspeicher
DE2002369C3 (de) Datenverarbeitungsanlage mit Pufferspeicher

Legal Events

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