Løsigsforslag: Deloppgave om heuristiske søkemetoder 6. mai 00 Iledig Vi skal betrakte det såkalte grafdeligsproblemet (graph partitioig problem). Problemet ka ekelt formuleres som følger: Gitt e graf G V E der V er settet av oder og E settet av kater. Grafdeligs-problemet består å i å fie disjukte subsett av oder fra V slik at atall kater med oder i ulike subsett blir miimalt. Det balaserte grafdeligsproblemet (balaced graph partitioig problem) består i å gjøre e slik idelig av oder der forskjelle i kardialitet mellom det største og det miste subsettet er maksimalt 1. Når vi deler grafe i to subsett kalles gjere problemet grafbiseksjoproblemet evt. grafbipartisjosproblemet. Det er dette problemet vi skal ta for oss i dee oppgave. Figure uder viser grafe vi ved flere alediger tok for oss i forelesigee. Tallee ved hver ode er dee odes av eller etikett. I dee grafe er det lett å se at dersom vi velger subsettee 0,1,5,6 og,3, utgjør disse subsettee av oder e grafbipartisjo for grafe i figure. Vi vil lage e algoritme for grafbipartisjo basert på tabusøk. Dersom grafe består av oder sier vi at e mulig løsig s er et biært -tuppel. Løsige s 1100011 (der altså er 7) beskriver bipartisjoe for grafe over. Dersom elemet k i løsige er 0 tilhører ode k det ee settet, er k lik 1 tilhører ode k det adre settet. For at e løsig s skal være gyldig må vi i tillegg kreve følgede: Dersom er et oddetall: 1 s i i 0 1 eller 1 s i i 0 1 og 3 (1) 1
0 1 6 5 3 Figur 1: Eksempel fra forelesigee. og dersom er et partall: 1 s i i 0 og () Disse betigelsee sørger for at forskjelle i kardialitet mellom det største og det miste subsettet blir maksimalt 1. Løs følgede oppgaver på bakgru av dee iformasjoe: Deloppgave a Uiverset består av alle biære -tupler som tilfredsstiller ligig 1 eller. Hvor mage slike -tupler fies det for e gitt. Løsigsforslag deloppgave a La oss ta for oss de to tilfellee at er et oddetall og er et partall separat. Ata først at er et partall: I dette tilfellet må alle løsiger tilfredsstille ligig, det vil si at -tuplet må bestå av like mage elemeter med verdie 0 som med verdie 1. For e gitt fies det eksakt: mulige slike løsiger. Observer følgede: løsigee opptrer i par ettersom rollee til ullere og eere ka byttes om. For eksempel beskriver -tuplee (med 8) 00001111 og 11110000 de samme løsige, det vil si at de samme odee igår i hvert av de to subsettee. Derfor ka ma si at atallet (3)
mulige grafbipartisjoer er halvparte av atallet biære -tupler som tilfredsstiller ligig () slik at atallet bipartisjoer må agis som: 1 Her spørres det imidlertid om atallet biære -tupler som tilfredsstiller ligig (). Ata å at er et oddetall: I dette tilfellet må alle løsiger tilfredsstille ligig 1. For e gitt fies det eksakt: 1 1 1 mulige slike løsiger (ok e gag opptrer løsigee i par som forklart over) Deloppgave b Ata at aboee til e gitt løsig s består av alle ordede -tupler s slik at hammigavstade mellom s og s miimalt er 1 og maksimalt er, det vil si: d ham s s 1 eller d ham s s (6) Hvor mage aboer har løsige s for e gitt? () (5) Løsigsforslag deloppgave b La oss ta for oss de to tilfellee at er et oddetall og er et partall separat. Ata først at er et partall: I dette tilfellet vil løsigee s som utgjør abolaget til s være alle de løsiger som har hammigavstad lik til de eksisterede løsige s. Disse løsigee framkommer ved å la e vilkårlig 1 i s bytte plass med e vilkårlig 0 i s. Det fies i alt 0-elemeter og tilsvarede 1-elemeter så vi har i alt: aboer. (7) 3
Ata å at er et oddetall: I dette tilfellet vil løsigee s som utgjør abolaget til s være alle de løsiger som har hammigavstad lik ete 1 eller til de eksisterede løsige s. Løsigee med hammigavstad lik 1 til de eksisterede løsige framkommer ved å la et 0-elemet bli et 1-elemet dersom i 0 1 1 s i 1 og ved å la et 1-elemet bli et 0-elemet dersom i 0 s i 1. Det fies i alt 1 løsiger som har hammigavstad lik 1 til de eksisterede løsige s. Løsigee med hammigavstad lik til de eksisterede løsige framkommer som før ved å la et vilkårlig 1-elemet i s bytte plass med et vilkårlig 0- elemet i s. Det fies i alt 1 elemeter av de ee type (ete 0 eller 1) og 1 elemeter av de adre type slik at det i alt fies 1 1 elemeter med hammigavstad lik til de eksisterede løsige s. Alt i alt har derfor s: aboer. Deloppgave c 1 1 1 1 Skriv pseudokode for e algoritme som løser grafbipartisjosproblemet basert på tabusøkstrategie. Du ka ata at følgede fuksjoeer er gitt: N=GraphPart(s,L), som tar e gitt løsig s samt tabuliste L som argumet og returerer aboee til s utatt de som er på tabuliste L. C=cGraphPart(s,G), som tar e løsig s og grafe G som argumet og som returerer løsiges kostad (kostade ved e løsig er atall kater med e ode i hvert av de to settee). tabugraphpart(s1,s,l) som legger edrige som skal til for å edre løsige s1 til s i i e tabuliste L med gitt legde. Forklar hvorda algoritme virker. (8) Løsigsforslag deloppgave c Løsigsstrategie vår er som følger: 1. Velg e vilkårlig løsig s som tilfredsstiller ligigee (1) eller () avhegig om er et oddetall eller et partall. Dette er vår opprielige løsig X. Dette er også vår opprielige beste løsig X opt.
. Beytt C=cGraphPart(X opt G) til å berege kostade assosiert med X opt. Dette er vår opprielige C opt. 3. Beytt fuksjoe N=GraphPart(X,L) til å geerere alle ikke-tabu aboer til X.. Fi ved hjelp av C=cGrahPart(, ) de av aboee til X som gir lavest kostad. Kall dee løsige Y. 5. Legg edrige som skal til for å edre Y til X på tabuliste ved å kalle tabugraphpart(y,x,l). 6. Sett X Y. 7. Dersom cgraphpart(x,g) cgraphpart(x opt,g) setter vi X opt X 8. Iterer fra 3 itil det maksimale atallet iterasjoer er ådd. Med dee strategie blir pseudokode derfor som vist i figur. Merk at det selvfølgelig fies mage variater av dee og ligede strategier. Require: G i max GraphPart, cgraphpart, tabugraphpart er ekstere 1: i 0 : L 3: X e gyldig løsig s fra uiverset : X opt X 5: C opt cgraphpart X opt G 6: while i i max do 7: N GraphPart X L 8: Y de løsige fra N med lavest kostad 9: tabugraphpart Y X L 10: X Y 11: if cgraphpart X G! cgraphpart X opt G the 1: X opt X 13: ed if 1: i i 1 15: ed while 16: retur(x opt ) Figur : Pseudokode for løsig av graf bipartisjosproblemet basert på tabusøk. 5
Deloppgave d Du betrakter et problem med 37 oder. Legde av tabuliste er satt til L 10. Du har logget atallet kater mellom de to settee i partisjoe for hver iterasjo av algoritme i 500 iterasjoer. Når du plotter dette får du følgede resultat: 35 Atall kater mellom settee 30 5 0 50 100 150 00 50 300 350 00 50 500 Iterasjo Figur 3: Atall kater mellom de to settee plottet som fuksjo av iterasjo. Hva har skjedd? Hvorda ka du prøve å løse dette problemet? Løsigsforslag deloppgave d På gru av de korte tabuliste har algoritme gått i i e syklus. Det vil si at de besøker e fast sekves av mulige løsiger. Algoritme har da effektivt kjørt seg fast, og vil ikke leger kovergere mot e bedre løsig. De eeste måte å komme ut av dette problemet på er å øke legde på tabuliste. Det fies ige geerell regel for hvor lag dee må være, her må ma prøve seg fram. Er de for kort oppstår det som i dette eksemplet lett sykler. Er de for lag vil for det første eksekverigstide øke samtidig som atallet ikke-tabu løsiger blat aboee til e bestemt løsig s ka bli svært begreset. 6