MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA Profesor: Zorca Stamrovć Asstet: Mara Ivaovć Izbor predmet: 5 goda, smerov: R I (master) Semestar: zmsk, 010 Lteratura: kga Kombatora optmzaca, autor Dragoš Cvetkovć, Mraa Čagalovć, Vera Kovačevć-Vučć, Đorđe Dugoša, Sloboda Smć, Jovo Vuleta, zavač DOPIS, 1996 Uvod 1 ČAS Matematčko programrae kao oblast poče da se razva posle drugog svetskog rata mada su ek porsk radov obavle mogo rae Oblast matematčkog programraa se može podelt a learo, elearo, dskreto stohastčko programrae teoru gara Zaedčka osoba ovh oblast e da se traž tačka u ekom vektorskom prostoru koa zadovolava eka ogračea, a u koo data fukca (fukca cla) dostže ekstremu vredost Matematčko programrae sklučvo razmatra probleme u koačo dmezoalm prostorma dok su ekstremal problem u beskoačo dmezoalm prostorma predmet drugh dscpla (varaco raču, optmalo upravlae td) Learo programrae e arazvea ačešće prmevaa oblast matematčkog programraa (fukca cla ogračea su leare fukce) Nek od problema learog programraa su: Trasport problem, Problem dete (learo programrae), Problem optmalog rasporeda rade sage (dskreto programrae), Izbor borbeh sredstava, Problem pakovaa prozvoda, Dskret problem optmalog upravlaa, Problem plaraa prozvode (elearo programrae), Problem zbora proekata (dskreto programrae), Problem oročavaa ovca u bac (stohastčko programrae) Problem z voe stratege (problem Teore gara) Kombatora optmzaca e matematčka dscpla koa proučava probleme alažea ekstremh vredost fucke defsae a koačom skupu Kombatorom optmzacom se rešava problem sledećeg oblka: Dat e koača l prebrovo beskoača, dskreta skup S fukca f : S R Nać mmum fukce f a skupu S, to est rešt zadatak: m f (1) S ( ) Skup S se azva dopustv skup, a fukca f fukca cla Za tačku da e dopustvo rešee problema (1) 1 S se kaže
Potrebo e ać sva dopustva rešea * (l bar eko od h) takva da e f * = m f Takva rešea se azvau optmala rešea ( ) ( S ) Kako e f ( ) f ( ) ma = m ( problem maksmzace se svod a problem ) S S mmzace, pa e dovolo ać samo edo od ova dva problema U avećem brou slučaeva skup S e koača, pa se problem kombatore optmzace u lteratur često defše kao problem određvaa ekstreme vredost fukce a koačom dopustvom skupu Napozat prmer kombatore optmzace e Problem trgovačkog putka ko glas: Dat e skup od gradova koe trgovačk putk treba da poset tačo po edaput takvm redosledom da troškov puta budu mmal Skup S če sve permutace skupa {1,,} ma h! Za datu permutacu p =,, 1 fukca cla f(p) e zbr troškova putovaa zmeđu gradova 1, 3,, 1 Cl kombatore optmzace e formrae efkash algortama za rešavae složeh problema Ukolko za dat problem e posto efksaa egzakta metoda, prstupa se prblžom rešavau pomoću odgovaraućh heurstčkh metoda Navaže stace problema (1) su problem celobroog programraa optmzaco problem a grafovma U slučau celobroog programraa S e podskup skupa Z, gde e Z skup -dmezoalh vektora sa celobrom koordatama Posebo e začaa problem learog celobroog programraa: m c T, S = { Z A b } () S u kome e A celobroa matrca dmeza m, a c b celobro vektor odgovaraućh dmeza Ukolko se u () relaksra uslov celobroost doba se problem learog programraa: m c T, X = { R A b } (3) X Efkaso rešavae problema learog programraa e od velkog začaa za rešavae problema (), er se rešavae problema celobroog learog programraa često zasva a uzastopm relaksacama uslova celobroost Probleme kombatore optmzace a grafovma se mogu prkazat kao problem celobroog programraa
1 Grafov, podgrafov, matrce cdece susedstva Graf e uređe par (X,U) gde e X koača epraza skup (če elemete azvamo čvorovma) a U e skup dvoelemeth podskupova skupa X (elemet skupa U se azvau grae) Dgraf e uređe par (X,U) gde e X koača epraza skup a U e eda od uređeh parova elemeata skupa X (ov uređe parov se azvau oretsae grae) Ako e G=(X,U) korste se ozake X=X(G), U=U(G) Prmer: X = { A, B, C, D, E, F} U = a, b, c, d, e, f, g, h,,, k { } G raf (X,U) Dgraf (X,U) Graf dgraf se predstavlau geometrskom fgurom sastavleom od tačaka la koe spaau poede parove tačaka Tačke predstavlau čvorove grafova dok le predstavlau grae grafa l oretsae grae grafa U prvom slučau le su eoretsae dok se u drugom slučau le oretšu (obeležee su strelcom) Graf oblka {a, a} odoso (a, a) se azva petla (graa koa spaa čvor sa samm sobom) Graf sa s amo edm vrhom se azva trvalm grafom ače e etrvala Graf e edostava l prost ako ema petle koe dve grae e spaau st par čvorova Ako su u grafovma (dgrafovma) dopuštee všestruke grae (dva čvora spaa vše razlčth graa), uklučuuć všestruke petle oda govormo o multgrafovma l multdgrafovma Petla Multgraf Multdgraf Hpergraf (l skupov sstem) e uređe par (X, W) gde e X epraza skup a W famla podskupova skupa X 3
Za dva čvora grafa kažemo da su sused ako su spoe graom Dva suseda čvora azvamo kram tačkama grae koa h spaa Ako e eda čvor kraa tačka zvese grae kažemo da se ta gr aa stče u tom čvoru Kažemo da su čvor graa cdet l sused ako graa poče odoso završava se u tom čvoru Bro susedh čvorova za čvor se azva stepe čvora Stepe čvora se može defsat broem graa koe se stču u tom čvoru Dve grae mogu bt susede ako mau zaedčk čvor Ako u ekom dgrafu graa u spaa čvorove kaže se da graa zlaz z čvora ulaz u čvor a čvor završ čvor grae u Za svak čvor dgrafa defše se zlaz ulaz stepe oretsaa e od ka Takođe se kaže da e Ulaz stepe čvora e edak brou graa koe ulaze u ta čvor Izlaz stepe čvora e edak brou graa koe z ega zlaze Petla se smatra ulazom zlazom graom za odgovarauć čvor, počet Neka e dat graf (l dgraf) G=(X,U) Graf oblka H=(Y,T), gde su Y X T = U Y Y ( T e podskup skupa U sadrž sve oe parove z U ko su obrazova samo od elemeata skupa Y), se azva podgrafom grafa (podgrafom dgrafa) G, obrazovam (dukovam) skupom čvorova Y Delmčm l parcalm grafom grafa (dgrafa) G=(X,U) azva se svak graf oblka H=(X,T) pr čemu e T U Delmčm grafom podgrafa azva se delmč podgraf datog grafa (dgrafa) Podgraf grafa (X,U) Delmč podgraf grafa (X,U) Ako e Y X, H se azva pravm podgrafom grafa Delmčm grafom l parcalm grafom grafa (dgrafa) G=(X,U) azva se svak graf oblka H=(X,T) pr čemu e T U Delmčm grafom podgrafa azvamo delmč graf datog grafa (dgrafa) 4
Put duže k u dgrafu e svak z graa u1, u,, uk ko ma sledeće osobe: o Graa u 1 polaz z prozvolog čvora dgrafa o Graa u (=,,k) poče u oom čvoru u ko m se završava graa u 1 Alteratvo, put može da se defše kao z čvorova kroz koe prolaz Put može vše puta da prolaz stom graom l kroz st čvor Grae ekog grafa mogu da se seku u tačk koa e čvor tog grafa Elemetar put e put ko kroz svak čvor grafa prolaz samo edom Put ko se završava u stom čvoru u kom poče azva se kruž l zatvore put Kao graa, u putu može da se poav petla U grafu se svaka graa može shvatt kao dvostrao oresaa tako da put e samo defsa zom graa ego se za svaku grau koa ulaz u posmatra put mora azačt a oretaca Za grafove se put duže k defše kao azmeč z čvorova graa u oblka 1, u 1,, u,, k, uk, k + 1 pr čemu e za =1,,,k čvor počet a čvor + 1 kra za grau u Duža puta u grafu (l dgrafu) e edaka brou graa koe se alaze u putu Rastoae čvorova y se u grafu defše kao duža akraćeg puta ko povezue ta dva čvora Nz graa koe se adovezuu eda a drugu bez obzra hovu oretacu se azva laac Cklus e laac ko se završava u stom čvoru u kome poče Prmer: Laac: Cklus: afbc, acde, AafbcdA, AdheA, Ako cklus (l laac) prolaz kroz svak čvor avše edaput, tada se ta cklus (laac) azva elemetarm Graf e poveza ako se prozvola dva egova čvora mogu povezat putem Ako postoe čvorov ko se e mogu povezat putem, graf e epoveza Nepoveza graf se sasto z vše delova koe azvamo kompoete povezaost grafa l kraće kompoete Kompoeta grafa e u stvar podgraf obrazova od oh čvorova ko se mogu spot sa čvorom putem sa čvorom uklučuuć čvor Dgraf e ako poveza ako e svak par čvorova, u 5 spoe putem ko vod z Dgraf e edostrao poveza ako e svak euređe par čvorova, bar u edom smeru poveza Dgraf e slabo poveza ako e poveza (eoretsa graf) dobe samo od datog dgrafa zameom oresah graa odgovaraućm eoresam graama
Neka su d 1, d,, d stepe čvorova 1,,, u grafu bez petl ko ma m graa Sabraem svh stepea čvorova dobamo dvostruk bro graa obzrom da svaka graa m a dva čvora Važ relaca: d1 + d + + d = m Bro čvorova eparog stepea u koačom grafu (l multgrafu) bez petl e para Graf se azva regulara stepea r ako e d1 = d = = d = r Regulara graf stepea r ma m=r/ graa Koača, poveza, regulara graf stepea zove se kotura Kotura koa sadrž sve čvorove grafa azva se Hamltoova kotura Ako kotura ma čvorova, o se mogu ozačt sa 1,,, tako da e 1 suseda sa, sa 3,, 1 sa sa 1 Prmer koture slka že: Koača regulara graf stepea ma za kompoete povezaost koture Kod dgrafa mamo oretsau koturu Oretsaa kotura se doba kada se svaka ea graa oretše tako da zlaz l ulaz stepe svakog čvora bude edak 1 Graf e acklča kada e sadrž edu koturu Dgraf e acklča kada se zostavlaem oretace graa doba acklča graf Regular grafov sa čvorova stepea -1 se azv au poptu grafov Potpu graf sa čvorova ozačava se sa K 1 Potpu grafov mau m = ( 1) = spoe graom 6 graa, to est svak par čvorova e K-kompleta graf K e graf č se skup čvorova može podelt a k međusobo 1, k dsukth pods kupova ko sadrže redom 1,, k čvorova tako da su svaka dva čvora z razlčth podskupova povezaa graom a da eda graa e povezue čvorove z stog podskupa Za k= dobamo bkomplete grafove K m, Dvodel (bpart) graf se sasto z dve grupe čvorova pr čemu grae povezuu čvorove z razlčth grupa Bpart graf se često predstavla uređeom trokom (X,Y,U) gde su X Y grupe čvorova, a U skup graa
Graf (dgraf) može da bude predstavle edom kvadratom matrcom č e red edak brou čvorova grafa Elemet a a preseku -te vrste -te koloe ove matrce e edak brou graa koe zlaze z čvora ulaze u se zove matrca susedstva grafa obeležava se sa A čvor Ova matrca Ako dopustmo da dva čvora mogu da bt spoea avše edom graom ste oretace, elemet matrce A mogu bt samo 0 l 1 Elemet matrce susedstva multgrafa su prrod broev l ula Matrca susedstva A (eoretsaog) grafa e smetrča matrca, t A T = A Neka e G=(X,U) graf gde e X={ 1,,, } U={ u1, u,, u } Matrca cdece R čvorova graa grafa G e matrca R = [ r ] gde e m r 1 ako su č vor graa u cdet, = 0 u suproto m Matrca cdece u potpuost određue graf Prmer: ( ) R G a b c d e f g 1 1 0 0 1 0 1 A = 1 1 1 0 0 0 0 B 0 0 1 1 0 0 1 C 0 0 0 1 1 0 D ( ) A G A B C D 0 1 1 A = 0 1 0 B 1 1 0 1 C 1 0 1 1 D Graf G Matrce cdece Matrca susedstva Neka e uz ste ozake e G=(X,U) dgraf pr čemu e U skup oretsah graa Matrca cdece R čvorova graa dgrafa G e matrca S = [ s ] m gde e s 1 ako graa u zlaz z čvora, = -1 ako graa u ulaz u, 0 ako u su cdet Dva grafa su zomorfa ako posto uzaamo edozačo preslkavae skupa hovh čvorova (z edog a drug) koe odžava osobu susedost čvorova Graf ko e sadrž edu koturu kao delmč podgraf azva se šuma Ako e graf uz to poveza o se azva stablo l drvo Stablo u kome e eda čvor posebo ozače azva se koresko stablo Oseče kore e kore stabla Stablo 7
Svak čvor koreskog stabla poveza e edstvem elemetarm putem sa koreom k stabla Bro graa u ovom putu defše vo čvora Kore stabla k ma vo 0 a aveć vo mau čvorov ko su od korea audale Koresko stablo se prkazue kao dgraf, t stablo sa oretsam graama Pr tome se grae oretšu od čvorova maeg voa ka čvorovma većeg voa Ulaz stepe korea e 0 dok e ulaz stepe ostalh čvorova u koreskom stablu 1 Čvorov do koh vode grae polaze z čvora azvau se sov čvora pr čemu e čvor hov otac Čvor bez dece azva se lst Pr tome e kore čvor bez oca Lstov se takođe azvau termalm čvorovma dok se ostal čvorov azvau etermalm čvorovma Ako se u koreskom stablu svak otac ma tačo dva sa oda se to stablo azva baro stablo Ako su u barom stablu sv završ čvorov stog voa, oda se to stablo azva potpuo Potpuo baro stablo ma pored voa 0 oš k ovoa pa e bro čvorova u stablu edak k k+ 1 = 1+ + + + = 1 (a svakom vou ma čvorova) Termalh čvorova ma + 1 k = dok etermalh ma k 1 1= Plaar grafov Plaar grafov su o grafov ko se mogu acrtat tako da m se grae e seku, odoso to su grafov ko se mogu predstavt tako da zaedčka tačka dve grae može bt samo čvor grafa ko predstavla zaedčku krau tačku th graa Ako e plaara graf predstavle a opsa ač u rav o del raav a vše koačh zatvoreh oblast edu beskoaču oblast (mreža puteva predstavla plaara graf) Komplemet grafa G, e graf sa stm skupom čvorova kao graf G pr čemu su dva razlčta čvora u G suseda ako samo ako su sused u G Graf bez petl se bo a ta ač tako što se svakom čvoru prdruž eka boa, t Svak čvor se bo edom boom Graf e pravlo oboe ako su svaka dva suseda čvora oboea razlčtm boama Ako graf može da se pravlo bo da se pr tom upotreb k l mae od k boa, graf e oda k-obov Hromatsk bro γ ( G ) grafa G e edak k ako e graf k-obov a e (k-1)-obov Ako e γ ( G ) =k kaže se da e graf G k-hromatsk Za k= graf se azva bhromatsk o e tada bpartt Ako graf G sadrž samo zolovae čvorove, bez graa, tada e γ ( G ) =1 (sve čvorove možemo obot stom boom) Nasuprot tome potpu graf sa čvorova ma γ ( G ) = 8
Maksmal potpu podgrafov azvau se klke grafa Za graf G se defše velča K(G) koa e edaka avećem brou čvorova ede klke Važ da e γ ( G) K( G) Težsk graf e graf kod koga svaka graa ma svou vredost (dodele o e ek bro) Drugm rečma, grafu (l dgrafu) G=(X,U) e prdružeo preslkavae ω :U R koe svako gra u U dodelue bro ω ( u) kao težu Fukcu ω azvamo težska fukca U već slučaeva teža predstavla eu dužu, propusu moć (l kapactet), ceu preosa td U opštem slučau težska fukca ω prdružue gra umesto realog broa prozvola matematčk obekat, pr Vektor Težsk graf (dgraf) G=(X,U) sa težskom fukcom ω, t uređe par (G, ω ) čes to se azva mreža Neka su u opštem slučau čvorov umersa sa 1,,, posmatramo potpu težsk graf G u koem e gra u zmeđu čvorova prdružea teža (duža) ω ( u) = d Od velče d se može formrat kvadrata matrca D = [ d ] Matrca D se azva težska matrca l matrca rastoaa Teža grafa se defše kao zbr teža graa od koh e ta graf obrazova 9
P retražvae grafova Pretražvae grafova može da se poče z ekog prozvolog čvora oblazak egovh susedh čvorova, pa zatm suseda hovh suseda tako redom dok e prosledmo sve čvorove edog grafa Uvek će se zat ko deo čvorova e pretraže za svak ared korak se određue ko će sledeć čvor bt prosleđe Pošto e ta zbor uglavom všezača mogu se uvest eka ogračea koma se regulše prortet zbora potecalh kaddata Postoe dve vrste pretražvaa grafova: Pretražvae u dubu Pretražvae u šru Za obe pretrage e karakterstčo da se oblaze sv čvorov grafa kao grae to svaka po edaput u oba smera Pretraga u dubu: Neka e X skup svh čvorova, a Y skup već prosleđeh čvorova Ozačmo sa y čvor ko e posled prosleđe Izbor aredog čvora za prosleđvae se vrš a sledeć ač: prvo se odred da l među eprosleđem čvorovma, tčvorovma skupa X/Y posto čvor suseda sa y, ako posto takav čvor, tada se među potecalm kaddatma bra blo ko od h (prosleđvae uapred) U suprotom, umesto čvora y se posmatra egov prethodk (čvor ko e pre ega prosleđe u skup Y z ega se drekto dolaz u čvor y) za ega se poavla st postupak kao I za čvor y (prosleđvae uazad) Ovm postupkom (ukolko e graf poveza) će sv čvorov grafa bt prosleđe U suprotom, kod epovezah grafova se st postupak može prmet a om podgrafovma ko su poveza Prlkom pretrage u dubu, kod povezah grafova, ako evdetramo sve grae grafa, tada te grae obrazuu razapuuće stablo Ovo stablo se azva stablom pretrage u dubu Prmer: Graf Stablo pretrage u dubu (po koracma A-B-C-D-E-D-F-D-C-G-C-B-A) 10
P retraga u šru: Poovo posmatramo skup svh čvorova X skup eprosleđeh čvorova Y Neka e skup Q skup svh eprosleđeh čvorova koma e prortet prosleđvaa rae određe Prosleđvae čvorova e sada komplkovae obzrom da se za zbor sledećeg kaddata mora kosultovat skup Q Skup Q tretramo kao red za čekae, z ovog skupa se prvo prosleđue čvor ko e aduže u redu Na početku pretrage e skup Y praza emu se prozvolo dodelue eda čvor (blo ko čvor z grafa) Sada se z skupa Q bra čvor ko e aduže u redu o se prosleđue skupu Y, pr čvor Skupu Q se a krau reda uose čvorov ko su sused sa a ko se već e alaze u skupu Q su rae prosleđe u Y Prmer: Graf Stablo pretrage u šru (po koracma A-B-C-D-E-F-G) 11