1 / 46

Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas

Slide 1 of 316. Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas. Turinys. Uždavinio sąlygos pristatymas “ Paprastas ” uždavinio sprendimas “ Advance d ” uždavinio sprendimas Kaip nereikėjo daryti Tiesioginė lenktynės transliacija. S ąlygos pristatymas. Lenktyniauja N ma šinų.

stamos
Download Presentation

Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas

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. Slide 1 of 316 Uždavinys“LENKTYNĖS”2007, DaugaiVilius Visockas

  2. Turinys • Uždavinio sąlygos pristatymas • “Paprastas” uždavinio sprendimas • “Advanced” uždavinio sprendimas • Kaip nereikėjo daryti • Tiesioginė lenktynės transliacija

  3. Sąlygos pristatymas • Lenktyniauja N mašinų. • Jos važiuoja įvairiais grečiais. • Jos startuoja skirtingu laiku. • Norime sužioti kaip išsidėstys po K pirmųjų lenkimų. • Nėra dviejų lenkimų vienu metu • Po K lenkimų visos mašinos bus jau išvažiavusios

  4. Paprastas sprendimas(bet teisingas)

  5. Sprendimas (1) • Nagrinėti visas galimas mašinų poras (N x N), skaičiuoti jų lenkimosi laiką, laikus surikiuoti ir išrinkti K-jo lenkimo laiką. • Apskaičiuoti kiekvienos mašinos nuvažiuotą atstumą po K-ojo lenkimo. • Surikiuoti mašinas pagal nuvažiuotą atstumą.

  6. Kaip nereikėjo spręsti (cont.) • “Vienos minutės” sprendimas • Daroma prielaida, kad per vienutę minutę • įvyksta ne daugiau nei vienas lenkimas, nors • sąlygoje pasakyta, kad tiesiog nėra jokių dviejų • lenkimų vienu metu.

  7. Kaip nereikėjo spręsti (cont.) Bėgiko ir vežlio paradoksas: bėgikas niekada neaplenks vėžlio!

  8. Sprendimasnaudojant Heap duomenų struktūrą

  9. Faktai • Įmanomas daugiausiai vienas lenkimas imant bet kokią mašinų porą. • Lenkimo tarp dviejų mašinų gali ir nebūti. • Jei mašinos važiuoja vienodu greičiu, lenkimo nebus niekada. • Lenkimas bus tik tada, jei viena mašina važiuoja greičiau už kitą ir išvažiuoja vėliau.

  10. Sprendimas naudojant heap’ą. • Susirikiuojame mašinas pagal išvykimo laiką Pastaba. skaičius - mašinos numeris laikas 1 2 3 4 5

  11. Sprendimas naudojant heap’ą. • Tikriname ar gretimos mašinų poros lenkiasi. • Jeigu lenkiasi, lenkimo įvykį dedame į heap’ą. 3 2 4 1 5

  12. Paspauskite čia ir sužinosite kas yra heapas! Kas tas “HEAP’as” ???

  13. MAGIC BUTTONX

  14. MAGIC BUTTONX

  15. Heap’as • Duomenų struktūra, gebanti • Greitai surasti mažiausią elementą • Ištrinti/Pašalinti elementą. Puikiai pritaikomas Dijikstros algoritmui.

  16. Heap’as 2 9 6 8 10 15 • Heap’as – pilnas dvejetainis medis • Kiekvienas iš vaikų yra didesnis už tėvą

  17. Heap’asElemento įterpimas (1) 2 9 6 8 10 15 Pirmas elementas dedamas pirmoje laisvoje vietoje.

  18. Heap’asElemento įterpimas (2) 2 9 6 8 1 10 15 Pirmas elementas dedamas pirmoje laisvoje vietoje.

  19. Heap’asElemento įterpimas (3) 2 9 6 8 1 10 15 Kad būtų išlaikytos heap’o savybės, reikia lyginti jį su tėvu. Jei naujas narys mažesnis – sukeičiame.

  20. Heap’asElemento įterpimas (4) 2 9 1 8 6 10 15 Kartojame lyginimą sukeistam elementui. Einam link medžio viršūnės – panašiai kaip rikiavimas įterpimu.

  21. Heap’asElemento įterpimas (5) 1 9 2 8 6 10 15

  22. Heap’asElemento įterpimas (6) 1 9 2 8 6 10 15 • Baigiame, kai: • Prieiname medžio šaknį. • Nebereikia sukeisti elementų.

  23. Heap’asElemento įterpimas

  24. Heap’asElemento įterpimas 2 9 6 8 1 10 15

  25. Heap’asElemento įterpimas 2 9 1 8 6 10 15

  26. Heap’asElemento įterpimas 1 9 2 8 6 10 15 • Baigiame, kai: • Prieiname medžio šaknį. • Nebereikia sukeisti elementų.

  27. Heap’asMažiausio elemento išėmimas

  28. Mažiausias elementas Heap’asMažiausio elemento išėmimas 1 9 2 8 6 10 15 Visada šakninė viršūnė, pagal jo savybes. Mažiausia elementą įsimename, o vietoj jo įrašome paskutinį heap’o elementą. Sumažiname heapo dydį.

  29. Heap’asMažiausio elemento išėmimas 1 Paskutinis elementas 9 2 8 6 10 15

  30. 6 9 2 8 10 15 Heap’asMažiausio elemento išėmimas Bet šakninė viršūnė dabar pažeidžia heap’o savybes. Šakninė viršūnė (6) didesnė už 2.

  31. Heap’asMažiausio elemento išėmimas 6 9 2 8 10 15 Ją sukeisime su mažesne iš jos vaikų.

  32. Heap’asMažiausio elemento išėmimas 6 9 2 8 10 15 Jeigu sukeistam elementui vėl pažeistume heapo savybę, reiktų padaryti dar vieną sukeitimą.

  33. Heap’asMažiausio elemento išėmimas 6 9 2 8 10 15 Vėl turime heap’ą...

  34. ? ? ? ? Grįžti prie sprendimo ?

  35. Sprendimas naudojant heap’ą. • Surikiuojame mašinas pagal starto laiką • Tikriname ar gretimos mašinų poros lenkiasi. • Jeigu lenkiasi, lenkimo įvykį dedame į heap’ą (raktas – apskaičiuotas lenkimosi laikas) Ar trečia lenkia antrą? Ar antra lenkia ketvirtą? Ar ketvirta lenkia pirmą? Ar pirma lenkia penktą? 3 2 4 1 5

  36. Sprendimas naudojant heap’ą. • Paeiliui išiminėjame įvykius iš heap’o(K kartų), ir: • Imituojame lenkimą: greitesnę mašina lenkia lėtesnę • Sukeičiame mašinas • Patikriname ar aplenktos mašinos nesiveja dar kita mašinaJei taip, įvykį vėl dedame į heapą. • Patikriname ar lenkusi mašina lenks dar kitą Jei taip, įvykį vėl dedame į heapą. 3 2 4 1 5

  37. Tikrinimas ar mašina lenkia kitą Kada A aplenks mašiną B? Tarkime tas laikas yra x, ir (x – TA) * GA = (x – TB) * GB; x * GA – TA * GA = x * GB – TB * GB; x * (GA - GB) = TA * GA – TB * GB; x = (TA * GA – TB * GB) / (GA – GB)

  38. Pastabos Realieji skaičiai. Visiškai teisingame sprendime lenkimo laikas turėjo būti saugomas trupmenoje, nes lyginant realiuosius skaičius galima paklaida, ypač kai lenkimai yra labai artimi.

  39. Atvejų nagrinėjimas • Mašinos juda vienodu greičiu. WW Golf 1 WW Golf 1 • Mašinos niekada nelenkia viena kitos.

  40. Atvejų nagrinėjimas • Mašinos juda nevienodu greičiu. • Greitesnė mašina startuoja vėliau WW Golf 1 Mercedes • Mašinos niekada nelenkia viena kitos.

  41. Atvejų nagrinėjimas • Mašinos juda nevienodu greičiu. • Greitesnė mašina startuoja anksčiau WW Golf 1 Mercedes Greitesnė mašina lenkia lėtesnę

  42. Didžioji “Viliaus” taurė

  43. R WW Golf 1 Mercedes # Vilius has signed in. 9.25 [ Vilius ] Adomai, lenkimas :P

  44. R WW Golf 1 Mercedes # Vilius has signed in. 9.28 [ Vilius ] Adomai, tuoj kartos lenkimą! 9.28 [ Adomas ] Joa, matau krč… # Vilius has signed off

  45. # Vilius has signed off # Vilius has signed in [Vilius] 19:21 Aj tiesa... [Vilius] 19:21 Jeigu turite klausimų, galiu atsakyti  # Vilius has signed off

More Related