Automatischer Parametertest für externe Algorithmen

Um den Einfluß von numerischen Parametern auf die Leistung externer Algorithmen, insbesondere auf eigene neue Heuristiken, zu testen, kann LiSA diese Parameter automatisch variieren und die Ergebnisse in Tabellenform ausgeben.

Grundlegendes Vorgehen

Ihr externer Algorithmus muß bereits in LiSA eingebunden sein. Er erscheint dann automatisch auch im Menü Extras | Allgemeiner Parameter Test. Sobald die für diesem Algorithmus notwendigen Objekte definiert sind (Problemtyp, Parameter und ggf. eine Startlösung), wählen Sie ihn dort an. Es öffnet sich ein Fenster zum Start Ihres Algorithmus, das sich vom normalen Startfenster in der Gestaltung der numerischen Parameter unterscheidet. Für jeden numerischen Parameter haben Sie folgende Felder:
variabel/fest
Wählen Sie hier "variabel", so variiert LiSA diesen Parameter und führt den Algorithmus mit jedem der im folgenden festgelegten Werte wiederholt aus.
von, bis
Legen Sie hier den kleinsten bzw. größten zu testenden Wert fest.
Faktor/Summand
Bei der Einstellung "Faktor" bilden die Testwerte eine geometrische Folge, bei der Einstellung "Summand" eine arithmetische. Beachten Sie bei der Wahl des Summands bzw. Faktors, daß die Anzahl der Wiederholungen Ihres Algorithmus davon abhängt.
String-Parameter können nicht variiert werden. Sobald Sie Start drücken, startet LiSA ein externes Steuerprogramm, das die Ergebnisse in einer Tabellen-Datei liefert. Das Format dieser Datei ist selbsterklärend, Sie können sie mit jedem Texteditor weiterverarbeiten.

Alternativ: direkter Aufruf des externen Test-Moduls

Algorithmen, die nicht in LiSA eingebunden werden können (z.B. weil deren Ein- und Ausgaben vom LiSA-Hauptprogramm nicht erkannt werden), aber über eine Eingabedatei mit <CONTROL_PARAMETERS>-Feld gesteuert werden, lassen sich durch ein externes Modul automatisch austesten. Der Aufruf lautet:
gen_ptst  STEUERDATEI  AUSGABEDATEI
Aufgrund der Steurdatei erstellt gen_ptst zu jeder zu testenden Parameterkombination eine Eingabedatei für Ihren Algorithmus und sammelt die erhaltenen Ausgaben auch wieder in einer Datei. Das Format der Steuerdatei wird an folgendem Beispiel klar:


<FIX_PARAMETERS>
long STEPS
string METHOD
</FIX_PARAMETERS>

<VAR_PARAMETERS>
long WIDTH
double INTENSITY
</VAR_PARAMETERS>

<PROBLEMTYPE>
Lisa_ProblemType= { O /  / SumCi }
</PROBLEMTYPE>

<CONTROLPARAMETERS>
long   STEPS 5000
string METHOD My_New_Method
long   WIDTH_INIT 1
long   WIDTH_MAX 4
double WIDTH_INCR 1
string WIDTH_FA ADDEND
double INTENSITY_INIT 2
double INTENSITY_MAX  8
double INTENSITY_INCR 2
string INTENSITY_FA FACTOR
string CONFIG_HOME /home/me/.lisa
string LISA_HOME /usr/local/LiSA
string FILE /home/me/.lisa/proc/mytest_out.lsa
string CALL /home/me/programs/my_alg
string DESCRIPTION Results_of_neighbor_Parametertest
<\CONTROLPARAMETERS>

<VALUES>
...
</VALUES>
 
<SCHEDULE>
...
</SCHEDULE>
Zu den einzelnen Inhalten: Während des Testlaufes wird der Algorithmus für alle möglichen Parametereinstellungen durchgeführt und die jeweiligen Ergebnisse werden in die angegebene Tabellen-Datei abgelegt. Nach Abschluß des Testlaufes wird auch noch der beste erzeugte Plan in diese Datei abgelegt.

Beispiel einer Tabellen-Datei

<PROBLEMTYPE>
Lisa_ProblemType= { O /  / SumCi }
</PROBLEMTYPE>
 
<VALUES>
...
</VALUES>
 
<FIX_PARAMETERS>
long STEPS 5000
string METHOD My_New_Method
</FIX_PARAMETERS>

<CONTROLPARAMETERS>
string TAB_NAME TABELLE=
string COL_NAME WIDTH=
string ROW_NAME INTENSITY=
long NB_COL 4
long NB_ROW 3
</CONTROLPARAMETERS>

<DATA>
WIDTH= {
1 2 3 4 
}

INTENSITY= {
2 4 8 
}

TABELLE= {
 { 5952 5890 5795 6908 }
 { 6029 5872 5923 6813 }
 { 5929 6057 5926 6891 }
}
</DATA>

<REMARKS>
Best Objective = 5795
by the follow parameters:
WITDH = 3
INTENSITY = 2
</REMARKS>

<SCHEDULE>
...
</SCHEDULE>
Die Tabellen sind in LiSA-spezifischer Form geschrieben.
Das Feld <CONTROLPARAMETERS> enthält Parameter für die Tabelle (z.B. die Spalten- und Zeilennamen).
Im Feld <DATA> stehen die Ergebnisse des Parametertestes. In diesem Beispiel wurden die zwei Parameter WIDTHT und INTENSITY variiert.
Inhaltsverzeichnis
10.02.2000 TAU