1 / 32

Problem najbli@eg para ta^aka

Problem najbli@eg para ta^aka. Darko Sto { i }. or|e Dan~etovi }. Ugqe {a Panti }. Nikola Nestorovi }. Najbli`i par : Problem ra~unarske geometrije . Fundamentalan u mnogim aplikacijama . Od n objekata treba odrediti dva sa najmawim rastojawem izme|u wih .

chipo
Télécharger la présentation

Problem najbli@eg para ta^aka

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Problem najbli@egparata^aka DarkoSto{i} • \or|eDan~etovi} Ugqe{a Panti} Nikola Nestorovi}

  2. Najbli`i par: • Problem ra~unarskegeometrije. • Fundamentalan u mnogimaplikacijama. • Odnobjekatatrebaodreditidvasanajmawimrastojawemizme|uwih. • Oviobjektimogubiti, npr: • delovimikroprocesorskog ~ipa, • zvezde u galaksiji, • sistemizanavodwavawe… • Mi }emorazmotritisamojednuvarijantuovogproblema, kaopredstavnika {ire klase.

  3. Problem najbli`egparata~aka: • Datje nbrojta~aka. • Prona}idveta~kekojesunajbli`ejednadrugoj. • U slu~aju da ima vi{e parovanajbli`ihta~aka, trebaihsveidentifikovati. Ulaz: • Skup od n ta~aka Izlaz: • Najbli`i par ta~aka (ili vi{e takvihparova)

  4. AlgoritamBrute Force • Slo`enost: O(n2) Divide and Conquer algoritam • Slo`enost: O(n log n) • Podsetnik: zan = 1,000,000 • n2 = 1,000,000,000,000 • n log n = 20,000,000

  5. Divide and Conquer vs. Brute Force

  6. Brute Force O(n2) algoritam u ravni(2-D)

  7. Finding Closest Pair in 2-D • Ta~ka u 2-Dpredstavqaure|en par (x, y). • Rastojaweizme|udveta~ke: • Pi = (xi, yi); Pj = (xj, yj); • d(pi, pj) = sqrt((xi − xj)2 + (yi − yj)2) • Brute force algoritamporedirastojawaizme|usvakedveta~ake, ivra}a najmawe. • Savet: Mo`emodaizbegnemosuvi{no ra~unawekorenatako {to }emoupore|ivatikvadratrastojawa.

  8. Brute Force Approach: Finding Closest Pair in 2-D Vremenskaslo`enost: BruteForce(P) mind  ∞ for i  1 to n do for j  1 to n if i  j do d  ((xi−xj)2+(yi−yj)2) if d < mind then mind  d mini  i minj  j return mind, p(mini, minj)

  9. Divide and Conquer O(n log n) u ravni(2-D)

  10. Closest Pair: Divide and Conquer Approach • Umesto da razmatramota~kejednupojednu, mo`emoskupta~aka da podelimonadvajednakadela. • Sortiramopremax-koordinati i podelimoravanpravomparalelnomsay-osom, koja deli skupnadvajednakadela. 6 11 16 4 7 12 15 14 1 3 8 10 13 2 9 5

  11. Closest Pair: Divide and Conquer Approach • Neka je P skup ta~aka, inekaP1 i P2predstavqajudvaistobrojnapodskupa. • Neka je d1 minimalno rastojawe u P1, id2 minimalno rastojawe u P2. • Mo`e se pretpostaviti da je d1<d2. 16 6 11 4 14 15 7 1 12 3 8 10 13 2 9 5

  12. Closest Pair: Divide and Conquer Approach • Potrebnoje ustanovitida li u P1 postoji ta~ka na rastojawu mawem od d1 od neke ta~ke u P2. • Dovoqno je razmatratita~ke u {irini2d1. • Ostale ta~ke ne mogubitinarastojawumawem od d1.

  13. Iskoristi}emo ~iwenicuda je . • Neka je saypozna~enay-koordinatata~kep. • Konstrui{emopravougaonikvisinei {irine u suprotnojtraci.

  14. Podelimogajednom vert. idvehorizontalnepravena6jednakihkvadratastranice0,7d1(kojima je dijagonalamawa od d1!). • Ta~kakandidatsay-koordinatomyqmoradazadovoqiiuslov|yp– yq| < d1, pa se moranalaziti u jednom od 6 kvadrata.

  15. Closest Pair: Divide and Conquer Approach PodeliVladaj(P, l, r) if r – l < 3 then return BruteForce(P) q ¬é(l+r)/2ù dl ¬PodeliVladaj(P, l, q-1) dr ¬PodeliVladaj(P, q, r) d ¬ min(dl, dr) for i ¬ l to r do if P[q].x - d £ P[i].x £ P[q].x + dthen dodaj P[i] na S Sortiraj S po y-kordinati for j ¬ 1 to size_of(S)-1 do Proveri da li je neki od d(S[j],S[j]+1), ..., d(S[j],S[j]+7) manji od d, ako jeste postavi d kao najmanji return d

  16. Closest Pair: Divide and Conquer Approach Vremenskaslo`enost: • Vremenskaslo`enostdivide and conquer algoritmamo`e se opisatirekurencijom: • Podela =O(1) • Kombinovawe = O(n log n) • Ovodaje: • Krajwevremeizvr{avawa: O(n log n)

  17. Improved Version: Divide and Conquer Approach • Sortiratisveta~kepoxi y koordinatijednom. • Pre rekurzivnihpoziva, particioni{emosortiraneliste u dvesortiranepodlistezalevuidesnupolovinu, gde je potrebnovremeO(n) • Kadakombinujemo, prolazimokrozysortiranulistujednomibiramosveta~kekoje se nalaze u traci (2d {irine) okolinije, tako|e u vremenuO(n) • Nova rekurencija:

  18. Primer Divide and Conquer

  19. 0 Ulaz: Skup ta~aka u ravni (2-D) 1. korak: Sortiramo ta~ke u 1-D

  20. 0 Sortiramo po X osi koriste}iquicksortilimergesort 4 9 13 6 2 14 11 7 3 10 5 1 8 12

  21. 0 2. korak: Podelimo ta~ke, npr.Nacrtamo pravu izme|u 7 i 8 4 9 13 6 2 14 11 7 3 10 5 1 8 12 Pod-problem 1 Pod-problem 2

  22. 0 Bezpodelemoralibismodaupore|ujemosvakuod14ta~akajednusadrugom. (n-1)n/2 = 13*14/2 = 91pore|ewe 4 9 13 6 2 14 11 7 3 10 5 1 8 12 Pod-problem 1 Pod-problem 2

  23. 0 Sadaimamodva pod-problemaduplomaweveli~ine. Dakle, trebanam2puta6*7/2pore|ewa, {to je ustvari42pore|ewa. re{ewed = min(d1, d2) 4 9 13 d1 6 2 d2 14 11 7 3 10 5 1 8 12 Pod-problem 1 Pod-problem 2

  24. 0 Sa samojednompodelom, brojpore|ewa je duplomawi. O~igledno, dobijamojo{ ve}u efikasnostakonastavimodadelimoi pod-probleme. d = min(d1, d2) 4 9 13 d1 6 2 d2 14 11 7 3 10 5 1 8 12 Pod-problem 1 Pod-problem 2

  25. 0 Ipak, {taakosudvenajbli`eta~keizrazli~itih pod-problema? 4 9 13 d1 6 2 d2 14 11 7 3 10 5 1 8 12 Pod-problem 1 Pod-problem 2

  26. 0 Primer gdeporedimota~keiz pod-problema 1 sata~kamaiz pod-problema2: 4 13 d1 6 2 d2 9 14 11 7 3 10 8 5 1 12 Pod-problem 1 Pod-problem 2

  27. 0 Mo`emodaporedimosamota~keunutarobele`enetrake. d = min(d1, d2) 4 9 d d 13 d1 6 2 d2 14 11 7 3 10 5 1 8 12 Pod-problem 1 Pod-problem 2

  28. 0 Korak 3: Ali, mo`emoidaiskoristimoprednostdeqewa pod-problema. 4 9 13 6 2 14 11 7 3 10 5 1 8 12

  29. 0 Dakle, nastavqamodadelimo pod-problemesvedoksvakiodwih ne postanetrivijalan, tj. potrebno je samojednopore|ewe. 4 9 13 6 2 14 11 7 3 10 5 1 8 12

  30. 0 Kona~no: Re{ewasvih pod-problemakombinujemodok ne dobijemokona~no re{ewe. 4 9 13 6 2 14 11 7 3 10 5 1 8 12

  31. 0 U posledwemkoraku, traka }e najverovatnijebitivrlo mala. Zbog toga, kombinovawedvanajve}a pod-problema ne}e zahtevatiprevi{e posla. 4 9 13 6 2 14 11 7 3 10 5 1 8 12

  32. 0 • U ovom primeru, bilo je potrebno 22 pore|ewa da bismo na{li najbli`i par ta~aka. • Brute force algoritam bi zahtevao 91 pore|ewe. • Naravno, razlika je MNOGO ve}a kada na ulazu imamo milione ta~aka. KRAJ 4 9 13 6 2 14 11 7 3 10 5 1 8 12

More Related