DE1499282A1 - Anordnung zum Erzeugen von Permutationen - Google Patents
Anordnung zum Erzeugen von PermutationenInfo
- Publication number
- DE1499282A1 DE1499282A1 DE19651499282 DE1499282A DE1499282A1 DE 1499282 A1 DE1499282 A1 DE 1499282A1 DE 19651499282 DE19651499282 DE 19651499282 DE 1499282 A DE1499282 A DE 1499282A DE 1499282 A1 DE1499282 A1 DE 1499282A1
- Authority
- DE
- Germany
- Prior art keywords
- subgroup
- input
- memory
- permutations
- circuit
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/766—Generation of all possible permutations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
- Train Traffic Observation, Control, And Security (AREA)
Description
Western Electric Company Incorporated P 14 99 282.6
195 Broadway Goldstein 1 (W 39 945)
Anordnung zum Erzeugen von Permutationen
Die Erfindung bezieht sich auf digitale Rechenanordnungen, insbesondere
auf Schaltungsanordnungen zum Erzeugen jeder der möglichen Folgen oder Permutationen einer Gruppe von Eingangsziffern oder -Signalen.
Die Möglichkeit, automatisch Permutationen einer Gruppe von Eingangsziffern
zu erzeugen, ist in verschiedenen Situationen von Bedeutung, zum Beispiel beim automatischen Prüfen der Stromkreise eines Schaltungsnetzwerkes, ebenso
bei kommerziellen Rechenproblemen, zum Beispiel bei dem "Problem des
reisenden Vertreters". Dieses Problem besteht darin, die kürzeste Route zu
finden, die jede Stadt einer feststehenden Gruppe von N Städten, die durch die Zeichen 0, 1 ... N identifiziert sind, berühren. Die bekannten Versuche
zur Lösung dieses Problems haben aber Systeme erfordert, bei denen große Speicherkapazität
und lange Rechenzeiten erforderlich waren.
Die erfindungsgemäße Lösung umfaßt die Verwendung von Schaltungen, die.
eine Eingangsliste von N Signalen in getrennte Untergruppen ( die im Hinblick auf optimale Wirksamkeit von etwa gleicher Größe sein sollten ) unterteilen,
ferner einen Schaltungsaufbau, der, auf jede Unterteilung der Eingangs-
009817/1498
o-n (Art. 7 & l Abs. 2 IJr. l Sau 3 des Änderungsflao. v. 4.
14S-9282
größen ansprechend eine Mehrzahl Permutationen der in einer ersten Untergruppe gelegenen Elemente erzeugt, und einen Schaltungsaufbau, der, auf
jede Permutation der Elemente der ersten Untergruppe ansprechend, eine Mehrzahl Permutationen der in einer zweiten Untergruppe gelegenen Elemente erzeugt.
Bei einem Ausfuhrungsbeispiel wird zum Speichern einer Gruppe Eingangsziffem
ein Operand-Speicher verwendet, sowie eine Mehrzahl Signale, die die relative Lage oder Reihenfolge der Ziffern in der Eingangsliste steuern ; diese Signale werden nachstehend Austauschzeichen ( interchange characters ) genannt.
Beim Ausführungsbeispiel wird ebenfalls ein Schaltungsaufbau verwendet, der aufeinanderfolgend nebeneinanderliegende der gespeicherten Eingangsziffem
entsprechend den Austauschzeichen austauscht.
Allgemein gesprochen wird zum systematischen und automatischen Erzeugen
der Permutationen der Ziffern einer Liste eine Struktur vorgesehen, die die Ziffernliste in getrennte Untergruppen unterteilt und die Eingangsziffem durch
iteratives Durchlaufen ineinandergeschachtelter ( nested ) Rechenschleifen permutiert.
Vorteilhafterweise ist die erforderliche Speicherkapazität bei Verwendung der
Erfindungsprinzipien effektiv unabhängig von der Größe der Eingangsliste.
Femer können als Folge der Unterteilung der Information die Permutationen
schneller erzeugt werden.
008817/1AdI
Im folgenden ist die Erfindung anhand der Zeichnungen beschrieben;
es zeigen
Figuren IA und IB die linke bzw. rechte Hälfte des Blockschaltbilds
einer erfindungsgemäß ausgeführten Permutations-erzeugenden Anordnung;
Figur 2 ein Diagramm zur Darstellung des Informationsspeichermusters,
das einen Operand-Speicher, der in Figur IB vorgesehen ist, kennzeichnet;
und
Figur 3 ein Signalflußdiagramm zur Darstellung der funktioneilen Arbeitsweise
der perrnutationenerzeugenden Anordnung nach den Figuren IA
und IB,
In den Figuren IA und IB, nachfolgend kurz mit Figur 1 bezeichnet, ist
eine illustrative permutationenerzeugende Anordnung dargestellt, die alle
möglichen Reihenfolgen einer Gruppe von N EingangsobjekteV erzeugt. Die
Anordnung weist ein Akkumulator- ( AC ) Register 15 und ein MQ-Register 16 auf, die je mit einem Operand-Digitalinformationsspeicher 20 verbunden
sind.
Die Information wird in den Speicher 20 über eine Eingangs-Ausgangs-Uberwachungseinheit
18 eingelesen, und zwar ansprechend auf Betätigungssignale, die dieser Einheit von zwei Einlesesteuereinheiten 30 und 31 zugeführt werden,
sowie auf die Über eine Eingangs leitung 24 zugefuhrte Eingangsinformation,
Zusätzlich wird digitale Information zwischen AC und MQ- Register 15 und
16 und dem Operand-Speicher 20 unter der Steuerung einer Speicherzugriffs-
Q09817/U96
INSPECTED
-4- 1423282
einheit 17 Überfragen oder umgesetzt. Die jeweilige von der Speicherzugriffseinheit
17 aktivierte Speicherstelle hängt ihrerseits von der im Einzelfall aktivierten Einheit einer Mehrzahl Speichererregungssteuereinheiten 33-40 ab,
die in Verbindung mit drei Indexregistern A, B, C wirksam sind« Mit anderen
Worten, die Steuereinheiten 33 bis 40, die in Verbindung mit den Indexregistern
A, B und C wirksam sind, steuern die Speicherzugriffseinheit 17, die
ihrerseits die Umsetzung der Information zwischen den AC- und MQ-Registern
15 und 16 und dem Operandspeicher 20 steuert. Die Einheiten 33 und
50 sind im wesentlichen identisch und nur die letztere ist im Detail in Fig. 1 dargestellt. Der einzige nennenswerte Unterschied hierzwischen ist der, daß
die Einheit 33 in Verbindung mit dem Indexregister C wirksam ist, und die Einheit 50 mit dem Indexregister A. Ferner sind die beiden Steuereinheiten
33 und 36 funktionell dahingehend wirksam, digitale Informationen vom AC-Register
15 zum Indexregister B zu Übertragen.
Ein Operationszähler 12 dient zum aufeinanderfolgenden Aktivieren der
Systemsteuereinheiten 30-44 in der normalen Reihenfolge von oben nach unten. Der Operationszähler 12 kann vorteilhafterweise einen fünfstufigen Binärzähler
und eine hieran angeschlossene Impulsverteilerschaltung besitzen, so daß eine ausgewählte Steuereinheit aktiviert wird, wenn die im Zähler vorhandene
digitale Zählung der binären Steuernummer entspricht, die an den Steuereinheit-Eingangsleiter in Figur 1 angeschrieben ist. Jedesmal wenn eine
bestimmte Steuereinheit durch den Operationszähler aktiviert wird, nimmt die
0 09817/ UÖ8
Zählung des Zählers 12 um eins zu, so daß die folgende Steuereinheit als
nächste aktiviert werden kann. Zusätzlich sind drei PrUfsteuereinheiten 42-44
zu dem Zweck selektiv betätigbar, den Operationszähler 12 auf die Digitalzustände
01011,00100 bzw. 00010 einzustellen, so daß die Steuereinheiten 35, 33 und 32 als nächste vom Zähler 12 aktiviert werden.
An dieser Stelle erscheint es zweckmäßig, das Arbeiten der Schaltung zu
betrachten, wie es durch jede der Steuereinheiten 33-44 bewirkt wird. Es sei angenommen, daß jede der Permutation einer Über die Eingangsleitung 24
zugeführten Liste von N-Ziffern erzeugt werden soll. Die Eingang-Einlesesteuereinheit
30, die vom Operationszähler 12 als erste aktiviert wird, ist in
Verbindung mit der Eingangs-Ausgangs-Überwachungseinheit 18 dahingehend
wirksam, die N-Ziffern in digitaler Form in N diskrete Adressenstellen des Operand-Speichers 20 einzuspeichern. Die als nächste vom Operationszähler
12 aktivierte Einheit, nämlich die Austauschzeichen-Einlesesteuereinheit 3I7
dient zusammen mit der Eingang-Ausgang-Überwachungseinheit 18 dazu, eine ebenfalls Ober die Eingangsieitung 24 zugefuhrte Mehrzahl Austauschzeichen
in eine Mehrzahl aufeinanderfolgender Speicherstellen einzuspeichern, die unmittelbar einer Adressenstelle ICHNGE des Speichers 20 vorangehen. Die
Adressenstelle ICHNGE ist in Figur 2, die den Speicher 20 zeigt, dargestellt.
Die Anzahl und im Einzelfall vorhandene Natur dieser Zeichen wird nachstehend noch im einzelnen beschrieben werden. Es sei bemerkt, daß die Steuereinheiten
30 und 31 ausschließlich dazu vorgesehen sind, den Operand-Spei-
009817/1461
■6" 14SS282
eher 20 anzusteuern und daß diese Anordnungen durch den Operationszähler 12 nur einmal während des Erzeugungsprozesses sämtlicher der gewünschten Permutationen aktiviert werden.
Die Unterteiiungserzeugungs-Steuereinheit 32 bewirkt die Unterteilung der
N Eingangsobjekte in zwei getrennte Untergruppen S, und S- , die die
gleiche oder nahezu die gleiche Anzahl Elemente enthalten. Nachfolgend
sei angenommen, daß jede der Untergruppen S, und S- aus N/2 Elementen
besteht. Jedesmal wenn die Unterteilungserzeugungs-Steuereinheit 32 durch
den Operationszähler 12 aktiviert wird, wird sie dahingehend wirksam, eine neue Unterteilung der N Eingangsobjekte in zwei Untergruppen S, und S-zu erzeugen, die je N/2 Elemente aufweisen und diese Untergruppen in zwei
Speicherlisten einzuspeichern, die je N/2 Stellen aufweisen, die ihrerseits direkt den Speicheradressen S, und S_ des Speichers 20 ( Fig. 20) folgen.
Das heißt, die Elemente der abgeteilten Untergruppe S, liegen beispielsweise in den Speicherstellen S, + 1, S. + 2...S. + N/2. Die Steuereinheit 32
kann vorteilhafterweise eine Vielzweckrechenmaschine sein, bei der irgendeines der allgemein bekannten Rechenschemata zum Unterteilen einer Objektgruppe verwendet wird. In diesem Falle würde für {ede Unterteilung der
N-Elemente die Steuereinheit 32 einfach die N-Elemente aus dem Operandspeicher 20 auslesen, die gewünschte Unterteilung ausfuhren und dann die N-E lernen te in den Operandspeicher 20 zurück in der neu unterteilten Anordnung einschreiben. Alternativ hierzu kann die Einheit 32 eine Speicheran-
009817/149*
_7_ 14SS282
N I Ordnung aufweisen, die speziell sämtliche der Li exi-
(N/2) J . (N/2) I stierenden verschiedenen Unterteilungen der N Eingangsobjekte einschließt.
In diesem Falle würde zu Beginn jedes Permutationsprozesses die Steueretn-
N I
heit 32 jede der ' ■— verschiedenen Unterteilungen er-
(N/2) I . (N/2) j
zeugen und diese in einem Speicher jeweils so lange /υ speichern wie sie im
Permutationsprozeß benötigt werden. Beachte, daß der Ausdruck ,J 1,
(N/2) I . (N/2) j die Zahl der Kombinationen der von N entnommenen N/2 Ziffern darstellt,
also die Anzahl verschiedener Wege, auf denen N Ziffern in zwei Gruppen zu je N/2 Ziffern unterteilt werden können. Dieses ist allgemein aus der
Kombinatorik bekannt.
Die die zusammengesetzte Untergruppe S. permutierende Steuereinheit 33
ist funktionell dafür ausgelegt, jede der möglichen Reihenfolgen der Untergruppe
S. jedesmal zu erzeugen, wenn eine neue Unterteilung der N Eingangsgrößen durch die Unterteilungserzeugung-Steuereinheit 32 bewirkt wird. In
ähnlicher Weise erzeugt die die zusammengesetzte S„ Untergruppe permutierende
Steuereinheit 50 jede der Reihenfolgen der Untergruppe S„ jedesmal, wenn
eine neue Permutation der Untergruppe S. von der zusammengesetzten Steuereinheit
33 erzeugt wird.
Im Hinblick auf die grundsätzliche Theorie, auf der die die Untergruppen
permutierenden Steuereinheiten 33 und 50 beruhen, wurde gefunden, daß für jede geordnete Gruppe von k Größen eine Gruppe von kl Austausch-
009817/U88
zeichen existiert, die dazu benutzt werden können die k| Permutationen
der k Größen entsprechend der nachstehenden Prozedur zu bezeichnen oder zu erzeugen. Jedes Austauschzeichen weist eine Zahl α mit 1^a 4*k-l
auf, worin ein bestimmter Wert von α einen Austausch des α-ten und (a+l)-ten
der geordneten Elemente der Gruppe diktiert. Besteht beispielsweise eine
Gruppe aus den geordneten ( ode red ) Elementen 1,2,3 und A1 dann würden
die Austauschzeichen lf3 und 2 je die permutierten Gruppen 2,1,3 und 4;
2,1, 4 und 3; bzw, 2,4, 1 und 3 bezeichnen oder erzeugen. Allgemein gilt
für eine Gruppe aus k+1 Elementen, daß die ( k+1 ) J Austauschzeichen a,
(j), 0<^ j ^ (k+1) I -1 aus folgenden Rekursionsformeln erzeugt werden
können :
(1 wenn j ungeradzahlig ist, ( 1 )
a (j) = (2 sonst; und
k wenn j*=0 oder k|
I / ΓΗ \
ak('k-"if k
und zwar für k^>3, mit α (χ) = α (x+rj), k*= kj + (k-1) |, und mit
j*= j - k (mod k*) derart, daß O^ j*k* ist und&ldie größte, χ nicht
überschreitende ganze Zahl bedeutet. In der in Gleichung (2) verwendeten
Terminologie wird a, . (j) dahingehend interpretiert, daß es das j-te Austauschzeichen
einer k+1 Elemente besitzenden Austauschzeichen-Gruppe bedeutet,
0 0 981771468
ORlGiNAL INSPECTED
-9- 14SS282
Wie vorstehend erwähnt, erzeugen die die zusammengesetzten Untergruppen
permutierenden Steuereinheiten 33 und 50 die Permutationen der Untergruppen
S, beziehungsweise S„, von denen jede N/2 verschiedene Elemente besitzt.
Demgemäß sind N/2I positive Austauschzeichen aQ bis α/κι/<2\ ι ι
einer Größe von N/2 - 1 oder weniger erforderlich. Daher ist die vorstehend
erwähnte Austauschzeicheneinlesesteuereinheit 31 dahingehend wirksam, die
N/2 I Zeichen in die N/2 j Speicheradressen einzuschreiben, die der Adressenstelle
ICHNGE ( Figur 2 ) vorangehen.
Die besondere Art und Weise auf die aufeinanderfolgende Permutationen der
Untergruppen S. und S„ erzeugt werden, kann durch Betrachten der der
Gruppe S_ zugeordneten Steuereinheiten 34 bis 40 verstanden werden.
Während der ersten Aktivierung der gesamten Einheit 50 spricht die LX (N/2) I - A zum Beschicken ( tojoad) des Index-Registers A mit der
Digitalzahl (N/2)j an. Diese Zahl könnte entweder der Steuereinheit 34
über die Leitung 24 zugeführt oder von der Steuereinheit aus der über die Leitung 24 erhaltenen Information errechnet werden. Die CLA-IC-A-Steuereinheit
35, die dann durch den Operationszähler 12 aktiviert wird, macht (clears) den Akkumulator 15 frei und addiert hierau den Inhalt einer Adresse
des Operandspeichers 20, die der Stelle ICHNGE weniger einer Speicherstellenzahl
entspricht, die gleich der im Indexregister A vorhandenen digitalen ganzen Zahl ist. Da das Register A anfänglich die Zahl (N/2) I enthält,
ist die Steuereinheit 35 dafür ausgelegt, den Inhalt der Speicheradresse d_
009817/1490
■10" 1429282
( Fig. 2), die um (N/2) | Speicherstellen hinter der Adresse ICHNGE liegt,
in den Akkumulator 15 einzugeben. Das in der Adresse dg gespeicherte
Digitalwort ist das erste Element-Austauschzeichen a , und demgemäß wird
diese Zahl im AC-Register 15 Platz nehmen.
Die nächstfolgende PNA-B Steuereinheit 36 dient zum plazieren des negativen
Wertes der im Akkumulator 15 vorhandenen Zahl, nämlich -ao, in das
Indexregister B. Die CLA-S- -B Steuereinheit 37 spricht dann zum Freimachen
( to clear) des Akkumulators 15 und zum hierzu erfolgenden Addieren des Inhaltes einer Speicheradresse an, die den Stellen S„ minus einer Adressenzahl
entspricht, die gleich der im Indexregister IJ vorhandenen Zahl ist. Da
das Register B die Digitalzahl -aQ enthält, wird die an der Adresse S„+ao
des Operandspeichers 20 vorhandene Eingangsgröße, nämlich das aQ-te Element
der Untergruppe S_, in das Akkumulatorregister 15 placiert. In ähnlicher
Weise ist die LDQ-S2 + 1-B Steuereinheit 38 wirksam zum Beschicken ( rojoad)
des MQ Registers 16 mit dem Inhalt einer Speicheradresse die der Stelle So + 1
minus der im Indexregister B vorhandenen ganzen Zahl entspricht. Diese Adresse, nämlich S„ + 1 - (a^ = S« + ( aQ + 1 ), enthält das (aQ + l)-te
Element der Untergruppe S—
Die folgende STO-S- + 1 - B Steuereinheit 39 dient zum Speichern ( to store )
des Inhaltes des AC-Registers 15, in diesem Fall das a -te Element der Untergruppe
Sn, unter einer Adresse im Speicher 20, die der Stelle S-+ 1 minus dem
009817/1491 oocpted
5NSPECTED
Inhalt des Indexregisters B entspricht, also unter der Adresse S_ + (a + 1 ).
Dies entspricht der Speicherstelle, die vorher durch das (a + l)-te Element der Untergruppe S~ besetzt war. In ähnlicher Weise dient die STQ-S_-B
Steuereinheit 40, die die letzte, die Untergruppe S_ permutierende Stufe ist,
zum Speichern ( to store ) des Inhalts des MQ Registers 16, in diesem Falle
das (a + l)-te Element der Untergruppe S_, unter der Adresse S- + a , die
vorher das α -te Element der S„ Untergruppe gespeichert hatte.
Hieraus ist daher ersichtlich, daß die Steuereinheiten 34 bis 40 das gewünschte
Ergebnis des Speicherstellenaustausches der a -ten und der (a +1)-ten Elemente der Untergruppe S_ in Übereinstimmung mit dem im Operandspeicher 20
enthaltenen Austauschzeichen α bewirkt haben. Es sei bemerkt, daß die
Steuereinheiten 34 bis 40, zusammen mit den Übrigen in Figur 1 dargestellten
Steuereinheiten vorteilhafterweise Impulsverteilungsschaltungen zum Erzeugen
von Signalen aufweisen, die die entsprechende Schaltungsfunktion einleiten, oder alternativ eine Mehrzahl gespeicherter Binärziffern, gefolgt von einem
gemeinsamen Befehlsdekodierer.
Eine das Indexregister prüfende und herabstufende ( decrementing ) Steuereinheit
42 der Figur dient zur Prüfung des Inhalts des Indexregisters A. Enthält
das Register A eine Digitalzahl größer als 1, ein Zustand der anzeigt,
daß jede der (N/2) j möglichen Ordnungen der Untergruppe S7 nicht erzeugt
worden ist, so wird die Einheit 42 dahingehend wirksam, den Inhalt des Index-
009817/149*
ORIGINAL !NSPEGTEO
14SS282
registers A um eins zu vermindern und in den Operationszähler 12 die Binärzahl
01011 einzuschreiben. Folglich wird der Zähler 12 als nächstes die
CLA-IC-A Steuereinheit 35 aktivieren, und dadurch die nächste, in Übereinstimmung
mit dem nächsten Austauschzeichen, das Operandspeicher 20 gespeichert ist, durchzuführende Permutation der Untergruppe S„ veranlassen.
Erkennt die Prüfsteuereinheit 42 eine im Register A gespeicherte digitale 1,
was anzeigt, daß jede der (N/2) j Permutationen der Untergruppe S„ erzeugt
worden sind, dann ist die Einheit 42 inaktiv, es ist daher dem Operationszähler 12 gestattet, als nächstes die das Indexregister C prüfende und herabstufende
Einheit 43 zu aktivieren. Die Einheit 42 kann irgendeine übliche digitale Vergleichs- und Subtrahierschaltung aufweisen, eine solche Schaltung
kann aber auch im zugeordneten Indexregister A untergebracht sein. Im letzteren Fall würde die Steuereinheit 42 einfach eine Impulsverteilungsanordnung
aufweisen.
Die beiden verbleibenden Prüfeinheiten 43 und 44 sind im Aufbau der Steuer- '
einheit 42 ähnlich und sind dafür ausgelegt zu bestimmen, ob jede der( N/2) j
Permutationen der Untergruppe S, beziehungsweise die »
(N/2) I . (N/2) j Unterteilungen der N Eingangsziffern durchgeführt worden sind.
Im einzelnen bewirkt die das Indexregister C prüfende und herabstufende
Einheit 43 die Übergabe der Steuerung auf die die Untergruppe S, permutierende Steuereinheit 33 sowie die Herabstufung des Registers C um 1, falls dieses
009817/149*
-is- 14SS282
Register eine digitale Zahl größer als 1 enthält. Ist der Inhalt des Indexregisters
C gleich 1, dann ist die Einheit 43 inaktiv und zeigt demnach an,
daß alle Permutationen der Untergruppe S, erzeugt worden sind.
In ähnlicher Weise kassiert die Unterteilungsprüfeinheit 44 das Digitalwort
00010 in den Operationszahler 12, wenn weniger als die N '
(N/2) I · (N/21 j möglichen Unterteilungen der N Eingangsgrößen von der Steuereinheit 32
erzeugt worden sind. Sind umgekehrt alle möglichen Unterteilungen der Eingangsliste
durchgeführt worden, so ist die Steuereinheit 44 inaktiv und zeigt
daher an, daß jede der N J Permutationen erzeugt worden sind.
Eine Ausgangsverwendung-Steuerschaltung 41 dient in der Schaltung nach
Figur 1 dazu, auf die permutierten Eingangsziffern in der im Einzelfall gewünschten
Weise anzusprechen. Soll beispielsweise das vorstehend erwähnte Problem des Reisenden untersucht wenden, so würde die Ausgangssteuereinheit
41 in der Lage sein, die Reiseentfemung entsprechend dem durch die jeweilige
Reihenfolge der Städte angezeigten Weg aufzusummieren, wie dies durch die im Operandspeicher 20 gespeicherten permutierten Untergruppen S, und S-gegeben
ist«
Die Gesamtarbeitsweise der Anordnung nach Figur 1 kann anhand des in
Figur 3 dargestellten Signaifiußdiagrammes leichter verständlich werden. Die
in Klammern geschriebenen Bezugsziffern in jedem der Kästchen der Figur 3
009817/149$
14SS282
entsprechen den in gleicher Weise bezeichneten Steuereinheiten und Ausführungsschaltungen,
die in der Hauptsache das Verhalten der entsprechenden
Funktion beeinflussen.
Nach dem oberen Teil der Figur 3 werden eine Liste von N Eingangsziffem
und (N/2) j Austauschzeichen zunächst in den Operandspeicher 20 eingespeichert.
Dann werden die N Eingangsgrößen in zwei unähnliche Untergruppen S, und S„ gleicher Größe unterteilt und in den entsprechenden Stellen
S1 + 1 bis S1 + (N/2) beziehungsweise S3 + 1 bis S3 + (N/2) ( Figur 2) gespeichert.
Als nächstes wird eine Permutation von jeder der Untergruppen S, und S_
erzeugt und die interessierende Ausgangsaufgabe (output task) wird, auf das gesamte Ordnen der S, und S_ Untergruppen der N Eingangsziffern hin, ausgeführt.
Ansprechend auf die Vervollständigung der Ausgangsoperation, wird die nächste Permutation der Untergruppe S„ durchgeführt, und zwar mit Hilfe
der Ausgangsweiterverwendung-Steuerschaltung 41, die durch diese neue Reihenfolge aktiviert wird. Dieser funktionelle Zyklus, der in Figur 3 als
Operationsschleife 1 bezeichnet ist, setzt sich solange fort, bis alle Reihenfolgen
der Untergruppe S_ erzeugt worden sind. Sind alle Permutationen der
Untergruppe S9 erzeugt worden, so wird die nächste oder die zweite Reihenfolge
der Untergruppe S, bewirkt« Hierauf folgend werden jede der (N/2) { Permutationen der Untergruppe S_ wiederum durch die Operationssshleife 1
erzeugt, wobei die Ausgangseinheit 41 wiederum auf jede Reihenfolge der
009817/14$·
~15~ 149S282
N Eingangsziffern ansprechend, wirksam ist.
Die Vorstehend beschriebene Arbeitsweise der Schaltung, die in Figur 3 als
Operationsschleife 2 identifiziert ist, wiederholt sich solange bis jede der möglichen Penmutationen der Untergruppe S. erzeugt worden ist. Wie vorstehend
angegeben ist, wird die Funktionsschleife 1 (N/2) J mal für jede der
(N/2) ( Umsetzungen durch die Schleife 2 ausgeführt. Folglich werden insgesamt
(N/2) {· (N/2) I Permutationen für jede Unterteilung der N Eingangsgrößen
erzeugt.
Jedesmal wenn die Schleife 2 die vollen (N/2) I Zyklen ausgeführt hat, wird
die Systemsteuerung auf die Unterteilungserzeugung-Steuereinheit 32 zurückverlegt,
um das nächste Unterteilen der N Eingangsobjekte zu bewirken. Diese Schaltungsfunktion entspricht der äußeren Funktionsschleife 3 der
Figur 3.
Wie vorstehend erwähnt worden ist, können N verschiedene Objekte in zwei
verschiedene Untergruppen von N/2 Elemente auf je insgesamt
(N/2) J. (N/2) ( Wegen kombiniert werden. Folglich wird die mittlere Operationsschleife 2
(K/2) I. (tV2) I ' (N/2) 1
mal durchlaufen und die innerste Schleife 1
N ' ■ . (N/2) J . (N/2) | = NJ (4)
(N/2) \. (N/2) I
009 817/1491
14SS282
was der Gesamtanzahl möglicher Permutationen der N Objekte entspricht.
Es sollte beachtet werden, daß die am häufigsten durchgeführten Schaltungsoperationen, nämlich diejenigen die innerhalb der Grenzen der Schleife 1
durchgeführt werden, relativ einfach und dafür ausgelegt sind, die Permutationen
von nur N/2 anstelle von N Größen zu erzeugen. Dies kann dadurch
weiter veranschaulicht werden, wenn man beachtet, daß 10 { gleich 3.628.800 ist während (10/2) I nur 120 ist. Ferner ist ersichtlich, daß, wenn
in der Schaltung nach Figur 1 N = IO ist, nur N/2 J also 120 Speicherstellen
im Operandspeicher 20 vorgesehen sein müssen, damit die Austauschzeichen an bis a..g untergebracht werden können. Werden jedoch die Permutationen
direkt aus den 10 Eingangsziffern durch die hier betrachtete Austauschmethode erzeugt, so würden 3.628.800 Austauschzeichen-Speicherstellen erforderlich
sein. Diese Speicherstellenanzahl ist lästig groß.
Zur weiteren Erläuterung der Wirkungsweise der permutationserzeugenden
Schaltung nach Figur 1 sei angenommen, daß es erwünscht ist, die Permutationen von sechs Eingangsziffern, die mit den Bezugszeichen 1, 2, 3, 4, 5
und 6 bezeichnet sind und über die Leitung 24 zugeführt werden, zu erzeugen.
Demgemäß veranlaßt die Eingangsliste-Einlesesteuereinheit 30, wenn sie vom
Operationszähler 12 aktiviert wird, die Eingangs-Ausgangs-Überwachungseinheit 18, die sechs Eingangszahlen in den Speicher 20 in digitaler Form einzugeben.
Die als nächste aktivierte Steuereinheit 31 dient dann zum Placieren der Austauschzeichen 2, 1,2, 1,2 und 1, die entsprechend Gleichung (1)
0 0 9817/1 A 9*
erzeugt und über die Leitung 24 zugeführt worden sind, in die (6/2) I oder
sechs Speicherstellen, die mitcL^ beginnen und der Adresse ICHNGE
(Fig. 2) vorausgehen, des Operandspeichers 20#
Nachdem die vorstehend beschriebene Anfangsoperation des Speichers 20
ausgeführt ist, erzeugt die Steuereinheit 32 die erste Unterteilung der sechs Eingangsgrößen in Untergruppen gleicher Größe S, und S„. Zu Erläuterungszwecken sei angenommen, daß die Ziffern 1,2 und 3 einerseits 4, 5 und
andererseits in den Untergruppen S, bzw, S7 gelegen sind. Demgemäß werden
diese Ziffern in die Speicheradressen S, + 1, S, + 2, und S, + 3 beziehungsweise
S«+ 1, S_ + 2 und S + 3 eingespeichert.
Auf den vorstehenden Unterteilungsprozeß folgend, ist die die Untergruppe S,
permutierende Steuereinheit 33 dafür ausgelegt, das Indexregister B auf (6/2) I = 6 einzustellen und auch die erste Permutation der Untergruppe S,
in Übereinstimmung mit dem ersten Austauschzeichen, nämlich der Zahl 2, zu erzeugen, die in der Speicherstelle ^0 vorhanden ist. Folglich bewirkt
die Einheit 33 den Austausch der zweiten und dritten Elemente von S. und
erzeugt die neugeordnete S. Untergruppe 1, 3 und 2. Die genaue Operation
der Einheit 33 folgt der vorstehend im einzelnen für die die Untergruppe S-permutierende
Einheit 50 beschriebenen Weise identisch.
Die Steuereinheiten 34 bis 40 der Gesamtanordnung 50 sind funktionell dafür
009817/1408
ausgelegt, eine neue Reihenfolge der Untergruppe S. zu erzeugen, und zwar
während jeder Ausführung derselben. Während der ersten Aktivierung dieser Einheiten beschickt die LX - (N/2) j - A Steuereinheit 34 das Indexregister
A mit der Digitalzahl (6/2) { = 6. Anschließend wird das Austauschzeichen 2,
das in der Chi Q. Speicherstelle ICHNGE-6 enthalten ist dem Akkumulatorregister
15 unter der Steuerung der CLA-IC-A Einheit 35 zugeführt, und a -2
wird in das Indexregister B durch die PNA-B Steuereinheit 36 eingeschrieben.
Dann werden die CLA-S3-B und LDQ-S3 + 1-B Steuereinheiten 37 bzw. 38
aufeinanderfolgend zu dem Zweck aktiviert, die Elementzeichen 5 und 6 der
S -Untergruppe, die in den S Untergruppenspeicheradressen S + 2 und
(S2+ 1) + 2 = S„ + 3 gelegen sind, zu den AC bzw. MQ Registern 15 und 16
zu übertragen. Schließlich placieren die STO-S + 1 -B and STQ-S3 -B
Steuereinheiten 39 und 40 die S- Untergruppenzeichen 5 bzw. 6, die in den AC und MQ Registern 15 bzw. 16 vorhanden sind, in die Speicherstellen
S- + 3 und S + 2. Folglich sind die permutierten S Elemente, die in den
Speicherstellen S +1 bis S + 3 des Speichers 20 vorhanden sind, die Zahlenfolge
4, 6 und 5, und da rübe rhi na us besteht die ganze aus sechs Elementen
bestehende Eingangs liste, die in den Speicherstellen S, + 1 bis S, + 3 und
S„ + 1 bis S9 + 3 vorhanden ist, aus der Zahlenfolge 1, 3, 2, 4, 6 und 5#
Der Operationszähler 12 aktiviert als nächstes die Ausgangsverwendung-Steuereinheit
41, die auf die vorstehend angegebene permutierte Eingangs-
009817/1491
ORIGINAL INSPECTED
-19- 14S9282
gruppe entsprechend der im Einzelfall gewünschten Untersuchung anspricht.
Nach Vervollständigung dieses Schrittes prüft die PrUfeinheit 42 das Indexregister
A und bestimmt, daß die hierin gespeicherte Zahl, nämlich eine digitale 6, größer als 1 ist. Demgemäß zieht die Einheit 42 eine 1 vom Inhalt
des Registers A ab, so daß hierin eine digitale 5 gespeichert bleibt, und schreibt das binäre Wort 01011 in den Operationszähler 12 ein.
Folglich aktiviert der Zähler 12 als nächstes die ClA-IC-A Steuereinheit
35, die zu diesem Zeitpunkt dazu dient, die digitale 1, die in der <~ \
Adressenstelle ICHNGE-5 gespeichert ist, in das Akkumulatorregister 15
einzugeben. Die Steuereinheiten 36 bis 40 bewirken dann eine Umkehr der
Speicherstellen der Elemente, die in den Adressen S„ + 1 und S_ + 2 enthalten
sind, in der vorstehend beschriebenen Weise derart, daß die neue permutierte S« Untergruppe, nämlich 6, 4 und 5 , nunmehr in den Speicherstellen
S_ +1 bis S + 3 liegt.
Die vorstehende Betriebsweise, die der funktioneilen Schleife 1 der Figur 3
entspricht, wiederholt sich nun zyklisch bis die PrUfeinheit 42 im Indexregister
A eine digitale 1 feststellt, was anzeigt, daß alle sechs Permutationen der drei S_ Untergruppenelemente erzeugt worden sind. Zu diesem Zeitpunkt
bestimmt der als nächstes aktivierte PrtJfgenerator 43 daß das Indexregister C,
daß der die S. Untergruppe permutierenden Anordnung 33 zugeordnet ist, eine digitale 6 gespeichert hat, eine Zahl also, die größer als 1 ist. Folglich ver-
009817/149*
.20- 148S282
mindert die Einheit 43 den Inhalt des Registers C um 1 und Übergibt die
Systemkontrolle via Operationszähler 12 an die Einheit 33 ab, damit die nächste Permutation der S, Untergruppe erzeugt wird. Ansprechend hierauf
und auf jede folgende S, Untergruppenfolge, werden wiederum jede der sechs Permutationen der Untergruppe S9 durch die vorstehend erwähnte
Permutationssteuereinheit 50 erzeugt,
Sind alle sechs der S, Untergruppenfolgen erzeugt worden, was einem
passieren der funktioneilen Schleife 2 der Figur 3 entspricht, gibt die Steuereinheit 43 die Steuerung an die UnterteilungsprUfeinheit 44 ab. Zu
diesem Zeitpunkt bestimmt die Einheit 44 daß nur eine der * . .
(6/2) j- (6/2) I Unterteilungen der sechs Eingangsobjekte durchgeführt worden ist.
Demgemäß schreibt die Einheit 44 das Binärwort 00010 in den Operationszähier
12 ein, der als nächstes dann die UnterteilungserzeugunjjrSteuerschaltung
32 aktiviert. Die Steuereinheit 32 erzeugt dann die nächste Unterteilung der sechs Eingangsobjekte, und die die S, und S- Untergruppe
permutierende Anordnungen 33 bzw, 50 werden dann erneut in der vorstehend beschriebenen Weise wiederholt wirksam.
Sind alle zwanzig Unterteilungen der Eingangsliste durchgeführt worden,
und zwar entsprechend eines vollständigen Durchlaufes der Schleife 3 in Figur 3, ist jede der gewünschten Permutationen erzeugt worden und die Anordnung
nach Figur 1 wird dementsprechend inaktiv gemacht. Darüberhinaus
009817/149*
ORIGINAL INSPECTED
-21- 1488282
sollte beachtet werden, daß die permutationserzeugende Anordnung der
Figur 1 die 6 J Folgen dor aus sechs Elementen bestehenden Eingangsgruppe
schnell und auf vergleichsweise einfache Weise ausgeführt hat, weil die am häufigsten gebrauchten Steuereinheiten, nämlich die Einheiten 35 bis 40,
die in der die S. Gruppe permutierenden Anordnung 50 liegen, eine relativ
einfache Ziffemaustauschoperation in einer kleinen Untergruppe, die nur
drei Elemente enthält, ausführen.
Die Anordnung der Figur 1 ist zwar so dargestellt worden, daß sie zwei unterteilte
Untergruppen S, und S- gleicher Größe enthält, eine derartige · Unterteilung ist aber weder auf zwei Untergruppen noch darauf beschränkt,
daß die Untergruppen gleiche Größe besitzen. Allgemein gesprochen, kann
eine Gruppe von N Eingangsobjekten in { Untergruppen unterteilt werden,
und zwar mit j aufeinanderfolgend betätigten, die Untergruppen permutierenden Einheiten und mit j Prüfsteuereinheifen, die die entsprechenden Paare
der Anordnungen 33 und 50 bzw. 42 und 43 der Figur 1 ersetzen. Zusätzlich
können jede der j unterteilten Untergruppen jede Zahl von Elementen enthalten, obgleich die Gesamtanordnung am wirksamsten betrieben werden
kann, wenn die Untergruppengrößen so gewählt werden, daß sie je etwa gleich groß sind. Allgemein gesprochen muß jedoch eine verschiedene Liste von Austauschzeichen
im Operandspeicher 20 für jede Untergruppe unterschiedlicher
Größe vorgesehen sein.
009817/Udd
Zusammengefaßt verkörpert eine erfindungsgemäße Rechenanordnung eine
Mehrzahl ineinandergeschachtelter iterativ durchlaufender funktioneller Schleifen, um die Permutationen von N Objekten zu erzeugen» Die äußere
Schleife unterteilt die N Objekte in Untergruppen fixierter Größe, und
die inneren Schleifen umfassen je Element Austauschoperationen zum Erzeugen von Permutationen einer entsprechenden Untergruppe der Eingangsziffern,
Die Anordnung erzeugt Permutationen in hoher Geschwindigkeit, und zwar
durch Reduzieren des Problems großer Werte für N auf ein solches für kleine N. Zusätzlich erfordert der Aufbau eine relativ kleine Speicherkapazität,
die von der Größe der Eingangsliste effektiv unabhängig ist.
9-017/14*1
ORIGINAL INSPECTED
Claims (2)
14S9282
PatentansgrUche
1# Anordnung zum Erzeugen von Permutationen der In einer Eingangs!iste
vorhandenen Größen mit
einem Speichermedium zum Speichern der Eingangsliste, gekennzeichnet durch
eine auf die Größen der gespeicherten Eingangsliste ansprechende
Schaltung ( 20, 32, 44 ) zum Erzeugen von Unterteilungen der Größen
der Eingangsliste in eine Mehrzahl getrennter Untergruppen (S,, S- ),
eine auf jede durch die Erzeugungsschaltung verursachte Unterteilung
der Eingangsgrüßen ansprechende Schaltung ( 15, 16, Indexregister B
und C, 17, 20, 33, 43 ) zum Permutieren der in einer ersten Untergruppe ( S, ) gelegenen Größen und
eine auf jede Permutation der ersten Untergruppe (S.) ansprechende
Schaltung ( 15, 16, Indexregister A und B, H, 34-40, 42 ) zum Erzeugen einer Mehrzahl Permutationen der in einer -aveiten Untergruppe ( S- ) gelegenen Größen.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß das Speichermedium auch eine Mehrzahl Austauschzeichenspeicher und die
Anordnung ferner eine Schaltung zum aufeinanderfolgenden Austauschen der Speicherstellen im Speichermedium von ausgewählten Untergruppengroßen, und zwar in Übereinstimmung mit aufeinanderfolgend ausgewählten der Austauschzeichen, aufweist.
009817/1498
3, Anordnung nach Anspruch 1 und 2, dadurch gekennzeichnet, daß die
Schaltung zum aufeinanderfolgenden Austauschen der Speicherstellen
der Untergruppengrößen folgende Teile besitzt s ein Indexregister,
Schaltungen zum Austauschen der Speicherstelle zweier benachbarter
Größen in Übereinstimmung mit dem ausgewählten, durch das indexregister bestimmtet! Austauschzeichen, und
Schaltungen zum iterativen Ändern des Inhaltes des Indexregisters.
009817/1498
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US400329A US3383661A (en) | 1964-09-30 | 1964-09-30 | Arrangement for generating permutations |
Publications (1)
Publication Number | Publication Date |
---|---|
DE1499282A1 true DE1499282A1 (de) | 1970-04-23 |
Family
ID=23583159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19651499282 Pending DE1499282A1 (de) | 1964-09-30 | 1965-09-20 | Anordnung zum Erzeugen von Permutationen |
Country Status (4)
Country | Link |
---|---|
US (1) | US3383661A (de) |
DE (1) | DE1499282A1 (de) |
GB (1) | GB1104407A (de) |
NL (1) | NL6512000A (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2498849A1 (fr) * | 1981-01-26 | 1982-07-30 | Commissariat Energie Atomique | Generateur de signaux logiques combines |
FR2507414A1 (fr) * | 1981-06-09 | 1982-12-10 | Commissariat Energie Atomique | Generateur de signaux logiques combines |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3593317A (en) * | 1969-12-30 | 1971-07-13 | Ibm | Partitioning logic operations in a generalized matrix system |
US3978452A (en) * | 1974-02-28 | 1976-08-31 | Burroughs Corporation | System and method for concurrent and pipeline processing employing a data driven network |
GB9801713D0 (en) * | 1998-01-27 | 1998-03-25 | Sgs Thomson Microelectronics | Executing permutations |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2856595A (en) * | 1954-06-09 | 1958-10-14 | Burroughs Corp | Control apparatus for digital computing machinery |
US3038660A (en) * | 1955-07-07 | 1962-06-12 | Univ Washington | Electric synthesizer of mathematical matrix equations |
US2978680A (en) * | 1957-12-06 | 1961-04-04 | Bell Telephone Labor Inc | Precession storage delay circuit |
-
1964
- 1964-09-30 US US400329A patent/US3383661A/en not_active Expired - Lifetime
-
1965
- 1965-09-15 NL NL6512000A patent/NL6512000A/xx unknown
- 1965-09-15 GB GB39325/65A patent/GB1104407A/en not_active Expired
- 1965-09-20 DE DE19651499282 patent/DE1499282A1/de active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2498849A1 (fr) * | 1981-01-26 | 1982-07-30 | Commissariat Energie Atomique | Generateur de signaux logiques combines |
EP0058108A1 (de) * | 1981-01-26 | 1982-08-18 | Commissariat à l'Energie Atomique | Generator für kombinierte logische Signale |
FR2507414A1 (fr) * | 1981-06-09 | 1982-12-10 | Commissariat Energie Atomique | Generateur de signaux logiques combines |
Also Published As
Publication number | Publication date |
---|---|
US3383661A (en) | 1968-05-14 |
GB1104407A (en) | 1968-02-28 |
NL6512000A (de) | 1966-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2350225C2 (de) | ||
DE1901343C3 (de) | Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen | |
DE2819571C2 (de) | ||
DE2331589A1 (de) | Datenverarbeitungsanordnung | |
DE2310631C3 (de) | Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2621882A1 (de) | Dynamischer digitalspeicher mit ununterbrochen umlaufendem datenfluss | |
DE2364408A1 (de) | System zur erstellung von schaltungsanordnungen aus hochintegrierten chips | |
DE2502910A1 (de) | Informations-anordnungseinrichtung | |
DE2364254B2 (de) | Schaltungsanordnung fuer datenverarbeitende geraete | |
DE1774052B1 (de) | Rechner | |
DE2221442A1 (de) | Assoziativspeicher | |
DE2926322A1 (de) | Speicher-subsystem | |
DE1449544A1 (de) | Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk | |
DE3144563C2 (de) | ||
DE2506671C3 (de) | Binärdaten-Handhabungsnetzwerk | |
DE2357654C2 (de) | Assoziativspeicher | |
DE1499282A1 (de) | Anordnung zum Erzeugen von Permutationen | |
DE2311503A1 (de) | Datenverarbeitungsanlage mit mehreren zentraleinheiten | |
DE2459476C3 (de) | ||
DE1237621C2 (de) | Informationsspeicher | |
DE2459476A1 (de) | Schaltungsanordnung fuer nichtzyklische datenpermutationen | |
DE2649147C2 (de) | Anordnung zum wahlweisen Durchführen von logischen und arithmetischen Operationen | |
DE2000608C3 (de) | Schaltungsanordnung fuer eine Nachrichtenverarbeitungs-,insbesondere fuer eine Nachrichtenvermittlungsanlage | |
DE1296429B (de) | Datenbearbeitungsanlage | |
DE2024584B2 (de) | Steuereinrichtung für eine allgemeine Datenverarbeitungseinrichtung |