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:
- Das Feld <FIX_PARAMETERS> enthält die Typen und Namen
aller festen Parameter.
- Das Feld <VAR_PARAMETERS> enthält die Typen und Namen
aller zu variierenden Parameter.
- Das Feld <PROBLEMTYPE> wird ignoriert und unverändert an den
Algorithmus weitergegeben.
- Das Feld <CONTROLPARAMETERS> enthält
- Die weiteren Felder werden ignoriert und an den Algorithmus
unverändert weitergereicht.
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