Interaktive Reihenfolgeplanung
furdieAutomobilindustrie
Ausgefuhrtam
Institut fur Computergraphikund Algorithmen
der Technischen UniversitatWien
UnterderAnleitungvon
Univ.-Prof.Petra Mutzel
und
Dr. Gunnar W.Klau
durch
Bin Hu
ObereDonaustrae 43/3/54e
1020 Wien
Marz2004
An dieser Stelle gilt mein besonderer Dank Dr. Gunnar W. Klau fur die
hervorragendeBetreuung, Unterstutzung undMotivation wahrend derAn-
fertigung dieser Diplomarbeit und fur die Einfuhrung in das interessante
Thema.WeitersmochteichallenMitgliedernderAbteilungfurAlgorithmen
undDatenstrukturen des Instituts fur Computergraphik und Algorithmen
an derTechnischenUniversitat Wienfurdiestete Hilfsbereitschaftunddie
auerst angenehme Arbeitsatmosphare danken, darunter insbesondere Ab-
teilungsleiterin Prof. Dr. Petra Mutzel und Dr. Rene Weiskircher fur ihre
HilfsbereitschaftundfurdieDiskussionsbereitschaft,wennkniige Proble-
meauftauchten.
BesondererDank auch an Dr. Van-Dat Cung,derunsere Teilnahmean der
"
ROADEF Challenge 2005\ ermoglichte undfur Fragen bezuglich derAuf-
gabenstellungimmeroenstand.DankgiltauchRobertNickelfurdieHilfe-
stellungzudiesemThema.EbenfallsbedankeichmichbeiMarkusChimani
fur die technische und inhaltliche Unterstutzung bei der Verfassung dieser
Arbeit. Ich danke besonders Dr. Elisabeth Langer fur das Korrekturlesen
derArbeit.
NichtzuletztgiltmeinherzlicherDankmeinerFamiliefurdieUnterstutzung
meinesStudiums.
1 Einleitung 5
2 Aufgabenstellung 9
2.1 Planungsprozess . . . 9
2.2 Anforderungenand dieLackierstation . . . 9
2.3 Anforderungenan dasFlieband . . . 10
2.4 Der ProduktionstagD 1 . . . 10
2.5 PrioritatenbeiderOptimierung. . . 11
2.6 Zahlungder Constraintverletzungen . . . 11
2.7 Leicht undschwerzu erfullendeVerhaltnisconstraints. . . 13
2.8 Zielfunktion . . . 13
2.9 Probleminstanzen. . . 14
3 Verwandte Forschungsgebiete 17 3.1 Reihenfolgeplanung von Bitvektoren mitDistanzbedingungen 17 3.2 Reihenfolgeplanung mitBestrafungsmatrix. . . 19
3.3 Reihenfolgeplanung inEchtzeit . . . 22
4 Human Guided Search (HuGS) 24 4.1 Einfuhrung . . . 24
4.2 Terminologien . . . 25
4.3 Mobilities . . . 26
4.4 Funktionsweise . . . 27
4.4.1 Exhaustive Search . . . 28
4.4.2 Tabu Search . . . 28
4.5 Klassenstruktur . . . 29
4.6 Andere ApplikationenunterHuGS . . . 31
5 Die Paintshop Applikation 34 5.1 Funktionsweise . . . 35
5.2 Wahl derLosung . . . 35
5.3 Wahl derNodes. . . 35
5.4 Wahl derMoves. . . 36
5.4.1 Swap Move . . . 37
5.4.2 BlockMove . . . 38
5.4.3 Nuke Move . . . 39
5.4.4 Sort Move . . . 40
5.5 Die RolledesSearchadjustersunddes Movegenerators . . . . 41
6 Resultate 45
6.1 Die Skripten. . . 48
6.2 Vergleiche . . . 50
7 Exakter Losungsansatz 53 7.1 ReduzierteTeilprobleme . . . 53
7.2 GanzzahligeslinearesProgramm (ILP) . . . 54
7.3 Die ILPFormulierung . . . 57
7.4 BeispielfurdieILP-Formulierung. . . 58
7.5 Gutegarantie desILPs . . . 60
7.6 Losen desILPs . . . 60
8 Komplexitat 61 9 Zusammenfassung und Ausblick 63 10Anhang 65 10.1 Interfacevon HuGS-Paintshop . . . 65
10.2 MenschlicheInteraktion . . . 69
10.3 Lebenslauf. . . 72
Das vorliegende Programm wurde in erster Linie fur die
"
ROADEF Chal-
lenge 2005\ gefertigt.
"
ROADEF Challenge 2005\ ist ein Wettbewerb, der
von der
"
Franzosischen Gesellschaft fur Operation Research und Entschei-
dugsanalyse\ in Zusammenarbeit mit Industriepartnern organisiert wird.
AufgabenstellungwardasfolgendeReihenfolgeplanungsproblemausderAu-
tomobilindustrie.
Die Planung der Autoherstellerrma Renaultsoll mit Hilfe eines Optimie-
rungsalgorithmusverbessertwerden.Hierbeigeht esdarum,dieReihenfolge
einergroenAnzahlanAutos,dietaglich
uberdasFliebandlaufen,zuop-
timieren,sodassdieZusammenarbeitindeneinzelnenPhasensoreibungslos
wiemoglichfunktioniert.
EsgibtdreiPhasen:Karosseriefertigung,LackierstationundFlieband(sie-
he Abbildung1).
Abbildung1:Aufbau(Quelle:[7 ])
Karosseriefertigung: Die Karosserie fur das Fahrzeug wird hier ge-
presst, montiert und verschweit. Diese Phase wird jedoch nicht in
derAufgabe berucksichtigt.
Lackierstation:Jedes Fahrzeug besitzt eine Farbe. Wenn zwei aufein-
anderfolgende Fahrzeuge nicht dieselbe Farbe aufweisen, dann muss
derFarbspruherzwischendurchgereinigtwerden,waszusatzlicheKos-
ten verursacht. Es ist jedoch zu beachten, dass in jedem Fall nach n
FahrzeugenderFarbspruhergereinigtwerdenmuss,egalobdasnachs-
te Fahrzeug in derFolge dieselbe Farbe besitzt oder nicht.Zusatzlich
ist noch verlangt, dass nach dieser Reinigung ein Fahrzeug einer an-
naufeinanderfolgendenFahrzeugen derselben Farbe zu generieren.
Flieband: Jedes Fahrzeug verfugt
uber eine Anzahl an zusatzlichen,
optionalen Komponenten (z.B. Klimaanlage, Dachfenster, Heckspoi-
ler,etc.)
Abbildung2: FliebandKomponenten(Quelle:[7 ])
Diesewerden inder Flieband-Phaseeingefugt.Da dasMontieren je-
derKomponenteeine gewisse Zeit in Anspruch nimmt,sollten inner-
halbeinesgewissenZeitfenstersnichtzuvieleFahrzeugemitderselben
Komponenteanlaufen.SpeziziertwirdimmereinBruchderForm Z
N ,
wassovielbedeutetwie
"
nicht mehralsZ Fahrzeugeinnerhalbvon N
aufeinanderfolgendenFahrzeugensolltendieKomponentebenotigen\.
DieseConstraintssindjedoch weiche Nebenbedingungen.IhreVerlet-
zungen sind erlaubt, sollten aber minimiert werden. Pro Verletzung
wird je nach Spezikation ein Strafwert zum Ergebnis dazu addiert.
Dieser Strafwert hangt auch davon ab, ob die verletzte Nebenbedin-
gungeinehoheoderniedrigePrioritat besitzt.Die Prioritat sagtaus,
wiewichtigdieEinhaltungeinerNebenbedingungist.
Als Losungsansatz dient das interaktive, heuristische Optimierungssystem
HuGS(HumanGuidedSearch).HauptzielderArbeitwardieEinbettungei-
nesLosungsansatzesfurdasProblemindasHuGS-Framework.HuGSistein
FrameworkmitheuristischenSuchverfahren,dieaufeineVielzahlanProble-
menangewandtwerdenkonnen.DasbesondereanHuGSistdiemenschliche
Interaktivitat wahren derOptimierungsphase.
HerkommlicheOptimierungsalgorithmenundOptimierungsprogrammesind
ge wenige Parameterumstellungen vor dem Start. Dabei wird jedoch ver-
nachlassigt, dass der Mensch auch seinen Teil zur Losungssuche beitragen
kann. Bei einemkomplexenProblem,das visuellgutreprasentiertist, kann
der Mensch durch Intuition und Erfahrung oft Verbesserungen erkennen,
diederAlgorithmusmoglicherweiseerstnachsehr langerschematischerSu-
che nden kann. Genau hier greift HuGS ein und bietet dem Benutzer die
Moglichkeit, den Optimierungsprozess visuell mitzuverfolgen und gegebe-
nenfallsinteraktivmitzuwirken.
Das HuGS Projekt wurde von Mitsubishi Electric Research Laboratories
(MERL)inCambridge,MA,gegrundet.DieHauptmitwirkendendabeisind
Neal Lesh von MERL,Michael Mitzenmacher von der HarvardUniversitat
inCambridgeundGunnarW. KlauvonderTechnischenUniversitatWien.
Im HuGS System kann der Benutzer manuell die Losung modizieren, zu
einerfruheren Losung zuruckgehen undverschiedeneSuchalgorithmenauf-
rufen und anpassen. Noch wichtiger ist die Moglichkeit, durch die
Ande-
rungdersogenanntenMobilitiesandenSuchobjektendenSuchraumeinzu-
schranken undzuverandern.
Aufbau der Arbeit
ImKapitel
"
Aufgabenstellung\ wirdnaheraufdieZahlungderFarbwechsel
undConstraintsverletzungen eingegangen. Die Reihung der Optimierungs-
prioritaten ergibt die Zielfunktion. Auerdem wird beschrieben, wie eine
Probleminstanzaufgebaut ist.
Das Kapitel
"
Verwandte Forschungsgebiete\ stellt einige Papers vor, die
ahnliche Problemebehaldeln.
Das Kapitel
"
Human Guided Search (HuGS)\ stellt das Optimierungssys-
tem vor, indem dasvorliegende Problem integriertunddamit gelost wird.
Dabeiwerden Terminologiendes SystemsundseineFunktionsweiseimDe-
tail beschrieben.Zuletzt zeigeneinige Beispiele anderer Applikationen, die
ebenfallsdasHuGSSystem benutzen,wiesie ihrProblem integrierthaben.
Im Kapitel
"
Die Paintshop Applikation\ geht es um das Hauptthema der
Arbeit.DieFunktionsweisederApplikationwirdgeschildert,indemdieein-
zelnenSchnittstellen zu HuGS betrachtet werden. Ebenfalls wichtig ist der
Ansatz,wiederSuchraumzugunstenderPerformanceverkleinertwird.Am
Ende wird ein Script Modus beschrieben, der die menschliche Interaktion
von HuGSsimulierenkann.
"
Werte.
Das Kapitel
"
Exakter Losungsansatz\ fuhrt
Uberlegungen zu reduzierten
Beispielen vor, die exakt zu losen sind. Dann erfolgt Schritt fur Schritt
die Formulierung des Problems zu einem ganzzahligen linearen Programm
(ILP), dasmitHilfe von Programmen,die auf LPsspezialisiertsind, exakt
gelostwerden kann.
DasKapitel
"
Komplexitat\ analysiert,wieschwerdasProblemwirklichist,
undbeweist,dassesNP schwerist,indemeineReduktionaufeinbekanntes
Problemausgefuhrt wird.
Das Kapitel
"
Zusammenfassung und Ausblick\ fasst die Ergebnisse noch-
malszusammenundschildertdieoenenMoglichkeiten,wiedasProgramm
verbessert werden konnte.
Das Kapitel
"
Anhang\ beinhaltet eine Beschreibung, wie die Programmo-
berache zu bedienenist.
ImfolgendenKapitelwirddieAufgabenstellunggenauererlautert.Esenthalt
auchdieSpezikationen
uberdieZahlungderFarbwechselimPaintshop-Teil
undConstraintverletzungenimFlieband-Teil.NachdemaufdieBewertung
einerLosung eingegangen wird,wird die Zielfunktion genau erlautert. Am
Ende wird noch beschrieben, in welcher Form die Spezikation angegeben
ist,d.h. wiedieProbleminstanzenindenDateien abgespeichert sind.
2.1 Planungsprozess
DieBestellungenderKundentreentaglichinEchtzeitindenAutofabriken
ein.
Die tagliche PlanungindenFabriken besteht auszweiSchritten:
1. JedesAutowird einemProduktionstag zugeordnet. Dieser hangtvon
denProduktionskapazitatenunddem Lieferdatum ab,das demKun-
denvomVerkaufer zugesprochenwurde.
2. ProTagmusseinTagesplanentworfenwerden,derdieReihenfolgeder
Autos am Forderband bestimmt. Naturlich sollen dabei so viele An-
forderungenwiemoglichandieKarosseriefertigung,dieLackierstation
unddas Fliebanderfulltwerden.
DerSchwerpunktliegtbeiderLackierstationunddemFlieband,dadieKa-
rosseriefertigungimGrundekeine Anforderungenstellt.DieZuteilungeines
Autos zu einem Produktionstag im ersten Schritt kann nicht ruckgangig
gemacht werden, da zwei verschiedene Optimierungsprogramme eingesetzt
werden, um diese zwei Punkte getrennt zu behandeln. Im Moment
uber-
nimmt ein LinearesProgramm dieEinteilung imersten TeilundeinSimu-
lated AnnealingAlgorithmusdiePlanung imzweitenTeil.
2.2 Anforderungen and die Lackierstation
Das Hauptziel in der Lackierstationsphase besteht darin, moglichst wenig
Losungsmittel zu verbrauchen. Das Losungsmittel wirdverwendet, umden
Lackspruher bei einem Farbwechsel zu reinigen, wenn zwei aufeinanderfol-
gendeAutos verschiedene Farben haben. Esist naheliegend, Autosder sel-
ben Farbezu gruppieren,umdieAnzahlderFarbwechselinderSequenzzu
minimieren.Andersformuliert,man versucht,die Anzahlder Lackspruher-
Reinigungenzuminimieren.
Der Lackspruher hat jedoch eine Obergrenze an Einsatzen. Danach muss
die selbe Farbe hatte. Es ist sogar nicht erlaubt, nach dieser notwendigen
ReinigungwiedereinAutoderselbenFarbeanzureihen.DieseEinschrankung
ist eineNebenbedingung,dieeingehalten werdenmuss.Die Obergrenzeder
gleichfarbigenAutoswirdinweitererFolge
"
MaximaleFarbblockgrenze\ ge-
nannt.Siemussstrikteingehalten werden.
2.3 Anforderungen an das Flieband
Um dieLast der Einbauarbeit am Fliebandgut aufzuteilen, sollen Autos,
dieeinespezielleEinbaukomponentebenotigen,moglichstgleichmaigunter
derGesamtanzahlderAutos aufgeteiltwerden.
DieseAnforderungensinddurch
"
Verhaltnisconstraints\ derForm Z
N ange-
geben, was bedeutet, dass innerhalb eines Fensters von N aufeinanderfol-
genden Autos nur hochstens Z Autos eine Komponente benotigen sollen.
Wenn z.B.
Z
N
= 3
5
ist, dann sollen innerhalb von beliebigen funf aufeinan-
derfolgendeAutosinderSequenznurhochstensdreiAutosdieKomponente
benotigen.Die Werte furZ undN variieren,jenachdemwieaufwandig die
Einbauarbeitfureine bestimmteKomponenteist.
DerSpezialfallZ =1bedeutet,dasszwischenjezweiAutos,dieeinegewisse
Komponente benotigen, mindestens N 1 liegen sollen, die diese Kompo-
nente nicht brauchen.
Es gibt zwei Klassen von Verhaltnisconstraints, namlich Constraints mit
hoher und niedriger Prioritat. Die Verletzung eines Constraints mit hoher
PrioritatfuhrtwegenderEigenschaftenderKomponentebzw.desAutoszu
einersehrhohenAuslastungamFlieband.WenneinConstraintmitniedri-
gerPrioritat verletzt wird,entsteht im Gegensatz dazumoglicherweise nur
eine kleineUnbequemlichkeit inder Produktion.Hohe Prioritat sollte Vor-
ranggegenuberniedrigerPrioritat haben.
Verhaltnisconstraintssindweiche Nebenbedingungen.Die Einhaltungkann
nichtvorderTagesplanunggarantiertwerden.DasProblemkannauchCons-
traintsfordern, dieunerfullbar sind.Deshalb besteht das ZielderOptimie-
rungnurdarin, dieAnzahlder Constraintverletzungen moglichst geringzu
halten.
2.4 Der Produktionstag D 1
Wenn der Produktionstag D geplant wird, mussen die letzen Autos vom
Vortag D 1 auchberucksichtigtwerden.AlleAutos ausD 1sindschon
gefertigt, deshalb kann ihre Position klarerweise nicht verandert werden.
Tag D.
WenndasletzteAutovonD 1diegleiche FarbewiedasersteAutovon D
hat, unddie maximaleFarbblockgrenze-Nebenbedingungnicht verletzt ist,
soergibtsich einFarbwechsel weniger.
DasselbegiltauchfurdieVerhaltnisconstraints.DieBerechnung derVerlet-
zungen fangen zwar bei D an, aber womoglich wird das Ratio am Anfang
nicht erfullt, da die letzten Autos aus D 1 mit den ersten Autos aus D
zusammendasVerhaltnisconstraint verletzen.
2.5 Prioritaten bei der Optimierung
EsgibtdreiKriterien, nach denenoptimiertwird:
1. Farbwechselminimierunginder Lackierstation
2. Erfullungvon Verhaltnisconstraintsmithoher Prioritat
3. Erfullungvon Verhaltnisconstraintsmitniedriger Prioritat
Die Reihung legt den Zielfunktionswert fest, wobei das hochstgewichtete
KriteriummitdemFaktor10000, daszweite KriteriummitdemFaktor100
unddas letztgereihte Kriteriummitdem Faktor1 gewichtet wird.
D.h. wenn die Erfullungvon Verhaltnisconstraints mit hoher Prioritat um
eine Stufe wichtiger ist als die Minimierung der Farbwechsel, so muss die
Anzahl der Farbwechsel um mindestens 100 verringert werden, damit sich
eine zusatzliche Verletzung eines Constraints mit hoher Prioritat bezahlt
macht.DeshalbsolltendiePrioritateneinwichtigerAspekt inderOptimie-
rungdarstellen.
2.6 Zahlung der Constraintverletzungen
DiebesteLosungbeieinemConstraintderForm Z
N
isteinProduktionsplan
mit hochstens Z Autos in einer beliebigen Sequenz von N aufeinanderfol-
gendenAutos,dieeinegewisseKomponentebrauchen.DiebesteLosungbei
einemConstraintder Form 1
N
ist einPlan,wo sichzwischenje zwei Autos,
diedieseKomponentebenotigen,mindestensN 1 Autosbenden,diedie
Komponentenicht benotigen.
WenndieConstraintsnichteingehaltenwerdenkonnen, somussdieAnzahl
derVerletzungenzumindestminimalgehaltenwerden,damitderArbeitspro-
zess erleichtert wird.
Die Zahlungselbst basiert auf dem Anlegeneines Betrachtungsfensters der
LangevonN Autos,wenndaszuuntersuchendeVerhaltnisconstraint
N lau-
tet.InnerhalbdiesesFensterswirdgezahlt,wievieleAutosdieKomponente
benotigen.WenndieseAnzahlgroeralsZ ist,dannsindVerletzungenvor-
handen.DasBetrachtungsfenster wandert inkrementelldurch dieSequenz.
Beispiel
DasVerhaltnisconstraintbetragt 1
5
.DeshalbistdieGroedesBetrachtungs-
fenstersfunf Autos.Betrachten wirfolgendeSequenzen:
___X___X__:eineVerletzung, namlichbeiX___X
___X__X___:zwei Verletzungen, namlich bei_X__X undbeiX__X_
WirkonnendiefolgendeFormelbeieinemVerhaltnisconstraint Z
N
aufstellen:
Vio= (
k Z fallsk >Z
0 sonst
Vio... AnzahlderVerletzungen
k ... Anzahlder Autos,diedie Komponente benotigen
Der Tag D 1
Wieobenerwahnt,mussendieletzten Autos von Tag D 1 mitindieBe-
rechnungderVerletzungeneinbezogenwerden.DasBetrachtungsfensterdes
Constraints Z
N
beim ersten Auto von Tag D muss also die letzten N 1
Autos vonTag D 1beinhalten,umeine plausibleLosungzu erhalten.
Beispiel
Das Verhaltnisconstraint betragt 1
5
, die Autos von Tag D 1 sind mit A
gekennzeichnet, die von Tag D mitB.
Die Untersuchung derSequenzAA_A_AB__B mussalso mit_A_AB beginnen,
dievierAutos vom Vortag enthalt.
Der Tag D+1
GrundsatzlichwirdderTag D+1nicht inBetracht gezogen,aberbeieiner
garantierten Verletzung muss das Betrachtungsfenster diese noch aufneh-
menkonnen.
Beispiel
Das Verhaltnisconstraint betragt 1
5
, und die Autos von Tag D enden auf
_X____XXergibtnichtnureineVerletzungamEndein___XX,wiemanviel-
leichtmeinenkonnte,sonderndieVerletzungenindieserSequenzbetragen4:
___XX:eineVerletzung
__XX: eineVerletzung
_XX: eineVerletzung
XX: eineVerletzung
Der Grund fur diese Zahlung liegt darin, dass am Tag D+1 die ersten
Constraintverletzungennicht zu vermeidenwaren.
2.7 Leicht und schwer zu erfullende Verhaltnisconstraints
Renaultgibt Szenarien an, wo Constraintsmit hoher Prioritat inzweiKa-
tegorieneingeteiltsind:
Leicht zu erfullendeVerhaltnisconstraints:Hierbeihandelt essich um
einenConstraintubereineKomponente,woRenaultsindustrielleAp-
plikationenschoneineSequenzohneVerletzungaufbauenkann.Somit
istdie Losung ohneVerletzungmoglich.
Schwerzu erfullendeVerhaltnisconstraints:Renaultist nichtim Stan-
de,beidieserKomponenteeineSequenzohneVerletzungenaufzubau-
en.Eskann eineverletzungsfreieLosungexistieren,muss abernicht.
Esgibtkeine solche Einteilung furdieConstraintsmitniedriger Prioritat.
2.8 Zielfunktion
AusgehendvondenZielsetzungen,diebereitserwahntsind,fassenwirunser
OptimierungszielineinerFunktionzusammen:
MinimiereC
CC N
CC +C
HPC N
HPC +C
LPC N
LPC
C
CC
... Kostenfureine SpruhkopfreinigungbeiFarbwechsel
N
CC
... AnzahlderFarbwechsel
C
HPC
... Kostenfureine VerletzungeinesConstraintsmithoher Prioritat
N
HPC
... AnzahlderVerletzungeneinesConstraintsmitniedrigerPrioritat
C
LPC
... Kosten fureineVerletzungeinesConstraintsmithoher Prioritat
N
LPC
... AnzahlderVerletzungeneinesConstraintsmitniedrigerPrioritat
CC HPC LPC
undsindproblemabhangignach ihrenPrioritatengeordnet.
2.9 Probleminstanzen
Um ein Problem zu laden, muss es in einem Format eingelesen werden,
das die Spezikation von
"
ROADEF Challenge 2005\ erfullt. Jede Instanz
besteht ausvier Dateien:
optimizationobjectives.txt
HierwirddiePrioritatderBewertungsfunktionenangegeben.Grundsatz-
lichbestehtdieMinimierungszielfunktionausdreiEinzelbewertungen:
Farbwechsel,VerletzungvonConstraintsmithoherundniedrigerPrio-
ritat.
Header:rank;objective name;
DanachwirddieWichtigkeitderEinzelbewertungenangegeben,wobei
sichjedePrioritatsstufeum einenFaktor von 100 unterscheidet.
Beispiel:
1;high_priority_level_and_easy_to_satisfy_ratio_constraints;
2;paint_color_batches;
3;low_priority_level_ratio_constraints;
Hierwurde dieZielfunktionlauten:
Minimiere100N
CC
+10000N
HPC
+1N
LPC
paint batch limit.txt
Hier wird die Anzahl der aufeinanderfolgende Fahrzeuge angegeben,
die die gleiche Farbe besitzen durfen. Nach dieser Anzahl wird der
Spruhkopfgereinigt undeine neueFarbemuss eingelegtwerden.
Header:limitation;
Danach kommt einfachdie Zahl,gefolgtvon einemStrichpunkt.
Beispiel:
20;
Hierwirdangegeben,wiedieConstraintsim FliebandTeilaussehen.
Header:Ratio;Prio;Ident;
Danach kommen der Reihenach alle Constraintsinder Form von ei-
nem Bruch, eine Angabe, ob sich dabei umein Constraint mit hoher
oderniedrigerPrioritathandeltunddieBezeichnung desConstraints.
Beispiel:
5/6;1;HPRC1;
1/3;0;LPRC4;
DerersteConstraintbesagt,dassvon sechsaufeinanderfolgendeFahr-
zeugenurhochstensfunfdieKomponenteHPRC1benotigensollen,da-
mitdieser Constraint nicht verletzt wird. Es ist auerdem ein Cons-
traint mithoherPrioritat.
DerzweiteConstraintbesagt,dassvondreiaufeinanderfolgendeFahr-
zeuge nur hochstens einer die Komponente LPRC4 benotigen sollen,
damitdieserConstraintnichtverletztwird.EsistauerdemeinCons-
traint mitniedrigerPrioritat.
vehicles.txt
Hierwerdenalle FahrzeugeundihreEigenschaften aufgezahlt.
Header:Date;SeqRank;Ident;Paint Color;HPRC1;HPRC2;\ldots{}
DieeinzelnenWerte besagen folgendes:
{ Date:EinDatum,dasangibt,obdasFahrzeugvomVortagstammt,
oderzumaktuellenTaggehort.WenneszumVortaggehort,dann
werden lediglich nur die Constraintverletzungen berucksichtigt
unddie Positionbleibt x.
{ SeqRank:DieInitialreihenfolgedesFahrzeugs.
{ Ident:Die IdentikationdesFahrzeugsbesteht auseinerZahl.
{ PaintColor:DieFarbedesFahrzeugs,angegebendurcheineZahl.
{ HPRC1; ... :EinBitcode,der angibt, ob dasFahrzeug eine ge-
wisseKomponentebenotigt odernicht.
Beispiel:
2003 38 3;509;022033820002;2;1;0;0;0;0;0;0;0;0
2003 38 4;1;022033840162;3;1;0;0;0;0;0;1;0;0
2003 38 4;2;022033840386;4;1;1;0;1;0;0;1;0;0
2003 38 4;3;022033830379;4;1;0;0;0;0;0;0;0;0
2003 38 4;4;022033830171;4;1;0;0;0;0;0;0;1;0
Um eine Probleminstanz in die vorliegende Applikation zu laden, mussen
diese vier Dateien in einem Verzeichnis vorhanden sein. Danach kann eine
davon ausgewahlt werden, umallevierhineinzuladen.
Es gibt eine Reihe von verwandten undahnlichenProjekten, die ebenfalls
auf das
"
Car Sequencing\ Problem spezialisiertsind.Einigedavon, je nach
demwieverwandtsiemitdemaktuellenProblemsind,werdenimFolgenden
mitmehroderwenigerDetailsvorgestellt.
Ebenfalls bemerkenswert ist die Tatsache, dass keines der erwahnten Pa-
persaufdieMinimierungderFarbwechseleingeht,sondernallelediglichdas
Fliebandbetrachten.
3.1 Reihenfolgeplanung von Bitvektoren mit Distanzbedin-
gungen
In
"
Sequencing Bitvectors with Distance Constraints [8]\ von R. Nickel
und W. Hochstattler wird das Problem als Mixed Integer Problem for-
muliert.Essind-dimensionaleBitvektoren ineinerendlichenMultimenge
F = f b
1
;:::;b
1
;b
2
;:::;b
2
;b
;:::;b
g gegeben, und gesucht wird eine Rei-
hungderVektoren,sodassfurjedeZeilejgilt:ZwischenjezweiBitsmitdem
Wert
"
1\solltenmindestensm
j
undhochstensm
j
BitsmitdemWert
"
0\lie-
gen.Diese Formulierungbeschreibt klarerWeisenurFliebandConstraints
der Form 1
N
. Constraints der Form Z
N
mit Z 2 konnen nicht mit einem
simplenm
j
ausgedruckt werden. Nichtsdesto trotz ist die Problemstellung
sehr
ahnlich,unddie Komplexitatsanalyse bezieht sich auch auf einen Be-
weisindiesemPaper.DeshalbgehenwiretwasgenaueraufdiesesPaperein.
Distance-Constraint-Bitvector-Sequencing (DCBS)
Gegeben:Multimenge F =f b
1
;:::;b
1
;b
2
;:::;b
2
;b
;:::;b
gvon
-dimensionalen 0-1 Vektoren und Schranken m
j
;m
j
2 N mit
m
j
<m
j
(j =1:::).
Gesucht:EineSequenzb
i
1
;b
i
2
;:::;b
i
n
derVektoreninF,sodass
furjedeKomponente j zwischenjezwei
"
1\ mindestensm
j und
hochstensm
j
"
0\ existieren.
Mixed Integer Program
SeindieLangederSequenz,die mitk indiziertwird,und die
Anzahl der verschiedenen Bitvektoren, die mit i indiziert wer-
den. Wir fuhren Entscheidungsvariablen x
ik
ein, die den Wert
"
1\ besitzen,dannundnurdann,wennderBitvektorb
i
aufPo-
sition k sequenziert wird. Wenn F verschiedene Bitvektoren
i i
chen Bitvektoren b
i
. Somitlasst sich das Problem als folgendes
LinearesProgramm (LP)formulieren:
1.
P
i=1 x
ik
=1 8k=1:::n
2.
P
n
k=1 x
ik
=N
i
8i=1:::
3. X
j;0
=0 8j =1:::
4. X
j;k
=X
j;k 1 +
P
P
i=1 x
ik b
ij
8j =1:::;8k=1:::n
5. X
j;k X
j;k m
j
1 8j =1:::;8k =m
j
+1:::n
6. X
j;k X
j;k m
j
2 8j =1:::;8k =m
j
+1:::n
7. x
ik
2f0;1g
Gleichungen (1) und (2) garantieren, dass auf jeder Position k
sichgenaueinVektorbendet,undjederVektorb
i
genauN
i Mal
inderSequenzauftritt.(3)und(4)zahleneinfachdieAnzahlder
AuftrittederKomponentej biszurPositionk.(5)und(6) sind
die Distanzconstraints des Problems. In Summe ergibt das ein
Constrainterfullungsproblemmitinetwan++3nConstraints
undn+nVariablen.
Der Beweis,dass dasProblem NP schwerist, geht
uberdieReduktionauf
das
"
Three PartitionProblem\ undist umfangreichin [8 ]beschrieben.Das
Problem bleibt immer noch NP schwer, wenn folgende Vereinfachung ge-
troenwird:
(DCBS)bleibtNP schwerwennwirdiefolgendeSimplizie-
rungdurchfuhren:
1. Die Constraintsaller Komponenten sindidentischundauf
m
j
=1 undm
j
=3 vereinfacht.
j
grenzensindauf m
j
=1xiert.
Dergenaue Beweis wirduntenim Kapitel8,
"
Komplexitat\,angegeben.
Polynomielle Betrachtung
Esgibt noch eine Betrachtungsweise, die dasProblem in derTheoriepoly-
nomiell macht, wenn folgende Einschrankung getroen wird: Wenn
fur ein xes gilt, dann wird , die Anzahl der moglichen verschiedenen
Bitvektoren auch eingeschrankt, da 2 O(2
) gilt. Die endgultige Kom-
plexitat liegt im Endeekt in O(n
), was fur die Praxis leider nicht viel
Bedeutunghat.FallswirdieseKomplexitat inKaufnehmenkonnen, bietet
[8 ] einDynamischesProgrammfurdieexakte Losungan.
Parameterized Heuristic Procedure
UmeinepraxisnaheLosungzubieten,beschreibtdasPaperaucheinen
"
Pa-
rameterizedHeuristicProcedure\Algorithmus.ImGegensatzzuGreedy,der
beieinemsolchenProblemwahrscheinlichzuerstalleleichtzu sequenzieren-
den Vektoren anordnet (um somit die Constraintverletzungen minimal zu
halten),wodurchaberschwierige Teileubrigbleiben,versucht dieseLosung
eineEinordnungsreihenfolgezunden,dieeinemmoglichstoptimalenKom-
promiss zwischen leicht und schwer entspricht. Das wird in einem kleinen
Blockvon Pseudocode ambestendemonstriert:
S=
solangenicht alleVektorensequenziert sind
setze p
min
=minfp
i
jS+b
i
verletzt p
i
Constraints, i=1:::g
setze b
= Element ausfb
i
jS+b
i
verletzt p
min
Constraints, i=1:::g
welches denmoglichstoptimalenFluss von 1erin den
Komponentengarantiert.
gibb
indieSequenz S
endsolange
3.2 Reihenfolgeplanung mit Bestrafungsmatrix
Die Problemstellung in
"
Traditional Heuristic versus Hopeld Neural Net-
workApproachestoaCarSequencingProblem[5 ]\istebenfallssehrahnlich
schrankung in der Umordnung der Bitvektoren existiert. Eine Minimum-
distanz m
i
gibt an, wie viel Leerraum zwischen Vektoren vorhanden sein
soll,die beide dieKomponenteibenotigen.Wieschonin[8 ] erwahnt, kann
dieseFormulierungebenfallsnurConstraintsderForm 1
N
beschreiben.Den-
noch beschreibt dieses Paper einen interessanten Zusatz, der besagt, dass
die Verletzung eines Constraints nicht immer gleich zu bewerten seinsoll.
EineVerletzungderKomponenteiwegeneinernichteingehaltenenDistanz
d
i
<m
i
bestraftdenLosungswert abhangig davon,wiestark d
i
von m
i ab-
weicht.WenndieAbweichungz.B.nurbeieinsliegt,soisteswenigerstorend
wiewennd
i
=1ware,fallsm
i
>2 gilt.FurdiesenZweckwirdeinePenalty
MatrixP eingefuhrt.DerEintragP
ij
beschreibtdenBestrafungswert, wenn
in der j-ten Komponente der Zwischenraum i betragt. Ist i m
j
, so gilt
klarerWeiseP
ij
=0.
Nehmenwiran,essindN AutosundM ModelleinderSequenz.
Wirdenieren:
x
kj
=
1 falls dask-teFahrzeug inderSequenzvon Typj ist
0 sonst
8k=1:::N;8j=1:::M
Als einBeispielwahlen wirN =10 undM =4 (z.B. Sedan(S),Utility(U),
Luxury(L)undWagon(W)),unddieDistanzconstraintszwischenAutosmit
gleichenTypen betragen2,5,8und3furdiesevierModelle.Einemogliche
Losungware:
X = 0
B
B
B
B
B
B
B
B
B
B
B
B
B
B
@
1 0 0 0
1 0 0 0
0 1 0 0
0 1 0 0
0 1 0 0
0 0 1 0
0 0 1 0
0 0 0 1
0 0 0 1
0 0 0 1 1
C
C
C
C
C
C
C
C
C
C
C
C
C
C
A
DieseLosungentsprichtderSequenzS,S,U,U,U,L,L,W,W,W.Naturlich
istdieseReihungkeine guteLosung.Deshalbmuss eineBestrafungfureine
eliminiert.
Dafur fuhrenwir dieBestrafungsmatrix P ein. Angenommenauf derk-ten
Positioninder Sequenzist einAuto vomTyp Luxury(j =3), dannist die
Bestrafung fur die (k 1)-te Position in der Sequenz, wenn das Fahrzeug
zumTyp Luxurygehort, derEintrag P
1;3
,die Bestrafungfurdie (k 2)-te
Position ist P
2;3
, usw. Als Beispiel nehmen wir fur die Matrix P folgende
Werte an:
P = 0
B
B
B
B
B
B
B
B
B
B
@
4 9 22 7
2 7 10 5
0 5 18 3
0 3 16 0
0 1 14 0
0 0 12 0
0 0 10 0
0 0 8 1
1
C
C
C
C
C
C
C
C
C
C
A
Indiesem Fallisteswichtig,dieDistanzbeiTypLuxuryeinzuhalten,dasie
diehochsten Strafkosten verursachen.
Mit Hilfevon X undP kommt man auf die folgendeCSP (Constraint Sa-
tisfactionProblem)Formulierung:
Minimiere P
N
k=1 P
M
j=1 X
kj P
k 1
i=1 P
(k i)j X
ij
1.
P
N
k=1 X
kj
=D
j N
i
8j =1:::M
2.
P
M
j=1 X
kj
=1 8k =1:::N
3. X
kj
2f0;1g
Die Komplexitat dieserFormulierungist ebenfalls interessant.Die Autoren
von[5 ]behaupten,dasssienurals einnichtlinearesganzzahligesProgramm
mit einer indeniten quadratischen Form formuliert werden kann. Wegen
derKomplexitatarbeitet[5 ] nurmit heuristischenAlgorithmen. Standard-
heuristikenwieSteepestDescent oderSimulatedAnnealing,aberauch eine
Losungmittels einemHopeldNeuronalnetzwerkwerdendort eingesetzt.
EineVielzahlanPaperswiez.B.
"
TheProblemofJITDynamicSequencing.
AModel anda Parametric Procedure[2 ]\ beschaftigtsichmitEchtzeitpla-
nung (Just-In-TimeScheduling),d.h. dynamischePlanungvon Fahrzeugen,
diezwischender Lackierstation unddemFlieband durch einen Puermit
nForderbandern geschicktwerden,um somiteine beschrankte Umordnung
zu ermoglichen.Nach demPaintshop kann das Fahrzeug wahlweise auf ein
Puerforderband F
i
mit in gegeben werden,falls F
i
noch nicht voll ist.
Vor dem Flieband wird ebenfalls entschieden, von welchem Puerforder-
banddasnachste Fahrzeug eingereiht wird.
Abbildung3:Just-In-TimeSchedulingAufbau
"
Facts and QuestionsabouttheMaximumDeviationJust-In-TimeSchedu-
lingProblem[6 ]\betrachtetebenfallseinEchtzeitproblem,aberdieAufgabe
istetwasanders:IndiesemPaperwirdangenommen,dassesnverschiedene
Komponenten gibt, die alle Produktionskosten von einer Zeiteinheit besit-
zen. Wenn der Bedarf an jeder Komponente d
i
, i = 1:::n betragt, dann
existierteine idealeProduktionsrater
i
derKomponentenmitr
i
= d
i
P
n
j=1 d
j .
DieseidealeRatewirdinderRealitatjedochkaumerreicht,deshalbist das
ZielindiesemPaper,dietotale undmaximaleAbweichung zurIdealratezu
minimieren.
AlledieseIdeensindsehrgutundpraxisorientiert,dadurchdieUmordnung
imZwischenpuerdieConstraintsderLackierstationunddesFliebandsge-
Aufgabenstellung derArbeitdarstellt, wird auf dieseLosungsansatze nicht
weitereingegangen.
Hier gehen wir naher auf das HuGS System ein. Neben der allgemeinen
Einfuhrung
uber die Ideen, die dahinter stehen, sollen die Funktionswei-
senunddie Vorgehensweiseneiner Suche mittels HuGS erwahnt sein. Zum
Schlussgibteseinen
UberblickuberdieKlassenstruktur,diebeimSchreiben
einerneuenApplikationsehr wichtigist.
4.1 Einfuhrung
Dadie ganze Paintshop Applikation inHuGS eingebaut ist, ist es wichtig,
die grundlegenden Vorgehensweise von HuGS zu verstehen. Die Motivati-
ondahinterist,wiebereitserwahnt,dieIntegrationvonmenschlichenIdeen
wahrenddesautomatischenOptimierungsprozesses.Auerdemkonnenauch
mehrereAnwendergleichzeitig
uberdieProblematikdiskutieren,undbeider
Optimierungmitwirken.FolgendeAbbildungzeigt, wiedasan einem Opti-
mierungstischablaufenkonnte.
Abbildung4:Optimierungstisch(Quelle:[4 ])
Hieran dieserStellenoch einZitataus
"
TheHuGSPlatform:A Toolkitfor
Interactive Optimization[4]\,umdie Motivation zu erhohen:
"
Forschung im Bereich von Optimierungsproblemen wie Routing, Layout,
Scheduling, etc. ist auf die Entwicklung von automatischen Algorithmen
ent durchsuchen. Gewohnlich besteht die Rolle des Benutzers in so einem
Systemdarin, dasProblem zu spezizieren,Schwerpunkte aufKriterienfur
dieErgebnissefestzulegen unddanndenSuchprozess zu initialisieren.
Das Human-Guided-Search-Framework, motiviert die Benutzer, im Opti-
mierungsprozess mitzuwirken. Es bieten einfache visuelle Metaphern, die
denBenutzerneineausfuhrlicheUntersuchungdesSuchraumserlauben.Wir
bietenauerdemMiddleware,dieeinerascheIntegrierungvonProblemenin
dasFramework erlauben.
Das Zielist auf Aspekte gerichtet, die oft im Bereich der Optimierungver-
nachlassigt werden, aber dennoch furMenschenessentiellwichtig sind, um
einebrauchbareLosungzu einemProblemsuchen.DieBenutzermussendie
generierten Losungen nachvollziehen und ihnen vertrauen konnen, um sie
eÆzient einsetzenzu konnen. Weiteres ist es oft unmoglich, alleSuchpara-
meter vor dem Suchprozess mit sinnvollen Werten zu belegen. Stellen Sie
sich vor, jemand muss einen monatlichen Arbeitsplan aufstellen. Er muss
dieLosung nachvollziehen konnen, umes denAngestelltengut zuubermit-
teln.Nochwichtigeristeszuverstehen,wieModikationengemachtwerden
konnen, wennmogliche
Anderungenauftreten. Auerdemgibtesoft beson-
dere Aspekte und Spezialwunsche, die schlecht dem Computer mitteilbar
sind. Wenn der Benutzer bei der Generierung des Scheduling Plans aktiv
mitwirkt,so kann erdenVorgang zueinerplausibleLosunghinsteuern,die
allesrealitatsbezogene Wissenberucksichtigt.
Zusatzlich kann die menschliche Interaktion aus dem folgendenGrund das
Ergebnis verbessern: In den Bereichen wie visuelle Wahrnehmung, Lernen
durch Erfahrung,strategische
Uberlegungen,etc. ubertritderMensch im-
mernochdenComputer.WenndieVisualisierunganschaulich ist,kann der
Mensch den Computer in den aussichtsvollen Regionen des Losungsraums
verstarktsuchenlassen.\ (
Ubersetzung vomAutor)
4.2 Terminologien
Hierwerden die wichtigsten Begrie angefuhrt, dieim Zusammenhang mit
HuGS immer wieder auftauchen. Es ist notwendig, eine eindeutige Bedeu-
tungfestzulegen,umimWeiterendieFunktionsweisevonHuGSzuerlautern.
DieErklarungderTerminologienwurdenaus
"
Human-GuidedSearch:Sur-
veyand Recent Results [1 ]\ entnommen.
WirbenutzenfolgendeAbstraktionenfureine BeschreibungderHuGS Ap-
EinProblem ist eineInstanz von einemTypeines Problems, dasoptimiert
werden soll. Ein Protein-Problem beinhaltet z.B. eine Sequenz von Ami-
nosauren.
DasZielderOptimierungbestehtdarin,eineLosung zudemgegebenenPro-
blem zu nden. Eine Losung bei einem Delivery-Problem besteht z.B. aus
einerSequenzvonKundschaften.Wirnehmenan,dassinjederApplikation
eine Moglichkeit existiert, zwei beliebigeLosungen miteinander zu verglei-
chen und als Resultat eine Aussage entsteht, die besagt, dass eine Losung
besser alsdie andereist, oder dassbeidegleichgutsind.
Es ist durchaus moglich, temporar eine ungultige Losung zu erzeugen, wo
bestimmteHardconstraintsverletzt sind.DieshatdenVorteil,dassdasglo-
baleOptimumsomitleichtererreichbarwird.AmEndeeinersolchenVorge-
hensweisemussnaturlicheinReparaturalgorithmusdieVerletzungenwieder
beseitigen.
Fur jedes Problem mussenMoves entworfen werden, die auf die Losungen
eineTransformationanbringen.WenneinMove aufeineLosungangewandt
wird, entsteht eine neue Losung. Fur eine Delivery-Applikation kann z.B.
einMove darinbestehen, einen Kundenausder Routezu geben odereinen
neuenmitaufzunehmen.
Alsletztes nehmenwirnochan, dassjedes Problem
ubereine endliche An-
zahl an Nodes verfugt. Die Nodes sinddie elementaren Bestandteile eines
Problems. Bei einerDelivery Applikation waren dasdie Kunden, bei einer
Protein-ApplikationdieAminosauren,usw.JederMoveistdeniertals eine
Anderungeines oder mehrererNodes in ihrem Zustand oder ihrer Reihen-
folge.
DieEntscheidung,wasalseinNodedeniertwirdundwelcheMovesbenutzt
werden,ist keine leichte designerische Angelegenheit.
4.3 Mobilities
Weiters gibt es noch einen sehr wichtigen Mechanismus, die sogenannten
Mobilities.SieerlaubendenBenutzernalleNodesgetrenntzukongurieren,
damit sie von den Suchalgorithmen unterschiedlich behandelt werden. Je-
demNode ist eineMobilityzugeordnet: high,mediumoderlow.
Angenommenein Problem enthalt sieben Knotenund eine Losung besteht
aus einer Reihenfolgeder sieben Knoten. Ein Move besteht aus einer Ver-
tauschung von zweiKnoten. EineLosung ist gegeben durch:
DieMobilitiesvon denKnoten1,2,4und7sindhigh(hell),Knoten5und
6sindmediumundKnoten 3ist low (dunkel).
Angenommen der Suchalgorithmus kann dann nur zwei adjazente Knoten
vertauschen,wennmindestenseinerdavon Mobilityhighhatundkeinerda-
von Mobility low. Dies fuhrt zu einem eingeschrankten Suchraum und die
entstehenden Losungen konntendannsoaussehen:
Beachtenswert ist,dass der Knoten 3,der auf Mobilitylow gesetzt ist, das
ProbleminzweikleinereSubproblemeteilt.EbensokonnenzwardieKnoten
mitMobilitymediumihrePositionenandern,aberihrerelativeReihenfolge
zueinanderbleibenkonstant.
Mobilities konnen den Suchraum drastisch verkleinern. In diesem Beispiel
gibteszwolfverschiedeneAnordnungen,diedieMobilityConstraintserfullen,
aber ohneMobilitiesgabees 7!=5040 Moglichkeiten!
4.4 Funktionsweise
Die Funktionsweisevon HuGS ist recht einfach erklart. Nachdem eine Pro-
bleminstanzindie Applikation geladenwurde, fangendie Suchalgorithmen
auch schon an zu arbeiten,indem Moves auf die Losungen angewandtwer-
von HuGSbesteht ausseinenSuchalgorithmen.
4.4.1 Exhaustive Search
EsgibtzweiVariantendieserSuchalgorithmen:SteepestDescent undGree-
dy. Beide Algorithmen fuhren zuerst alle Moves aus, die unter Beachtung
der Mobilities ausfuhrbarsind. Danach kombinieren sie immer zwei dieser
Moves miteinander,dann3, usw.Der SteepestDescent sucht immerweiter
nachdemMove,derammeistenGewinnbringt,wobeiGreedywiederumso-
fortdenerstenMove ausfuhrt,derdieaktuelleLosungverbessertunddann
wiedervonvorneallesdurchmacht.
4.4.2 Tabu Search
Wahrend dieErgebnissedurchdieHilfevon menschlicherInteraktionschon
mit den simplen Suchalgorithmen recht zufriedenstellend erscheinen, sind
diesemitdemTabu Search Algorithmusnoch weiterverbesserbar.
Tabu Search ist eine Heuristik fur das Durchkammen eines groen Such-
raums. Wie andere Lokale Suchalgorithmen benutzt Tabu auch die Nach-
barschaftsstruktur, die im Losungsraum deniert wird. In jeder Iteration
evaluiert Tabu alle Nachbarschaftslosungen der momentanen Losung und
geht dannzu der
uber, die am meisten Verbesserung verspricht. Nachbar-
schaften sinddurchdieProblemstellung undsomitdurchdie Moves festge-
legt.
Der klassische Ansatz, um eine eÆziente Suche zu betreiben, wird durch
die
"
Ausweitungsmethode\ garantiert: Eine
"
Tabu\ Liste wird immer mit-
gefuhrt,die dieAusfuhrung bestimmter Moves temporar verbietet, umdas
Backtrackingzuverhindern.AktuelleTabuAlgorithmenbeinhaltenoftauch
"
Verscharfungsmethoden\,dievielversprechendeSuchregionenverstarktoder
sogarvollstandigdurchsuchen.(DasistaberindermomentanenVersionvon
HuGSnichtenthalten.)
HuGS prasentiert jedoch einen Guidable Tabu Search (GTabu) Algorith-
mus.DieseranalysiertimmerdiemomentaneLosungunddieKonguration
derMobilities. Injeder Iteration evaluiertGTabu alleunter Beachtung der
MobilitieserlaubtenMoves, um denbesten davon ausndigzu machen. Er
fuhrtdiesenMoveaus,wasdiemomentaneLosungdurchaustemporarauch
verschlechtern kann undaktualisiertdie Mobilities.Dadurch lasst sich eine
kreisformige Suche verhindern und der Algorithmus wird motiviert, neue
Regionenzu erforschen. GTabu aktualisiertdieMobilitiesauf zwei Arten:
"
trackingverhindert,indemdieMobilitiesdergeradegeandertenNodes
aufmediumgesetztwerden.Wennz.B.imvorigenBeispielzweiNodes
ihrePositionenaustauschen, dann erhalten beide Nodes die Mobility
medium. Somit konnen diese beiden Nodes nicht mehr unmittelbar
danachihrePositionenzurucktauschen.
DieMobilitieswerdennacheinerAnzahlvonIterationen, dievomBe-
nutzerspeziziertwird,wiederaufdenursprunglichenWertzuruckge-
setzt. Dieser Parameter ist die memSize. Die meisten Tabu Algorith-
menhaben einensolchenMechanismus.
2. Es gibt auch die sogenannte
"
Diversify\ Funktion, welche den Algo-
rithmusmotivierensoll, dieMoveszu wahlen,dieindenvergangenen
Iterationen nicht oft angewandt wurden. Der Algorithmusfuhrt eine
Liste von allen Nodes, die nach ihrer Anzahl an
Anderungen abstei-
gendsortiert sind.Der DiversityWert einesNodesist diePositionin
dieserListe,diedurchdieGesamtanzahlderNodesdividiertwird.Der
DiversityWerteinesMoves istderDurchschnittallerDiversityWerte
derNodes,diedieserMoveanruhrt.DerDiversityWerteinerSucheist
derDurchschnittaller DiversityWerte derMoves,dieinderZeit aus-
gefuhrtwurden,seitdemdasletzteglobaleOptimumgefundenwurde.
DerBenutzer kanneinen minimalenDiversityWertminDiv zwischen
0 und 1 fur die Suche angeben. Wenn der Diversity Wert der Suche
unterdiesenGrenzwert liegt, dannwerden dieMobilitiesallerNodes,
die einen DiversityWert groer als minDiv besitzen, fureine Iterati-
on auf mediumgesetzt. Das zwingt dem Algorithmus, die Moves auf
Nodesauszufuhren,diewenigeroft verandertsind.
4.5 Klassenstruktur
HuGS istein groes Java Framework,dasrecht abstrakt implementiertist,
umvielAbleitungsfreiraumzu besitzen.Um neueProblemapplikationenzu
integrieren, mussen lediglich die Schnittstellenkomponenten abgeleitet und
implementiertwerden.Folgende Klassensindabzuleiten:
Hugs.java: Die Hauptklasse, von wo aus alles gestartet wird. Sie
erfullt hauptsachlich Initialisierungsaufgaben undkonstruiert die an-
derenKlassen.Die HauptklassenallerintegriertenApplikationensind
vonihr abgeleitet.
Problem.java:fasst die Spezikation des Problems zusammen. Wei-
geben.
Solution.java: stellt eine Losung des Problems dar. Die Zustande
aller Nodes und der Score dieser Konguration wird darin gespei-
chert.GenausowieProblem.javasollsieimstandesein,abgespeicherte
Losungen einzulesenundgenerierteabzuspeichern.
Node.java:stelltdenessentiellenBestandteileinesProblemsdar.Bei
einem Grafenproblem ware das ein Knoten, bei einem Packungspro-
blemein Objekt,etc. Die Kongurationder Menge aller Nodes stellt
eineLosungdar.DerZustandbzw.ParametereinesNodeswirddurch
einenMove verandert.
Move.java: verursacht eine
Anderung in der Losung, um eine Nach-
barlosung zu generieren. Der Typ des Moves, die
Anderungsparame-
tern,etc. sindklarerWeisedarinenthalten.
Je nach Problemstellung konnen oder sollen mehrere Arten von Mo-
vesabgeleitetundimplementiertwerden,dieverschiedeneVerhaltens-
weisen besitzen, umauf moglichstviele Wege einen moglichstgroen
Suchraumabzuarbeiten.
MoveGenerator.java:erzeugteineListevonMoves,diedannvonden
Suchalgorithmenausgefuhrtwerden.SieberucksichtigtdenSearchAd-
justerundmodiziertdementsprechenddieMovesorten,Suchtiefe,etc.
SearchAdjuster.java:
ubernimmt die Suchparameter durch Benut-
zereingabe. Welche Moves sollen generiert werden? Wie tief soll die
Suchelaufen?
Score.java:beinhaltetdieBewertungsfunktioneinesProblems.Nach
diesem Kriterium wird optimiert. Das ist auch der Wert, der besagt,
obdie Losungbesserals eineandere ist odernicht.
Visualization.java:zeichneteineLosungvisuellaufdemBildschirm.
EsistauchdieSchnittstellezwischendemProgrammunddemBenut-
zer, daalleBenutzerinteraktionen auch
uberihneingegeben werden.
Die anderenKlassen insearch, support undutilssind fureinen Entwickler
weniger wichtig und konnen als Black Boxes betrachtet werden. In search
sinddieSuchalgorithmenimplementiert,sowiederSearchmanager,derden
ganzen Suchprozess verwaltet. In utils und support sind im wesentlichen
vieleHilfsklassenundHilfsmethoden,auf denenHuGS zuruckgreift.
Hier werden ein paar weitere Applikationen vorgestellt, die ebenfalls das
HuGSFramework benutzen,umschwierigeProblemezu losen:
Labeling
Hier wird das 4-Positionen Labeling Modell betrachtet, wo die Labels nur
linksoben,rechtsoben,linksuntenundrechtsuntendirektaneinemKnoten
(entspricht z.B.einerStadt) angebracht werden konnen. Zielist es,soviele
Labels wie moglich auf einer Landkarte unterzubringen, sodass sich keine
zwei Labelsuberschneiden.
Es verfugt auerdem
uber eine Prioritatenfunktion, die besagt, dass nicht
jeder Knoten den gleichen Wert besitzt, ob er gelabelt wird oder nicht.
Wenn zwei Knoten sehr dicht zueinander liegen, sodass sich zwei Labels
nicht gleichzeitig ausgehen, soist es z.B. wichtiger, die Grostadt Wienzu
labeln als die anliegendekleinere Stadt Modling. Dafurverwendet die Ap-
plikation einenPrioritatswert furjedezu labelnde Stadt.
Abbildung5: LabelingApplikation
IndieserVariationdesintensivstudiertenJobshopProblemswerdennJobs
undm Maschinen betrachtet, wo jeder Job aus m Arbeitsoperationen zu-
sammengesetzt ist,die ineiner bestimmtenReihenfolgeundjeweilsvon ei-
ner bestimmten Maschine auszufuhren sind. Die Arbeitsauftrage auf den
Maschinen durfen sich nicht uberlappen, aber in welcher Reihenfolge die
Maschinen dieJobs ausfuhren,ist variabel.Zielist es, dieZeit zu minimie-
ren,die benotigt wird,bisderletzte Jobfertiggestelltwurde.
Abbildung6:JobshopApplikation(Quelle:[4 ])
Delivery
DieDelivery Applikationist eine AbwandlungdesTraveling SalesmanPro-
blems,woeshiernicht notwendig ist,alleStadtezu besuchen.Statt dessen
geht es darum, moglichst viele Stadte zu besuchen, um Pakete zu liefern,
wenneine maximaleWeglangeangegeben ist,die manzurucklegendarf.
Eine Probleminstanz beinhaltet eine Menge an Kundschaften, die sich an
einem konstanten geographischen Ort benden, den Start- bzw. Zielpunkt
und die maximale Weglange. Alle Kundschaften haben eine unterschiedli-
Startpunktist dasschwarze QuadratinderMitte.
Abbildung7:Delivery Applikation(Quelle:[4 ])
DiePaintshopApplikationstelltdasHauptthemadieserArbeitdar.Siebe-
nutzt das HuGS System, um das vorgestellte Reihenfolgeplanungsproblem
furdieAutomobilindustriezulosenundnutztdieVorteiledermenschlichen
Interaktion aus,um einemoglichst plausibleLosung zugenerieren.
Abbildung8:PaintshopApplikation
Im Weiteren wird beschrieben, wie in dieser Applikation die Struktur der
Losung, Nodes und Moves gewahlt wurden, damit der Optimierungspro-
zess mit den im HuGS Core enthaltenen Suchalgorithmen moglichst gut
funktioniert.EbenfallsnichtirrelevantistderSearchadjusterundderMove-
generator, die zusammen den Suchraumsinnvoll verkleinern. Zum Schluss
wirdnoch der ScriptModusvorgestellt, dermenschliche Interaktion durch
Scriptssimuliert.Dasist notwendig,da furdie
"
ROADEF Challenge2005\
nurautomatische Optimierungsprogrammeerlaubtsind.
Die grundsatzliche Funktionsweisevon HuGS ist immer gleich. Sie erzeugt
eineInitiallosungundeineMoveListmiteinerAnzahlanMoves,dieerlaubt
sind, lasst den ausgewahlten Suchalgorithmus die Liste durchiterierenund
verwertet je nachAlgorithmusdie neueLosung.
AlsBeispielbetrachten wirdieVorgehensweisevon Tabu Search anhandei-
neskurzenvereinfachten Pseudocodes:
s =Initiallosung
loop
generiereMove ListLmitallenMoves, dieerlaubt sind
best=s
solangeLnichtleer
m =nachster Move inL undentfernediesen daraus
neu =neueLosung,wennmauf sangewandt wird
wennneubesser alsbest, dannbest =neu
endsolange
s=best
aktualisieredieMobilities
end loop
Wenn der Suchalgorithmus auf Greedy eingestellt ware, wurde die innere
"
solange\ Schleifeeinfachterminiert,wenneineneuebessereLosung gefun-
denwurde.DieZeilegeneriereMoveListLbeachtetdieMobilitiesderNodes
unddie Parameter vomSearchadjuster,derspatererlautertwird.
5.2 Wahl der Losung
Bei dieser Aufgabe geht esim Grunde darum, eineReihenfolge allerAutos
zu nden,die inderZielfunktionderAufgabenstellung einen moglichstgu-
tenWert erreicht. Eine Losung besteht somit aus einer Permutation der n
Fahrzeuge, dieim Problemvorkommen.
5.3 Wahl der Nodes
Es ist sehr naheliegend, bei diesem Problem die Fahrzeuge als Node zu
implementieren.In einemNode sindfolgende Informationengespeichert:
neProbleminstanzimmerdieFahrzeuge desProduktionstagsD,aber
auch einige der letzten Fahrzeuge aus dem Vortag D 1, damit am
AnfangderFarbwechselunddieVerhaltnisconstraintsberechnetwer-
denkonnen.JelangerderlangsteVerhaltnisconstraintist,destomehr
FahrzeugeausD 1 mussenangegeben sein.
Initialreihenfolge: Die Fahrzeuge einer Probleminstanz sind nicht ir-
gendwie geordnet, sonderndie Reihenfolge stelltschon diemomenta-
neLosungbeiRenaultdar.DeshalbhabenalleeingelesenenFahrzeuge
einenIndex,der angibt,wo sie sichinderInitialreihenfolgebenden.
Identikation: Das ist einfach die ID des Fahrzeugs. Sie spielt in der
OptimierungsphasekeineRolle,sondernwirdnurbeiderAusgabeder
Losungangegeben,damit dieFahrzeuge zuordenbarsind.
Farbe:Nur fortlaufendeZahlen sindfurdieFarben angegeben. Esist
auchpraktischegal,obderwirklicheFarbwertangegebenist,odernur
eineZahl.Wichtigistesnurzuwissen,obsichzweiFahrzeugeinihren
Farben unterscheidenoder nicht.
Constraints:In dieserinteressanten SektioneinesNodes wirdangege-
ben,obeingewissesFahrzeugeineKomponenteamFliebandbenotigt
odernicht.Das ganzewirdineinem groenBitvektorgespeichert.
Hashwert: FurdiePerformancewirdnocheinzusatzlicherHashWert
gespeichert,derdieFahrzeugeeindeutigkennzeichnet. DieserWertist
bei zwei Nodes genau dann gleich, wenn sowohl die Farbe als auch
dieConstraintsubereinstimmen. Wenninder Optimierungsphaseein
MovezweiNodesvertauschenmochte,wirdimmerzuerst
uberpruft,ob
sie die gleichen Hash Werte besitzen. Ist das der Fall, so wird dieser
Move einfach weggelassen, da es zu keiner
Anderung in der Losung
fuhrt.
5.4 Wahl der Moves
Die Wahl derMoves ist,wie schon im allgemeinen HuGS Kapitelerwahnt,
ein sehr wichtiger Punkt bei der Implementierung einer Applikation fur
HuGS. Ob die Suchalgorithmen gut oder schlecht funktionieren hangt in
ersterLinievon derWahlderMovesab.Die PaintshopApplikationverfugt
uberfolgende Moves:
Dies ist der einfachste Move, der auch intuitiv sofort einfallen wurde. Er
vertauscht einfach die Positionen von zwei Nodes miteinander, wobei die
MobilitiesbeiderNodes auf high gesetzt sein mussen. Es ist durchaus eine
Sache des Geschmacks und der Implementierung,ob dieser Move auch er-
laubt sein soll, falls ein Mobility auf high und der andere auf medium ist.
Beim vorliegenden Programmwurde jedoch entschieden, dass er strikt nur
beihigh erlaubtist, dader Suchraumohnehinschon extremgro ist.
DieStarke vonSwapMove liegtdarin,dassdieDurchfuhrungunddieAus-
wertung seiner
Anderungensehrschnellgeht(es konnenimmernuranzwei
Positionen in einem kleinen lokalen Bereich die Verhaltnisconstraintverlet-
zungenunddieFarbwechselverandert werden).WenndieMinimierungder
Constraintverletzungen im Vordergrundsteht, dannist Swap Move eigent-
lichdie eÆzienteste Varianteunterallen Moves.
Der Nachteilbei einemSwap Move liegt auf der Hand: Wenn die Prioritat
derFarbanderungsminimierungsehrhochist,dannfuhrtdieserMoveoftzu
einer Verschlechterung der Losung, da ein Block von gleichfarbigen Nodes
somitunterbrochenwirdundzweiFarbwechsel dazukommen.
Beispiel
InderAusgangslosungbesitzendieKnoten1,2,3,4und7dieselbenFarben.
EsgibtinsgesamtzweiFarbwechselinderSequenz,namlichzwischen4und
5,undzwischen6 und7.(Abb. 9)
Abbildung9:Ausgangslosung
NunvertauschenwirdiebeidenKnoten2und6unddieresultierendeLosung
hatvier Farbwechsel, da die lange gleichfarbige Sequenzvon 1 bis 4 unter-
brochenwurde.(Abb. 10)
WenndiePrioritatderFarbanderungsminimierunggeringist,soist esnicht
sehrstorend,wennzusatzlichein paarFarbanderungendazukommen, wenn
VerhaltnisconstraintsVerletzungendafureliminiertwerden.
5.4.2 Block Move
Der Block Move wurde eingefuhrt, um die Schwachstelle des Swap Moves
auszubessern.EinBlockMove verschiebtimmer einen Block von aufeinan-
derfolgenden Nodes an eine Position zwischen zwei anderen Blocken. Was
ist nun einBlock?
Wennwiretwas
uberdieNachteiledesSwapMovesnachdenken,dannkom-
menwiraufdieIdee,gleichfarbigeNodeszueinemBlockzusammenzufassen.
Erist einfach eine beliebiglange Sequenz von aufeinanderfolgenden gleich-
farbigen Nodes, sofern die maximale Farbblockgrenze nicht
uberschritten
wird.
Ein Block selbst ist fur den Block Move eine atomare Einheit, die nicht
zerstort werden kann. Bei einem Block Move verschieben wir einen Block
von gleichfarbigen Nodes auf eine Position, wo keine Blocke unterbrochen
werden (d.h. zwischen zwei Blocke, auf die Anfangsposition oder auf die
Endpositionder Sequenz).Dadurch kann ein Block Move die Farbwechsel-
AnzahlineinerLosungnieverschlechtern. EinBlockMove istnurausfuhr-
bar,wenndieMobilityallerNodeseines Blocks auf highgesetztist.
Bemerkung: Ein Block Move verschiebt einen Block an eine Position, ver-
tauscht aber keine zwei Blocke miteinander. Eine Vertauschung von zwei
Blocken kannnurals zweigetrennteBlock Moves realisiertwerden.
Beispiel
InderAusgangslosungexistierendreiBlocke:Knoten1 bis4,5 bis6 und7
bilden jeweils einen Block. Es gibt wie im vorigen Beispiel zwei Farbande-
rungen.(Abb. 11)
Abbildung11:Ausgangslosung
benBlock2 aufdieAnfangsposition.Esist abhangigvonderBetrachtungs-
weise). Als Resultat erhalten wir eine Losung mit einem Farbwechsel und
dieBlocke 1und3 ausAbbildung11 werden sofort zusammengeschmolzen.
(Abb.12)
Abbildung12: Losungnach dem BlockMove
Wenn die Prioritat der Farbanderungsminimierung sehr hoch ist, erreicht
dieserTypvonMovessehrschnelleinengutenWertinderZielfunktion,da
erauerstschnelldieAnzahlderFarbanderungenaufdasMinimumbringt.
DerNachteilanBlockMovesbestehtdarin,dassnichtdergesamteLosungs-
raumdurchforschtwird.SieverkleinernsogardenaktivenSuchraumimmer
weiter, da Blocke zusammengelegt werden. Um auf ein globales Optimum
kommenzu konnen, mussenzumindest BlockMovesmitSwapMoveskom-
biniertwerden.
5.4.3 Nuke Move
Der Nuke Move dient im Grunde nur dazu, aus einem lokalen Optimum
wieder herauszuspringen. Dabei ordnet er die Reihenfolge aller Nodes in
einemBetrachtungsraumzufalligum.
EsgibtzweiVariantenvonNukeMoves:
1. Er tauscht nurNodes gegen andere aus, die dieselbe Farbe besitzen.
Diese Variante konnte eingesetzt werden,wenndie Anzahlder Farb-
wechselzufriedenstellendistundderBenutzer nurdieVerhaltniscons-
traintsVerletzungenumordnen mochte.
2. Erignoriert die Farben undvertauscht beliebigeNodes. D.h. allebe-
troenenNodeswerdenrandomisiert.
NukeMovessindnurmanuellausfuhrbar,oderkonnendurchdenScriptMo-
de(aufdenspatereingegangenwird)ausgelostwerden.DieshabenTestlaufe
ergeben,woNukeMovesabundzuautomatischausgelostwurden.Nachei-
nem solchen Move verschlechtert sich in der Regel die Losung drastisch,
kommenkann.SomitbringendieseMovesimautomatisiertenBetriebleider
sehrwenig,dademComputerdieIntuition fehlt,wann dieserMovesinnvoll
eingesetztwerdensoll.
5.4.4 Sort Move
Beieiner Instanz,wo dieFarbanderungsminimierunginVordergrundsteht,
konnte esebensosinnvollsein,die NodesvonvornhereinnachihrenFarben
zusortieren.DaswareeineinzigerMove,derdieAnzahlderFarbanderungen
aufein Minimumbringen wurde.Bei BlockMoves wurdeeslangerdauern.
Andererseitskonnteeine soschnelleKonvergenz dazufuhren,dass dasglo-
bale Optimum schwerer erreicht wird. Genau aus diesem Grund ist dieser
Move ebenfalls nur manuell oder durch den Script Mode auslosbar. In der
Regel ist es in einem automatischen Betrieb besser, den Computer Block
Moves benutzen zu lassen,umdieAnzahlderFarbanderungen zusenken.
Technisch gesehen wurde der Sort Move mit einem Insertion Sort imple-
mentiert, dergrobgesagt nach demFarbwertsortiert.InsertionSort istbei
vorsortierten Datensatzen, die bei annahernd optimierten Autosequenzen
auchgegeben sind,sehrschnell,deshalbwurde dieserausgewahlt.
AufeineSachemusstenochgeachtetwerden,namlichaufdiemaximaleFarb-
blockgrenze.Es reicht nicht, einfach alle Nodes blind nach ihrem Farbwert
zusortieren.AngenommendiemaximaleFarbblockgrenzewarezehnunddie
Sequenz,diemitSortMovesortiertwerdensoll,enthaltzwolfNodesmitder-
selben Farbe, dannwurden am Ende nach einem einfachen Sortiervorgang
allezwolf Nodes zusammen liegenund somit die maximale Farbblockgren-
ze
uberschritten (das wurde die Losung ungultig machen, da die maximale
Farbblockgrenzeauf jedenFall eingehalten werden muss).
Es ist daher notwendig, die Farbwerte vor dem Sortieren so zu alternie-
ren, dass danach garantiert eine gultige Losung entsteht.Angenommen die
maximale Farbblockgrenze ware s, dann wurden die ersten s Nodes einer
bestimmten Farbe in der zu sortierenden Sequenzihren Farbwert f beibe-
halten.Der Farbwert dernachsten sNodesmitderselbenFarbe mussdann
auff+Hgeandertwerden,wobeiHeineausreichendgroeZahlist,sodass
f+HeinennichtvorkommendenFarbwertdarstellt.FurHkanneinfachdie
AnzahlderverschiedenenFarbenimProblemgewahltwerden.Dienachsten
sNodesbekommendanndie Farbe f+2H,usw.
Dadurchwird garantiert, dass zwischendenBlocken dergleichfarbigen No-
desimmermindestenseinNode mitandererFarbesteht.Fallszwischenden
NodesmitderFarbef+iH undf+(i+1)H keineandereFarbevorkommt,
geschieht auchdurchFarbwertanderung.
5.5 Die Rolle des Searchadjusters und des Movegenerators
Der Searchadjuster hat die Funktion, den Suchraum zu beeinussen. Dies
istindieserApplikationbesonderswichtig,dasowohlLosungsraumalsauch
SuchraumproIteration extremgrosind.
DerLosungsraumbestehtausallenPermutationendernNodesimProblem,
somitliegt seineDimensioninO(n!).
Der Suchraum pro Iteration besteht aus allen moglichen Moves, die aus-
gefuhrtwerdenkonnen.WennwirdenNukeMove unddenSortMoveweg-
lassen, die nur manuell aufrufbar sind, dann bleiben noch der Swap Move
undder BlockMove ubrig.
Der Suchraum von Swap Move ist recht leicht zu erfassen. Wenn in der
Losung nNodes vorkommen undjeder mitjedem vertauscht werden kann,
dannliegtdieDimensioninO(n 2
).
Der Suchraum von Block Move ist hingegen losungsabhangig, da die An-
zahl der Blocke sehr unterschiedlich sein kann. Bei einem Problem, wo die
Minimierung der Farbwechsel im Hintergrund steht, kann die Anzahl der
Farbblocke durchaussehr hoch sein. Wennbdie AnzahlderFarbblocke ist,
dannliegtder Suchraumvon BlockMove inO(b 2
),da jeder Block auf eine
PositionzwischenzweiBlocken wandern kann.
InSummeergibt dasdieDimensionO(n 2
+b 2
), wobeib2O(n) gilt.
AlsVergleichswertbetrachtenwirdasvorherschonerwahnteVier-Positionen-
Labeling-Problem: Dort hat jeder Node funf Zustande (der funfteZustand
istderunplazierteZustand),waseinenLosungsraumvonO(5 n
)ergibt,wenn
dieAnzahlder Labelsn betragt.Der einzige Move, derdort implementiert
ist, besteht darin, ein Label auf eine andere Position umzuplazieren. Der
SuchraumproIteration ist dadurchauf O(5n)beschrankt, wassogar linear
ist.
AusdiesemGrundmussderSuchraumsinnvolleingeschranktwerden,wenn
derTabuAlgorithmusbeieinerInstanzvon
uber1000Autosnochinvernunf-
tiger Zeit ablaufen soll, da durch die interne Strukturvon HuGS der Zeit-
aufwand proMove nicht kleinist.
Der Searchadjuster zur Paintshop Applikation enthalt folgende zusatzliche
Eintrage:
Swaps: gibtan, obSwap Moves uberhauptausgefuhrt werden sollen.
werden.
Blocks:gibt an,ob Block Moves
uberhauptausgefuhrt werden sollen.
Block Size: gibt an, wie viele Block Moves pro Iteration ausprobiert
werden.
Der Movegenerator, der im Normalfall pro Iteration alle moglichen Moves
zu einerMove Listaufbaut,die dannvom Suchalgorithmusdurchgegangen
wird,beziehthierdieDaten ausdem Searchadjuster undbauthochstensso
vieleMovesauf, wiesie durch dieseParameter angegeben sind.
Wenn z.B. die Swap Size auf 1000 eingestellt ist, gibt der Movegenerator
nur1000 zufallige Swap Moves desgesamten SuchraumsindieMove List.
MitHilfedesSearchadjusterunddesMovegeneratorsschaendieSuchalgo-
rithmenineinemZeitintervalimmereine annahernd konstanteAnzahlvon
Suchiterationen, egal wie gro die Probleminstanzen sind. Es ist naturlich
immer noch von der Anzahl und von der Lange der Verhaltnisconstraints
abhangig,wieschnell einMove durchgefuhrtwerden kann.
5.6 Script Modus
Dabeider
"
ROADEF Challenge2005\ menschlicheInteraktioninderOpti-
mierungsphasenichtvorgesehenist,musseinScriptModuseinenTeildieser
Aufgabe
ubernehmen.Erhat zwei Aufgaben:
AufzeichnungvonAktionen,diederBenutzerwahrendeinerOptimie-
rungsphaseausfuhrt, angelegen und dannin einer Script Datei spei-
chern.
DieScript Dateiladen unddie aufgezeichneten Aktionenausfuhren.
Damit die Aufzeichnung uberhaupt funktionieren kann, ist das gesamte
Script Konzept in die HuGS Visualization integriert. Die Methoden, die
durch menschliche Interaktion aufgerufen werden, zeichnen die aufgerufe-
nen Aktionen auf. Dabei wird eine Logger Klasse angelegt, die die Auf-
zeichnungen mit einem Timestamp ausstattet. Beim Speichern der Script
Kommandosschreibt dieLogger Klasseall ihreInhalteineineDatei.
WenneineScriptDateigeladenwird,legtdieEinleseroutineproKommando
einAktionsobjektan. JedesAktionsobjektverfugt
uberfolgendeDaten:
Timestamp:enthaltdieZeitangabeinSekundennachProgrammstart,
wann dieAktion ausgelost werden soll.
tion ist. Typen sindz.B. Markierung, Aktivierung eines Moves, Pro-
zessterminierung,etc.
Parameter: Jenach Aktionstyp sindeinige oder gar keine Parameter
erforderlich. Bei einer Markierung muss z.B. immer angegeben sein,
von wo bis wo die Nodes markiert werden sollen. Bei der Prozesster-
minierungsindgarkeine Parameternotwendig.
Pointer auf das nachste Aktionsobjekt: Um denSpeicheraufwand ef-
zient zu halten, werden nur so viele Objekte wie notig erzeugt und
jedesObjekt wirdmitdem nachsten verkettet. BeimDurchgehen der
Objektkette kann immernurdasersteObjekteine Aktion auslosen.
D.h.ObjektO
i
vorObjekt O
j ) O
i
.TimestampO
j
.Timestamp.
Ineinem Thread,derjede Sekundeein Malausgefuhrt wird,vergleicht der
ScriptModus die momentane Zeit mit dem Timestamp desersten Aktion-
objekts. Sinddiese beide gleich, wirddie Aktionaufgerufen, die im Objekt
angegeben ist.DabeiwerdengenaudieMethodeninderVisualisierungaus-
gefuhrt,diedenEintragim Logger verursacht haben.
Es ist
ubrigens nicht notwendig, die Script Datei mittels Logger abzuspei-
chern. Der Benutzer kann diese auch direkt editieren. Der Script Modus
versteht folgendeKommandos:
start:StartetdenOptimierungsprozess.
stop:BeendetdenOptimierungsprozess.
mark <anfang> <ende>:MarkiertalleNodeszwischen<anfang>und
<ende>.
clearmark:Hebtdie Markierungwiederauf.
setmobility <wert>: Setzt die Mobility der markierten Nodes auf
<wert>. Dabei ist <wert> eine Zahl aus 0, 1 und 2, wobei 0 low, 1
mediumund2 highbedeutet.
swapmove <pos1> <pos2>:FuhrtdenSwapMovezwischendenNodes
ande Position<pos1>und<pos2>aus.
blockmove <anfang> <ende> <zielpos>:FuhrtdenBlockMove fur
den Block aus, der alle Nodes zwischen <anfang> und <ende> nach
Position<zielpos>verschiebt.
zwischen<anfang> und<ende>nach ihrerFarbesortiert.
nukemove:FuhrtdieersteVariantedesNukeMovesaus,deralleNodes
zwischen<anfang>und<ende>beliebigvertauscht,wobeidiefarbliche
Anordnungnicht zerstortwird.
randomize <anfang> <ende>: Fuhrt die zweite Variante des Nuke
Moves aus, der alle Nodes zwischen <anfang> und <ende> beliebig
vertauscht,wobeidiefarbliche Anordnung zerstortwird.
set swaps <wert>:Setzt denParameterim SearchadjusterfurSwap
Moves auf <wert>. Ist <wert> gleich 0, so werden
uberhaupt keine
SwapMovesausgefuhrt.AnsonstenfuhrtderSuchalgorithmusproIte-
rationimmer<wert>Swap Movesaus.
set blocks <wert>:SetztdenParameterimSearchadjusterfurBlock
Moves auf <wert>. Ist <wert> gleich 0, so werden
uberhaupt keine
BlockMovesausgefuhrt.AnsonstenfuhrtderSuchalgorithmusproIte-
rationimmer<wert>BlockMoves aus.
save <datei>:SpeichertdiemomentaneLosunginderVisualisierung
in<datei>ab.
exit:Terminiert diePaintshopApplikation.
EinKommandomuss immerfolgendeForm besitzen:
<Time> <Command> [Param1] [Param2]...