MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA

Σχετικά έγγραφα
DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

3.1 Granična vrednost funkcije u tački

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

Elementi spektralne teorije matrica

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

SISTEMI NELINEARNIH JEDNAČINA

41. Jednačine koje se svode na kvadratne

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

Teorijske osnove informatike 1

Računarska grafika. Rasterizacija linije

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

XI dvoqas veжbi dr Vladimir Balti. 4. Stabla

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI)

1. OPTIMIZACIJA NA MREŽAMA Uvod

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

III VEŽBA: FURIJEOVI REDOVI

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

Zavrxni ispit iz Matematiqke analize 1

Računarska grafika. Rasterizacija linije

Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A

IZVODI ZADACI (I deo)

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama.

Osnovne teoreme diferencijalnog računa

Operacije s matricama

Linearna algebra 2 prvi kolokvij,

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.

Ispitivanje toka i skiciranje grafika funkcija

VJEŽBE 3 BIPOLARNI TRANZISTORI. Slika 1. Postoje npn i pnp bipolarni tranziostori i njihovi simboli su dati na slici 2 i to npn lijevo i pnp desno.

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

ELEKTROTEHNIČKI ODJEL

7 Algebarske jednadžbe

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

1 Promjena baze vektora

Algoritam najbližeg suseda za konstrukciju rute trgovačkog putnika Algoritam najbližeg ubacivanja za konstrukciju rute trgovačkog putnika

Numerička matematika 2. kolokvij (1. srpnja 2009.)

numeričkih deskriptivnih mera.

2log. se zove numerus (logaritmand), je osnova (baza) log. log. log =

Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta.

4 Numeričko diferenciranje

APROKSIMACIJA FUNKCIJA

Dijagonalizacija operatora

Dvanaesti praktikum iz Analize 1

DRUGI KOLOKVIJUM IZ MATEMATIKE 9x + 6y + z = 1 4x 2y + z = 1 x + 2y + 3z = 2. je neprekidna za a =

5. Karakteristične funkcije

Univerzitet u Nišu, Prirodno-matematički fakultet Prijemni ispit za upis OAS Matematika

Riješeni zadaci: Nizovi realnih brojeva

18. listopada listopada / 13

NUMERIČKA INTEGRACIJA

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

Trigonometrijske nejednačine

Linearna algebra 2 prvi kolokvij,

1. zadatak , 3 Dakle, sva kompleksna re{ewa date jedna~ine su x 1 = x 2 = 1 (dvostruko re{ewe), x 3 = 1 + i

4.7. Zadaci Formalizam diferenciranja (teorija na stranama ) 343. Znajući izvod funkcije x arctg x, odrediti izvod funkcije x arcctg x.

RAČUNSKE VEŽBE IZ PREDMETA POLUPROVODNIČKE KOMPONENTE (IV semestar modul EKM) IV deo. Miloš Marjanović

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

TRIGONOMETRIJSKE FUNKCIJE I I.1.

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

5 Ispitivanje funkcija

Zadaci iz trigonometrije za seminar

Deljivost. 1. Ispitati kada izraz (n 2) 3 + n 3 + (n + 2) 3,n N nije deljiv sa 18.

METODA SEČICE I REGULA FALSI

SOPSTVENE VREDNOSTI I SOPSTVENI VEKTORI LINEARNOG OPERATORA I KVADRATNE MATRICE

Sume kvadrata. mn = (ax + by) 2 + (ay bx) 2.

Riješeni zadaci: Limes funkcije. Neprekidnost

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

Preda d va v nje X 1

Inženjerska grafika geometrijskih oblika (5. predavanje, tema1)

Prvi kolokvijum. y 4 dy = 0. Drugi kolokvijum. Treći kolokvijum

21. ŠKOLSKO/OPĆINSKO/GRADSKO NATJECANJE IZ GEOGRAFIJE GODINE 8. RAZRED TOČNI ODGOVORI

( ) ( ) 2 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET. Zadaci za pripremu polaganja kvalifikacionog ispita iz Matematike. 1. Riješiti jednačine: 4

Sortiranje prebrajanjem (Counting sort) i Radix Sort

Verovatnoća i Statistika I deo Teorija verovatnoće (zadaci) Beleške dr Bobana Marinkovića

( ) π. I slučaj-štap sa zglobovima na krajevima F. Opšte rešenje diferencijalne jednačine (1): min

FTN Novi Sad Katedra za motore i vozila. Teorija kretanja drumskih vozila Vučno-dinamičke performanse vozila: MAKSIMALNA BRZINA

Ministarstvo prosvete i sporta Republike Srbije Druxtvo matematiqara Srbije Prvi razred A kategorija

1.4 Tangenta i normala

Skup svih mogućih ishoda datog opita, odnosno skup svih elementarnih događaja se najčešće obeležava sa E. = {,,,... }

Matematička analiza 1 dodatni zadaci

RIJEŠENI ZADACI I TEORIJA IZ

Binarne relacije. Definicija. Uopštena binarna relacija je uredjena trojka (A, B, ρ) gde je ρ A B; (A, B) je tip ove binarne relacije.

Univerzitet u Nišu Građevinsko-arhitektonski fakultet. Informatika2. 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje.

Algoritmi i strukture podataka - 1.cas

radni nerecenzirani materijal za predavanja

PID: Domen P je glavnoidealski [PID] akko svaki ideal u P je glavni (generisan jednim elementom; oblika ap := {ab b P }, za neko a P ).

Klasifikacija blizu Kelerovih mnogostrukosti. konstantne holomorfne sekcione krivine. Kelerove. mnogostrukosti. blizu Kelerove.

Kaskadna kompenzacija SAU

GRAFOVI. Ljubo Nedović. 21. februar Osnovni pojmovi 2. 2 Bipartitni grafovi 8. 3 Stabla 9. 4 Binarna stabla Planarni grafovi 12

Matematičke metode u marketingumultidimenzionalno skaliranje. Lavoslav ČaklovićPMF-MO

ASIMPTOTE FUNKCIJA. Dakle: Asimptota je prava kojoj se funkcija približava u beskonačno dalekoj tački. Postoje tri vrste asimptota:

Elektrotehnički fakultet univerziteta u Beogradu 17.maj Odsek za Softversko inžinjerstvo

1 Afina geometrija. 1.1 Afini prostor. Definicija 1.1. Pod afinim prostorom nad poljem K podrazumevamo. A - skup taqaka

( , 2. kolokvij)

Transcript:

MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA 5. ČAS Hamiltonovi putevi i problem trgovačkog putnika problem Trgovačkog putnika predstavlja jedan od najpoznatih problema kombinatorne optimizace pripada teško rešivim problemima obzirom da je njegovo rešavanje eksponencalnog karaktera Definica: Hamiltonov put je put koji prolazi kroz sve čvorove grafa TAČNO JEDANPUT. Put koji se završava u istom čvoru a kroz sve ostale čvorove prolazi tačno jedanput naziva se zatvoren Hamiltonov put ( Hamiltonov put formira konturu koja sadrži sve čvorove grafa pa se umesto pojma Hamiltonov put češće korsiti pojam Hamiltonove konture). Graf koji ima Hamiltonovu konturu se naziva Hamiltonovim grafom. Hamilton je 856. godine predstavio problem: Trgovački putnik treba da obiđe određeni broj gradova i da se vrati na mesto polaska, tako da u toku putovanja obiđe svaki grad tačno jedanput. Sličan problem je problem Konjičkog skoka (konj kao šahovska figura): Da li je moguće skakanjem obići sva polja šahovske table tako da se svako polje obiđe tačno jedanput. Analogan problem Hamiltonovog puta je problem nalaženja Ojlerovog puta (kroz svaku GRANU grafa se prolazi tačno jedanput). Egzistenca Ojlerovog puta zavisi samo od stepena čvorova dok kod Hamiltonovog to ne mora biti slučaj. Egzistenca Hamiltonovog puta zavisi pre svega od strukture grafa i ovaj problem u opštem slučaju ne rešen. Problem trgovačkog putnika možemo da formulišemo na sledeći način: Od svih Hamiltonovih puteva odabrati onaj koji je prema zadatom kriterumu optimalan (kriterum optimalnosti može npr. biti dužina ili cena puta). Primer primene Hamiltonove putanje: Zanatsko preduzeće ima na raspolaganju n stanova u kojima mora da završi vodoinstalaterske i molerske radove. U i-tom stanu vodoinstalateri treba da rade a i a u moleri b i vremena. Kojim redosledom treba vodoinstalateri i moleri da rade kako bi se celokupna zgrada završila za što kraće vreme. o Prvi uslov koji treba ispoštovati je da vodoinstalateri treba da rade u stanu i pre nego u stanu j ako važi da je min a, b min a, b ( i j ) ( j i )

Teorema (Redei): U digrafu u kojem između dva proizvoljno izabrana čvora postoji jedna od grana ( xi, x j ) i ( j, i ) x x, postoji i Hamilton-ov put. xi i x j Teorema se može primeniti na turnire u kojima svaki tim igra sa svakim timom i ne postoje nerešeni rezultati. Na kraju turnira se takmičari mogu numerisati tako da je svaki takmičar, osim prvog, pobeđen od onog sa neposredno manjim brojem. Teorema (Redei): Ako u povezanom grafu sa n ( 3 ) čvorova za važi nejednakost d n, graf poseduje Hamiltonovu konturu. 2 stepen d svakog čvora Teorema (Dirac): Neka su x, x 2,..., x n ( n 3) čvorovi grafa G a d, d,..., 2 d n njihovi stepeni. Ako za svaka dva nesusedna čvora x i, x j važi d i + d j > n graf G sadrži Hamiltnovu konturu. n Teorema (Ore): Neka je G graf sa n ( n 3) čvorova. Ako je za svako k ( k ) 2 broj čvorova stepena ne većeg od k manji od k i ako za neparno n, broj čvorova n n stepena ne ve ćeg od ne veći od, graf G ima Hamilton-ovu konturu. 2 2

Problem trgovačkog putnika Neka je dato n gradova koje treba da obiđe trgovački putnik tako da troškovi puta budu minimalni. Postoje dve varante ovog problema:. Putnik mora da se vrati u grad iz kojeg je pošao (sedište peduzeća) 2. Početni i završni grad puta trgovačkog putnika mogu da se razlikuju. Problem Trgovačkog putnika može da se interpretira na potpu nom težinskom grafu G sa čvorovima,2,...,n i sa matricom težina (dužina) grana D = d. Obzirom da je Hamiltonova putanja put koji kroz svaki čvor grafa G prolazi tačno jednom, put Trgovačkog putnika možemo da posmatramo upravo kao Hamiltonovu put. Problem : Odrediti najkraći Hamilton-ov put (konturu) u potpunom težinskom grafu G. Problem Trgovačkog putnika rešavamo kao problem (0,) celobrojnog programiranja: min n i= j> i dx () x + x = 2 i =,2,..., n (2) ji j< i j> i x S, S X, S, S X (3) i S j S Gde je D = d (simetrična) matrica težina grana i X = {,2,..., n}. Ovde je x m n = ako i samo ako grana izmđu čvorova pripada rešenju problema, tj. najkraćoj Hamiltonovoj konturi. unkca cilja koja se minimizira u () predstavlja dužinu delimičnog podgrafa određenog vrednostima promenljivih x. Ograničenje (2) obezbeđuje da je stepen svakog čvora pomenutog delimičnog podgrafa jednak 2. Ograničenja (3) eliminišu mogućnost da se u rešenju pojavi više od jedne konture. Problem2: Za zadati potpuni težinski graf i zadati broj L utvrditi da li postoji Hamilton-ov put ča dužina ne veća od L. m n - Hamiltonov put u grafu sa n čvorova predstavlja jednu permutacu skupa,2,...,n i obrnuto, permutaca određuje Hamilton-ov put. Sada se problem { } Trgovačkog putnika može rečiti generisanjem svih permutaca skupa {,2,...,n } i izračunavanjem dužina svih Hamilton-ovih puteva i odabirom najkraćeg puta. Ovako formiran algoritam je neefikasan jer je broj permutaca n! što predstavlja eksponencalnu funkcu od n. - Za problem Trgovačkog putnika može da se formira greedy algoritam tako da Trgovački putnik posećuje onaj grad koji mu je najbliži. Međutim, mogu se

forimrati kontraprimeri kojima bi se moglo pokazati da se ovako ne dobaju uvek dobra rešenja. - Za rešavanje problema Trgovačkog putnika koristi se algoritam grananja i ograničavanja. - Metoda grananja i ograničavanja predstavlja metodu implicitne enumerace dok je metoda probanja svih permutaca ekspliticna enumeraca. Prostor mogućih rešenja se deli na manje delove (grananje) i to više puta pri čemu se pojedini delovi prostora rešenja odbacuje na osnovu procene vrednosti funkce koja se minimizira (ograničavanje). Algoritam Neka je H skup svih Hamiltonovih puteva u težinskog grafu G i neka je S skup svih razapinjujućih stabala u G. Pošto ovaj put predstavlja stablo, važi relaca H S. Problem minimalnog razapinjujućeg stabla se naziva relaksacioni problem za problem trgovačkog putnika. Problem trgovačkog putnika se može svesti na više problema nalaženja minimalnog razapinjujućeg stabla. Prvo se odredi minimalno razapinjujuće stablo u grafu G. Ako je ovo stablo put, to je Hamiltonov put i ujedno rešenje problema trgovačkog putnika. Ako dobeno stablo ne put, ono sadrži bar jedan čvor stepena većeg ili jednakog 3. Neka je čvor x stepena d (d je najmanje 3) i neka su u, u 2,..., u d grane koje se sriču u čvoru x. Bar jedna od grana u, u 2,..., u d ne pripada optimalnom rešenju problema trgovačkog putnika, ako težinu d( u ) grane u modifikujemo tako da ona postane vrlo velika i ponovo rešimo problem minimalnog razapinjujućeg stabla, grana u se neće nalaziti u tom stablu. Početni problem se iz ovog razloga može razgranati na d potproblema i u svakom od tih potproblema težina jedne od grana je postala +. Na svakom pod potproblema se može ponoviti ovaj proces. Na taj način dobamo strukturu porproblema oblika stabla. Pretraživanje stabla se dalje može vršiti u dubinu ili u širinu Ako je dužina minimalnog razapinjujućeg stabla veča od dužine rane nađenog Hamiltonovog puta, taj pozproblem se više ne razgranava obzirom da nam on neće omogućiti optimalno rešenje. Ako se u nekom potproblemu dobe Haimltonov put koji je manji od dužine rane pronađenog Hamiltonovog puta, pamti se novi put a rani zaboravlja. Kada se iscrpe svi problemi, Hamiltonov put koji je ostao zapamćen predstavlja i rešenje problema Trgovačkog putnika. Ovo su NP poptuni problemi i imaju eksponencalnu složenost.

Heuristike: Heuristika bazirana na idejama greedy algoritma ne daje optimalne rezultate. Na osnovu jedne takve heuristike, trgovački putnik treba uvek da ide u najbliži grad u kome do tada ne bio. Problem trgovačkog putnika je NP težak problem. Jedna od najboljih heuristika za ovaj problem je 3-optimalna heuristika Posmatramo problem trgovačkog putnika u kojem se traži najkraća Hamiltonova kontura u zadatom potpunom težinskom grafu. Prvo se određuje jedna Hamiltonova kontura (slučajno/proizvoljno) H. Posmatramo tri međusobno nesusedne grane uvw,, sa konture H. Udaljavanjem tih grana kontura H se raspada na tri puta P, P 2, P 3. Posmatramo čvorove,2,3,4,5,6 koji predstavljaju krajnje tačke udaljenih grana uvw,,. Ovi čvorovi se odadavanjem tri nove grane mogu na različite načine spojiti tako da se ponovo zatvori Hamilton-ova kontura. Mogući načini spajanja su: (, 2 ), ( 3, 4 ), ( 5, 6 ); (, 2 ), ( 3, 5 ), ( 4, 6 ); (,3,2,4,5,6; ) (,3,2,5,4,6; ), 4, 2, 5, 3, 6 ;, 4, 2, 6, 3, 5 ; (,5,2,4,3,6; ) (,5,2,6,3,4; ) Na ovaj način dobamo 8 Hamilton-ovih kontura. Prvi način spajanja daje ponovo konuru H. Od tih 8 kontura izaberemo onu najmanje dužine. Dobena kontura je najbolje rešenje koje se može postići polazeći od konture H i uklanjanjem grana uvw,,. Opisani postupak poboljšanja rešenja na osnovu izbacivanja tri nesusedne grane uvw,, iz konture H ponavljamo za svaki izbor grana uvw,,. Od svih tako formiranih kontura biramo onu najmanje dužine. Time se završava 3-optimalna heuristika. 3-optimalna heuristika daje dobre rezultate i ima polinomalnu kompleksnost.

PRIMER : Naći Hamiltonovu putanju minimalne dužine u grafu ako je data matrica rastojanja čvorova: 2 3 4 5 6 2 5 2 2 3 2 5 4 4 2 5 9 2 6 2 2 Rešenje: Možemo da konstruišemo graf na osnovu date matrice. Primetićemo da se ovde mogu izdvojiti cikli: -2-3 i 4-6-5 Granamo problem na 3 potproblema sa matricama: P: P2: 2 3 4 5 6 2 3 4 5 6 5 2 5 2 2 2 2 3 2 5 3 2 5 4 4 2 4 4 2 5 9 2 5 9 2 6 2 2 6 2 2 P3: 2 3 4 5 6 2 5 2 2 3 5 4 4 2 5 9 2 6 2 2 Optimalnim rešenjima odgovaraju cikli

vrednost funkce je 2 vrednost funkce je 2 vrednost funkce je 6. PRIMER 2: Rešiti problem trgovačkog putnika ako je graf dat matrično: Rešenje: A 2 3 4 5 6 7 8 76 43 38 5 42 9 80 2 42 49 26 78 52 39 87 3 48 28 36 53 44 68 6 4 72 3 29 42 49 50 38 5 30 52 38 47 64 75 82 6 66 5 83 5 22 37 7 7 77 62 93 54 69 38 26 8 52 58 66 76 4 52 83 Možemo da izdvojimo dva cikla (2,4,3) i (,7,8,6,5) a cena je 232. Odgovarajuće drvo odlučivanja je sledeće (pored svakog čvora se nalaze cena potproblema, cikli):

Ako eliminišemo cikl (2,4,3) dobamo tri potproblema (poddrveta) B, C i D i njihove odgovarajuće matrice su: B 2 3 4 5 6 7 8 76 43 38 5 42 9 80 2 42 78 52 39 87 3 48 28 36 53 44 68 6 4 72 3 29 42 49 50 38 5 30 52 38 47 64 75 82 6 66 5 83 5 22 37 7 7 77 62 93 54 69 38 26 8 52 58 66 76 4 52 83 C 2 3 4 5 6 7 8 76 43 38 5 42 9 80 2 42 49 26 78 52 39 87 3 48 53 44 68 6 4 72 3 29 42 49 50 38 5 30 52 38 47 64 75 82 6 66 5 83 5 22 37 7 7 77 62 93 54 69 38 26 8 52 58 66 76 4 52 83 D 2 3 4 5 6 7 8 76 43 38 5 42 9 80 2 42 49 26 78 52 39 87 3 48 28 36 53 44 68 6 4 72 42 49 50 38 5 30 52 38 47 64 75 82 6 66 5 83 5 22 37 7 7 77 62 93 54 69 38 26 8 52 58 66 76 4 52 83 Potproblem B je hamiltonova putanja dužine 264 dok problemi C i D to nisu. Trenutno najkraću vrednost ima problem B. Problemi C i D imaju cikle i zato se oni granaju na potprobleme. Posmatramo prvo problem C (ima nižu vrednost, min[248,250]=248). U problemu C prvo eliminišemo granu (2,4). Dobamo dva nova potproblema E i. Odgovarajuće matrice su E 2 3 4 5 6 7 8 76 43 38 5 42 9 80 2 42 49 78 52 39 87 3 48 53 44 68 6 4 72 3 29 42 49 50 38 5 30 52 38 47 64 75 82 6 66 5 83 5 22 37 7 7 77 62 93 54 69 38 26 8 52 58 66 76 4 52 83 2 3 4 5 6 7 8 76 43 38 5 42 9 80 2 42 49 26 78 52 39 87 3 48 53 44 68 6 4 72 29 42 49 50 38 5 30 52 38 47 64 75 82 6 66 5 83 5 22 37 7 7 77 62 93 54 69 38 26 8 52 58 66 76 4 52 83 A vrednosti potroblema su 280 i 254. Problem ima Hamiltonovu putanju dužine 254 koja je manja od vrednosti prethodno dobene Hamiltonove putanje (problem B dužine 264). Sada je problem problem koji ima najbolju vrednost.

Problemi E i D još uvek nemaju Hamiltonovu putanju, zato rešavamo ta dva problema. Kako problem E ima vrednost 280 (manju od 254 koliko ima problem ) teško da će se dobiti bolje rešenje daljim računom. Rešavamo problem D. Problem D ima vrednost 250 što je manje od trenutno najboljeg rešenja (254) pa je moguće da se tu nalazi i naše optimalno rešenje. Problem D ima cikl (,7,8) če ćemo veze prekinuti i posmatrati tri nova problema, G, H i I. Odgovarajuće matrice su: G 2 3 4 5 6 7 8 H 2 3 4 5 6 7 8 76 43 38 5 42 76 43 38 5 42 9 80 2 42 49 26 78 52 39 87 2 42 49 26 78 52 39 87 3 48 28 36 53 44 68 6 3 48 28 36 53 44 68 6 4 72 42 49 50 38 4 72 42 49 50 38 5 30 52 38 47 64 75 82 5 30 52 38 47 64 75 82 6 66 5 83 5 22 37 7 6 66 5 83 5 22 37 7 7 77 62 93 54 69 38 26 7 62 93 54 69 38 8 52 58 66 76 4 52 83 8 52 58 66 76 4 52 83 D 2 3 4 5 6 7 8 76 43 38 5 42 9 80 2 42 49 26 78 52 39 87 3 48 28 36 53 44 68 6 4 72 42 49 50 38 5 30 52 38 47 64 75 82 6 66 5 83 5 22 37 7 7 77 62 93 54 69 38 26 8 58 66 76 4 52 Primetićemo da problem H ima Hamiltonovu putanju dužine 25 što je bolje od problema i zato sada H postaje najbolje rešenje. Kako je H bolje i od rešenja G i I, smatramo da je problem rešen i da je H optimalno rešenje. Putanja (,7,6,5,3,2,4,8) je najkraća putanja trgovačkog putnika dužine 25 za zadat problem.

Problem k trgovačkih putnika Problem trgovačkog putnika može da se uopšti na zadatak sa k trgovačkih putnika. Pri tom se postavljaju dodatna ograničenja kao što su: svaki trgovački putik treba da obiđe određeni broj gradova ili da pređe određeno rastojanje itd. Problem u kome svi trgovački putnici polaze iz istog grada i vraćaju se u njega, a pri tom obilaze određeni broj gradova se naziva problemom rutiranja vozila VRP (vechile routing problem). Za ovaj problem se planiraju maršute vozila i raspoređivanje vozila. Posmatramo problem u kome umesto jednog Trgovačkog putnika, gradove obilazi k Trgovačkih putnika. Neka je dat graf G sa n=km (k,m su prirodni brojevi) čvorova bez petlji. Numerisaćemo čvorove brojevima,2,...,n. Svakoj grani (i,j) dodeljujemo pozitivan broj d koji predstavlja dužinu (ili težinu/cenu) grane. Dužina proizvoljnog delimičnog podgrafa G se definiše kao zbir dužina grana koje se nalaze u tom podgrafu. Put sa s čvorova nazivamo s-put. Problem k trgovačkih putnika se primenjuje u planiranju maršuta vozila kada imamo ograničenja po pitanju broja vozila ili koja vozila mogu da voze koju maršutu zbog ograničenja kapaciteta težine. Problem : Odrediti k disjunktnih m-puteva minimalne dužine u digrafu G. - Čvorove digrafa G posmatramo kao gradove, dužine grana kao rastojanje između gradova. Problem je naći minimalni put, kao put k trgovačkih putnika či je zadatak da obiđu sve gradove (prilikom obilaska gradova svaki putnik treba da obiđe isti broj gradova i nedan grad ne posećuje više od jednog putnika). Početni i završni gradovi putnika nisu unapred određeni. Neka je G 0 potpuni digraf bez petlji sa čvorovima 0,,2,..,n bez ograničenja n=km. Ostale konvence su iste kao kod grafa G. Dati su pozitivni brojevi m, m2,.. m k ( m + m2 +... + mk = n + k ). - Na primer: Imamo jedno skladište i km prodavnica koje treba snabdeti proizvodima iz tog skladišta. (slika niže). Problem je rasporediti kamione tako da svako od njih pređe minimalno rastojanje. o Problem može da se proširi ako kamioni nisu istog kapaciteta. Dakle, rasporediti kamione tako da prelaze najkraću maršutu i tako da kapacitet robe koju kamioni prenose ne prelazi njihova ograničenja.

Problem 2: U digrafu G 0 odrediti k kontura koje sve prolaze kroz čvor O i nemaju drugih zajedničkih čvorova, tako da je zbir dužina kontura minimalan. - Ovaj problem se naziva problemom k Trgovačkih putnika. Svi putnici polaze iz jednog grada (sedište kompane) i obilazeći određen broj gradova vraćaju se u svoju početnu pozicu. Moguće je da u optimalnom rešenju neko od putnika ine krene na put. - Umesto da paralelno posmatramo k kamiona, problem k trgovačkih putnika može da se rešava i kao problem jednog trgovačkog putnika koji ne može da prenese robu do svih prodavnica odjednom, već mora da se k puta vraća do skladišta po robu koristeći uvek različite puteve. Problem 3: U digrafu G0 odrediti konture dužina m, m2,.. mk koje sve prolaze kroz čvor O i nemaju drugih zajedničkih čvorova tako da je zbir dužina kontura minimalan. - Ovaj problem predstavlja verzu 2.problema sa dodatnim ograničenjima na dužine puteva putnika. - Ako stavimo da je m = m2 =.. = mk i ako su dužine svih grana koje ulaze i izlaze iz čvora O međusobno jednake, problem 3 postaje problem. (problem je specalni slučaj problema 3). - Ako stavimo da je k= problem predstavlja klasični problem trgovačkog putnika. Dalje, ako stavimo da je m= problem je trivalan, ako je m=2 rešavamo problem najkraćeg sparivanja - Problem trgovačkog putnika je NP-težak problem Algoritam za nalaženje optimalnog rešenja: Jedan od načina rešavanja problema k trgovačkih putnika je da koristimo metodu grananja i odlučivanja (tražimo razapinjuće stablo najkraće dužine u grafu). Putnici obrazuju šumu sa n-k grana. Pretpostavimo da šuma jednog digrafa sadrži sve čvorove grafa. Neka je H skup svih Hamiltonovih puteva u težinskog grafu G i neka je S skup svih šuma u G. Rešavamo problem nalaženja s-šume najkraće dužine, s = n k (s je broj grana u putevima k trgovačkih putnika) Grananje se vrši tako što se u s-šumi uništavaju čvorovi koji imaju stepen 2 ili stepen veći od 2. Ako se problem rešava bez ograničenja koliko koji trgovački putnik može da pređe onda je ovakav kriterum grananja dovoljan obzirom da će se dobiti najkraća od svih s šuma koje se sastoje od puteva. Ako je uslov da sve s-šume budu jednakih dužina, uništavaju se one šume koje to nisu.

Drugi način je da posmatramo mrežu datu grafom, G=(X,U) i matricom rastojanja. Indeks čvora i= posmatramo kao skladište. Problem rutiranja vozila se C = ( c ) sastoji u određivanju puta (ruta) vozila tako da se minimizira njihova ukupna dužina (troškovi) a koje su takve da:. Svaki grad (osim skladišta) se posećuje tačno jedanput samo jednim vozilom 2. Sve rute počinju i završavaju se u skladištu 3. Zadovoljena su neka dodatna ograničenja a) Ograničenja kapaciteta: svakom čvoru (gradu) i> pridružujeu se nenegativna težina q i, a zbir težina na bilo kojoj ruti ne sme da bude veći od kapaciteta vozila Q. b) Broj gradova na proizvoljnoj ruti je ograničen sa P (u ovom slučaju je q = za i> i Q = P ) i c) Ograničenje na ukupnu dužinu rute (vreme putovanja): ukupna dužina rute je ograničena sa Λ. Ova dužina se doba na osnovu vremena putovanja između gradova i vremena zadržavanja u gradovima. d) Vremenski prozori: grad i treba da bude posećen u vremenskom a, b, a postoje i zadržavanja (čekanja) u gradu i. intervalu [ ] i i e) Odnosi prethođenja između parova čvorova, grad i ne može biti posećen pre grada j. Problem k trgovačkih putnika može da se rešava kao problem linearnog celobrojnog programiranja. Prvo ćemo ovaj problem da prevedemo na problem jednog trgovačkog putnika: i. Povećavamo broj čvorova uvođenjem veštačkih skladišta. Neka je, n = n + m povećava se i broj grana, { } U ' = U i, j j X ', i j, i X '\ X j X '\ X ii. Definiše se proširena matrica rastojanja, C' ( c ') skupu X : c c, i, j X ci, i X \, j X '\ X ' = cj, i X '\, j X \ γ, i, j X '\ X {} {} {} { } Vrednosti zavise od problema koji posmatramo = koja odgovara, traži se minimalna dužina za m vozila γ = 0, traži se minimalna dužina za najviše m vozila, traži se minimalna dužina za najmanji broj vozila

Sada ćemo problem rutiranja vozila da formulišemo kao optimizacioni problem: Neka je x ( i j ) binarna promenljiva jednaka akko je grana (i,j) iz skupa X u optimalnom rešenju. Rešavamo zadatak min c x () po.. i =, j = i j x =, i =,..., n' (2) x =, j =,..., n' { } (3) S v S, S X '\ {}, S 2 (4) i j S x 0,, i, j =,..., n', i j (5) ormule (), (2), (3) i (5) definišu modifikovan problem dodeljivanja (asignace) u kome je na glavnoj dagonali zabranjeno dodeljivanje. Ograničenja (4) su za eliminacu pokontura, a sa v ( S) je određena donja granica broja vozila potrebnih da se u optimalnom rešenju posete svi čvorovi u S. Ova ograničenja se dobaju sledećim razmatranjem {} Za bilo koje S X '\, S 2, S = X '\ X x i S j S v S mora biti Pored toga važi sledeća jednakost: S = x + i, j S x i S j S U nastavku će biti izložen heuristički algoritam za rešavanje problema rutiranja vozila. Algoritam polazi od početnog rešenja u kojem ima n- ruta koje se formiraju tako što se po jedno vozilo upućuje iz skladišta do jednog potrošača i vraća u skladište. Ovo rešenje se matematički zapisuje { } x i =, i X \ x = 0, i j Zatim se interaktivno, iz koraka u korak spajaju po dve putanje koje donose najveću uštedu, a zadovoljavaju ograničenja zadatka (slika). Pojam uštede objašnjavamona sledećem primeru.

U prvom slučaju vozilo se kreće iz skladišta do čvora i, zatim se vraća u skladište, ide do čvora j i ponovo vraća. Pri tom pravi ukupne troškove C = c + c + c + c. U drugom slučaju vozilo se kreće iz skladišta, ide do čvora i, zatim iz čvora i ide do čvora j i onda se vraća u skladište. Pri tom pravi ukupne troškove C = c + c + c. Ako se umesto plana pod a) primeni plan b) ostvariće se ušteda: S = C C2 = c i + ci + cj + c j c i + c + c j = c i + cj c i i j 2 i j Pojam uštede se može koristiti i pri spajanju dve rute u jednu. Treba primetiti da ušteda S može biti veća, manja ili jednaka nuli. Ima smisla spajati dve rute samo ako je ušteda veća od nule i ako su zadovoljena ostala ograničenja zadatka (kapacitet vozila). Algoritam:. Kreirati n- ruta (,i,) i=2,,n tj. odrediti početno rešenje na sledeći način x ( i j X { }) j i X { } ( i j ), za =, \ =, \ = 0, za 2. Izračunati moguće uštede S = c i + c j c, i, j U 3. Sve pozitivne uštede sortirati u nerastući niz 4. Idući od prve ka poslednjoj uštedi iz niza, pokušati naprviti moguće uštede na sledeći način: Posmatrati dve rute koje sadrže grane (i,) i (,j). Privremeno spojiti ove dve rute uvodeći granu (i,j) i brišući grane (i,) i (,j). Ako je dobena ruta dopustiva (zadovoljava ograničenja kapaciteta) iskoristit granu (i,j), formirati rutu i pokušati sa sledećom mogućom uštedom iz niza. Ako privremena ruta ne dopustiva, odbaciti granu (i,j), ne formirati novu rutu, skinuti S iz niza i preći na sledeću potencalnu uštedu. j

Primer 3: Rešiti problem rutiranja vozila ako su date tražnje potrošača, kapacitet vozila je Q = 200 i udaljenost potrošača: q q q q q q q 2 3 4 5 6 7 8 = 40, = 20, = 25, = 70, = 45, = 50, = 00 Rešenje: Pratimo zadat algoritam: Početno rešenje ima oblik: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X = ( x ) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Moguće uštede su: S23 = 4 S24 = 0 S27 = 3 S27 = 3 S28 = 4 S34 = 2 S38 = 5 S45 = 8 S45 = 8 S46 = 4 S56 = 6 S57 = S67 = S67 = S68 = S78 = 6 Kada sve pozitivne uštede sortiramo u nerastući niz, dobamo sledeću listu:

S 67 = S45 S56 S78 S23 S28 S34 S68 = 8 = 6 = 6 = 4 = 4 = 2 = Svakoj od ušteda odgovara spajanje ruta koje je moguće uraditi samo ako su zadovoljena ograničenja kapaciteta:. (6-7): q6 + q7 = 45 + 50 = 90 < 200 x6 = 0, x7 = 0, x67 = 2. (4-5): q4 + q5 = 70 + 25 = 95 < 200 x4 = 0, x5 = 0, x45 = 3. (5,6): ovom vezom se spajaju ruta (,4,5) i ruta (,6,7) q4 + q5 + q6 + q7 = 70 + 25 = 90 < 200 x5 = 0, x6 = 0, x56 = Možemo da precrtamo grane (,5) i (,6). 4. (7,8): 90 + 00 = 390 > 200 nedopustivo povezivanje, ušteda S 78 se ne može iskoristiti. 5. (2,3): 40 + 20 + 60 < 200 x2 = 0, x3 = 0, x23 = 6. (2,8): 60 + 00 = 60 < 200 x8 = 0, x2 = 0, x82 = Kao i u trećem koraku, možemo da uklonimo granu (,2) 7. (3,4): 60 + 90 = 350 > 200 nedopustivo 8. (6,8): Pošto je x6 = x6 = 0 ovu uštedu ne možemo da ostvarimo. Dobili smo konačno rešenje (slika). Potrebno je da izračunamo dužinu puta koju vozilo treba da pređe. f = 2c + 2c + 2c + 2c + 2c + 2c + 2c S S S S S 2 3 4 5 6 7 8 67 45 56 23 28 f * = 88 33 = 55

Problem ranca Problem ranca definišemo na sledeći način: Pretpostavimo da je dat neki ranac zapremine b 0 i skup predmeta kojima se ranac puni. Svaki predmet ima svoju zapreminu a j 0 i vrednost c j 0. Napuniti ranac sadržajem najveće vrednosti tako da je ukupna vrednost koja se nosi u rancu maksimalna: max n j = n j = cx j ax j j j b, x, x2,..., xn Ζ Problem možemo da prevedemo na situacu kada neka kompane iz svog budžeta veličine b finansira n projekta. Ako je poznata cena a j i korist c j istraživanja jednog istraživača na j-tom projektu, zadatak je da se odredi broj istraživača x na j-tom projektu tako da korist bude maksimalna. j Ovaj problem se rešava tako što se podeli na etape. Uvodimo pomoćnu funkcu definisanu na sledeći način: = max { +... + +... +,,..., 0,,,..., Ζ n } y c x c x a x a x y x x x x x k k k k k k 2 Za rešavanje pomoćne funkce koristimo sledeće rekurentne formule:. = [ / ] { [ ]} y c y a { } y = max c x + y a x x 0,,..., y/ c za k 2 k k k k k k k k Ako punimo ranac jednim predmetom sledi da je y = max cx ax y x 0 = c y / a čime smo potvrdili početni uslov. { } [ ] 2. k ( y ) = max { k ( y), k ( y ak ) + ck} gde je n y = za y < 0. U ovom slučaju za k-tu koordinatu optimalnog rešenja važi ili x k = 0 ( k ( y ) = k ( y )) ili xk ( k ( y ) = k ( y ak ) + ck). Optimalna vrednost je svakako uvek jednaka boljoj od navedenih vrednosti. Navedena formula se naziva još formulom unapred i ona je najpogodna za kompjutersko izračunavanje. 3. n ( y) = 0 za 0 y min { a,..., an} a za y min { a,..., an } n ( y ) = max { ck + n ( y ak ) k =,2,.., n } je

ukoliko se definiše y = za y < 0. n Ako nula ne optimalno rešenje, bar jedna njegova koordinata, npr. jednaka od ( ( y ) c ( y a ) = + ). n k n k x k je veća ili PRIMER 4: - Navedene rekurzivne forumle se mogu koristiti za određivanje optimalne b problema kao i odgovarajućeg optimalnog rešenja. vrednosti n - Ako koristimo formulu potrebno je da se pamte svi koraci dok je kod formule 2 dovoljno da se pamte samo poslednja dva rešenja. i y koja pamti - Kod 2. formule uvodimo još jednu pomoćnu veličinu k najveći indeks j takav da je j-ta promenljiva optimalnog rešenja u ( y ) pozitivna. Ukoliko je nula optimalno rešenje, definišimo ovaj indeks sa nulom. Važi rekurza: ik ( y ) ako ck + k ( y ) < k ( y ) 0 ako ( y) = 0 ik ( y) =, i ( y) = k ako ck + k ( y ) k ( y ) ako ( y) 0 i y možemo detektujemo optimalno rešenje Na osnovu vrednosti dobene za iz smisla indeksa i vrednosti n n i b, i b a n n( b).. Kako upisujemo rešenja? k xn =, n = k in ( y) = k xn = 0, n k k, xk k, ispitujemo za y a in ( y ak ) = e, xe =, xe+ = 0, xk = Rešiti problem ranca koristeći rekurentnu formulu unapred. ( max ) 0x + 2x2 x3 + 3x4 3x + x2 + 3x3 4 xi [ 0, ], i =,2,3, 4 Rešenje: c = 0, c2 = 2, c3 =, c4 = 3 a = 3, a2 =, a3 = 3 možemo da stavimo da je x 4 = ( x 4 uzima svoju maksimalnu vrednost obzirom da tada neće narušiti početna ograničenja) ormiramo tablice k ( y ) i ik ( y ) Korišćenjem rekurentni formula k k

= [ / ] = 0 [ /3] = max {, + ( 2) } max { ( y),2 + 2 ( y ) } = max {, + ( 3) } max { 2 ( y), + 3 ( y 3) } y c y a y y y c y a 2 2 2 y y c y a 3 2 3 3 i i 2 3 ( y) ( y), > 2+ ( ) + 2 ( y ), > + ( 3) + ( y ) i y y 2 y = 2, 2 i2 y 2 y 3 y = 2, 2 3 3 k\y 0 2 3 4 i\y 0 2 3 4 0 0 0 0 0 0 0 0 2 0 2 4 0 2 2 0 2 2 2 3 0 2 4 0 2 3 0 2 2 2 Konačno, imamo da je i3 ( 4) = 2 n k x3 = 0 i3 ( 4 a2) = i3 ( 4 ) = i3 ( 3) = 2 x2 2 i3 ( 4 3) = i3 = 2 x2 2 i3 ( 3 a2) = i3 ( 3 ) = i3 ( 2) = 2 i3 ( 2 a2) = i3 ( 2 ) = i3 = 2, x2 = 4 i3 ( a2) = i3 ( ) = i3 ( 0) = 0 x = 0 x = 0, x4 =, x2 = 4, x3 = 0 f = max PRIMER 5: Rešiti problem ranca koristeći rekurentnu formulu unazad. max 3x + x + 7x + 2x + 5x 2 3 4 5 4x + x + 2x + 3x + 6x 8 x i 2 3 4 5 [ ] 0,, i =,2,3, 4,5 Rešenje: 8 = max 5x + 8 6x = max 8, 5+ 2 =..... = 2 { } { } 5 5 4 5 4 4 0 x5 { } { } 8 = max 2x + 8 3x = max 8, 2+ 5 =... = 4 4 3 4 3 3 0 x4 { } { } 2 = max 2x + 2 3x = max 2 =... 4 4 3 4 3 0 x4 = { + ( )} = { } { } 8 max 7x 8 2x max 8, 7+ 6 =...= m ax 4, = 3 3 2 3 2 2 0 x3 = { + ( )} = { } = { } 5 max 7x 5 2x max 5, 7+ 3 = max 4, 8 =8 3 3 2 3 2 2 0 x3 = 7

{ } { } { } 2 = max 7x + 2 2x = max 2, 7+ 0 =... = max,7 =7 3 3 2 3 2 2 0 x3 { } { } { } 8 = max x + 8 x = max 8, 7+ 6 =... = max 4, = 2 2 2 2 2 0 x2 { } { } 6 = max x + 6 x = max 6, + 5 =...= 4 2 2 2 0 x2 ( 5) = max x 2 2 0 x2 { + x2 } = { } { } { } 2 2 2 0 x2 { } { } 2 2 2 0 x2 2 ( 0) = m 5 max 5, + 4 =..= 4 3 = max x + 3 x = max 3, + 2 = =.....= 2 = max x + 2 x = max 2, + =.....= 0 x2 [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] { x2 x2 } ax + 0 = 0 = =0 0 = 3* 0/4 = 0 = 3* /4 = 0 2 = 3* 2/4 = 0 3 = 3* 3/4 = 0 4 = 3* 4/4 = 3 5 = 3* 5/4 = 3 6 = 3* 6/4 = 3 7 = 3* 7/4 = 3 8 = 3* 8/4 = 3 Vraćamo vrednost nazad: 8 5 4 3 2 ( 2) ( 2) ( 0) ( 0) x x x x 5 4 3 2 x Obratiti pažnju da je ovde x a on može imati samo vrednosti 0 i, zato pišemo da je x = odnosno = 3 *!!!!! = = 0 = = 0 = 0