[ Übersicht ] [ Installation ] [ Namenskonvention ] [ In/Output ] [ Parameterfile ] [ Demos ] [ to do ] [Autor: A. Röttig ]

Zurück

Algorithmen: Suchstrategie: suchnn

Eine Definition zur Vereinfachung soll vorangestellt sein. Im folgenden kann Sektor ganz allgemein Oktant, Quadrant oder auch der gesamte Suchbereich von 400 gon ohne Unterteilung sein. Die in diesem Abschnitt verzeichneten Möglichkeiten der Spezifikation einer lokalen Suchstrategie (Auswahl der Stützpunkte und Gradienten um eine Vorhersagestelle: beide werden als Stützstellen bezeichnet) sind in allen Vorhersagemethoden (respektive in allen Programmen) appliziert. Es existiert jedoch ein Grundstock, der immer nutzbar ist und einige optionale Features, die durch entsprechende Compilierung aktiviert werden müssen. Der Grundstock ist in der folgenden Tabelle zusammengefaßt:

äußerer Suchradius Um die Vorhersagestelle kann wie in anderer Software auch ein Suchradius spezifiziert werden, innerhalb dessen nach relevanten Stützstellen gesucht wird. In grille ist dieser Suchbereich etwas allgemeiner ein Bereich zwischen zwei Radien: einer äußeren Brgrenzung (der hier in Rede stehende äußere Suchradius) und einer inneren Begrenzung (innerer Suchradius)
innerer Suchradius Erklärung siehe vorstehend; soll der gesamte Bereich bis zum äußeren Suchradius erfaßt werden, ist hier 0.0 zu spezifizieren
erweiterter äußerer Suchradius wenn dieser Wert ungleich -1 und größer als der äußere Suchradius ist, dann wird in Abhängigkeit von der Mindestbelegung der Sektoren solange in diesem erweiterten Bereich gesucht, bis die Mindestbelegung der Sektoren erreicht ist (adaptive Strategie)
Sektoreinteilung mögliche Werte sind: nächste Punkte im gesamten Suchbereich, Quadranten, Oktanten (+ Erweiterung)
Option: gemischte Suche Diese Option erlaubt es, zuerst die nächsten Punkte ohne Sektoreinteilung zu suchen, danach wird überprüft, ob die vorgegebene Mindestbelegung für eine Sektoreinteilung (Oktant/Quadrant) eingehalten wurden. Ist dies nicht der Fall, werden wie bei einer Richtungspriorität die unterbelegten Sektoren aufgefüllt
max. Anzahl der Stützstellen Hier wird die max. mögliche Anzahl der Stützstellen für die Suche ohne Sektoreinteilung festgelegt, bei der Option "gemischte Suche" werden im ersten Durchgang mit diesem Wert die nächsten Stellen gesucht - für die zweite Phase zur Überprüfung der Belegung wird die die max. Anzahl pro Sektor genutzt (dies ist der Grund für die Dopplung)
max. Anzahl der Stützstellen pro Sektor Hinweis: diese Variable wird NICHT! zur Suche ohne Sektoreinteilung verwandt.
Mindestanzahl der Stützstellen pro Sektor Wenn nicht alle Sektoren mit dieser Mindestanzahl belegt sind, wird an dieser Vorhersagestelle keine Schätzung vorgenommen. Sie dient ebenfals zur Entscheidung, ob der Suchbereich erweitert wird oder nicht sowie bei der Option "gemischte Suche"

Grundstock der Suchstrategie

Aus diesen Optionen ergeben sich sehr vielfältige Möglichkeiten, die Suchstrategie zu spezifizieren. Es ist hier unmöglich, jede Kombination mit Beispielen zu erläutern. Es existiert jedoch eine graphische Übersicht (farbig) oder (schwarz/weiß) im Postscriptformat. Außerdem hatte ich zur Suchstrategie hatte ich vor drei oder vier Jahren eine ausführliche Dokumentation (Postscript, 1.8 MB) erarbeitet. Diese kann man durchaus benutzen, um sich die dort erläuterten Beispiele zu möglichen Kombinationen der obigen Tabelle zu Gemüte zu führen. Diese Dokumentation diente damals noch einem Vorgänger der jetzigen Programmsammlung, es war eine einziges ausführbares Programm mit dem Namen grille. Die Suchstrategie ist jedoch als fast Einziges in seiner Struktur unverändert übernommen worden. Wer Erweiterungen am Quelltext vornehmen will, findet dort ebenfalls eine erschöpfende Erklärung. Allerdings haben sich einige Bezeichner geringfügig geändert, diese ergeben sich jedoch sofort aus dem Vergleich mit den neuen Quelltexten (../grille/allg/[asw1dohs.c, asw2dohs.c,asw3dohs.c]).


Neben diesem Grundstock an Möglichkeiten, der immer zur Verfügung steht, kann man noch weitere Merkmale nutzen. Diese müssen jedoch beim Compilieren der Programme explizit gefordert werden. Es entstehen weitere Programme (die naturgemäß ein wenig langsamer sind), welche unter dem entsprechenden Programmnamen aufgerufen werden müssen. Diese Erweiterungen sollen nun erläutert werden.

Compiler: Berücksichtigung von spezifischen Streuungen Programmname:
-DSTREU install-Interace
1234567 [nsja]
Wirkungsweise:
Diese Option greift in die Priorität der nächstgelegenen Stützstellen ein. Dies gilt für jeden einzelnen Sektor. Abgesehen davon, daß die nächsten Stützstellen gesucht werden, wird mindestens eine Stelle unabhängig von ihrer Entfernung zur Vorhersagestelle berücksichtigt, wenn die spezifische Streuung (Nuggeteffekt) unterhalb einer Grenze (fünftletzter Wert in suchnn) liegt. Wobei natürlich für diese Stelle die sonst üblichen Entscheidungskriterien gelten:
  • innerhalb dieser Grenze wird die nächstgelegene Stützstelle bevorzugt, alle weiteren ordnen sich der normalen Suchstrategie unter
  • innerhalb dieser Grenze spielt die Größe der Streuung keine Rolle
  • wenn keine Stützstelle mit einer Streuung innerhalb der Grenze gefunden wird, wird diese Stelle mit der nächstgelegenen Stützstelle besetzt
Beispiel: wenn eine Grenze von 0.0 spezifiziert wurde, wird für den reservierten Platz, die nächstgelegene Stützstelle mit der spezifischen Streuung Null besetzt.

Compiler: Zusammnenfassen von Stützstellen Programmname:
-DZUSFASS install-Interace
123456 [nztr]8
Wirkungsweise:
Wenn diese Option aktiviert wurde, hat man über suchnn die Möglichkeit Stützstellen oder Gradienten zusammenzufassen. Es werden grundsätzlich zwei Arten des Zusammenfassen unterschieden:
  • Mit einer vorgegebenen festen Länge werden vor der eigentlichen Berechnung alle Stützstellen, die einen gegenseitigen Abstand unterhalb dieser Länge haben, gemittelt. Dies geschieht einmal.
  • Etwas zeitaufwendiger ist die zweite Art des Zusammenfassens, da hier an jeder Vorhersagestelle in Abhängigkeit zum mittleren Abstand des Stützstellenpaares abstm_ij zur Vorhersagestelle gemittelt wird. Das heißt die kritische Länge wird in Abhängigkeit vom Abstand ständig neue ermittelt. Dazu kann man an der letzten Stelle von suchnn einen Faktor p spezifizieren. Die kritische Länge laekrit, unter der gemittelt wird, berechnet sich dann wie folgt:
    laekrit = abstm_ij * p
Jeder bereits gemittelte Wert wird immer wieder neu mit den anderen Werten vergleichen bis es keine Stützstellenpaare unterhalb der kritischen Länge mehr gibt. Es sei darauf hingewiesen, daß man diese Spezifikation für jeden Datensatz ein- oder ausschalten kann.

Compiler: Selektive Sektorenbelegung Programmname:
-DASWBES install-Interace nicht vergeben
Wirkungsweise:
Mit der Aktivierung dieser Option kann man, wenn man eine Sektoreinteilung gewählt hat, beeinflussen, welche der Sektoren entsprechend der obigen Suchstrategie wirklich belegt werden und welche unbesetzt bleiben. Man muß lediglich eine weitere ID spezifizieren die in ihrer Nummerierung mit suchnn korrespondiert: aswbnn. Zur Bezeichnung bzw. Nummerierung der Sektoren sind die folgenden beiden Bilder sicher nützlich:

Die Grenzfälle werden immer dem Sektor zugeordnet der entgegen dem Uhrzeigersinn liegt. Bisher habe ich hier noch keine neuen Programmnamen vergeben. Wenn mit dieser Option übersetzt wurde, hat man sie in allen übrigen Programmkombinationen zur Verfügung. Um überprüfen zu können, welche Version in Nutzung ist, braucht man das Programm nur ohne Parameterfile aufrufen, dann erscheint eine Meldung (eventuell auch im Logfile).
Sehr nützlich ist hier:Briefe an Steffen Nr.2

Compiler: Freie Sektoreneinteilung Programmname:
-DASWBEL install-Interace nicht vergeben
Wirkungsweise:
Diese Mit der Aktivierung dieser Option kann man sich eine freie Sektoreinteilung gestalten. Man kann bis zu 8 Sektoren definieren, in dem man jeweils den Richtungswinkel des Anfangs und des Endes des Sektors in zwei neuen ID's, die mit suchnn in der Nummerierung korrespondieren, angibt: aswfnn, aswvnn. Die Sektoren dürfen sich nicht überschneiden, können aber Grenzen gemein haben. Die Grenzfälle werden immer dem Sektor zugeordnet der entgegen dem Uhrzeigersinn liegt. Bisher habe ich hier noch keine neuen Programmnamen vergeben. Wenn mit dieser Option übersetzt wurde, hat man sie in allen übrigen Programmkombinationen zur Verfügung. Um überprüfen zu können, welche Version in Nutzung ist, braucht man das Programm nur ohne Parameterfile aufrufen, dann erscheint eine Meldung (eventuell auch im Logfile). Mit dieser Version kann keine Bereichserweiterung benutzt werden. Außerdem kann nur diese oder die "Selektive Sektorenbelegung" übersetzt werden, im anderen Fall sind dann auf alle Fälle unterschiedliche Programmnamen notwendig.
Sehr nützlich ist hier:Briefe an Steffen Nr.2

Weiter

Andree Röttig
Fri Aug 28 1998