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.
- Koostada graafi sügava kloonimise meetod (tulemuses peavad
olema kõik Vertex ja Arc tüüpi objektid samuti kloonitud)
kooskõlas Java konventsioonidega.
- 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).
- Koostada meetod etteantud graafist etteantud tipu
eemaldamiseks (eemaldada tuleb ka kõik sellesse tippu suubuvad
ning sellest tipust väljuvad kaared).
- 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)
- Koostada meetod n-tipulise täisgraafi moodustamiseks (Moodle
programmitoorikus kokkulepitud sisekujul), kus n >= 0 on ette
antud meetodi parameetrina.
- Koostada meetod, mis leiab sidusa lihtgraafi kõik niisugused
servad, millest ühe eemaldamine muudaks graafi mittesidusaks
(nn. "sillad").
- Koostada meetod etteantud sidusa lihtgraafi minimaalse kaaluga
aluspuu (minimaalse toese) leidmiseks.
- Koostada meetod etteantud lihtgraafi täiendgraafi leidmiseks.
- Koostada meetod etteantud graafi transitiivse sulundi
leidmiseks.
- Koostada meetod etteantud graafi n astme leidmiseks (n>=0)
kasutades korrutamist.
- *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.
- Koostada meetod, mis leiab etteantud sidusas lihtgraafis
etteantud tipust v kõige kaugemal asuva tipu.
- Koostada meetod, mis leiab etteantud sidusas lihtgraafis
lühima tee kahe teineteisest maksimaalselt kaugel paikneva tipu
vahel.
- Koostada meetod, mis leiab etteantud sidusas lihtgraafis kahe
etteantud tipu vahelise lühima tee.
- *Koostada meetod, mis leiab etteantud lihtgraafis pikima
võimaliku tsükli (maksimaalse pikkusega kinnise ahela, milles
servad ei kordu).
- Buldas, Laud, Villemson. Graafid (käsikiri, 2008, vt.
Moodle) lk.20, ül.12 - koostada meetod etteantud graafi
servgraafi leidmiseks.
- - " -. lk. 20, ül. 15 - koostada meetod etteantud sidusas
lihtgraafis G etteantud tipu v ekstsentrilisuse leidmiseks.
- - " -. lk. 20, ül. 15 - koostada meetod etteantud sidusa
lihtgraafi G raadiuse leidmiseks.
- - " -. lk. 20, ül. 15 - koostada meetod etteantud sidusa
lihtgraafi G diameetri leidmiseks.
- - " -. lk. 20, ül. 15 - koostada meetod etteantud sidusa
lihtgraafi G tsentri leidmiseks.
- - " -. lk. 21, ül. 24 - koostada meetod etteantud lihtgraafi
kolmnurkade graafi moodustamiseks.
- http://en.wikipedia.org/wiki/Pr%C3%BCfer_sequence - koostada
meetod etteantud puu Prüferi koodi leidmiseks.
- J.Kiho. A&A ülesannete kogu, 2005. lk.14, ül.6 - koostada
meetod ohutuima tee leidmiseks.
- - " -. lk.14, ül.7a - koostada meetod, mis leiab tee läbi
kõrgeima punkti.
- - " -. lk.15, ül.7c - koostada meetod, mis leiab tee, mille
kõrgeim tipp on võimalikult madalal.
- Goodrich, Tamassia, 4th Ed., 2006. lk. 644, ül. C-13.12
- - " -. lk. 643, ül. C-13.6
- - " -. lk. 644, ül. C-13.20
- - " -. lk. 643, ül. C-13.9
- - " -. lk. 644, ül. C-13.20
- - " -. lk. 645, ül. C-13.21
- - " -. lk. 645, ül. C-13.23
- - " -. lk. 646, ül. C-13.27
- - " -. lk. 647, ül. P-13.13
Jaanus Pöial