Lekson 11
Korteste-ve problemet Nettverksflyt med øvre begrensnnger Maksmum-flyt problemet Teorem: Maksmum-flyt Mnmum-kutt MoD233 - Ger Hasle - Lekson 11 2
Heltallsprogrammerng Tdsplanleggng (skedulerng, schedulng) Handelsresende-problemet (TSP) Mer generelle kostnadsfunksoner Forgrenngs- og begrensnngsmetoden (Branch&Bound) MoD233 - Ger Hasle - Lekson 11 3
!! Oppgave: fnne korteste (raskeste, bllgste,...) ve fra A tl B gtt nettverk (rettet graf) Postv lengde (kostnad) på hver lenke er gtt Respektere enveskørng, fnne bllgste rettede st Eksempel: korteste rettede st fra a tl b nettverket tl høyre (a,e,b) kostnad 17 a 48 56 c 18 f 28 1 15 d 7 38 7 65 b 48 33 24 e 19 g Mange anvendelser MoD233 - Ger Hasle - Lekson 11 4
" # Fnn korteste ve fra alle noder dgraf tl gtt node r (rotnoden) Kan formuleres som mnmum kostnad nettverksflytproblem Hvordan? MoD233 - Ger Hasle - Lekson 11 5
$#%# Tlgang lk 1 på alle noder unntatt rotnoden Behov lk summen av tlgang (negert) rotnoden Kostnad lk lengden (eller resetd, - kostnad) på hver kant Mnmum kostnad flyt vl g flyt på 1 ut fra hver node Korteste ve fra vlkårlg node lgger langs et optmalt spenntre Lengden på korteste ve fra en gtt node er forskellen dual verd mellom rotnoden og denne noden 1 1 f a 56-24 -5 48 18 MoD233 - Ger Hasle - Lekson 11 6 c 28 1-98 48 7 24 1 65 d 1 38 15-55 b -33 33-4 1 e 7 1 19 g -6
Nettverksflyt-formulerng og løsnng med Nettverks Smpleksmetoden er kke den mest effektve beregnngsmessg Merkelapp (label)-baserte algortmer merkelapp-settng merkelapp-korrgerng MoD233 - Ger Hasle - Lekson 11 7
&%! Merkelapp på hver node (verdfunkson) avstand for korteste ve tl rotnoden: v, V må ha, for vlkårlg merkelapp: v r = { } { } v = mn c + v : (, ) r Bellman s lgnng Prnsppet om Dynamsk programmerng Rekurson! v f v a a 56 f 48 18 c 28 v c 48 v d 7 24 65 d 1 38 15 b 33 7 v b v e e 19 g v g MoD233 - Ger Hasle - Lekson 11 8
v r = { } { } v = mn c + v : (, ) r Korteste ve fra node tl rotnoden er karaktersert ved: {(, ) : v c v } = = + Ikke alltd tre f a 48 56 18 c 28 d 1 7 38 65 48 24 15 7 b 33 e 19 g MoD233 - Ger Hasle - Lekson 11 9
' ' vr = a 1 v = mn { c + v : (, ) } { r} 28 15 d 48 Getter på løsnng: v () r () = { } v =, r Itererer fram bedre tlnærmnger, helt tl ngen endrng sker: v ( k + 1) r = ( k + 1) ( ) 24 56 { k } { } v = mn c + v : (, ) r f 18 c 48 7 24 65 38 b 33 7 33 Antall terasoner: O( ) e 19 g MoD233 - Ger Hasle - Lekson 11 1
( Vktge datastrukturer: v, noder som har fått rktg merkelapp ( ferdge ) h, merkelapper neste node korteste ve a 56 48 c 28 d 1 7 38 65 15 b 7 e 19 Intalserng: v () r () = { } v =, r f 18 48 24 33 g MoD233 - Ger Hasle - Lekson 11 11
( Så lenge ås { k } { } { } arg mn v : k for alle : (, ) rof hvs c + v < v så shv v c + v h 24 f a 56 48 18 c 28 48 d 7 24 65 1 38 O( log ( )) 15 b 33 7 33 e 19 g MoD233 - Ger Hasle - Lekson 11 12
$#%') Kapastetsbegrensnnger på kanter mn (, ) k k k :(, k ) :( k, ) c slk at = b, k, (, ) Nye førnger: u, (, ) 9 f MoD233 - Ger Hasle - Lekson 11 13 a 56 48 c 18 28-6 7 48 65 24 1-6 d Kan løses drekte med modfsert Nettverks Smpleks Kan reduseres tl Nettverksflyt uten begrensnnger! Skal vse Maksmal-flyt Mnmalt-kutt teoremet 38 b 15 7-2 e 19 33 g 5
? $#%') Kant (,) med øvre skranke: u, (, ) Kan omskrves ved bruk av slakkvarabel: Flytbalanse og øvre skranke: = b + = b + t = u = b t = b u + t = u b k + t = u c u, t b Fås ved å subtrahere sste lgnng b u k b c = k k = t + u MoD233 - Ger Hasle - Lekson 11 14
$#%') * # Ser på optmal løsnng for transformerte. 1. Dersom k = er dualslakken kkenegatv og k lk u : b u k b c = k k = t + u = z = y + c y = u > z = y y = k k k k k k y + c y 2. Dersom k =u er dualslakken og k lk : ( = u > = ) ( z = y + c y = z = y y ) k k k k k k y + c y MoD233 - Ger Hasle - Lekson 11 15
$#%') +!,) 3. Dersom < k <u er det postv flyt på begge kanter: ( ) < < u > z = y + c y = z = y y = k y + c = y k k k k k Gelder også motsatt ve! For optmal løsnng på orgnalt problem har v: b c = y + c y = u y + c y < < u y + c = y b u MoD233 - Ger Hasle - Lekson 11 16 k b c = u k k = t b Vl bruke dette teorem for Maksmum-flyt problem + u
#% Vktg problem Delproblem mange Nettverksflyt-problemer Svært effektve algortmer fns V skal se på vktg teorem for dette problemet: Maksmum-flyt Mnmum-kutt teoremet MoD233 - Ger Hasle - Lekson 11 17
#% # =, ( ) b s = s { s, d} b d = d u,(, ) Nettverk Klde s og sluk d Øvre begrensnnger på (noen) kanter Mål: Presse så mye flyt som mulg gennom fra klde tl sluk! MoD233 - Ger Hasle - Lekson 11 18
#% * # $- s { s, d} d Kan omformes tl Mnmum-kostnad Nettverks Flyt med øvre begrensnnger { d s } c =, (, ) (, (, ) ) = c ds = 1 u ds = b =, MoD233 - Ger Hasle - Lekson 11 19
# Et kutt er en partsonerng av nodemengden to delmengder slk at klden er den ene delmengden og sluket den andre. Kuttet representeres av den delmengden som nneholder klden. s d Et kutt C MoD233 - Ger Hasle - Lekson 11 2
# Kapasteten tl et kutt (kuttkapastet) defneres som den samlete kapasteten tl de kanter som spenner over kuttet rktg retnng. κ ( C) = u C C C C s d MoD233 - Ger Hasle - Lekson 11 21
-% C C s d = κ ( C) ds C C C C Brukbar flyt MoD233 - Ger Hasle - Lekson 11 22
#% C C s d Teorem 14.1: Maksmum-flyt Mnmum kutt Maksmum flyt er lk mnmal kuttkapastet for nettverket. ds = mn κ ( C) alle C MoD233 - Ger Hasle - Lekson 11 23
#%. C C s d ds = mn κ ( C) alle C For vlkårlg kutt C og brukbar flyt har v: = u = κ ( C) ds C C C C C C C C Nok å fnne kutt C* og brukbar flyt slk at: ds = κ * ( C ) MoD233 - Ger Hasle - Lekson 11 24
#%. C C s d ds = mn κ ( C) alle C * Vl fnne kutt C* og brukbar flyt slk at: = κ C I optmal flyt har v følge tdlgere resultat: Ser på kant fra sluk tl klde: * * * * * ds ds d = s d s < < u = y + ( 1) y y > y ( ) MoD233 - Ger Hasle - Lekson 11 25 ds * * * = + y c y * * * = + u y c y * * * < < u y + c = y
#%. s C C d ds = mn κ ( C) alle C Vl fnne kutt C* og brukbar flyt slk at: * * Defner kutt C* slk at: C { k : y * * } k ys * * * = + y c y * * * = + u y c y ds = κ ( C ) = Gyldg kutt? * * * < < u y + c = y Kanter som spenner rktg ve: = {(, ) : C * C * } Kanter som spenner fel ve: = {(, ) : C * C * } * * * * s (, ) y y < y = u c = * * * * s (, ) y y < y = c = MoD233 - Ger Hasle - Lekson 11 26
#%./ C C s d ds = mn κ ( C) alle C Vl fnne kuttsett C* og brukbar flyt slk at: * ds = κ ( C ) { : * * } k s * C = k y y * * * * s (, ) y y < y = u c = * * * * s (, ) y y < y = c = * * * * ds = = = κ (, ) (, ) (, ) (, ) u ( C ) QED! MoD233 - Ger Hasle - Lekson 11 27
1 Mange oppgaver den vrkelge verden kan modelleres som LP med heltallghetsførnger Dskrete valg, sekvenserng, kombnatorkk, logkk Tds- og ressursplanleggng, operasonsanalyse LP med heltallsførnger kalles Heltallsprogrammer Heltallsprogrammer er generelt langt vanskelgere å løse beregnngsmessg enn ordnære LP V skal se på: noen eksempler Generell løsnngsmetode: Forgrenng og begrensnng (Branch & Bound) MoD233 - Ger Hasle - Lekson 11 28
n = 1 n ma ζ = c slk at = 1 a b = 1,,m = 1,, n n = 1 n ma ζ = c slk at = 1 a b = 1,,m = 1,, n { } + I 1,,n Blandete heltallsprogrammer (Med Integer Programs MIP) Rene heltallsprogrammer (Pure Integer Programs IP, PIP) -1 programmer { } I 1,,n { } I = 1,,n { },1 MoD233 - Ger Hasle - Lekson 11 29
*' & Handelsresendeproblemet (TSP) Ruteplanleggngsproblemet (Vehcle Routng Problem, VRP) Produksonsplanleggng verksted (Job Shop Schedulng, JSS) Fly- og mannskapsplanleggng flyselskap (Arplane and crew rotaton) MoD233 - Ger Hasle - Lekson 11 3
-% Flyselskap ønsker god ressursutnyttelse Gtt rutetabell med flyvnnger (legs) ploter og kabnansatte - mannskap flyene som flyselskapet dsponerer - flåten Oppgave Lage turer, dvs. sekvenser av flyvnnger som starter og stopper på basen For flyene, slk at hver flyvnng får ett fly For mannskapene slk at hver flyvnng får ett mannskap (plot- og kabn) Sette sammen turer for fly og mannskap tl plan (for en uke) Tlfredsstller lover, avtaler, ressurstlgang Mnmere kostnader for planen MoD233 - Ger Hasle - Lekson 11 31
-% Rotasonsplan for fly/mannskap Deler opp problemet 1. Lager et stort utvalg (alle) lovlge turer 2. Setter sammen alternatve turer tl lovlg plan med mnmal kostnad MoD233 - Ger Hasle - Lekson 11 32
-% '# ##% m flyvnnger skal dekkes Har laget n alternatve tllatte flyturer Tlhørende kostnad for hver tur Koeffsenter som ser om flyvnng dekkes av tur Mengdedelngsproblemet (Set Parttonng Problem) 1 hvs flyvnng er med rute a = ellers Beslutnngsvarable 1 hvs rute brukes planen = ellers mn { } n = 1 1,,m { } { 1,,n} MoD233 - Ger Hasle - Lekson 11 33 n = 1 c c a = 1, = 1,, m,1
-% / '# # + ' m flyvnnger skal dekkes 1,,m 1,,n Har laget n mulge tllatte flyturer Tlhørende kostnad for hver tur Koeffsenter som ser om flyvnng dekkes av tur Mengdedeknngsproblemet (Set Coverng Problem) 1 hvs flyvnng er med rute a = ellers Beslutnngsvarable 1 hvs rute brukes planen = ellers mn n = 1 { } { } { } MoD233 - Ger Hasle - Lekson 11 34 n = 1 c c a 1, = 1,, m,1
-% 2 Mengdedelngs- og Mengdedeknngsproblemene er beregnngsmessg harde Lkevel kan ganske store nstanser løses eksakt Approksmasonsmetoder og heurstkker Verktøyleverandører tl flyselskap MoD233 - Ger Hasle - Lekson 11 35
1 ' '*! Handelsresende n byer 3 mnmal rundtur der hver by besøkes en og kun en gang 1 2 4 kente resekostnader 5 NP-komplett problem 6 Lar seg uttrykke som (rent) heltallsprogram MoD233 - Ger Hasle - Lekson 11 36
*! n byer {,, n 1} kent resekostnad ( avstand ) mellom byer c, =,, n 1, =,, n 1, tur fullstendg bestemt ved permutason: n 1 s = s =, s,, s ( ) ( ) = antall mulge turer: ( n 1)! 1 n 1 MoD233 - Ger Hasle - Lekson 11 37
#) 36288 1! 1 6 243292817664 2! 1 19 34149321713378436126816664768844377641568966512 5! 1 64 1! 933262154439441526816992388856266749715968264381621468592963895217599993229915689414639761565182862536979282722375825118521916864 1 16 MoD233 - Ger Hasle - Lekson 11 38
*! Beslutnngsvarable (-1 varable):, =,, n 1, =,, n 1 1 dersom by nr. følger rett etter by turen = ellers Obektfunkson: mn n 1 n 1 = = c MoD233 - Ger Hasle - Lekson 11 39
*! Førnger må skre rundtur der alle byer besøkes en og kun en gang: n 1 = n 1 = = 1 =,, n 1 = 1 =,, n 1 For hver by skal det være en og kun en utgående kant For hver by skal det være en og kun en nngående kant MoD233 - Ger Hasle - Lekson 11 4
*! / Formulerng: mn n 1 = n 1 = n 1 n 1 = = = 1 =,, n 1 = 1 =,, n 1 c mn = 1 = 1 { } slk at,1,, c Har v sett en lgnende formulerng før? Tlordnngsproblemet, som o er beregnngsmessg enkelt! Noe er galt... MoD233 - Ger Hasle - Lekson 11 41
*! / Formulerng: mn n 1 = n 1 = n 1 n 1 = = = 1 =,, n 1 = 1 =,, n 1 c 1 Førngene hndrer kke dsunkte subturer! 5 2 3 6 4 Er førngene tlstrekkelge for å skre en rundtur der alle byer besøkes en og kun en gang (Hamlton-tur)? MoD233 - Ger Hasle - Lekson 11 42
*! 2 Må legge tl subtur-ødeleggende førnger mn n 1 = n 1 = n 1 n 1 = = = 1 =,, n 1 = 1 =,, n 1 c La ( t n 1 ) = ( t =, t,, t ) = 1 n 1 3 1 2 5 = 1, = 1, = 1, 3 31 1 = 1, = 1, = 1, = 1 25 54 46 62 ( s ) 6 = ( ) = 4 6,3,1, 2,5, 4,6 g possonen tl by nr. (nvers permutason tl s) t = s = s t MoD233 - Ger Hasle - Lekson 11 43 ( t ) 6 = ( ) =, 2,3,1,5, 4,6
*! 3 Possonen tl by nr. ( t n 1 ) = ( t =, t,, t ) = 1 n 1 3 1 2 4 For en lovlg tur må v ha: = 1 t = t + 1 t t + 1 = t t + 1 n 5 6 Dette kan sammenfattes tl: t t + 1 (1 ) n Nødvendg betngelse for å unngå subturer. Tlstrekkelg? MoD233 - Ger Hasle - Lekson 11 44
*! 4 mn n 1 = n 1 = n 1 n 1 = = = 1 =,, n 1 = 1 =,, n 1 t t + 1 (1 ) n,, =,, n 1, c 1 5 2 3 6 4 Anta det fns subturer. Se på en av subturene. La r>1 være antall kanter subturen. Summerer sste førng over alle kanter subturen. V får, ved å subtrahere t for alle nodene subturen: r MoD233 - Ger Hasle - Lekson 11 45
*! 5 mn n 1 = n 1 = n 1 n 1 = = = 1 =,, n 1 = 1 =,, n 1 t t + 1 (1 ) n,, =,1,, n 1 { } + t =, t,,1 c 3 1 2 5 n 2 +n varable n 2 +2n førnger 6 4 MoD233 - Ger Hasle - Lekson 11 46
'# LP krever utgangspunktet lneær kostnadsfunkson Ofte er en lneær kostnadsmodell lte adekvat V skal se på to utvdelser fast ntalkostnad stykkevs lneær kostnad Dsse kan løses med heltallsutvdelser MoD233 - Ger Hasle - Lekson 11 47
- ' Ser på kostnadsfunkson av typen: hvs = Fast ntalkostnad c( ) = K + c hvs > Innfører bnær varabel og modfserer problemet: c( ) = Ky + c Øvre grense for! uy y {,1} Trkset brukes for hver ntalkostnad! MoD233 - Ger Hasle - Lekson 11 48
% ' Approksmerer kostnadskurve stykkevs lneært, k segmenter Dekomponerer ved å nnføre en varabel for hvert av de k lnestykker: = 1 + + k Følgende heltallsbeskranknnger skrer rktg dekomponerng: L w L w = 1,, k 1 { } w = 1, w,1 = 1,, k = 1,, k 3 L 3 Ny kostnadsfunkson: c( ) = K + c + + c 1 1 k MoD233 - Ger Hasle - Lekson 11 49 k
% ' L w L w = 1,, k 1 { } w = 1, w,1 = 1,, k = 1,, k w w = 1,, k 1 w = w = 1 L L, = 1,, k 1 w = w =, = 2,, k 1 w =, w = 1 L, = 2,, k 1 3 L 3 MoD233 - Ger Hasle - Lekson 11 5
T ma c slk at A b, har heltallge komponenter Generell, eksakt metode for løsnng: forgrenng og begrensnng (Branch & Bound) Genererer LP på en systematsk måte Løser LP-relaksason Forgrener to tlfeller Enumererngstre Avskærng Kan ta laaang td MoD233 - Ger Hasle - Lekson 11 51
- Forgrenng 1 =1 2 =4 ζ=64 Bladnode LP1 MIP1 MIP 1 1 MIP LP 1 =1.67 2 =3.33 ζ=68.33 MIP2 MIP 1 2 LP2 1 =2 2 =2.86 ζ=68.29 1 =2.6 2 =2 ζ=63.89 LP3 MIP3 MIP2 2 2 MIP4 MIP2 2 3 LP4 Inkonsstent! Begrensnng MoD233 - Ger Hasle - Lekson 11 52
- Generell, eksakt metode for løsnng av MIP Genererer LP på en systematsk måte et tre - enumererngstreet Løser LP-relaksasonen (LPR) av et MIP hver node Hvs LPR-løsnngen er heltallg, har v en brukbar løsnng og underestmat (maksmerng) for optmal løsnng Hvs kke heltallg løsnng, velges en kke-heltallg varabel og v forgrener to ved å legge på gensdg utelukkende ulkhetsførnger Hvs v får dårlgere verd på LP-relaksasonen enn beste heltallge løsnng funnet, kan v foreta avskærng (prunng) Ikke-tllatt løsnng en node gr også avskærng Enumererngstreet kan utforskes på mange måter bredde først dybde først (stort sett bedre, se boka sde 391) Det fnnes heurstkker (uformelle regler) for hvlke varabler det kan lønne seg å forgrene på MoD233 - Ger Hasle - Lekson 11 53
- Kan ta svært lang td (eksponenselt antall noder) Vktg å få fram brukbar (heltallg) løsnng tdlg søket Tdlg brukbar løsnng kan g tdlgere avskærng LPene treet fra roten og nedover er svært lke tllegg/endrng av spesell type førng: grense på varabel Kan bruke løsnng fra LPen overlggende node tl å løse LPen nneværende node raskere Læreboka sde 391 MoD233 - Ger Hasle - Lekson 11 54
Heltallsprogrammerng (M)IP Mange problemer kan formuleres som MIP Operasonsanalyse Tdsplanleggng (skedulerng, schedulng) Handelsresende-problemet (TSP) Mer generelle kostnadsfunksoner Forgrenngs- og begrensnngsmetoden (Branch&Bound) MoD233 - Ger Hasle - Lekson 11 55