previous up next
Foregående: Litteratur Op: FAMØS, maj 1996 Næste: Litteratur

Global Optimering 1

Carsten Svaneborg E-post: zqex@@fys.ku.dk

Problem

Et typisk ``besværligt'' problem er travelling salesman problemet (TSP), hvor en handelsrejsende skal besøge N byer, på en sådan måde at den handelsrejsende rejser den korteste/hurtigste rute, og starter fra og slutter i sin hjemby, i realistiske problemer vil der envidre være ekstra betingelser, fx at kun visse byer er forbundne, eller der er fartbegrænsninger på vejen mellem byerne, eventuelt skal lasten omlastes for at kunne transporteres ad visse veje, eller der er køretids bestemmelser, eller der er morgen/aften trafik der skal inkluderes. Der er en simplifikation af problemet, som folk der indsamler mælk, planlægger bus/fly/færge ruter, shipping agenter, programmer der laver printplader eller chips, eller bil fabrikanter, og mange andre skal løse.

Billede Billede Billede Billede Billede

Figur: En TSP serie på 100 byer. Byerne er tilfældig fordelt

TSP er et af mange, hvor man ønsker at finde det globale minimum for en eller anden ikke linær funktion, der afhænger af mange (evt. diskrete) variable, og som regel vil der være få eller kun ét globalt minimum, og mange lokale minimaer, så de kan ikke løses analytisk, og mange er så komplekse, at de ikke engang kan løses på en computer inden for en realistisk tidshorisont. Det gælder problemer, hvor antallet af udregninger tex2html_wrap_inline1752 tex2html_wrap_inline1754 eller N!, hvor N er ``størrelsen'' af problemet. Da det umuligt at finde den bedste løsning, søger man istedet efter én god løsning inden for en rimelig tid. Jeg vil her præsentere to algoritmer af typen ``guided random search'' til at finde globale minimummer; simuleret udglødning, og genetiske algoritmer, der af naturen er opfundet hhv. i fysik og biologigif.

Billede Billede Billede Billede Billede

Figur: En TSP serie af 100 byer, der ligger på et gitter.

Simuleret Udglødning

Lad tex2html_wrap_inline1760 være en tilstand af systemet, og tex2html_wrap_inline1762 mængden af et systems tilstande. For en given tilstand tex2html_wrap_inline1760 definer tex2html_wrap_inline1766 naboklassen tilgif tex2html_wrap_inline1760 . For TSP med N byer er antallet af tilstande tex2html_wrap_inline1776 , og en tilstand er af formen tex2html_wrap_inline1778 , der fortæller i hvilken rækkefølge byerne skal besøges, og tex2html_wrap_inline1780 .

Naboklassen kan fx defineres som en ombytning mellem det i'te og j'te element i tilstandsvektoren, hvor i og j er tilfældigt valgte, men intuitionen er, at der skal mange heldige ombytninger til, at løse en rute, der fx krydser sig selv, en bedre defination er blokinversion, hvor en del af ruten besøges i bagvendt rækkefølge, og blokflytning hvor en del af ruten, bliver flyttet til et tidligere/senere sted i rejseplanen.

Det er vigtigt at bruge intuitionen når naboklassen defineres, så den er skræddersyet til problemet, der skal løses, intuitionen for TSP er, at der er praktisk at den næste by altid er i nærheden, så man ikke skal over åen for at hente vand, blokflytning er designet til at løse det problem, og et andet problem er krydsende ruter, idet en ikke krydsende rute altid vil være kortere, og det er klart at to vilkårlige tilstande kan forbindes ved succesive blokinversioner og blokflytninger, så hele tilstandsrummet kan nås fra en vilkårlig starttilstand.

Lad tex2html_wrap_inline1790 være positionen på den n'te by, vi kan så definere en fejl eller energi funktional ved

equation621

Hvor d er et passende mål for afstanden, fx euklidsk afstand, tiden det tager - eller energien det kræver, at komme fra by i til j. Eventuelle ekstra betingelser af formen tex2html_wrap_inline1800 , kan klares ved at addere et straffeled af formen tex2html_wrap_inline1802 , som hæver energien af tilstande, der ikke opfylder betingelserne, tex2html_wrap_inline1112 er en (Lagrange Multiplier) parameter, der bestemmer hvor streng betingelsen skal opfyldes.

Algoritmen (forslået af Metropolis et al. i 1953) er som følger:

1 n=0; Start med et tilfældigt valgt tilstand tex2html_wrap_inline1806 .
2 :loop
3 Vælg en tilfældig nabo tex2html_wrap_inline1808 .
4 Sæt tex2html_wrap_inline1810 med sandsynelighed
tex2html_wrap_inline1812
ellers tex2html_wrap_inline1814
5 n=n+1; if not færdig then goto loop.

I algoritmen er tex2html_wrap_inline1816 den sandsynlighedsfordeling, som man ønsker at sample tilstandsrummet med, og T en kontrolparameter, der bruges til at drive algoritmen mod den ønskede sluttilstand, i en fysisk simulation, hvor man ønsker at finde grundtilstanden, er T temperaturengif, og tex2html_wrap_inline1822 , fordi tilstandene da vil være Boltzmann fordelt, og når man sænker temperaturen vil sandsyneligheden for at finde systemet i minimums energitilstande vokse, da alle andre tilstande vil være eksponentielt undertrykte, man vil da vælge tilstanden med tex2html_wrap_inline1824 , hvor tex2html_wrap_inline1826 , og oftest kan tex2html_wrap_inline1828 findes uden at beregne den totale energi, og derved bliver algoritmen meget mere effektiv.

Mens algoritmen kører sænkes temperaturen gradvist, tex2html_wrap_inline1830 er temperaturen ved n'te iteration, skal algoritmen køre N iterationer kan tex2html_wrap_inline1830 fx vælges som tex2html_wrap_inline1838 eller tex2html_wrap_inline1840 , parametrene estimeres fra at tex2html_wrap_inline1842 start temperaturen skal være sammenlignelig med den største energibarriere, og tex2html_wrap_inline1844 skal være af samme størrelsesorden, som den mindst mulige energi. Men en effektiv adaptiv annealing schedule kan findes, givet ved termodynamiske størrelser, der kan udregnes samtidigt med at algoritmen kører (konstant termodynamisk hastighed)gif.

Algoritmen vil, hvis den finder et lokalt minimum, have en vis sandsynelighed for at krydse energibarrieren til et bedre (måske globalt) minimum, hvis man ikke køler for hurtigt, dvs. hvis algoritmen er i et lokalt minimum skal temperaturen holdes over den energibarriere, der er omkring minimummet.

Simuleret udglødning er inspireret af statistisk fysik, der er i sving bl.a når fysiske systemer afkøles, hvis tex2html_wrap_inline1846 vil det være en tilfældig søgning og sandsynligheden for at finde et globalt minimum er minimal, men ved høj temperatur kan alle energibarriere krydses, hvis tex2html_wrap_inline1848 (Quenching) vil algoritmen blive fanget i det første minimum den finder (sandsyneligt et lokalt energiminimum), det svarer til en hærdningsprocess, fysisk svare det til en pludselig afkøling af smeltet metal, hvorved det bliver meget stift men sprødt, pga. den polykrystalinske struktur det får, en langsom afkøling vil give systemet tid til at finde et globalt minimum, det svare til metallet er et perfekt krystal, hvor metallet vil være elastisk og deformerbart.


previous up next
Foregående: Litteratur Op: FAMØS, maj 1996 Næste: Litteratur

famos@math.ku.dk
Thu May 30 23:14:01 MET DST 1996