DE3908684A1 - Suchverfahren fuer einen datenspeicher und vorrichtung zur durchfuehrung des verfahrens - Google Patents
Suchverfahren fuer einen datenspeicher und vorrichtung zur durchfuehrung des verfahrensInfo
- Publication number
- DE3908684A1 DE3908684A1 DE3908684A DE3908684A DE3908684A1 DE 3908684 A1 DE3908684 A1 DE 3908684A1 DE 3908684 A DE3908684 A DE 3908684A DE 3908684 A DE3908684 A DE 3908684A DE 3908684 A1 DE3908684 A1 DE 3908684A1
- Authority
- DE
- Germany
- Prior art keywords
- dimension
- dimensional
- stage
- search
- strips
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
- G06F16/902—Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
Die Erfindung betrifft ein Suchverfahren und eine Vorrichtung
zur Durchführung des Verfahrens, bei welchem ein innerhalb
eines n-dimensionalen (n = 1, 2, 3, 4, . . .) Koordinatensystems
vorgegebener endlicher Verwaltungsbereich, ein innerhalb des
Verwaltungsbereichs liegender höchstens n-dimensionaler Suchbereich
sowie höchstens n-dimensionale Suchobjekte vorhanden sind,
wobei die Begrenzungen des Suchbereichs koordinatenkonform verlaufen
und die Suchobjekte durch Elementarbereiche beschrieben
werden, die ebenfalls koordinatenkonform sind.
Grundsätzlich ist das Koordinatensystem bzw. der Verwaltungsbereich
frei wählbar. Vorausgesetzt wird jedoch, daß eine eindeutige
direkte Abbildung des verwendeten Koordinatensystems in
ein gleichdimensionales orthogonales Koordinatensystem sowie die
umgekehrte Abbildbarkeit gegeben sein müssen, wie dies beispielsweise
beim Zylinder-Koordinatensystem oder Polar-Koordinatensystem
der Fall ist.
Unter einem koordinatenkonform begrenzten Bereich wird ein Bereich
verstanden, der durch Koordinatenlinien bzw. Koordinatenflächen
des verwendeten Koordinatensystems begrenzt ist, sofern
der Bereich endlich ist. Beispielsweise wird ein koordinatenkonformer
Bereich im zweidimensionalen kartesischen Koordinatensystem
durch zur den Koordinatenachsen parallele Geraden
begrenzt. Im dreidimensionalen kartesischen Koordinatensystem
hingegen sind die Begrenzungsflächen Ebenen, die zu der X/Y-,
Y/Z- oder X/Z-Ebene parallel sind.
Bei einem zweidimensionalen Polar-Koordinatensystem sind beispielsweise
radial gerichtete Geraden und konzentrische Kreisbögen
als Begrenzungslinien des Bereichs vorgegeben. Unter
den Koordinatenflächen einer Dimension eines n-dimensionalen
Koordinatensystems sind diejenigen (n-1)-dimensionalen Hyperflächen
zu verstehen, die dadurch entstehen, daß für jede Koordinatenfläche
der Koordinatenwert in dieser Dimension konstant
gehalten wird. In zweidimensionalen Koordinatensystemen
wird von Koordinatenlinien gesprochen. Im kartesischen Koordinatensystem
vereinfachen sich die Koordinatenflächen zu Koordinatenebenen
sowie die Koordinatenlinien zu Koordinatengeraden.
Die Suchobjekte, die grundsätzlich beliebige Gestalt besitzen
können, sind im vorliegenden Zusammenhang durch je einen koordinatenkonformen
Elementarbereich beschrieben.
Nicht-entartete Elementarbereiche eines n-dimensionalen Koordinatensystems
zeichnen sich dadurch aus, daß sie in jeder Dimension
durch zwei voneinander verschiedene Koordinatenlinien bzw.
Koordinatenflächen dieser Dimension begrenzt sind, sofern
sie - als Sonderfall - keine unendliche Ausdehnung besitzen und
- als weiterer Sonderfall - begrenzende Linien bzw. Flächen
nicht zu Punkten entartet sind. Nicht-entartete Elementarbereiche
sind stets n-dimensional. Bei entarteten Elementarbereichen
können in mindestens einer Dimension die beiden begrenzenden
Koordinatenlinien bzw. Koordinatenflächen identisch
sein. Damit sind auch Punkte zugelassen, die den höchsten Grad
der Entartung darstellen.
Die vorstehend beschriebenen Suchobjekte werden im folgenden
allgemein als Objektkörper, im dreidimensionalen kartesischen
Koordinatensystem als Objektquader und im zweidimensionalen
kartesischen Koordinatensystem als Objektrechtecke bezeichnet.
Auch der Suchbereich stellt einen durch Koordinatenlinien bzw.
Koordinatenflächen begrenzten Bereich dar, der aus koordinatenkonformen
Elementarbereichen (Elementarrechtecken bzw.
-quadern usw.) zusammengesetzt ist.
Das eingangs beschriebene Verfahren wird in der Datenverarbeitung
angewendet, wenn nach Daten mit numerischen oder numerisch
beschreibbaren Attributen gesucht wird, wobei eines oder
mehrere solcher Attribute als Suchschlüssel dienen. Selbstverständlich
ist auch der Suchbereich numerisch beschreibbar.
Beispielsweise kann ein derartiges Suchverfahren verwendet
werden, um in einer Datenbank, in welcher die Geburtsdaten
von Personen abgespeichert sind, eine Personenauswahl nach bestimmten
Kriterien zu trennen. Eine Anfrage könnte beispielsweise
lauten, diejenigen Personen zu ermitteln, die
- a) 30 bis 40 Jahre alt sind und im Zeitraum Januar bis März geboren wurden oder
- b) 50 bis 65 Jahre alt sind und im Zeitraum Juli bis Semptember geboren wurden oder
- c) im Dezember geboren wurden.
Diese Anfrage besteht aus drei orthogonalen Suchbereichen.
Ein derartiges Suchverfahren ist ferner beispielsweise auch
bei Datenbanken einsetzbar, die zur Verwaltung von geographischen
Daten eingesetzt sind, wenn z. B. nach Städten, Brücken,
Straßen, Feldern usw. innerhalb einer Region gesucht wird.
Auch im Bereich der CAD/CAM-Technik kann ein derartiges Suchverfahren
dazu eingesetzt werden, geometrische Informationen,
die sich auf ein Detail innerhalb einer größeren Zeichnung
beziehen, zu extrahieren.
Bei den üblichen Suchverfahren für geometrische oder geometrisch
interpretierbare Daten wird der Suchbereich im allgemeinen
durch einen koordinatenkonformen Elementarbereich beschrieben.
Auch die Suchobjekte sind durch koordinatenkonforme Elementarbereiche
dargestellt. Ein Überlappungstest mit koordinatenkonformen
Elementarbereichen desselben Koordinatensystems ist
einfach durchzuführen.
Eine Verallgemeinerung besteht darin, den tatsächlichen Suchbereich,
der beliebige Gestalt besitzen kann, durch mehrere
koordinatenkonforme Elementarbereiche möglichst genau anzunähern.
Bei den bekannten Verfahren hängt jedoch die Ausführungszeit
für einen Überlappungstest von der Komplexität des
Suchbereichs ab. Wenn beispielsweise ein zweidimensionaler
Suchbereich durch Elementarrechtecke zusammengesetzt ist, so
müssen diese Elementarrechtecke einzeln auf das Vorhandensein
des Objektrechtecks hin überprüft werden. Es besteht im Rahmen
einer Vorauswahl die Möglichkeit, die Anzahl der Elementarrechtecke
des Suchbereichs, die zu überprüfen sind, zu reduzieren.
Die Suchzeit nimmt aber grundsätzlich mit der Anzahl der
Koordinatenrechtecke zu.
Unter der Komplexität eines koordinatenkonformen Bereichs sei
eine Maßzahl verstanden, die beispielsweise die Anzahl der Kanten
oder Eckpunkte oder auch die minimale Anzahl von koordinatenkonformen
Elementarbereichen, aus denen dieser Bereich besteht,
angibt.
Eine andere Suchmöglichkeit besteht darin, für den vorgegebenen
Suchbereich das Ergebnis für alle möglichen Objektkörper
vorauszuberechnen und abzuspeichern. Bei einer Anfrage
kann das Ergebnis für jedes Suchobjekt jeweils durch Direktzugriff
bestimmt werden, ohne daß ein Suchvorgang bezüglich
des Suchbereichs eingeleitet ist. Dieses Prinzip, das als
Generalisierung bezeichnet wird, ist in der Regel nicht einsetzbar.
Der Erfindung liegt die Aufgabe zugrunde, das Verfahren
der eingangs genannten Art und die Vorrichtung zur Durchführung
des Verfahrens zu vereinfachen.
Diese Aufgabe wird gemäß dem kennzeichnenden Teil der unabhängigen
Patentansprüche gelöst. Bevorzugte Weiterbildungen
der Erfindung sind in den Unteransprüchen beschrieben.
Ein Grundprinzip der Erfindung besteht darin, daß über den
Verwaltungsbereich ein gleichdimensionales Gitter in der Weise
gelegt wird, daß alle Eckpunkte des Suchbereichs mit Gitterpunkten
zusammenfallen. Ausgehend von dieser Zerlegung wird
der Suchbereich in einer Vorverarbeitungsphase, die nicht Teil
der Suchphase ist, so weiterverarbeitet und abgespeichert,
daß die Suchkosten nicht von der Komplexität des Suchbereichs
bestimmt werden. Für die praktische Anwendung werden ferner
auch Berechnungen auf die Suchphase verlagert, wobei sich die
Speicherkomplexität verringert.
Der durch einen oder mehrere koordinatenkonforme Elementarbereiche
dargestellte n-dimensionale oder entartete Suchbereich
kann Löcher oder Hinterschneidungen besitzen. Darüber hinaus
braucht er auch nicht zusammenhängend zu sein, sondern kann
aus mehreren, jeweils getrennten Unterbereichen bestehen.
Weiterhin können die Unterbereiche von verschiedenem Entartungsgrad,
also 0- bis n-dimensional, sein. Darüber hinaus
kann auch ein zusammenhängender Unter- bzw. Suchbereich aus
Teilbereichen unterschiedlichen Entartungsgrades bestehen.
Ein m-dimensionaler, nicht-entarteter Teilbereich läßt sich
aus m-dimensionalen, nicht-entarteten Elementarbereichen zusammensetzen.
Die Werte, die zur Beschreibung des Suchbereichs und der Objektkörper
dienen, sollen aus einem endlichen Wertevorrat
stammen, der eine totale Ordnung besitzt, d. h. jeder Wert
steht zu jedem Wert des Wertevorrats in entweder einer Kleiner-,
Größer- oder Gleichheits-Beziehung. Dies ist beispielsweise
der Fall bei Integerzahlen, die im Intervall von 0 bis 65 535
liegen. Es ist aber prinzipiell auch ein Wertevorrat, der aus
Buchstaben besteht, denkbar. Grundsätzlich können ebenso die
von Datenverarbeitungsanlagen verarbeiteten Gleitpunktzahlen
oder ein Intervall hieraus verwendet werden. Da sowohl die
Mantisse als auch der Exponent endlich lang ist, besitzt die
Menge der Gleitpunktzahlen im Gegensatz zur Menge der reellen
Zahlen eine endliche Mächtigkeit. Der Größe des verwendeten
Wertevorrats sind durch der effizient verarbeitbaren Datenmenge
Grenzen gesetzt.
Im Unterschied zu den bekannten Verfahren, bei welchen die
Ausführungszeit von der Komplexität des Suchbereichs abhängt,
hat die Erfindung den Vorteil, daß die Ausführungszeit von der
Komplexität des Suchbereichs unabhängig ist, sofern Datenverarbeitungsanlagen
mit genügender Wortbreite verwendet werden.
Der Zeitvorteil bei der Durchführung eines Suchvorgangs bzw.
eines Überlappungstests erweist sich gerade mit zunehmender
Komplexität des Suchbereichs als besonders groß.
Vorrichtungsmäßig hat die Erfindung den Vorteil, daß unter
Einhaltung einer von der Komplexität des Suchbereichs unabhängigen
Suchzeit relativ wenig Speicherplatz benötigt wird bzw.
vorhandener Speicherplatz effizienter genutzt werden kann als
beim Bekannten. Die erfindungsgemäß zur Anwendung kommenden
Verfahren sind teilweise an spezielle Schaltungsanordnungen
angepaßt, was die Effizienz des erfindungsgemäßen Verfahrens
weiter unterstützt. Der Schaltungsaufwand wird im Vergleich
zu herkömmlichen Verfahren vereinfacht.
Gemäß der Erfindung ist die koordinatenkonforme Gestalt des
Suchbereichs deshalb gewählt, um diesen durch mehrere Datensätze,
die je n Werte des Verwaltungsbereichs besitzen, eindeutig
beschreiben zu können. Es wird vorausgesetzt, daß der
Suchbereich durch endlich viele solcher Datensätze repräsentiert
werden kann. Jedes Suchobjekt hingegen läßt sich
mit einem Datensatz beschreiben, der aus 2 × n Werten
besteht. Dabei wird für den Suchbereich und die Objektkörper
das gleiche Koordinatensystem zugrundegelegt.
Nachfolgend wird die Erfindung anhand von in der Zeichnung
dargestellten Ausführungsbeispielen weiter beschrieben.
Fig. 1 zeigt schematisch ein Beispiel für ein Gitter für
einen zweidimensionalen Suchbereich;
Fig. 2 zeigt schematisch eine perspektivische Ansicht eines
dreidimensionalen Suchbereichs mit drei Objektquadern;
Fig. 3 zeigt eine Projektion des in Fig. 2 dargestellten
Suchbereichs auf die X/Y-Ebene;
Fig. 4 zeigt eine Projektion des in Fig. 2 dargestellten
Suchbereichs auf die Y/Z-Ebene;
Fig. 5 zeigt ein Blockschaltbild einer Schaltungsanordnung
zur Durchführung des Suchverfahrens für einen dreidimensionalen
Suchbereich;
Fig. 6 zeigt schematisch ein Beispiel für einen einstufigen
Direktzugriff zur Ermittlung der Indices der Primärstreifen
eines Suchbereichs;
Fig. 7 zeigt schematisch ein Beispiel für einen zweistufigen
Direktzugriff zur Ermittlung der Indices der Primärstreifen
eines Suchbereichs;
Fig. 8 zeigt schematisch ein Beispiel für einen dreistufigen
Direktzugriff zur Ermittlung der Indices der Primärstreifen
eines Suchbereichs;
Fig. 9 zeigt anhand einer Dreiecks-Matrix schematisch ein
Beispiel für die Vorausberechnung und Abspeicherung
der Primärstreifenmengen eines zweidimensionalen
Suchbereichs;
Fig. 10 zeigt die Vorausberechnung und Abspeicherung der
Primärstreifen des Suchbereichs gemäß Fig. 9 für
einen zweistufigen Direktzugriff;
Fig. 11 zeigt schematisch ein Beispiel eines arithmetischen
Zugriffverfahrens;
Fig. 12 zeigt schematisch eine weitere Dreiecks-Matrix zur
Darstellung der Sekundärstreifenmengen eines zweidimensionalen
Suchbereichs;
Fig. 13 zeigt schematisch die belegten Feldelemente einer
vierdimensionalen Matrix zur Darstellung der Streifenmengen
der Sekundärschnittbereiche des dreidimensionalen
Suchbereichs gemäß Fig. 2;
Fig. 14 zeigt ein Blockschaltbild einer Schaltungsanordnung
zur Durchführung eines zweistufigen Direktzugriffs
gemäß Fig. 7;
Fig. 15 zeigt ein Blockschaltbild für eine asynchrone Behandlung
von Sekundärstreifen eines zweidimensionalen
Suchbereichs;
Fig. 16 zeigt ein Blockschaltbild für eine getaktete Behandlung
von Sekundärstreifen eines zweidimensionalen
Suchbereichs;
Fig. 17 zeigt ein Blockschaltbild für eine asynchrone Behandlung
von Sekundärstreifen eines dreidimensionalen
Suchbereichs und
Fig. 18 zeigt ein Blockschaltbild einer Schaltungsanordnung
zur Durchführung eines zweidimensionalen Verfahrens.
Die nachfolgend beschriebenen Beispiele sind auf ein kartesisches
Koordinatensystem bezogen, um die Darstellung übersichtlich
zu halten. Grundsätzlich ist die Erfindung jedoch nicht
auf kartesische Koordinatensysteme beschränkt, sondern kann
gleichermaßen auch bei anderen Koordinatensystemen, wie beispielsweise
dem Polar-Koordinatensystem oder dem Zylinder-
Koordinatensystem eingesetzt werden.
Weiterhin beziehen sich die nachfolgenden Ausführungen zur Veranschaulichung
auf zwei- und dreidimensionale Suchbereiche,
ohne daß hierin eine Einschränkung zu sehen ist. Die Erfindung
ist in gleicher Weise aber auch bei vierdimensionalen Suchbereichen
einsetzbar, wobei Grenzen lediglich in der benötigten
Speicherkapazität zu sehen sind.
Gemäß Fig. 1 wird ein zweidimensionaler Suchbereich 10 (starke
Vollinie) durch orthogonale Geraden beschrieben, wobei die wirkliche
Struktur des Suchbereichs mit strichlierter Linie dargestellt
ist. Über den Suchbereich 10 wird in der Weise ein Gitter
gelegt, daß jedem Eckpunkt 101 bis 119 ein Gitterpunkt entspricht
und auf jeder Gittergeraden mindestens ein Eckpunkt des
Suchbereichs liegt. Das Gitter zerlegt den Verwaltungsbereich
in zweidimensionale, jeweils zu einer Dimension senkrechte Streifen,
die in der anderen Dimension durch den Rand des Verwaltungsbereichs
begrenzt werden. Diese Streifen sind maximal, d. h.
kein Eckpunkt 101 bis 119 des Suchbereichs 10 liegt innerhalb
eines Streifens, aber jeder Streifen wird durch Eckpunkte oder
im Falle von Randstreifen durch den Verwaltungsbereich selbst begrenzt.
Ein Sonderfall liegt dann vor, wenn der Suchbereich entartet
ist. Hier sind für die entarteten Dimensionen zusätzliche
Streifen einzuführen, die in diesen Dimensionen genau einem
Wert des betreffenden Verwaltungsintervalls entsprechen. Dabei
verringert sich die Breite der Nachbarstreifen dieser Dimension
entsprechend. Derartige Streifen seien Mikrostreifen genannt.
Bei einer zweidimensionalen Bereichsanfrage mit einem quadratischen
Verwaltungsbereich, der sich in jeder Dimension von 0
bis N-1 erstreckt, sowie die Koordinate (X, Y) des punktförmigen
Suchbereichs gibt es sowohl drei Primär- als auch drei
Sekundärstreifen. Stellt gemäß Fig. 1 die Ordinate die Primärdimension
dar, so erstreckt sich der Primärstreifen P 0 in der
Primärdimension von Y+1 bis N-1, während P 1 ein Mikrostreifen in
Y ist und P 2 im abgeschlossenen Intervall (0, Y-1) liegt. Hingegen
erstreckt sich der Sekundärstreifen S 0 in der Sekundärdimension
von 0 bis X-1. S 1 ist ein Mikrostreifen in X und S 2
verläuft von X+1 bis N-1. Die Streifen der einen Dimension
(Primärstreifen) werden unterschiedlich gegenüber denjenigen
Streifen der übrigen Dimensionen (Sekundärstreifen) gehandhabt.
Im Beispiel der Fig. 1 werden die Primärstreifen mit P 0 bis P 9
und die Sekundärstreifen mit S 0 bis S 9 bezeichnet.
In den Fig. 2 bis 4 sind ein dreidimensionaler Suchbereich 10′
sowie ein erster, zweiter und dritter Objektquader 11, 12 und
13 dargestellt. Die Form und Größe des bzw. der Suchobjekte
hängen nicht von der geometrischen Struktur des Suchbereichs
10′ ab. Die Eckpunkte der Objektquader 11 bis 13, welche die
von außen zugänglichen Parameter der für das Suchverfahren benötigten
Objektbeschreibung darstellen, sind für jede Dimension
festgelegt. Diese Objektquader 11 bis 13 stellen eine
Approximierung der eigentlichen Objekte dar, die selbst eine
beliebige Form einnehmen können und die zur Durchführung des
Suchverfahrens vollständig innerhalb dieser quaderförmigen Bereiche
liegen.
Die Objektquader 11 bis 13 werden im kartesischen Koordinatensystem
eindeutig durch die Koordinaten ihrer Eckpunkte dargestellt.
Hierfür reicht je Objektquader ein Datensatz aus, der
aus sechs Werten besteht. Der Einfachheit halber sollen diese
Werte im folgenden Integerzahlen sein. Prinzipiell sind beispielsweise
auch Gleitpunktzahlen verwendbar. Diese Datensätze,
die je einen Objektquader des zugehörigen Suchobjekts beschreiben,
sind die Eingabetupel des Suchverfahrens. In Fig. 2 gibt
es drei Suchobjekte und damit drei solcher Eingabetupel.
In dem in den Fig. 2 bis 4 dargestellten Beispiel wird die Y-
Achse als Primärdimension angenommen, d. h. es sind vier Primärstreifen
Pi(Y) (i = 0 bis 3) vorhanden. Entsprechend sind die
X- und Z-Achse Sekundärdimensionen mit Sekundärstreifen Si(X),
(i = 0 bis 3) und Si(Z), (i = 0 bis 2).
Zur Durchführung des Suchverfahrens werden die Eingabetupel der
Reihe nach in die betreffende Datenverarbeitungseinrichtung
eingegeben. Für jedes Eingabetupel, das den gerade bearbeiteten
Objektquader darstellt, werden diejenigen als Anfangs- und Endstreifen
bezeichneten Primär- und Sekundärstreifen ermittelt,
welche die Eckpunkte dieses Objektquaders enthalten. Anhand der
Anfangs- und Endstreifen lassen sich die dazwischenliegenden
Streifen berechnen.
Diese Streifenmenge, beginnend vom Anfangs- bis zum Endstreifen,
wird für die Primärdimension berechnet. Anschließend wird
ein Überlappungstest durchgeführt, in welchem ermittelt wird,
ob mindestens ein Schnittbereich von jeweils drei Streifen aller
drei Dimensionen im Suchbereich liegt, wobei diese Streifen den
Objektquader schneiden. Ist dies der Fall, dann schneiden sich
Objektquader und Suchbereich. Schneiden sich alle Dreier-Paare
von Streifen, die jeweils unterschiedlicher Dimension zugeordnet
sind und den Objektquader schneiden, nur außerhalb des
Suchbereichs, so besitzen der Objektquader und der Suchbereich
keine gemeinsamen Punkte.
Hierzu führt man eine Mengenbildung aus, bei welcher aus allen
Sekundärstreifen, welche das gesuchte Objekt schneiden, eine
Menge ermittelt wird, die nur mehr Primärstreifen, jedoch keine
Sekundärstreifen enthält. Danach wird die Schnittmenge dieser
Menge mit der Streifenmenge der Primärdimension gebildet.
Ein auf diese Schnittmenge angewendeter Test ergibt schließlich
einen Bool′schen Wert, welcher das Vorhandensein bzw.
Nicht-Vorhandensein des Objektquaders im Suchbereich angibt.
Im Beispiel gemäß Fig. 2 bis 4 besteht diese letztgenannte
Menge für den Objektquader 12 aus den Primärstreifen P 1 (Y),
P 2 (Y), die den Objektquader 12 im Suchbereich 10′ schneiden.
Eine Schaltungskonfiguration zur Durchführung eines dreidimensionalen
Suchverfahrens ist in Fig. 5 wiedergegeben. Die zur
Bezeichnung des betreffenden Objektquaders und des Suchbereichs
verwendeten Bezugszeichen sind nachfolgend erläutert. Es bedeuten:
a P | ||||
Anfangswert des Objektquaders in der Primärdimension; | ||||
e P | Endwert des Objektquaders in der Primärdimension; | |||
a¹ | Anfangswert des Objektquaders in der ersten Sekundärdimension; | |||
e¹ | Endwert des Objektquaders in der ersten Sekundärdimension; | |||
· @ | · @ | · @ | a d-1 | Anfangswert des Objektquaders in der letzten Sekundärdimension; |
e d-1 | Endwert des Objektquaders in der letzten Sekundärdimension; | |||
P a , P e | primärseitiger Anfangs- und Endstreifen-Index; | |||
S a ¹, S e ¹ . . . S a d-1, S e d-1 | sekundärseitige Anfangs- und Endstreifen-Indices der ersten bis letzten Primärdimension. |
Dabei wird ein d-dimensionaler Suchbereich zugrundegelegt. Die
a . bzw. e . können Zahlen beispielsweise im Bereich 0 . . . N-1 mit
z. B. N = 2¹⁶ annehmen, während für die Streifenindices Werte
im Intervall 0 . . . K-1 mit z. B. K = 2⁵ erlaubt sind. K kann in
jeder Dimension unterschiedlich sein, wird aber im allgemeinen
viel kleiner als N und aus Speicherplatzgründen nicht größer
als z. B. 256 sein. Die Streifen einer jeder Dimension sind
eindeutig durch ihre Indices gekennzeichnet.
In eine erste Verarbeitungseinheit 14 werden die primärseitigen
Eckwerte a P und e P des gerade bearbeiteten Objektquaders
von außen eingegeben. Die erste Verarbeitungseinheit 14 ordnet
jedem der Eckwerte den zugehörigen primärseitigen Anfangs- und
Endstreifen-Index P a , P e zu und stellt diese Werte einer zweiten
Verarbeitungseinheit 15 zur Verfügung, die daraus alle
Primärstreifen ermittelt, welche das Objekt überlappen.
Eine dritte Verarbeitungseinheit 16 ermittelt aus den Eckwerten
a¹ und e¹ der ersten Sekundärdimension die zugehörigen Anfangs-
und Endstreifen-Indices S a ¹ und S e ¹ dieser Dimension. Eine vierte
Verarbeitungseinheit 17 bestimmt in analoger Weise aus den
Eckwerten a² und e² die Anfangs- und Endstreifen-Indices S a ²,
S e ² der zweiten Sekundärdimension. Dieser dritten und vierten
Verarbeitungseinheit 16 und 17 ist eine fünfte Verarbeitungseinheit
18 nachgeschaltet, welche aus den sekundärseitigen Anfangs-
und Endstreifen-Indices alle diejenigen Primärstreifen
ermittelt, die im Schnittbereich der Sekundärstreifen, die den
Objektquader schneiden, den Suchbereich schneiden.
Die Ausgänge der zweiten und fünften Verarbeitungseinheit 15,
18 liegen an einer sechsten Verarbeitungseinheit 19, in welcher
die in der zweiten und fünften Verarbeitungseinheit 15, 18 ermittelten
Mengen von Primärstreifen miteinander geschnitten
werden. Die Verarbeitungseinheit 19 liefert den gesuchten Bool′schen
Wert.
Bei dem mehr als dreidimensionalen Suchverfahren müssen entsprechend
der Anzahl der hinzukommenden Sekundärdimensionen
weitere Verarbeitungseinheiten von der Art der Einheiten 16
und 17 ergänzt werden. Analog dazu entfällt beim zweidimensionalen
Suchverfahren die Einheit 17. Die Verarbeitungseinheit 18
ermittelt dann die Menge aller derjenigen Primärstreifen, die
die Sekundärstreifen, die das gerade bearbeitete Objektrechteck
schneiden, im Suchbereich schneiden.
Im eindimensionalen Fall besteht der Suchbereich aus einem oder
mehreren Intervallen, er setzt sich also aus einem oder mehreren
separierten Teilbereichen zusammen. Die Streifen sind Intervalle,
die sich dadurch auszeichnen, daß benachbarte Streifen
jeweils abwechselnd einem Teilintervall des Suchbereichs bzw.
einem Lückenintervall entsprechen. Anschaulich betrachtet sind
beim eindimensionalen Fall nur Sekundärstreifen vorhanden, wobei
die Primärstreifen zu einem einzigen Mikrostreifen entartet
sind. Damit erübrigen sich alle ansonsten zur Primärstreifenbehandlung
erforderlichen Verarbeitungseinheiten. Zur Streifenbehandlung
verbleibt somit die dritte Verarbeitungseinheit
16. Die fünfte Verarbeitungseinheit 18 bestimmt nun aus den
Indices des Anfangs- und Endstreifens des gerade bearbeiteten
Objektintervalls diejenige Menge von Teilintervallen des Suchbereichs,
die das Objektintervall schneiden. Das Ergebnis der
Verarbeitungseinheit 18 ist ein Bool′scher Wert, so daß sich
die sechste Verarbeitungseinheit 19 im Prinzip erübrigt.
Ein wegen seiner Einfachheit vorteilhaftes Verfahren zur Ermittlung
der Indices der Anfangs- und Endstreifen wird anhand
der Fig. 6 für Primärstreifen beschrieben. Eine primärseitige
Skala 22, die eine eindeutige Zuordnung eines jeden Wertes des
Verwaltungsintervalls der Primärdimension zum zugehörigen Streifenindex
realisiert, besteht aus einem Feld von Integerzahlen.
Diese Integerzahlen liegen im Bereich von 0 bis (K-1). K = 2⁵ = 32
stellt die maximale Streifenanzahl dar. Grundsätzlich sind
aber auch andere Potenzen von 2 sowie Zahlen, die keine Potenzen
von 2 sind, möglich. Der Länge N der Skala 22, die als
Größe des Verwaltungsintervalls der Primärdimension bezeichnet
werden soll, ist in Fig. 6 aus Darstellungsgründen mit
N = 32 sehr klein gewählt. Ein gebräuchlicher Wert ist z. B.
N = 2¹⁶. Damit wird der Zahlenbereich, der mit 16-bit langen
Integerzahlen dargestellt werden kann, vollständig genutzt.
In Fig. 6 gilt K = N. Im allgemeinen ist jedoch K kleiner als
N.
Je ein Streifen ist für den Bereich unterhalb der unteren bzw.
oberhalb der oberen Grenze des Suchbereichs 10′′ zu reservieren,
sofern der Suchbereich nicht an der oberen oder unteren Grenze
des Verwaltungsbereichs anstößt. Bei einer Gesamtstreifenzahl K
für jede Dimension kann der Suchbereich somit in lediglich
(K-2)-Streifen und nur im Fall eines in dieser Dimension einseitig
an der Grenze des Verwaltungsbereichs anstoßenden bzw.
beidseitig anstoßenden Suchbereichs in (K-1)- bzw. K-Streifen
zerlegt werden. Obwohl davon ausgegangen wird, daß K und N in
jeder Dimension gleich sind, so kann grundsätzlich K und N in
jeder Dimension verschieden sein.
Die Lage und Breite der Primärstreifen P 0 bis P 5 des Suchbereichs
10′′ sind in Blöcken 21 festgelegt, welche der Skala 22 eindeutig
zugeordnet sind. Die Blocklänge, die im voraus nicht
bekannt und auch nicht beeinflußbar ist, ist durch die Anzahl
der Zahlen bestimmt, die das zugehörige Intervall der Skala
22 enthält. Der Primärstreifen P 0 nimmt beispielsweise das
Intervall 0, 1, 2 der Skala 22 ein, d. h. die Blocklänge 3.
Geometrisch betrachtet, wird jedem diskreten Wert aus dem Verwaltungsintervall
ein kontinuierliches Werteintervall zugeordnet.
Jedem dieser Primärstreifen P 1 bis P 4 sowie den Primärstreifen
P 0 und P 5 an der unteren bzw. oberen Grenze des Suchbereichs
10′′ ist ein Block zugeordnet, so daß in diesem Beispiel insgesamt
sechs Blöcke 21 vorhanden sind. In jedem Feldelement
des Feldes der Skala 22, das dem gleichen Block zugeordnet
ist, wird jeweils die gleiche Zahl eingetragen, wobei diese
Zahl den Streifenindex angibt.
In der Fig. 7 ist anhand eines Suchbereichs 10′′′ ein Beispiel
für eine zweistufige Direktzugriffsstruktur veranschaulicht.
Mit 22 ist eine Skala bezeichnet, welche ein Verwaltungsintervall
von 2 n = N (hier N = 32) Werten besitzt. Diese Skala 22
wird in Segmente 23 der Länge M = 2 m eingestellt (hier M = 4).
Es gibt 2 n-m Segmente 23. Mit anderen Worten heißt dies, daß
die 2 n-m Segmente 23 in der ersten Verarbeitungsstufe von einem
Feld von 2 n-m Segmenten verwaltet werden. Jedes Element zeigt
auf ein weiteres Feld 24 der zweiten Verarbeitungsstufe, welches
einem Segment entspricht. Diese weiteren Felder 24 besitzen
jeweils 2 m Einträge (hier m = 2) und lassen sich in
einem einzigen Feld zusammenfassen.
Wird eine Skala 22 der Länge N = 2 n , die in Segmente 23 der
bekannten Länge M = 2 m unterteilt ist, in höchstens K = 2 k
Bereiche, die von unterschiedlicher und unbekannter Länge sind,
aufgeteilt, so gibt es höchstens 2K-1 verschiedene Segmente 23
und damit verschiedene Felder 24. Somit brauchen von den 2 n-m
Segmenten 23 der Skala 22 nur höchstens 2K-1 Segmente gespeichert
und verwaltet zu werden. Dabei wird davon ausgegangen,
daß es mindestens 2K-1 Segmente gibt, also die Ungleichung
2 n-m 2K-1 erfüllt ist.
Es wurde verwendet, daß K, N und M Potenzen von 2 sind, wenngleich
dies keine Grundvoraussetzung dieser Argumentation ist.
Es empfiehlt sich, die Länge M der Segmente 23 als eine Potenz
von 2 zu wählen, damit eine binär dargestellte Zahl leicht in
je eine höher- und niederwertige Komponente aufgespaltet werden
kann, welche die erste bzw. die zweite Stufe der Zugriffsstruktur
adressiert. Eine Länge der Segmenteinteilungen, die auch
als Partitionen bezeichnet werden können, von 1 entspricht dem
einstufigen Direktzugriff, wobei sich die Felder 24 erübrigen.
Beim Zugriff wird der n-Bit lange Index der Skala 22 in eine
n-m Bit lange höherwertige Komponente sowie m Bit lange niederwertige
Komponente zerlegt. Die erste Stufe wird mit der höherwertigen
Komponente angesprochen. Mittels der niederwertigen
Komponente als Index des durch die erste Verarbeitungsstufe
adressierten Feldes 24 erhält man schließlich den Index des
entsprechenden Primärstreifens P 0 bis P 2 des Suchbereiches 10′′′.
Das Feld der ersten Verarbeitungsstufe liefert eine off-set-
Adresse in die zweite Verarbeitungsstufe und die niederwertige
Komponente eines Schlüssels ist zu dieser off-set-Adresse zu
addieren. Ist der Schlüssel beispielsweise 19₁₀ = 10011₂, so
ergibt sich in dem dargestellten Beispiel der höherwertige
Adreßteil mit 100₂ und der niederwertige Adreßteil mit 11₂.
Aus dem Speicherbedarf für die Feldelemente der beiden Stufen
sowie den gegebenen Größen N und K läßt sich die Größe M so berechnen,
daß der Speicherplatzbedarf der gesamten Zugriffsstruktur
minimal wird. So könnte beispielsweise für jedes Feldelement
der ersten Verarbeitungsstufe ein Speicherbedarf von
zwei Byte und für jedes Feldelement der zweiten Stufe ein Speicherbedarf
von einem Byte angenommen werden. Die durch das
zweistufige Zugriffsverfahren erzielbare Reduktion des Speicheraufwands
ist umso besser, je größer das Verhältnis von
N/K ist.
Der Speicherplatzbedarf läßt sich weiter reduzieren, indem die
Direktzugriffsstruktur dreistufig oder mehr als dreistufig
ausgebildet wird.
Fig. 8 zeigt anhand des Suchfeldes 10′′′ sowie der Skala 22
gemäß Fig. 7 die dreistufige Ausführung der Direktzugriffsstruktur.
Die Aufteilung der Skala 22 in gleich lange Segmente
23 gemäß Fig. 7 bleibt aufrechterhalten. Diese Segmente 23
werden nun ihrerseits in gleich lange Untersegmente der Länge
M₂ = 2 m2 zerlegt (hier M₂ = 2), wobei offensichtlich M größer
M₂ sein muß und weiterhin M ein ganzzahliges Vielfaches von
M₂ sein sollte. Die Untergliederung der Segmente 23 in gleich
lange Untersegmente entspricht einer Verfeinerung der Untergliederung
der Skala 22. Damit gibt es höchstens 2K-1 voneinander
verschiedene Untersegmente. Diese Untersegmente werden
in 2K-1 Felder 48 der Länge M₂ verwaltet. Die höchstens 2K-1
voneinander verschiedenen Segmente 23 werden in 2K-1 Feldern 47
der Länge M/M₂ verwaltet (hier M/M₂ = 2). Jedes Element eines
belegten Feldes 47 der zweiten Verarbeitungsstufe verweist auf
ein Feld 48 der dritten Verarbeitungsstufe, das ein Untersegment
des von Feld 47 dargestellten Segmentes repräsentiert.
Beim Zugriff wird der n-bit lange Index der Skala 22 in eine
n-m Bit lange höherwertige Komponente sowie eine m-m₂ Bit
lange mittlere Komponente und eine m₂ Bit lange niederwertige
Komponente zerlegt. Analog zum zweistufigen Direktzugriff gemäß
Fig. 7 wird mit der höherwertigen Komponente als Index des Feldes
der ersten Verarbeitungsstufe das betreffende Feld 47 der
zweiten Verarbeitungsstufe ausgewählt. Mit der mittleren Komponente
als Index dieses Feldes 47 wird das zugehörige Feld 48
der dritten Verarbeitungsstufe bestimmt. Die niederwertige
Komponente als Index dieses Feldes 48 liefert schließlich den
gesuchten Streifenindex. Alle Felder 47 und 48 der zweiten und
dritten Verarbeitungsstufe können in je einem einzigen Feld
zusammengefaßt werden, wie in Fig. 8 dargestellt ist.
Liegen genügend lange Untersegmente (M₂ größer oder gleich 4)
vor, so können diese in der für die Segmente 23 beschriebenen
Weise ebenfalls in Untersegmente zerlegt werden, woraus eine
vierstufige Direktzugriffsstruktur folgt. Entsprechend lassen
sich auch mehr als vierstufige Direktzugriffsstrukturen bilden.
Die Felder aller Stufen lassen sich zu einem einzigen Feld zusammenfassen.
Es wurde vorausgesetzt, daß die Streifenindices zum Zugriff auf
die Skalen Integerzahlen sind. Grundsätzlich können aber auch
Gleitpunktzahlen verwendet werden, sofern die Zahlenmenge, die
den Verwaltungsbereich darstellt, endlich ist, also beispielsweise
2³² Zahlen umfaßt. Gleitpunktzahlen bestehen aus einer
Mantisse und einem Exponenten. Sowohl Mantisse als auch Exponent
können vorzeichenbehaftet sein. Bei der Unterteilung
einer Gleitpunktzahl in Bit-Gruppen ist auf die Wertigkeit der
einzelnen Bestandteile Rücksicht zu nehmen. So ist die Bit-
Gruppe, die den Exponenten darstellt, höherwertiger als die
Bit-Gruppe, die die Mantisse repräsentiert. Ein üblicherweise
vorhandenes Vorzeichen der Mantisse besitzt die höchste Wertigkeit.
Die Gruppen derartiger Darstellungen sind gegebenenfalls
so umzustellen, daß aufeinanderfolgende Bit-Kombinationen aufeinanderfolgenden
Werten des Verwaltungsintervalls entsprechen.
Dies muß zumindest innerhalb von Segmenten gelten, die weiter
in Untersegmente zerlegt werden sollen. Gegebenenfalls sind bei
der Einteilung des Index von mehrstufigen Skalen in Bit-Gruppen
die Gruppengrenzen bereits durch die Zahlendarstellung festgelegt.
Anhand der Fig. 9 wird ein Direktzugriffsverfahren beschrieben,
um aus dem ersten und letzten Primärstreifen die gesamte Menge
mit den dazwischenliegenden Primärstreifen zu finden. Soweit
hierbei Mengenoperationen ausgeführt werden, verwendet man
zweckmäßigerweise die herkömmliche binäre Mengenrepräsentation,
wonach die möglichen Elemente einer Menge fortlaufend numeriert
und je einem Element eines Bool′schen Feldes zugeordnet werden.
Das Vorhandensein des i-ten Streifens in der Streifenmenge
wird durch eine logische 1 im i-ten Feldelement kenntlich gemacht.
Allgemein gilt für die gewählte Mengendarstellung, daß die gesuchte
Vereinigungsmenge bzw. Teilmenge durch eine Addition
aller Streifen in Mengendarstellung vom Anfangs- bis zum Endstreifen
erhalten wird. Dies kann in üblicher Weise durch
Summenbildung mittels einer Schleife durchgeführt werden. Die
Addition reduziert sich in diesem Spezialfall auf die bitweise
Veroderung.
Beim Direktzugriffsverfahren gemäß Fig. 9 wird eine Dreiecks-
Matrix erstellt, die darauf zurückgeht, daß die Anfangsindices
kleiner/gleich den Endindices sind. Bei krummlinigen Koordinatensystemen,
deren Koordinatenlinien bzw. Koordinatenflächen
mindestens einer Dimension geschlossene Linien bzw. Flächen
bilden, können in diesen Dimensionen die Anfangsindices von
Objektkörpern auch größer als die dazugehörigen Endindices sein.
In diesen Fällen besitzt die Matrix eine rechteckförmige Gestalt,
wobei die in Fig. 9 unterhalb der von links oben nach
rechts unten verlaufenden Diagonalen liegenden Dreiecksmatrix
alle Kombinationen aufnimmt, bei denen die Anfangsindices größer
als die Endindices sind.
Bei einem zweidimensionalen Koordinatensystem werden folglich
die Streifenmengen der Dimension, die den Polarwinkel angibt,
in einer rechteckförmigen Matrix abgespeichert. Diese Matrix
besitzt quadratische Gestalt, sofern die maximale Anzahl von
Streifen in jeder Dimension gleich ist.
Um mit einem einzigen Zugriff die gesuchte Summe aus dem ersten
und dem letzten Primärstreifen zu finden, müssen alle Summen
mit allen möglichen Kombinationen ihrer Anfangs- und Endindices
vorausberechnet werden. Die Indices der Anfangs- und Endstreifen
sind mit (a) und (e) bzeichnet. Der zugehörige Suchbereich
ist mit 10IV bezeichnet.
Alternativ hierzu kann auch ein zweistufiger Direktzugriff
gemäß Fig. 10 gewählt werden. Hier wird das in Fig. 9 dargestellte
zweidimensionale Feld spaltenweise in einem eindimensionalen
Feld repräsentiert. Durch einen Zugriff mit dem Spaltenindex
25 auf die erste Stufe erhält man einen off-set-Index
20 für die zweite Stufe. In dem dargestellten Beispiel befindet
sich das gesuchte Element an derjenigen Stelle, die aus der
Summe von off-set- und Zeilenindex gebildet wird.
Schließlich läßt sich als weitere Alternative aus den Indices
(a), (e) des Anfangs- und Endprimärstreifens mit einer elementaren
Operation die geforderte Summenbildung durchführen.
Hierfür werden die Streifen in geeigneter Weise dargestellt.
Zusätzlich existiert für jeden Streifen eine weitere Darstellung.
Die gesuchte Summe ergibt sich durch Anwendung einer
zweiparametrigen Funktion auf die derart dargestellten Anfangs-
und Endprimärstreifen.
Fig. 11 zeigt die beiden Darstellungen für K = 5 Streifen am
Beispiel der bitweisen UND-Operation. Die erste Darstellung
(Bezugszeichen 27) nimmt für den i-ten Streifen diejenigen
Streifen auf, deren Index j i ist.
An diesen Positionen j des i-ten Bool′schen Feldes befindet
sich eine logische 1. Bei der zweiten Darstellung (Bezugszeichen
26) steht eine logische 1 an den Stellen j i des
i-ten Bool′schen Feldes.
Zur Bildung der gesuchten Vereinigungsmenge wird die Darstellung
gemäß 27 als Kodierung des Index (a) des Anfangsprimärstreifens
verwendet. Der Index (e) des Endprimärstreifens wird
gemäß Darstellung 26 kodiert. Diese beiden Kodierungen sind die
Eingabeparameter der UND-Operation, die eine bitweise Verundung
der beiden Werte ausführt. Für andere zweistellige Operationen,
wie beispielsweise der bitweisen exklusiven Veroderung oder
der bitweisen negierten ODER-Operation lassen sich ebenfalls
entsprechende Darstellungen angeben.
Bei Koordinatensystemen, wie beispielsweise dem Polar-Koordinatensystem,
bei denen die Indices einer oder mehrerer Dimensionen
zyklisch umlaufen, ist der Fall, daß der Anfangsindex
(a) größer als der Endindex (e) ist, von dem Fall, daß der
Anfangsindex (a) kleiner oder gleich dem Endindex (e) ist, zu
unterscheiden. Hierfür können die beiden erwähnten Darstellungen
verwendet werden, wobei für den Fall (a) < (e) die kodierten
Indices (a) und (e) mit einer Funktion verknüpft werden,
die in dieser Hinsicht zur für den Fall (a) (e) verwendeten
Verknüpfungsvorschrift dual ist.
Statt der bitweisen UND-Operation ist die bitweise ODER-Operation,
statt der bitweisen exklusiven Veroderung ist die bitweise
negierte exklusive Veroderung und statt der bitweisen
negierten ODER-Operation ist die bitweise negierte UND-Operation
anzuwenden.
Die Sekundärstreifen werden im Unterschied zu den Primärstreifen
nicht explizit dargestellt.
Stattdessen wird für jeden Schnittbereich von je d-1 Sekundärstreifen,
wobei jeder dieser zu schneidenden Sekundärstreifen
einer anderen der d-1 Sekundärdimensionen zugeordnet ist, eine
Menge von Primärstreifen ermittelt. Diese Schnittbereiche von
Sekundärstreifen seien Sekundärschnittbereiche genannt. Jeder
Sekundärschnittbereich kann durch ein (d-1)-Tupel der betreffenden
Sekundärstreifenindices eindeutig identifiziert werden.
Eine d-dimensionale Bereichsanfrage mit der maximalen Anzahl
von K Streifen in jeder Dimension besitzt maximal (d-1)K Sekundärschnittbereiche.
Bei einem zweidimensionalen Suchbereich
entarten die Sekundärschnittbereiche zu den Sekundärstreifen.
Jedem Sekundärschnittbereich wird die Menge der Primärstreifen
zugeordnet, bei denen der Schnittbereich mit dem Sekundärschnittbereich
im Suchbereich liegt. Faßt man alle Sekundärschnittbereiche,
die den Suchkörper schneiden, zu einem Gesamtbereich
zusammen, so ergibt sich ein d-dimensionaler
Elementarbereich, der den Suchkörper beinhaltet und sich in
der Primärdimension über das gesamte Verwaltungsintervall der
Primärdimension erstreckt. Die Vereinigungsmenge der Streifenmengen
der Sekundärschnittbereiche, die den Objektkörper
schneiden, enthält alle Primärstreifen, die den Schnittbereich
des Gesamtbereichs mit dem Suchbereich schneiden. Diese Vereinigungsmenge
ist Resultat der Verarbeitungseinheit 18 der
Fig. 5. Wird diese Vereinigungsmenge nun noch mit der Menge
aller Primärstreifen, die den Objektkörper schneiden, geschnitten,
so enthält die Resultatmenge alle Primärstreifen, die
den Schnittbereich des Objektkörpers mit dem Suchbereich
schneiden. Die Resultatmenge ist genau dann leer, wenn der
Schnittbereich, der auch ein Punkt sein kann, leer ist.
Die Streifenmengen der Sekundärschnittbereiche werden in der
Vorverarbeitung, die nicht Teil der Suchphase ist, bestimmt.
Die Streifenmenge des Gesamtbereichs ergibt sich entweder
durch Addition (bitweise Veroderung) der Streifenmengen aller
Sekundärschnittbereiche, die den Objektquader schneiden, oder
es muß eine vollständige Vorausberechnung, wie im Zusammenhang
mit den Fig. 9 und 10 beschrieben wurde, erfolgen. Das
Verfahren gemäß Fig. 11 ist nicht anwendbar. Bei der Berechnung
der Vereinigungsmenge durch Summenbildung sind alle
Streifenmengen von Sekundärschnittbereichen bitweise zu verodern,
wobei jeder Streifenindex des Tupels, das einen solchen
Sekundärschnittbereich kennzeichnet, zwischen Anfangs- und Endindex
der zugehörigen Sekundärdimension liegen muß.
Fig. 12 zeigt eine Dreiecks-Matrix zur Darstellung der Sekundärstreifenmengen
eines zweidimensionalen Suchbereichs 10V.
Fig. 13 zeigt die belegten Elemente einer vierdimensionalen
Matrix zur Darstellung der Vereinigungsmengen der Streifenmengen
der Sekundärschnittbereiche der Sekundärdimensionen X
und Z des Suchbereichs 10′ der Fig. 2.
Mit den vorstehend beschriebenen Mengenrepräsentationen, die
dadurch repräsentiert werden, daß in einem Bool′schen Feld
jedes Element einem Element der Menge zugeordnet wird, reduziert
sich die Schnittmengenbildung der Primär- und Sekundärstreifen
auf eine bitweise binäre UND-Operation in der sechsten
Verarbeitungseinheit 19 (Fig. 5). Die beiden Argumente sind
die in der Primär- sowie Sekundärstreifen-Behandlung gewonnenen
Resultate, die an der zweiten bzw. fünften Verarbeitungseinheit
15, 18 (Fig. 5) ausgangsseitig anliegen. Enthält das Ergebnis
der UND-Operation keine 1, so besitzen der zu testende
Objektquader und der in der beschriebenen Struktur repräsentierte
Suchbereich keine gemeinsamen Punkte.
Für die Skaleneinheiten einer jeden Dimension (Verarbeitungseinheiten
14, 16 und 17 gemäß Fig. 5) kann entweder ein einstufiges
oder ein zweistufiges bzw. ein drei- oder mehrstufiges
Direktzugriffsverfahren eingesetzt werden. Die Berechnung der
Skalen, in anderen Worten das Vorbesetzen der Skalenspeicherstruktur,
wird nachfolgend erläutert. Der Aufbau der Skalen
und ihre Funktionsweise ist anhand der Fig. 6, 7 und 8 beschrieben.
Für die zweistufige Version gemäß Fig. 7 ist gemäß Fig. 14
ein Separator 28 vorhanden, welcher die oberen n-m Bit der am
Eingang anliegenden ganzzahligen Werte des Verwaltungsintervalls
der betreffenden Dimension von den niederwertigen m-Bit
trennt. Die höherwertige Adresse führt zum Speicherfeld 29
der ersten Verarbeitungsstufe. Die niederwertige Adresse wird
unter Addition des Resultats der ersten Verarbeitungsstufe als
Adresse für ein Speicherfeld 30 der zweiten Verarbeitungsstufe
verwendet. Beim einstufigen Verfahren wird direkt auf
das eindimensionale Feld zugegriffen.
Wenn bei der schaltungsmäßigen Realisierung für jede Skala nur
eine Speicherstruktur vorgesehen ist, muß der Anfangs- und
Endindex des übergebenen Intervalls zur Vermeidung von Zugriffskonflikten
hintereinander bestimmt werden. Es können
also nicht zwei Zugriffe (ein Zugriff bestimmt den Anfangsindex,
der andere den Endindex) zur gleichen Zeit auf ein Feld
erfolgen. Zu diesem Zweck kann entweder eine Schaltung gemäß
Fig. 14 aufgebaut werden, um Anfangs- und Endindices hintereinander
zu berechnen. Will man aus Zeitgründen die Berechnung
gleichzeitig durchführen, so muß für jeden Anfangs- und Endindex
einer jeden Dimension eine Schaltung gemäß Fig. 14 bereitgestellt
werden.
Zusätzlich ist für die Speicherstruktur ein Ladewerk (nicht
dargestellt) zu erstellen. Sofern die Verarbeitung programmäßig
erfolgt, kann die Schnittstelle für die einstufige Zugriffsstruktur
derart realisiert werden, daß die ganzzahligen
Werte, an denen ein neuer Streifen beginnt, sequentiell übergeben
werden. Mittels eines Zählers wird bei jeder Streifenänderung
(d. h. jedem Übergabeparameter) der Wert des Streifenindex,
der anfangs auf Null gesetzt wird, solange in die durch
einen weiteren Zähler, der ebenfalls mit Null initialisiert
wird, adressierten Speicherzellen geschrieben, bis dieser Zähler,
der getaktet inkrementiert wird, den Wert des Übergabeparameters
enthält. Danach wird der Zähler des Streifenindex
inkrementiert. Dieser Vorgang wird mit jedem Eintreffen eines
für die Speicherinitialisierung bestimmten Eingabeparameters
gestartet, bis ein vorher festgelegtes Ende- Kennzeichen als
Parameter eingetroffen ist, das die Schaltung veranlaßt, alle
restlichen Elemente des Skalenfensters zu belegen.
Nachfolgend wird anhand der Fig. 15 ein asynchrones Verfahren
als erste Alternative zur Behandlung der Sekundärstreifen eines
zweidimensionalen Suchbereichs beschrieben. Gemäß Fig. 15 werden
die Ausgänge mehrerer Speicherworte einer Speichermatrix
32 derart miteinander verknüpft, daß die vorstehend beschriebene
Vereinigungsmengenbildung realisiert wird. Im Falle der
binären Mengenrepräsentation erfolgt diese Streifensummierung
durch die Veroderung der Werte der i-ten Speicherzellen der
Zeilen der Speichermatrix 32. Dies kann mittels eines K-stelligen
Veroderungs-Schaltkreises erfolgen, wobei die Ausgänge
dieser i-ten Speicherzellen auf die Eingänge des Schaltkreises
geführt werden. Eine andere Möglichkeit besteht darin, die
i-ten Ausgänge aller Zeilen der Speichermatrix miteinander zu
verbinden, wobei offene Kollektorausgänge verwendet werden.
Gegebenenfalls sind noch Signalinvertierungen vorzunehmen. Aus
schaltungstechnischen Gründen kann es ferner vorteilhafter sein,
die inverse binäre Mengendarstellung zu verwenden. Es werden
nur Worte der Speichermatrix miteinander verknüpft, die mittels
eines Select-Signals aktiviert wurden. Für die Auswahl ist
ein Dekodierwerk 33 mit zwei Eingängen vorhanden, welche je
k-Bit breit sind. Am ersten Eingang wird der Index (a) des Anfangsstreifens
und am zweiten Eingang der Index (e) des Endstreifens
des Intervalls einer Dimension angegeben. Mittels
der 2 k = K Ausgänge des Dekodierwerks 33 werden jeweils die
Speicherworte aktiviert, die den Streifenindices (a) bis (e),
einschließlich (a) und (e), zugeordnet sind.
Zur Bildung der primärseitigen Streifensumme in der binären Mengenrepräsentation
ist das Dekodierwerk 33 ausreichend. Die
Speichermatrix 32 kann hierbei entfallen.
Die in Fig. 16 veranschaulichte Alternative für die zweidimensionalen
Bereichsanfragen kann mit Standard-Bausteinen aufgebaut
werden. Es ist ein Zähler 34 vorhanden, der beim unteren
Index (a) initialisiert und mittels eines Komparators 35 beim
oberen Index (e) zum Anhalten gebracht wird. Er läuft also alle
Speicheradressen von (a) bis (e) eines Speichers 36 durch.
Die dabei gelesenen Speicherworte können unter Zuhilfenahme
eines Zwischenregisters 37 miteinander in der ODER-Verknüpfungseinheit
38 verknüpft werden. Der Ablauf wird von einer Steuereinheit
(nicht dargestellt) durch Aktivieren entsprechender
Steuerleitungen sowie einem Zeitglied 39 kontrolliert.
Fig. 17 zeigt schematisch eine Speicheranordnung für einen dreidimensionalen
Suchbereich. Die Speicheranordnung besteht aus
K Speichermatrizen 48 mit K Worten der Länge K Bit, die gemäß
der Speichermatrix 32 von Fig. 15 aufgebaut sind. Die i-ten
Ausgänge der Speichermatrizen sind miteinander in der geforderten
Weise verknüpft. Im Falle der binären Mengenrepräsentation
findet eine Veroderung statt. Die derart zusammengeschalteten
Ausgänge bilden den K Bit breiten Ausgang der Speicherstruktur.
Analog zu Fig. 15 werden die Zeilen einer Speichermatrix 48
mittels eines Dekodierwerks 49 ausgewählt, wobei das Dekodierwerk
49 nun mit allen Speichermatrizen 48 verbunden ist.
Mittels des Dekodierwerks 50 erfolgt die Auswahl der Speichermatrizen.
Jede Speichermatrix 48 entspricht einem Streifen der zweiten
Sekundärdimension (hier z-Dimension). Jede Speicherzelle der
dreidimensionalen Speicherstruktur repräsentiert einen Elementarquader,
der sich als Schnittbereich der betreffenden x-,
y- und z-Streifen ergibt. Der Wert der Speicherzelle ist logisch
1, sofern der Elementarquader im Suchbereich liegt.
Zur Erweiterung um eine vierte Dimension werden K dreidimensionale
Speicherstrukturen aneinandergehängt. Ein weiteres Dekodierwerk
selektiert diese dreidimensionalen Speicherstrukturen,
die Streifen in der dritten Sekundärdimension repräsentieren.
Die Erweiterung auf fünf und mehr Dimensionen verläuft analog.
Der Einfachheit halber wurde vorausgesetzt, daß jede Dimension
in maximal K Streifen zerlegt wird. Prinzipiell kann die maximale
Anzahl der Streifen in jeder Dimension unterschiedlich
sein.
In Fig. 18 ist eine Gesamtstruktur veranschaulicht. Für jede
Skala ist eine Skalenschaltung 40, 46, wie sie jeweils anhand
der Fig. 7 sowie 6 und 8 beschrieben wurde, vorgesehen. Da
sich die Schaltung der Fig. 18 auf eine zweidimensionale Suche
beschränkt, ist die eine Skalenschaltung 46 der Primärskala
und die andere Skalenschaltung 40 der Sekundärskala zugeordnet.
Die Skalenschaltung 46 für die Primärskala ist ausgangsseitig
mit einer Anordnung 41 verbunden, die zur Primärstreifenbehandlung
dient und die beispielsweise gemäß Fig. 9, 10 oder 11 oder gemäß
der Einheit 33 in Fig. 15 ausgebildet sein kann.
Der Ausgang der Skalenschaltung 40 für die Sekundärskala ist
mit einer Einheit 42 zur Behandlung der Sekundärstreifen verbunden,
welche entsprechend Fig. 12, 15 oder 16 arbeitet. Die Ausgänge
der Einheiten 41, 42 liegen als Eingänge an einem binären
UND-Glied 43, welches ein 1-Bit breites Ausgangssignal liefert.
Die eingangsseitige Schnittstelle kann aus einem konventionellen
Ein-/Ausgabebaustein 44 bestehen, welcher vier Eingabe-
und einen Ausgabeport zur Eingabe der Primär- und Sekundärskalenwerte
xa, xe und ya, ye sowie zur Ausgabe des Ausgangs des UND-
Gliedes 43 dient. Diese Ports werden ebenfalls zur Initialisierung
verwendet. Der Ablauf erfolgt mit Hilfe einer Steuereinheit
45.
Claims (10)
1. Suchverfahren, bei welchem ein innerhalb eines n-dimensionalen
(n = 1, 2, 3, 4 . . .) Koordinatensystems vorgegebener endlicher
gleichdimensionaler Verwaltungsbereich (z. B. der
mit Integerzahlen darstellbare Bereich des positiven X/Y-
Quadranten des zweidimensionalen kartesischen Koordinatensystems),
ein im Verwaltungsbereich liegender, gleichdimensionaler
oder entarteter Suchbereich, dessen Begrenzungen
koordinatenkonform verlaufen (beispielsweise achsparallel
zu den Koordinatenachsen im kartesischen Koordinatensystem)
sowie gleichdimensionale oder entartete,
koordinatenkonforme Objektkörper (beispielsweise Rechtecke
oder zu Punkten oder horizontalen bzw. vertikalen
Geraden entartete Objektrechtecke im zweidimensionalen
kartesischen Koordinatensystem) vorhanden sind,
dadurch gekennzeichnet,
- a) daß der Verwaltungsbereich in der Weise durch ein n-dimensionales Gitter unterteilt wird, so daß jeder Eckpunkt des Suchbereichs mit jeweils einem Gitterpunkt zusammenfällt, wobei die Gitterlinien (zweidimensionaler Fall) bzw. n-1-dimensionale Gitterflächen (drei- und mehrdimensionaler Fall) durch Koordinatenlinien bzw. Koordinatenflächen des Koordinatensystems gegeben sind und jede Gitterlinie bzw. Gitterfläche mindestens einen Eckpunkt des Suchbereichs enthält,
- b) daß der Verwaltungsbereich in jeder Dimension in nebeneinanderliegende, von den koordinatenkonformen Gitterlinien bzw. Gitterflächen bzw. vom Rand des Verwaltungsbereichs begrenzte n-dimensionale Streifen endlicher und von Null verschiedener Breite zerlegt wird, die in allen anderen Dimensionen durch den Verwaltungsbereich begrenzt sind und die maximal sind,
- c) daß im Falle eines entarteten Suchbereichs für jede entartete Dimension der betreffenden entarteten Elementarbereiche je ein Mikrostreifen vorgesehen wird, der den betreffenden Elementarbereich enthält,
- d) daß diejenigen Streifen einer jeden Dimension ermittelt werden, die den gerade bearbeiteten Objektkörper schneiden,
- e) daß im Falle n = 2, 3, 4 überprüft wird, ob mindestens ein Schnittbereich von jeweils n dieser Streifen, wobei jeder Streifen einer anderen Dimension zugeordnet ist, im Suchbereich liegt, und
- f) daß im Falle n = 1 überprüft wird, ob es unter den Sekundärstreifen, die hierbei Intervalle darstellen und die das Objektintervall schneiden, mindestens einen Streifen gibt, der zugleich ein Teilintervall des Suchbereichs ist.
2. Verfahren nach Anspruch 1,
dadurch gekennzeichnet,
daß für jeden Objektkörper diejenigen Streifen (Anfangs-,
Endstreifen) einer Dimension (Primärdimension) ermittelt
werden, welche die zu dieser Dimension gehörigen Eckwerte
des Objektkörpers enthalten, daß weiterhin die entsprechenden
Streifen der anderen Dimension(en) (Sekundärdimensionen)
ermittelt werden, und daß schließlich zumindest
für die Primärdimension die zwischen Anfangs- und
Endstreifen liegenden Streifen einschließlich dieser ermittelt
oder aus einer abgespeicherten Tabelle ausgelesen
werden, wobei für n = 1 die einzige Dimension einer Sekundärdimension
entspricht.
3. Verfahren nach Anspruch 1 oder 2,
dadurch gekennzeichnet,
daß jedem Streifen in jeder Dimension ein Streifenindex
zugeordnet wird, der diesen bezüglich dieser Dimension
eindeutig identifiziert, daß Mengen von Primärstreifen
binär dargestellt werden und daß für die Primärdimension
die zwischen den Anfangs- und Endstreifen liegenden (einschließlich
dieser) durch logische Verknüpfung der kodierten
Anfangs- und Endindices ermittelt werden.
4. Verfahren nach Anspruch 2 oder 3,
dadurch gekennzeichnet,
daß zur Berechnung der zwischen Anfangs- und Endstreifen
liegenden Streifen für die Primärdimension
- a) es für jeden der möglichen Anfangsindices eine Kodierungsvorschrift gibt,
- b) daß es für jeden der möglichen Endindices eine weitere Kodierungsvorschrift gibt,
- c) daß im Fall, daß der Anfangsindex kleiner oder gleich dem Endindex ist, auf die kodierten Indices eine zweiparametrige Funktion angewendet wird, deren Parameter gemäß (a) der kodierte Index des Anfangsstreifens und der gemäß (b) kodierte Index des Endstreifens sind, und
- d) daß im Fall, daß der Anfangsindex größer als der Endindex ist, eine gemäß (c) duale Funktion angewendet wird.
5. Verfahren nach Anspruch 3,
dadurch gekennzeichnet,
- a) daß die Skala (22) in Segmente (23) unterteilt wird, die M-Skalenwerte lang sind und es N zulässige Skalenwerte gibt, wobei z. B. N = 2 n und M = 2 m ist;
- b) daß M so klein gewählt wird, daß es mindestens 2K-1 Segmente (23) gibt, wobei K die maximale Streifenanzahl angibt;
- c) daß von den 2 n-m Segmenten (23) nur die höchstens 2K-1 voneinander verschiedenen Segmente in einem Feld verwaltet werden, welches die zweite Stufe bildet und (2K-1) 2 m Elemente besitzt;
- d) daß jedes Element des Feldes, das die erste Stufe bildet und 2 n-m Elemente besitzt, auf das zu diesem Element gehörende Segment verweist, welches in der zweiten Stufe verwaltet wird;
- e) daß zum Zugriff der Skalenwert in eine höherwertige und eine niederwertige Komponente aufgespaltet wird, daß mit der höherwertigen Komponente durch Zugriff auf die erste Stufe das zugehörige Segment bestimmt wird, welches in der zweiten Stufe verwaltet wird, und
- f) daß mit der niederwertigen Komponente durch Zugriff in das in der zweiten Stufe verwaltete Segment, welches durch die höherwertige Komponente bestimmt wurde, der zu diesem Skalenwert gehörende Streifenindex bestimmt wird.
6. Verfahren nach Anspruch 3,
dadurch gekennzeichnet,
- a) daß die Segmente der Länge M in Untersegmente der Länge M₂ unterteilt werden, wobei M < M₂ und M₂ 2 gelten muß und beispielsweise M = 2 m und M₂ = 2 m₂ ist;
- b) daß die dritte Stufe in einem Feld mit (2K-1) M₂ Elementen die höchstens 2K-1 voneinander verschiedenen Untersegmente verwaltet;
- c) daß in der zweiten Stufe in einem Feld mit (2K-1)2 m-m₂ Elementen die höchstens 2K-1 Segmente verwaltet werden, wobei jedes Feldelement auf das zugehörige Untersegment verweist, das im Feld der dritten Stufe verwaltet wird;
- d) daß der zum Zugriff bestimmte Skalenwert in eine höherwertige, mittlere und niederwertige Komponente aufgespaltet wird;
- e) daß mit der höherwertigen Komponente durch Zugriff in die erste Stufe das zugehörige Segment bestimmt wird, welches in der zweiten Stufe verwaltet wird;
- f) daß mit der mittleren Komponente durch Zugriff in die zweite Stufe in dasjenige Segment, welches durch die höherwertige Komponente bestimmt wurde, das betreffende Untersegment bestimmt wird, welches in der dritten Stufe verwaltet ist, und
- g) daß mit der niederwertigen Komponente durch Zugriff in das im Speicherfeld der dritten Stufe befindliche Untersegment, welches durch die mittlere Komponente bestimmt wurde, der zum Skalenwert gehörende Streifenindex bestimmt wird.
7. Verfahren nach einem der Ansprüche 5 oder 6,
gekennzeichnet durch folgende Verfahrensschritte:
- a) Die in der letzten Stufe l verwalteten Segmente der Länge M l-1 werden in Untersegmente der Länge M l zerlegt, wobei M₁ < M l-1, M l 2 und l 3 gelten muß, und beispielsweise und ist;
- b) die maximal 2K-1 voneinander verschiedenen Untersegmente werden in einem neuen Feld, das die Stufe l+1 bildet und das (2K-1)M l Elemente besitzt, verwaltet;
- c) das Feld der Stufe l wird von ursprünglich (2K-1)M l-1 Elementen auf verkürzt, wobei jedes Feldelement der Stufe l auf das entsprechende, im Feld der Stufe l+1 verwaltete Untersegment verweist;
- d) der zum Zugriff bestimmte Skalenwert wird in eine höherwertige Komponente K H sowie eine niederwertige Komponente K L zerlegt, wobei K L für l = 3 der niederwertigen Komponente gemäß Anspruch 6 und für l < 3 der niederwertigen Komponente K LL mit l: = l-1 entspricht, K L wird ihrerseits in eine höherwertige Komponente K LH und eine niederwertige Komponente K LL aufgespaltet, und K H wird für l = 3 gemäß Anspruch 6 bzw. für l < 3 mit l: = l-1 zerlegt, wobei K H der Komponente, die durch Konkatenation von K H und K LH entsteht, entspricht;
- e) mit K H wird durch Zugriff in die Stufe l-1 für l = 3 gemäß Anspruch 6 und für l < 3 gemäß Anspruch 7 für l: = l-1 das zugehörige Segment bestimmt, welches in der Stufe l verwaltet wird;
- f) mit K LH wird durch Zugriff in die Stufe l in das Segment, welches durch die Komponente K H bestimmt wurde, das zugehörige Untersegment bestimmt, welches in der Stufe l+1 verwaltet wird, und
- g) mit K LL wird durch Zugriff in das in der Stufe l+1 verwaltete Untersegment, welches durch K LH bestimmt wurde, der zum Skalenwert gehörende Streifenindex bestimmt.
8. Vorrichtung zur Durchführung des Verfahrens nach Anspruch
1, gekennzeichnet durch eine Speicheranordnung
mit folgenden Merkmalen:
- a) Der zweidimensionale Suchbereich wird binär kodiert in einer zweidimensionalen Speichermatrix der Größe K₂ × K₁ Bit abgespeichert, wobei jedem der K₂ Worte, d. h. jeder Zeile, ein Sekundärstreifen entspricht;
- b) die i-ten Speicherzellen aller Worte werden miteinander logisch verknüpft, wobei in das Ergebnis der Verknüpfung nur die Werte von Speicherzellen von selektierten Worten eingehen;
- c) die Verknüpfungen der K₁ Bit breiten Worte der Speichermatrix liefern einen K₁ Bit breiten Ausgang, und
- d) ein Dekodierwerk selektiert aufgrund der Eingabewerte a¹ und e¹ der Sekundärdimension alle zu verknüpfenden Speicherworte.
9. Vorrichtung nach Anspruch 8,
gekennzeichnet durch folgende Merkmale:
- a) Die zweidimensionale Speichermatrix repräsentiert einen Streifen in der dritten Dimension, d. h. der zweiten Sekundärdimension;
- b) für jeden der K₃ möglichen Streifen der zweiten Sekundärdimension wird eine zweidimensionale Speichermatrix bereitgestellt;
- c) die i-ten Ausgänge aller Speichermatrizen werden miteinander logisch verknüpft, wobei das Ergebnis der Verknüpfungen nur durch selektierte Speichermatrizen beeinflußt wird;
- d) die Verknüpfungen aller i-ten Ausgänge liefern den K₁ Bit breiten Ausgang der Speicheranordnung;
- e) ein der ersten Sekundärdimension zugeordnetes Dekodierwerk selektiert aufgrund der Eingabewerte a¹ und e¹ der ersten Sekundärdimension alle zu verknüpfenden Speicherworte aller Speichermatrizen, d. h. es werden alle Worte selektiert, die die betreffenden Streifen der ersten Sekundärdimension repräsentieren, und
- f) ein der zweiten Sekundärdimension zugeordnetes Dekodierwerk selektiert aufgrund der Eingabewerte a² und e² der zweiten Sekundärdimension alle zu verknüpfenden Speichermatrizen.
10. Vorrichtung nach Anspruch 8 oder 9,
gekennzeichnet durch folgende Merkmale:
- a) Eine n-dimensionale Speicheranordnung gemäß Anspruch 9 für n = 3 oder für n < 3 mit n: = n-1 repräsentiert einen Streifen in der n+1-ten Dimension, d. h. der n-ten Sekundärdimension;
- b) für jeden der K n+1 möglichen Streifen der n-ten Sekundärdimension wird eine n-dimensionale Speicheranordnung gemäß Anspruch 9 für n = 3 oder für n < 3 mit n: = n-1 bereitgestellt;
- c) die i-ten Ausgänge aller n-dimensionalen Speicheranordnungen werden miteinander logisch verknüpft, wobei das Ergebnis der Verknüpfungen nur durch selektierte Speicheranordnungen beeinflußt wird;
- d) die Verknüpfungen aller i-ten Ausgänge liefern den K₁ Bit breiten Ausgang der Speicheranordnung;
- e) die der ersten bis zur n-1-ten Sekundärdimension zugeordneten Dekodierwerke gemäß Anspruch 9 für n = 3 oder n < 3 mit n: = n-1 selektieren alle zu verknüpfenden Worte der n-dimensionalen Speicheranordnung, und
- f) ein der n-ten Sekundärdimension zugeordnetes Dekodierwerk selektiert alle zu verknüpfenden n-dimensionalen Speicheranordnungen.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE3908684A DE3908684C2 (de) | 1989-03-16 | 1989-03-16 | Verfahren zum Durchsuchen eines einer Datenverarbeitungsanlage zugehörigen Speichers und Vorrichtung zur Durchführung eines solchen Verfahrens |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE3908684A DE3908684C2 (de) | 1989-03-16 | 1989-03-16 | Verfahren zum Durchsuchen eines einer Datenverarbeitungsanlage zugehörigen Speichers und Vorrichtung zur Durchführung eines solchen Verfahrens |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3908684A1 true DE3908684A1 (de) | 1990-09-20 |
DE3908684C2 DE3908684C2 (de) | 1999-07-08 |
Family
ID=6376530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3908684A Expired - Fee Related DE3908684C2 (de) | 1989-03-16 | 1989-03-16 | Verfahren zum Durchsuchen eines einer Datenverarbeitungsanlage zugehörigen Speichers und Vorrichtung zur Durchführung eines solchen Verfahrens |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE3908684C2 (de) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0726534A1 (de) * | 1995-02-07 | 1996-08-14 | International Business Machines Corporation | Verfahren und Gerät für zeigerbasiertes Suchen in grossen Datenmengen |
DE19635429A1 (de) * | 1996-09-02 | 1998-03-05 | Rudolf Prof Bayer | Datenbanksystem und Verfahren zum Verwalten eines n-dimensionalen Datenbestands |
DE19714719C1 (de) * | 1997-04-09 | 1998-07-16 | Data Square Corp | Verfahren zur Reduzierung des Speicherbedarfs einer Datenbank und Vorrichtung zur Durchführung des Verfahrens |
WO1998039712A1 (de) * | 1997-03-06 | 1998-09-11 | Rudolf Bayer | Datenbanksystem und verfahren zum betrieb eines datenbanksystems |
US6072495A (en) * | 1997-04-21 | 2000-06-06 | Doryokuro Kakunenryo Kaihatsu Jigyodan | Object search method and object search system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0310069A2 (de) * | 1987-09-29 | 1989-04-05 | Kabushiki Kaisha Toshiba | Verfahren zur Erzeugung eines diskreten Netzes zur Simulation mittels finiter Differenzen |
-
1989
- 1989-03-16 DE DE3908684A patent/DE3908684C2/de not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0310069A2 (de) * | 1987-09-29 | 1989-04-05 | Kabushiki Kaisha Toshiba | Verfahren zur Erzeugung eines diskreten Netzes zur Simulation mittels finiter Differenzen |
Non-Patent Citations (3)
Title |
---|
GALL, R., NAGL, M.: "Software-Implementation assoziativer Speicher", in DE-Z: Elektronische Rechenanlagen, 23. Jg., 1981, Heft 2, S. 61-71 * |
HOTSCH, W.: "Assoziativspeicher, inhaltsadres- sierte Speicher, programmierbare Logikmatrizen - Versuch einer begrifflichen Präzisierung", in DE-Z: Elektronische Rechenanlagen, 19. Jg., 1977, Heft 6, S. 274-283 * |
WOLF, G.: "Ein Assoziativspeicher für String- und Feldverarbeitung", in DE-Z: Siemens Forsch.- u. Entwickl.-Ber., Bd. 16 (1987), Nr. 2, S. 60-65 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0726534A1 (de) * | 1995-02-07 | 1996-08-14 | International Business Machines Corporation | Verfahren und Gerät für zeigerbasiertes Suchen in grossen Datenmengen |
US5680605A (en) * | 1995-02-07 | 1997-10-21 | Torres; Robert J. | Method and apparatus for searching a large volume of data with a pointer-based device in a data processing system |
DE19635429A1 (de) * | 1996-09-02 | 1998-03-05 | Rudolf Prof Bayer | Datenbanksystem und Verfahren zum Verwalten eines n-dimensionalen Datenbestands |
WO1998039712A1 (de) * | 1997-03-06 | 1998-09-11 | Rudolf Bayer | Datenbanksystem und verfahren zum betrieb eines datenbanksystems |
US6381596B1 (en) | 1997-03-06 | 2002-04-30 | Rudolf Bayer | Database system and method for operating a database system |
DE19714719C1 (de) * | 1997-04-09 | 1998-07-16 | Data Square Corp | Verfahren zur Reduzierung des Speicherbedarfs einer Datenbank und Vorrichtung zur Durchführung des Verfahrens |
US6732121B1 (en) | 1997-04-09 | 2004-05-04 | Data Square Corporation | Method for reducing required memory capacity and creation of a database |
US6072495A (en) * | 1997-04-21 | 2000-06-06 | Doryokuro Kakunenryo Kaihatsu Jigyodan | Object search method and object search system |
DE19817584B4 (de) * | 1997-04-21 | 2007-04-26 | Japan Nuclear Cycle Development Institute, Tokai | Verfahren und System zur Objektsuche |
Also Published As
Publication number | Publication date |
---|---|
DE3908684C2 (de) | 1999-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60035171T2 (de) | Verfahren und Schaltungen zum schnellen Auffinden des minimalen / maximalen Wertes in einer Menge von Zahlen | |
DE3821551C2 (de) | Datenverarbeitungsvorrichtung | |
DE2324731A1 (de) | Festzustandsspeicher fuer mehrdimensionalen zugriff | |
DE3608438A1 (de) | Verfahren zum berechnen von freien gekruemmten flaechen mittels computergestuetztem design cad und computergestuetzter herstellung cam und numerischer steuerung nc | |
DE112010000947T5 (de) | Verfahren zur völlig modifizierbaren Framework-Datenverteilung im Data-Warehouse unter Berücksichtigung der vorläufigen etymologischen Separation der genannten Daten | |
DE1549584B2 (de) | Datenverarbeitungsanlage | |
EP3425571A1 (de) | Digitales gebäudeinformationssystem | |
DE4326487C2 (de) | Adaptives Filter | |
DE112010003810T5 (de) | Verfahren, Programm und paralleles Computersystem für die Planung elner Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen einer Vielzahl von Knoten (Prozessoren), die ein Netzwerk formen | |
DE69727810T2 (de) | Digitalisierungssystem mit kohaerenter abtastung | |
DE3908684A1 (de) | Suchverfahren fuer einen datenspeicher und vorrichtung zur durchfuehrung des verfahrens | |
DE60001585T2 (de) | Datenverarbeitungseinrichtung und -verfahren | |
DE2826773A1 (de) | Verfahren und schaltungsanordnung zum feststellen der wertigkeit von ziffern in arithmetischen operationen mit dezimalrechnern | |
DE4406300C2 (de) | Lineares Interpolationsverfahren | |
EP0912952B1 (de) | Datenbanksystem und verfahren zum verwalten eines n-dimensionalen datenbestands | |
DE1296428B (de) | Einrichtung zur Ermittlung von Speicheradressen aus Schluesselwoertern | |
DE102015015827A1 (de) | Verfahren und Vorrichtung zum Aufbau einer Audio-Fingerabdruck-Datenbank und zur Suche nach einem Audio-Fingerabdruck | |
EP0009625A2 (de) | Datentransferschalter mit assoziativer Adressauswahl in einem virtuellen Speicher | |
DD294115A5 (de) | Vorrichtung und verfahren zur signalverarbeitung | |
DE102010037904B4 (de) | Schnelle explizite modellprädiktive Regelung | |
DE19714719C1 (de) | Verfahren zur Reduzierung des Speicherbedarfs einer Datenbank und Vorrichtung zur Durchführung des Verfahrens | |
EP0750252A2 (de) | Einrichtung zum Vergleich zweier dual kodierter Daten mit mindenstens 2-bit-breiten Speichern | |
DE1801725C3 (de) | Digitaler Fourier-Analysator | |
EP1645036B1 (de) | Datenkompression von simulationsergebnissen | |
DE10311779B4 (de) | Verfahren zur rechnergestützten Ermittlung einer treibstoffoptimalen Ansteuerung von Düsen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: GEBELEIN, UDO, DIPL.-ING. (FH) DIPL.-INF., CARPANE |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |