Graafid

Kõigi ülesannete puhul tuleb kasutada Moodle'st võetud programmitoorikut (klassid Graph, Vertex, Arc). Vajadusel tohib nendes klassides lisada isendimuutujaid ja meetodeid.
Aruandes peab olema vähemalt 5 lahendusnäidet erinevate olukordade jaoks.

Kui leiate ise huvitava ülesande, mida on võimalik lahendada graafide abil (kasutades programmitoorikus etteantud viisi graafi kujutamiseks külgnevusstruktuuri kujul), siis leppige see õppejõuga kokku - see on väga hea võimalus individuaaltöö endale huvitavaks teha. Allpool mõned õppejõu poolt pakutavad ülesanded.
  1. Koostada graafi sügava kloonimise meetod (tulemuses peavad olema kõik Vertex ja Arc tüüpi objektid samuti kloonitud) kooskõlas Java konventsioonidega.
  2. Koostada meetod, mis teeb kindlaks, kas etteantud sidusas lihtgraafis leidub Euleri tsükkel, ning selle leidumisel nummerdab kõik servad vastavalt nende järjekorrale Euleri tsükli läbimisel (vt. ka Fleury' algoritm).
  3. Koostada meetod etteantud graafist etteantud tipu eemaldamiseks (eemaldada tuleb ka kõik sellesse tippu suubuvad ning sellest tipust väljuvad kaared).
  4. Koostada meetod, mis arvutab etteantud sidusa lihtgraafi G=(V, E) iga tipu v jaoks välja selle ekstsentrilisuse:
 e(v) = max {d(u, v)| u kuulub hulka V } , kus d(u, v) on tipu u kaugus tipust v (lühima tee pikkus tipust u tippu v)
  1. Koostada meetod n-tipulise täisgraafi moodustamiseks (Moodle programmitoorikus kokkulepitud sisekujul), kus n >= 0 on ette antud meetodi parameetrina.
  2. Koostada meetod, mis leiab sidusa lihtgraafi kõik niisugused servad, millest ühe eemaldamine muudaks graafi mittesidusaks (nn. "sillad").
  3. Koostada meetod etteantud sidusa lihtgraafi minimaalse kaaluga aluspuu (minimaalse toese) leidmiseks.
  4. Koostada meetod etteantud lihtgraafi täiendgraafi leidmiseks.
  5. Koostada meetod etteantud graafi transitiivse sulundi leidmiseks.
  6. Koostada meetod etteantud graafi n astme leidmiseks (n>=0) kasutades korrutamist.
  7. *On antud sidus lihtgraaf, mille iga serva jaoks on teada selle läbilaskevõime ("toru jämedus", mittenegatiivne). Koostada meetod, mis leiab kahe etteantud tipu  vahelise maksimaalse läbilaskevõime Ford-Fulkersoni meetodil.
  8. Koostada meetod, mis leiab etteantud sidusas lihtgraafis etteantud tipust v kõige kaugemal asuva tipu.
  9. Koostada meetod, mis leiab etteantud sidusas lihtgraafis lühima tee kahe teineteisest maksimaalselt kaugel paikneva tipu vahel.
  10. Koostada meetod, mis leiab etteantud sidusas lihtgraafis kahe etteantud tipu vahelise lühima tee.
  11. *Koostada meetod, mis leiab etteantud lihtgraafis pikima võimaliku tsükli (maksimaalse pikkusega kinnise ahela, milles servad ei kordu).
  12. Buldas, Laud, Villemson. Graafid (käsikiri, 2008, vt. Moodle)  lk.20, ül.12 - koostada meetod etteantud graafi servgraafi leidmiseks.
  13. - " -. lk. 20, ül. 15 - koostada meetod etteantud sidusas lihtgraafis G etteantud tipu v ekstsentrilisuse leidmiseks.
  14. - " -. lk. 20, ül. 15 - koostada meetod etteantud sidusa lihtgraafi G raadiuse leidmiseks.
  15. - " -. lk. 20, ül. 15 - koostada meetod etteantud sidusa lihtgraafi G diameetri leidmiseks.
  16. - " -. lk. 20, ül. 15 - koostada meetod etteantud sidusa lihtgraafi G tsentri leidmiseks.
  17. - " -. lk. 21, ül. 24 - koostada meetod etteantud lihtgraafi kolmnurkade graafi moodustamiseks.
  18. http://en.wikipedia.org/wiki/Pr%C3%BCfer_sequence - koostada meetod etteantud puu Prüferi koodi leidmiseks.
  19. J.Kiho. A&A ülesannete kogu, 2005. lk.14, ül.6 - koostada meetod ohutuima tee leidmiseks.
  20. - " -. lk.14, ül.7a - koostada meetod, mis leiab tee läbi kõrgeima punkti.
  21. - " -. lk.15, ül.7c - koostada meetod, mis leiab tee, mille kõrgeim tipp on võimalikult madalal.
  22. Goodrich, Tamassia, 4th Ed., 2006. lk. 644, ül. C-13.12
  23. - " -. lk. 643, ül. C-13.6
  24. - " -. lk. 644, ül. C-13.20
  25. - " -. lk. 643, ül. C-13.9
  26. - " -. lk. 644, ül. C-13.20
  27. - " -. lk. 645, ül. C-13.21
  28. - " -. lk. 645, ül. C-13.23
  29. - " -. lk. 646, ül. C-13.27
  30. - " -. lk. 647, ül. P-13.13


Jaanus Pöial