• Keine Ergebnisse gefunden

ROADEF Challenge 2005\ ermoglichte undfur Fragen bezuglich derAuf- gabenstellungimmeroenstand.DankgiltauchRobertNickelfurdieHilfe- stellungzudiesemThema.EbenfallsbedankeichmichbeiMarkusChimani fur die technische und inhaltliche Unterstutzung bei der

N/A
N/A
Protected

Academic year: 2022

Aktie "ROADEF Challenge 2005\ ermoglichte undfur Fragen bezuglich derAuf- gabenstellungimmeroenstand.DankgiltauchRobertNickelfurdieHilfe- stellungzudiesemThema.EbenfallsbedankeichmichbeiMarkusChimani fur die technische und inhaltliche Unterstutzung bei der"

Copied!
73
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

(2)

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.

(3)

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

(4)

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

(5)

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-

(6)

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

(7)

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.

(8)

"

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.

(9)

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

(10)

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.

(11)

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

(12)

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

(13)

_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

(14)

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;

(15)

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

(16)

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.

(17)

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

(18)

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.

(19)

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

(20)

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

(21)

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.

(22)

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-

(23)

Aufgabenstellung derArbeitdarstellt, wird auf dieseLosungsansatze nicht

weitereingegangen.

(24)

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

(25)

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-

(26)

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.

(27)

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-

(28)

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:

(29)

"

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-

(30)

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.

(31)

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

(32)

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-

(33)

Startpunktist dasschwarze QuadratinderMitte.

Abbildung7:Delivery Applikation(Quelle:[4 ])

(34)

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.

(35)

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:

(36)

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:

(37)

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.

(38)

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

(39)

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,

(40)

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,

(41)

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.

(42)

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.

(43)

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.

(44)

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]...

Referenzen

ÄHNLICHE DOKUMENTE

Weitere Informationen zur Pr¨ ufung entnehmen Sie bitte der Vorlesungshomepage

lenz uge unter der H ullkurve propagieren niht relativ zur H ullkurve: Phasengeshwindigkeit

Aus diesen beiden B¨uchern (sowie ab Mitte M¨arz auch aus weiteren gerade entstehenden) stammen die im Unterricht gemeinsam von uns durchgenommenen 16 Beweise sowie die ersten vier

Abgabe bis Do, 30.10., 12 Uhr Aufgabe 1 zur Bearbeitung in der ¨ Ubung Aufgaben 2-4 zur selbst¨ andigen Bearbeitung. Im Folgenden sei K stets ein angeordneter

[r]

(2 Punkte) (c) Skizzieren Sie, wie eine passende Aufteilung der z-Ebene aussehen k¨ onnte, damit alle Punkte innerhalb eines Teils der z-Ebene zu genau einem Riemannschen Blatt der

In der Regel werden neue F¨ alle immer dann ins System eingef¨ ugt, wenn ein Benutzer eine Abweichung vornehmen will und kein f¨ ur eine Wiederverwendung geeigneter Fall im

An die Quellensektion schließen zwei direkt aneinander gekoppelte RFQ-(Radio-Frequency-Quadrupole)-Resonatoren mit einer Gesamtl¨ange von 6 m an, die die Ionen auf 0.5