DE3908684A1 - Suchverfahren fuer einen datenspeicher und vorrichtung zur durchfuehrung des verfahrens - Google Patents

Suchverfahren fuer einen datenspeicher und vorrichtung zur durchfuehrung des verfahrens

Info

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
Application number
DE3908684A
Other languages
English (en)
Other versions
DE3908684C2 (de
Inventor
Udo Dipl Ing Gebelein
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GEBELEIN, UDO, DIPL.-ING. (FH) DIPL.-INF., CARPANE
Original Assignee
GEBELEIN UDO DIPL ING FH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GEBELEIN UDO DIPL ING FH filed Critical GEBELEIN UDO DIPL ING FH
Priority to DE3908684A priority Critical patent/DE3908684C2/de
Publication of DE3908684A1 publication Critical patent/DE3908684A1/de
Application granted granted Critical
Publication of DE3908684C2 publication Critical patent/DE3908684C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • G06F16/902Indexing; 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.
DE3908684A 1989-03-16 1989-03-16 Verfahren zum Durchsuchen eines einer Datenverarbeitungsanlage zugehörigen Speichers und Vorrichtung zur Durchführung eines solchen Verfahrens Expired - Fee Related DE3908684C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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