Graaf. Põhimõisted graafi kohta

Suurus: px
Alustada lehe näitamist:

Download "Graaf. Põhimõisted graafi kohta"

Väljavõte

1 Graaf NB! Ära kasuta seda konspekti Diskreetse matemaatika kursuse eksamiks õppimisel! Graaf on kõige üldisem võimalus andmete vaheliste seoste kujutamiseks. Nii lineaarloend kui ka puu on vaadeldavad graafi kitsamate erijuhtudena. Graaf on struktuur, mille abil saab modelleerida objektide vahel esinevaid paari-kaupa suhteid/seoseid. Esimese graafiteooria probleemi Königsbergi sildadest esitas 1736 a. Šveitsi matemaatik ja füüsik Leonard Euler ( ) (vaata allpool). Euleri tulemused jäid pikemaks ajaks unustusse ning graafe on korduvalt taasavastatud. Nii avastas need näiteks G. R. Kirchhoff ( ) 1845 aastal vooluahelate kohta käivates Kirchoffi seadustes. Graafi mõiste võttis kasutusele inglise matemaatik James Joseph Sylvester ( ) 1878 aastal. Graaf G=(V, E) on järjestatud paar mittetühjast hulgast V ja selle hulga elementide paaride hulgast E. Hulga V elemente nimetatakse graafi tippudeks ja hulga E elemente graafi servadeks, kaarteks või seosteks. Põhimõisted graafi kohta Graaf (graph) koosneb tippudest (vertex, node) ja tippe ühendavatest kaartest (servadest) (edge). Suunatud graaf (directed graph, digraph) on graaf, mille kaartel on suund, st iga kaare jaoks on määratud, millisest tipust ta algab ja millises tipus lõppeb e. teisisõnu võib öelda, et on graafi tipud on paari kaupa järjestatud (joonisel tähistatakse noolega kaare otsas). Suunamata graafis ehk lihtsalt graafis (undirected graph) on seos kahe tipu vahel mõlemas suunas. See kehtib kõigi graafi servade kohta. Joonisel sel juhul nooli ei märgita. Suunatud graafis eristatakse neid tippe, kuhu ühtegi kaart ei sisene (source) ja tippe, kust ühtegi kaart ei välju (sink). Mõistete suunatud ja suunamata asemel võib rääkida ka orienteeritud ja orienteerimata graafist. Graafis saab leida tee (path) ehk ahela ühest tipust teise tippu (suunatud graafi puhul ei pruugi teed iga tipupaari jaoks leiduda). Teel on pikkus. Tee ehk ahel on selline kaarte järgnevus, kus ühe kaare lõpp-punkt on järgmise kaare alguspunktiks. Suunamata graafis saab tee minna läbi kaare mõlemat pidi, suunatud graafis tuleb arvestada kindlasti kaare suunaga. Sama kaar või sama tipp võivad ahelas korduda. Kaks tippu v ja u on seotud, kui nende vahel on tee. Kaks tippu on seotud külgnevussuhtega ehk naabrussuhtega (adjacency relation), kui ühest tipust läheb kaar teise tippu. Öeldakse ka, et need tipud külgnevad. Suunamata graafi puhul on tegemist sümmeetrilise seosega (u on v naaber ja v on u naaber). Suunatud graafil tuleb arvestada kaare suunaga ning seos ei ole sümmeetriline. Kasutatakse ka mõistet tipu naaber. Kui kaar läheb tipust v tippu w, siis on w tipule v naaber ehk temaga külgnev tipp. Suunatud graafi puhul aga vastupidist seost ei ole, st v ei ole w-le naaber ega külgnev tipp. Elementaarahel on ahel (kaarte või servade jada), mis ei lähe läbi ühegi tipu üle ühe korra. Lihtahel on ahel, milles ei ole ühtegi serva topelt. Kui ahela algus ja lõpp on samas tipus, siis on tegemist tsükliga. Ja siit saame vastavalt elementaartsükli (elementaarahel, mis lõppeb samas tipus) ja lihttsükli (lihtahel, mis lõppeb sama tipus) mõisted. Inga Petuhhov, TLÜ 1/16

2 Sidus graaf (connected graph) on graaf, milles iga kahe tipu jaoks leidub neid tippe ühendav ahel. Ehk lihtsamalt öeldes on graaf justkui ühes tükis. Hamiltoni tsükkel on elementaartsükkel, mis läbib kõiki graafi tippe. Euleri tsükkel on lihttsükkel, mis läbib kõiki graafi servi ühe korra. Kui graafis ei ole ühtegi tsüklit (suvalisest tipust ei leidu teed samasse tippu tagasi), nimetatakse graafi atsükliliseks (acyclic graph). Suunatud atsükliline graaf (directed acyclic graph ehk DAG) on suunatud graaf, kus puudub tsükkel. Sellist liiki graaf on oluline paljude ülesannete lahendamisel. Graafi nimetatakse täielikuks (complete graph), kui tal on kaared kõigi tippude vahel. Tühigraafis ei ole aga ühtegi kaart. Königsbergi sillad Joonis 1: Königsbergi sillad (Allikas: %C3%B6nigsbergi_sildade_probleem) Königsbergi sildade probleemi peetakse esimeseks kirjeldatud graafiprobleemiks (ehkki sõna graaf sel ajal ei kasutatud). Pregeli jõel Königsbergis oli L. Euleri eluajal 7 silda (Joonis Error: Reference source not found). Euler küsis: kas lugupeetavad linnakodanikud saavad pühapäevasel jalutuskäigul ületada kõik sillad ühe korral ja jõuda koju (probleem 1)? Kas kodanikud saavad planeerida jalutuskäigu nii, et iga sild ületatakse ühe korra (tagasi lähtepunkti jõudmine ei ole oluline - probleem 2)? Tänapäeval saame leida lahenduse järgmisi mõisteid ja teadmisi kasutades (kui ei viitsi lõputult sõrmega mööda kaarti teid taga ajada): Euleri tee ehk Euleri ahel graafis on tee, mis läbib graafi kõik servad ühe korra (probleem 2). Euleri tsükkel on Euleri tee, mis moodustab tsükli ehk jõuab lähtetippu tagasi, olles eelnevalt läbinud kõik graafi servad ühe korra. (probleem 1). Inga Petuhhov, TLÜ 2/16

3 Vastavalt Euleri teoreemile esineb Euleri tsükkel parajasti siis kui graaf on sidus ja selles ei ole paarituarvulise astmega tippe. Euleri tee esineb graafis parajasti siis kui graaf on sidus ja ei sisalda rohkem kui kaht paarituarvulise astmega tippu. Joonis 2: Königsbergi sillad (Allikas %C3%B6nigsbergi_sildade_problee m) Aga mis on tipu aste? Tipu aste ehk valents on servade arv, mille otspunktiks antud tipp on. Pregeli jõe sildu (graafi served) ja nende poolt ühendatavaid Königsbergi linnaosasid (graafi tipud) näed graafina joonisel (Joonis 2). Lähtudes eespool toodud Euleri teoreemist - millised on lahendused Euleri püstitatud probleemidele? Info graafis Kui graafi kasutatakse mõne ülesande lahendamiseks ja objektide vaheliste seoste modelleerimiseks, paigutatakse tippudesse info nimetatud objektide kohta. Tipud saavad sõltuvalt rakendusest endale nimed, seega on tipud kui mingid objektid, sündmused vms. Serv kahe tipu vahel tähistab seost nende kahe objekti või sündmuse vahel. Suunamata graafis tähistab serv võrdset seost tippude vahel mõlemas suunas (seos on ühesugune tipust u tippu v ja vastupidi). Suunatud graafis on seosel suund (näiteks võib see näidata sündmuste järgnevust). Kui suunatud graafis on vaja näidata mõlemapidist seost kahe tipu vahel, lisatakse nende tippude vahele kaks kaart. Graafi kaartega saab siduda arvud. Sel juhul kannab kaar lisainformatsiooni lisaks seoseinfole. Neid arve kutsutakse kaaludeks ning vastavat graafi kaalutud graafiks (weighted graph) e. võrguks (network). Seose kaaludega abil saab näidata seoste tugevust, pikkust vms. Toimingud graafis Olulisemad nö lihttoimingud graafis hõlmavad manipulatsioone kaarte ja tippudega. Lihttoiminguid on enamasti tarvis kasutada graafi loomisel ja töötlemisel, nad on osaks erinevates graafialgoritmides. Mõned näited lihttoimingutest: kaare lisamine (milliste tippude vahele?); tipu kustutamine (milline tipp?); kaare kustutamine (milliste tippude vahelt?); tipu nime küsimine; tipu nimega X otsimine (kas on või ei ole: vastus on true või false). Seoses sellega, et graafi tippe on erinevate algoritmide käigus vaja külastada, on vaja: märgistada, et tippu või kaart külastati; Inga Petuhhov, TLÜ 3/16

4 küsida, kas tippu või kaart on külastatud. Graafi kohta saab mitmesugust infot küsida: tippude arvu; kaarte arvu; ühe tipu naabreid (oluline enamuses algoritmides); kas graaf on orienteeritud; kas graafis on tsükkel. Ja graafis tuleb liikuda, st läbida tippe ja kaari mingis järjekorras. kõigi kaarte läbimine üks kord (teatatakse kaarte kaalud, kui neid on); kõigi tippude läbimine üks kord (teatatakse tippude nimed). Lisaks on mitmed traditsioonilised algoritmid, mida erinevate ülesannete lahendamiseks kasutada saab. Need algoritmid kasutavad eelnevalt nimetatud lihttoiminguid Näiteks: sügavuti otsimine üks põhialgoritm, millele tuginevad teised algoritmid; laiuti otsimine teine põhialgoritm, millele tuginevad teised algoritmid; topoloogiline sorteerimine; lühima tee leidmine kahe tipu vahel; lühimate teede leidmine ühest tipust kõigisse tippudesse; tugevalt seotud komponendid (aluseks sügavuti otsimine); minimaalne toesepuu (aluseks sügavuti otsimine) jne. Graafi ADT Eelnevatele tegevustele tuginedes on võimalik kirjeldada graafi ADT (abstract data type)-liides: InitGraph(N) uue graafi algväärtustamine InsertEdge(u,v) kaare lisamine tippude u ja v vahele RemoveEdge(u,v) kaare kustutamine tippude u ja v vahelt GetAdjList(v) millised on tipu v naabrid? Tagastatakse nimekiri Tegelikult vaid nende elementaaroperatsioonidega ADT ei saa piirduda. Kuid need operatsioonid on aluseks keerulisemate algoritmide kirjeldamisele. Realisatsioon Graafide kujutamiseks on kaks peamist võimalust, millistele tuginedes ka vastavad algoritmid on väljatöötatud: külgnevusahelana (adjacency-list) ja külgnevusmaatriksina (ka naabrusmaatriks, seosmaatriks) (adjacency-matrix). Eelistatav realisatsioon sõltub graafi iseloomust, lahendamist vajavast ülesandest, tippude arvust (graafi suurusest) jms. Näiteks eristatakse tihedaid (dense) ja hõredaid (sparse) graafe. Esimestele on sobivam külgnevusmaatriks (pole liigset mälu raiskamist), teistele pigem külgnevusahel. Graafi tihedust defineeritakse kui keskmist tipu astet (average vertex degree): 2 E / V. Tipu aste näitab mitu kaart antud tipuga seotud on. Tippude arvu tähistatakse traditsiooniliselt V ja servade arvu E-ga. Graaf on tihe siis, kui keskmine tipu aste on proportsionaalne tippude arvuga. Või kui servade hulk E on proportsionaalne tippude arvu ruuduga V 2. Loomulikult ei arvuta siin keegi välja täpset suhet, vaid tegemist on üldise hinnanguga. Inga Petuhhov, TLÜ 4/16

5 Täpsemad võimaluse graafi realiseerimiseks sõltuvad kasutatavast programmeerimiskeelest. Järgnevas tekstis tuuakse näited keele C baasil, kasutades nii maatrikseid kui ka ühe või kahe viidaga ahelaid. Kui tasub meeles pidada, et erinevad keeled pakuvad erinevaid võimalusi. Staatiline realisatsioon Staatiline realisatsioon esitab graafis olevad tippudevahelised seosed külgnevusmaatriksina (adjacency matrix). Nii ridu kui veerge on maatriksis sama palju kui graafis tippe. Igasse maatriksi lahtrisse kantakse True (1) või False (0). Kaar on kahe tipu vahel sel juhul, kui maatriksisse on märgitud 1 (true) ning kaare puudumist tähistab 0 (false). Suunamata graafi puhul on tegemist peadiagonaali suhtes sümmeetrilise maatriksiga. Graafi tippude infot saab säilitada eraldi tippude kogumis, kuhu pannakse iga tipu kohta oluline info (võti jms). Maatriksi ülesandeks on näidata, millised on seosed tippude vahel. Seega oleks tippude kogum nagu tippude hulk V ning külgnevusmaatriks kui kaarte hulk E. Graafi esitamist maatriksina kasutatakse matemaatikas. Programmeerides on vaja graafi jaoks deklareerida kahemõõtmeline massiiv, mille elemendid on kas täisarvud (kaalumata graafi puhul 0 ja 1) või ka boolean-tüüpi väärtused. Kaalutud graafi puhul sõltub kaalust. Massiiv täidetakse arvudega sama põhimõtte järgi nagu maatriks Joonis 3: Suunatud graaf Joonisel (Joonis 3) olevat graafi näed ülel olevas seoseid kujutavas massiivis (ehk naabrusmaatriksis). See võib koosneda nii tõeväärtustüüpi kui ka täisarvutüüpi elementidest. Sõltub konkreetsest keelest, milliseid andmetüüpe kasutada, kuid täisarv ja tõeväärtustüüp on esimesed valikud. Kui on tegemist kaalutud graafiga, on mõtekas naabrusmaatriksis näidata kaarte kaalu. Nii Inga Petuhhov, TLÜ 5/16

6 võivad ühtesid asendada muud (täis)arvud. Seda aga eeldusel, kaal 0 ei ole võimalik. Siis saab 0 jääda kaare puudumist näitama. Staatiline struktuur graafi hoidmiseks võiks C-s olla järgmine. #define VertMax 100 struct graph { int V,E; int Adj[VertMax][VertMax]; int Vert[VertMax]; // tippude ja kaarte arvud }; Graafi kasutamiseks tuleb nii külgnevusmaatriks kui ka tippude massiiv algväärtustada. Seda võib teha järgmine funktsioon: struct graph *GraphInit(V) { int i,j; struct graph *mygraph; mygraph = malloc(sizeof *graaf); mygraph->v = 0; printf("%d",mygraph->v); mygraph->e = 0; for (i=0;i<v;i++){ mygraph->vert[i] = 0; for (j=0;j<v;j++){ mygraph->adj[i][j] = 0; } } return(mygraph); } Funktsioon kaare lisamiseks etteantud tippude u ja v vahele võiks olla järgmine. NB! Graaf ei ole suunatud (on orienteerimata). InsertEdge(struct graph *mygraph,int u,int v){ mygraph->adj[u][v] = 1; mygraph->adj[v][u] = 1; mygraph->e++; } Keerulisemad on algoritmid graafi läbimiseks ja teede leidmiseks. Näiteks selleks, et leida, kas tipust x läheb tee tippu y tuleb graafi maatriksiga arvutusi teha. Graafide töötlemisel kasutatakse laiuti või sügavuti otsimise tehnikat (kuna teid võib olla palju tuleb kõik võimalused ära proovida, sest tavaliselt ei aita ühe tee leidmisest, vaid see tee peab vastama mingitele tingimustele). Reeglina tuleb siin kasutada rekursiooni. Aitab ka dünaamiline programmeerimine. Nimetatud erinevatest algoritmide koostamise strateegiatest tuleb juttu edaspidi. Dünaamiline realisatsioon Hõreda graafi ökonoomsemaks kujutamiseks võetakse kasutusele nn külgnevusahel (adjacency list). Graafi tippudest moodustatakse massiiv, üks massiivi lahter / element graafi iga tipu jaoks ning iga tipu lahtri külge kinnitatakse ahel antud tipuga külgnevatest tippudest. Ahela lõpust annab märku NULL viit. Vaata Joonis 4. Selliselt saab mälu, aga ka töötlemiseks kuluvat aega oluliselt kokku hoida. Siit võite endale ise ette kujutada, mida sel juhul tähendaksid uue kaare lisamine (riputame ahela algusesse või lõppu uue elemendi), kaare kustutamine (kustutame elemendi) ja naabrite leidmine (läbime vastava ahela). Inga Petuhhov, TLÜ 6/16

7 1 2 3 NULL 2 NULL NULL 6 NULL 6 NULL NULL 7 NULL NULL 6 NULL 10 NULL Joonis 4: Külgnevusahel joonisel 3 kujutatud graafile. Kõigi tegevuste puhul tuleb arvestada, kas graaf on orienteeritud või mitte. Kaare lisamisel tippude u ja v vahele tuleb dünaamilise realisatsiooni korral lisada kaks elementi - tipp u tipu v naabrite ahelasse ning tipp v tipu u naabrite ahelasse. Realisatsiooniks tuleb mängu panna kõik oskused, mis ahelaid programmeerides tekkinud on (või veel ei ole). Graafiprobleemid Mõned probleemid, millele on võimalik vastuseid leida kasutades graafide jaoks kirjeldatud algoritme: Kuidas jõuab kõige kiiremini Tallinnast Värskasse? Kuidas transportida kaupa kõige odavamalt erinevatelt müüjatelt erinevatele ostjatele. Kuidas korraldada tööde järjekord nii, et maja saaks valmis lühima ajaga? Millises järjekorras valida õppeained, et võimalikult lühema ajaga ülikool lõpetada? Kuidas suunata netiliiklus efektiivselt läbi ruuterite? On antud linnade ja nende vaheliste kauguste nimekiri. Milline on lühim võimalik teekond, mis läbib kõik linnad täpselt ühe korra ja jõuab algpunkti tagasi? See on nn rändkaupmehe ülesanne (travelling salesman). Naiivse jõumeetodil lahenduse korral (leime kõikvõimalikud teekonnad, valime lühima) on tegemist faktoriaalse keerukusega algoritmiga. Graafiteooria probleemiks liigitatakse ka tuntud nelja värvi probleem. Kui tasapind on jagatud pidevateks piirkondadeks, moodustades kaardi-taolise kujundi, saab selle värvida nelja erineva värviga nii, et naaberpiirkondi ei värvita sama värvita sama värvi. Nelja värvi probleem (four-color problem / theorem). Kuidas joota trükiplaadil kokku kontaktid nii, et kõik oleksid omavahel seotud, kuid seoseid oleks minimaalne arv või et lisatavad traadid oleksid minimaalse pikkusega? Jne... Kõigi selliste probleemide lahendamiseks tuleb kõigepealt olukord / andmed kirjeldada graafina ja seejärel kasutades graafialgoritme, leida lahendused. Olles probleemi graafina kirja pannud pole enam näiteks vahet, kas uurime tööde tegemise optimaalset järjestust või parimat õppeainete läbimise järjekorda tegevus taandub samale (topoloogilise sorteerimise) algoritmile. Inga Petuhhov, TLÜ 7/16

8 Graafi tippude läbimine Graafi süstemaatiliseks uurimiseks tuleb tema tippe ja kaari ükshaaval uurida. Kui on näiteks vaja teada saada iga tipu järku, ei ole oluline, millises järjekorras graafi tippe uurida. Kuid mitmed graafi omadused on seotud teedega tippude vahel ja kõige loomulikum viis neid uurida, on liikuda tipust tippu, kasutades selleks graafi kaari. Graafi kõiki tippe võib vaja olla läbida mitmel erineval eesmärgil, kuid on oluline teha seda vaid lubatud viisil, st lähtudes olemasolevatest kaartest ja nende suundadest. Klassikaliselt kasutatakse kaarte/tippude läbimiseks kahte erinevat strateegiat ja sõltub kaugemast eesmärgist, kumba nendest valida. Need strateegiad on laiuti otsimine ja sügavuti (ka süviti) otsimine. Ehkki mõistes sisaldub sõna otsimine, ei ole tegemist klassikalises mõttes otsimisega. Eesti keeles kasutatakse ka mõisteid laiuti läbimine ja süviti läbimine. Mõlemas strateegias lähtutakse ühest graafi tipust ja liikudes tipult tema naabrile läbitakse kõik tipud. Strateegia järgmise tipu valimisel on erinev. Kõigi graafi tippude läbimine ei ole eesmärk omaette, kuid mõlemad algoritmid on aluseks mitmete teiste algoritmide koostamisel (näiteks laiuti otsimine lühimate teede leidmiseks ja sügavuti otsimine topoloogiliseks sorteerimiseks) Laiuti otsimine Laiuti otsimine (ka laiuti läbimine) (breadth-first search) on teatud algoritmi tüüp, mida on sobiv kasutada ülesannete puhul, kus otsitakse parimat lahendust ja see tuleks välja sõeluda paljude võimaluste hulgast. Kõige tüüpilisemaks ülesandeks on lühima pikkusega tee otsimine kahe tipu vahel. Tee pikkuseks loetakse antud juhul kaarte arvu, mis uuritavate tippude vahele jääb. Mitte ükski teine tee samade tippude vahel ei tohi sisaldada vähem kaari. Iseloomulikuks laiuti otsimise juures on, et kõiki lahendusvariante ei püüta kätte saada ükshaaval, et neid hiljem võrdlema hakata, vaid neid uuritakse paralleelselt. Laiuti otsimisel võetakse aluseks lähtetipp u. Kõigepealt leitakse kõik tipud, kuhu on võimalik jõuda tipust u ühe kaare läbimise järel (st tipu u naabrid). Seejärel võetakse aluseks kõik eelnevalt leitud tipud (lähtetipu naabrid) ja fikseeritakse tipud, kuhu saab jõuda kahte kaart läbides jne. Kui sama tipp oli juba vähema hulga kaarte läbimisel saavutatav, siis uut pikemat teed meelde ei jääta. Nii toimides läbitakse lõpuks kõik tipud. Algoritmi töö võib ka varem lõpetada, kui eesmärgiks on lühima tee leidmine tippude u ja v vahel. Sel juhul võib lõpetada siis, kui tipuni v välja jõutakse. Paremat varianti hiljem kindlasti ei tule. Laiuti otsimise põhimõtet ei kasutata ainult graafide juures. Laiuti otsimiseks ei esitata graafile mingeid kitsendusi. Graaf võib olla nii suunatud kui ka suunamata. Kui algustipust leidub tee igasse teise graafi tippu (graaf on sidus), siis BFS-algoritmi abil ta ka leitakse. Algoritm Algoritmi alguses valitakse algustipp S ja sellest lähtudes uuritakse graafi. Lähtetipu valimine on seotud ülesande püstutusega. Algoritmi töö tulemuseks on loetelu tippudest, mis on kättesaadavad tipust S lähtudes, lisaks on teada tee pikkus tipust S antud tippu (mitu kaart kahe tipu vahele jääb). Tekib puukujuline struktuur (mida küll füüsiliselt üles ei ehitata), nn laiutiotsimispuu. Algoritmi täitmiseks värvitakse tipud (color[u]), peetakse meeles iga tipu eellast (P[u]) ja sammude arvu (st tee pikkust) esimesest tipust antud tipuni (d[u]). Tipud võivad olla valged, hallid või mustad (värvima kindlasti ei pea, kuid meeles peab pidama nende kolme olekut): valge (white) - tipuni pole veel jõutud (kõik tipud, mis on ees); Inga Petuhhov, TLÜ 8/16

9 hall (grey) tipuni on jõutud, tema eellane on fikseeritud, kuid temaga külgnevad tipud pole veel kõik läbi uuritud (tegutsemise front); must (black) tipu naabrid on läbi uuritud ja rohkem selle tipu kallale minna ei tohi (tagala). Alguses on kõik tipud valged, ja esimesel sammul värvitakse halliks algustipp S. Edasi värvitakse halliks tema naabrid ja tipp ise mustaks. Iga halli tipuga tehakse järgmist: kui mõni naaber on valge, värvitakse ta halliks, halli ja musta naabrit ei puudutata; kui kõik naabertipud on hallid või mustad, värvitakse tipp ise mustaks. Selliselt laieneb läbiuuritud mustade tippude hulk ja hallid tipud on piiriks uuritud ja uurimata ala vahel. Samal ajal saadakse paralleelselt teada teede pikkused algustipust kõigisse teistesse graafi tippudesse. Realiseerimaks laiutiotsimise algoritmi, võetakse lisaks graafile kasutusse järjekord Q hallide tippude ajutiseks hoidmiseks. Järgnevas algoritmis kasutatakse kahte järjekorra protseduuri Enqueue (järjekorda lisamiseks) ja Dequeue (järjekorrast eemaldamiseks), mida meil seni realiseeritud pole, kuid mis ei tohiks erilist peavalu valmistada. Lisaks on kasutatud keelekonstruktsiooni foreach, mille abil töödeldakse läbi elemendid mingist hulgast. Vastav tegevus on dünaamilise ja staatilise realisatsiooni puhul erinev, seetõttu pole teda täpsustatud. Järgnev algoritm on esitatud pseudokeeles NB! See ei käivitu ei C, Pythoni ega mingi teise keele kompilaatori abil. Breadth_first(G,s) {Algoritm graafis G laiutiotsimiseks lähtudes tipust s, (raamatust Cormen, Leiserson, Rivest, Introduction to Algorithms)} Foreach u in G do {Algväärtustab graafi, tehakse iga tipuga} color[u] <- white {värv} d[u] <- -1 {sammude arv algtipust} p[u] <- nil {eelnev tipp} end foreach color[s] <- grey {Algväärtustab algustipu ja temaga seotud näitajad} d[s] <- 0 p[s] <- nil Enqueue(Q,s) {Hall algustipp pannakse järjekorda} while Q not Empty do Dequeue(Q,u) {Järjekorrast võetakse hall tipp u} foreach v in Adj[u] do {Iga valge tipuga v, mis on tipu u naaber} if color[v]=white then color[v]<-grey {Tipp värvitakse halliks} d[v]<-d[u]+1 {Salvestatakse tema teepikkus algtipust} p[v]<-u {Salvestatakse tema eellane} Enqueue(Q,v) endif endforeach color[u]<-black endwhile {Pannakse tipp järjekorda} {Värvitakse uuritud tipp mustaks} Algoritm sobib nii külgnevusahela kui ka külgnevusmaatriksi töötlemiseks. C-programmi kirjutamisel tuleb tegevused C-s ning sõltuvalt valitud realisatsioonist vastavas stiilis kirja panna. Järjekorra jaoks oleks hea kasutada vastavat andmetüüpi ja funktsioone põhitegevuste jaoks (võttes eeskuju pinu funktsioonidest). Laiuti otsimise algoritm on aluseks teiste algoritmide koostamisele graafiprobleemide lahendamiseks. Inga Petuhhov, TLÜ 9/16

10 Sügavuti otsimine Sügavuti (süviti) otsimise (depth-first search) starteegia on sarnane labürindi läbimisele. Juhul, kui seda vähegi süstemaatiliselt teha. Labürint, see on hulk käike, mis võivad omavahel lõikuda/hargneda. Mõtle, milline võiks olla konkreetne starteegia, et labürint läbi käia ja kusagilt väljapääs leida või jõuda tagasi lähtepunkti. (Vana legendi järgi vedas Theseus laiali lõnga Minotauruse koobastes, et mitte ära eksida ühelt poolt oli tal loodetavasti strateegia, teisalt märgistas ta oma teekonda.) Sügavuti otsimise strateegia seisneb selles, et minnakse ühte teed mööda nii kaugele (sügavale), kui see võimalik on (st tipult tema naabrile ja sellelt omakorda tema naabrile jne). Kui tipul rohkem naabreid pole, pöördutakse tagasi ja otsitakse teist teed. Nii jätkatakse seni, kuni leidub tippe, mida pole veel külastatud, kuid mis on algustipust kättesaadavad. Kui sellisel viisil rohkemate tippude juurde ei pääse, kuid on veel uurimata tippe, võetakse neist suvaline ja korratakse tegevust. Sellise tegevuse tulemusena saadakse sügavuti otsimise puu(d) (depth search tree) ja mitme puu puhul tekib mets. Iga tipp võib sattuda vaid ühte otsimispuusse ja seega puud ei lõiku. Algoritmi kasutamiseks sobib nii orienteeritud kui ka orienteerimata graaf. Väljendades sama algoritmi rekursiivselt: tipp märgistatakse läbituks, seejärel läbitakse rekursiivselt kõik tipu naabrid, mida ei ole veel läbitud. Tavaliselt esitatakse seda algoritmi rekursiooni kasutades. Kuid on ka lihtne võimalus saada laiuti otsimisest süviti otsimine - nimelt kui vahetada hallide tippude hoiustamiseks kasutatav järjekord pinuga. Selleläbi muutub järgmise tipu valimise loogika ja koos sellega tippude läbimise järjekord. DFS-i saab kasutada graafis tsüklite leidmiseks, kahe tipu vahelise seotuse (tee) leidmiseks, minimaalse toesepuu (leida V-1 kaart, mis ühendavad V tippu) leimiseks Algoritm Graafi tipud on algoritmi töö käigus kolmes erinevas olekus ja nende tähistamiseks võib kasutada värve. Algoritm kasutab värve sarnaselt laiuti otsimisele: valge tipp on avastamata halli tipuni on jõutud, kuid tema naabrid on üle vaatamata musta tipuga on kõik ühel pool, tema naabrid on üle vaadatud. Iga tipuga seotakse kaks ajatemplit (time stamp) d[v] märgitakse siis, kui tipp esimest korda avastati ja f[v] siis, kui tipp on lõplikult töödeldud ja mustaks värvitud. Neid templeid saab kasutada mitmetes algoritmides, lihtsalt graafi läbimiseks neid vaja ei ole. Kui laiuti otsimise juures halle tippe hoiti ja töödeldi järjekorra põhimõttel, siis sügavuti otsimise jaoks tuleks neid hoopis pinus hoida. Järgnevas algoritmis on pinu tekitamiseks kasutatud rekursiivset funktsiooni väljakutsumist. Algoritm DFS(G) sisaldab rekursiivset funktsiooni DFS-Visit(u). {Algoritm graafis G süviti otsimiseks lähtudes tipust s, (raamatust Cormen, Leiserson, Rivest, Introduction to Algorithms)} {color[u] tipu u värv P[u] tipu u vahetu eellane d[u] esimene ajatempel f[u] teine ajatempel} time aeg, mis teatud skeemi järgi tiksub DFS(G) {Tipud algväärtustatakse eellast pole, värv on valge} foreach u in G do color[u]<-white P[u]<-Nil endforeach time<-0 {Tsükkel kõigi tippude läbimiseks} foreach u in G do if color[u]=white then {Kui tipp on uurimata, siis külastame teda} Inga Petuhhov, TLÜ 10/16

11 DFS-Visit(u) endif endforeach end DFS {Rekursiivne tipukülastamise funktsioon} DFS-Visit(u) color[u]<-grey {Tipuni u esimest korda jõudmisel värvime ta halliks} d[u]<-time<-time+1 {Väärtustame esimese ajatempli} {Külastame rekursiivselt kõiki uuritava tipu valgeid naabreid} foreach v in Adj[u] do if color[v]=white then P[v]<-u DFS-Visit(v) endif endforeach color[u]<-black {Tipp u on lõpuni uuritud, st kõik naabrid on läbi käidud, värvime ta mustaks} f[u]<-time<-time+1 {Väärtustame teise ajatempli} end DFS-Visit Funktsiooni DFS-Visit(u) ülesandeks on kõigi tipu u naabrite ülevaatamine. Tipp u värvitakse halliks ning talle lisatakse esimene ajatempel. Kõigi tipu u valgete naabrite jaoks rakendatakse rekursiivselt sama funktsiooni. Kui tipu u kõik naabrid on läbi uuritud, värvitakse ta mustaks ja pannakse külge teine ajatempel. Kahe ajatempli vahe on sisuliselt see aeg, kui kaua käidi tipust u lähtuvas alampuus. Erinevus BFS-i ja DFS-i vahel tuleneb hallide tippude hoidmise meetodist. Esimesel juhul (BFS) on selleks järjekord, teisel juhul (DFS) aga pinu. Sellest piisab tippude erinevas järjekorras töötlemiseks ning täiesti erinevate tulemuste saavutamiseks. Graafi kaarte klassifitseerimine Graafi kaari klassifitseeritakse vastavalt nende osale tekkivas sügavuti otsimise puus ning klassifikatsioonil on tähtsus erinevate ülesannete lahendamisel (näiteks tsüklite avastamisel orienteeritud graafis). Sügavuti otismise puusse satuvad vaid need kaared, mida läbimise käigus kasutati. Kaared jagatakse nelja klassi järgmiselt: 1. Puu kaared (tree edges) need on kaared, mis paiknevad süvitiotsimise puus, mis on selle puu ehitamise käigus läbitud. 2. Tagasiviivad kaared (back edges) see on kaar (u,v), mis ühendab süvitiotsimise puus tippu u tema eellasega v (sellisel puhul on ilmselt tegemist tsükliga) 3. Edasiviivad kaared (forward edges) ühendavad tippu tema järglasega, kuid ei kuulu otsimispuusse 4. Ristuvad kaared (cross edges) kõik ülejäänud kaared. Nad võivad ühendada ühe otsimispuu erinevaid tippe, kui üks tipp pole teise tipu eellane, samuti tippe erinevatest otsimispuudest. Täiendades DFS-algoritmi on võimalik tuvastada erinevate kaarte klassid. Selleks tuleb vaadata tipu v värvi siis, kui kaart (u,v) esimest korda uuritakse: kui tipp v on valge, siis on tegemist puu kaarega, kui tipp v on hall, siis on tagasiviiv kaar ja kui tipp v on must, siis kas edasiviiv kaar või ristuv kaar. Orienteeritud graafis ei ole tsükleid siis ja ainult siis, kui süvitiotsimise käigus ei leita ühtegi tagasiviivat kaart. Oluline erinevus laiutiotsimisega: läbitakse kindlasti kõik graafi tipud ja tekkida võib seega mitu süvitiotsimise puud. Inga Petuhhov, TLÜ 11/16

12 Lühim tee Lühima tee (shortest path) leidmine graafis on oluline ülesanne. Selle abil on võimalik tuvastada sõna otseses mõttes lühimat teed näiteks kahe geograafilise punkti vahel (viimasel juhul on vaja arvestada ka kilometraažiga), kuid lühimaks teeks võib olla ka minimaalne toimingute arv või kontaktide hulk. Lühima tee väljastamine Laiuti otsimise algoritm annab tulemuseks info, kui kaugel on ühest tipust (algustipust) kõik teised tipud. Seal juures mõistetakse tee pikkuse all sammude ehk kaarte arvu. Laiuti otsimise tulemusena saadi iga tipu kohta teada, mitu kaart (sammu) on temani algustipust (massiiv d) ja millisest tipust siia tuldi (vahetu eellane, massiiv P). Rekursiivne funktsioon, millega saadakse tee s->v on järgmine: Print_Path(G,s,v) {G graaf s algustipp v - suvaline graafi tipp tee lõpp} if v=s then Print(s) {Rekursiooni lõpp on jõutud tee alguseni} else {Tipul, milleni jõuti, puudub vahetu eellane} if P[v]=nil then Print( Puudub tee tippude s ja v vahel ) else {Rekursiivselt leia tee tipu v eellase juurest algusesse} Print_Path(G,s,P[v]) Print(v) endif endif Mitterekursiivselt on väljastatav tee tagurpidi: v -> s. Variatsioonid lühima tee probleemist Lühim tee (shortest path) leia lühim tee tipust u tippu v. Lühimad teed ühest tipust (single-source shortest paths) leida lühimad teed antud tipust kõigisse ülejäänud tippudesse. Sisuliselt saab selle info peale BFS-i kätte. Tuleb lihtsalt kõigi tippude jaoks teed välja kirjutada. Lühimad teed kõigi tipupaaride vahel (all-pairs shortest paths) selle ülesande lahendamiseks tuleb BFS teha kõigist tippudest alates ja edasi kirjutada välja kõik teed. Lühimad teed antud tippu: on antud lõpp-tipp v, tarvis on leida lühimad teed, mis ülejäänud tippudest antud tippu viivad (originaalülesanne tagurpidi) Lühim tee kaalutud graafis Kui iga sammu (kaare) kaal graafis on 1, on lühima tee probleem lahendatud laiuti otsimise algoritmi abi. Kui aga tahaksime teada saada, milline on lühim tee Pärnust Narva, siis kirjeldatud algoritm ei sobi, sest arvestada tuleb iga teejupi tegelikku pikkust, milleks on vaja kasutada kaalutud graafi. Graafi Pärnust Narva sõidu optimiseerimiseks saab selliselt, et tuleb atlase järgi kõik teede ristid (või kui olete otsustanud vaid asfalti mööda sõita, siis asfaltteede ristid) märkida kui graafi tipud ja kaared tõmmata vaid nende tippude vahele, milliste ristmike vahel tegelikult teed on. Edasi märgitakse igale kaarele (teejupile) tema pikkus kilomeetrites, mis ka autoatlases olemas on, ning kaalutud graaf ongi valmis. Kaaluks võib ka olla eeldatav aeg antud teelõigu läbimiseks. Tee kaaluks (path weight) on kõigi teed moodustavate kaarte kaalude summa. Inga Petuhhov, TLÜ 12/16

13 Lühima tee kaal (shortest-path weight) on vähim kaal kõigi teede kaaludest. See ei pruugi olla sama tee, kus vähim arv samme tehakse. Kaalutud graafis nimetatakse lühimaks teeks kahe tipu vahel teed, millel on väikseim kaal. Lühima tee iga lõik on ise lühim tee. Dijkstra algoritm Algoritme kaalutud graafis lühima tee leidmiseks on mitmeid. Järgnevalt kirjeldatakse Dijkstra algoritmi. Nimetatud algoritm töötab orienteerimata kui ka orienteeritud graafis. Teoreetiliselt oleks küll õigem väita, et orienteerimata graafist tehakse kõigepealt orienteeritud graaf, kus iga tavalise kaare asemel on kaks suunatud kaart. Graafis ei tohi olla tsüklit, kus kaarte pikkuste summa tuleks negatiivne. Algoritm töötab ahne algoritmi põhimõttel, st igal sammul tehakse lokaalselt parim otsus ja need otsused viivad kogu probleemi lahenemiseni. Üldine idee on väga sarnane laiutiotsimisele, selle vahega, et juba leitud teepikkuseid võib muuta, juhul kui tuleb välja mõni lühem tee. Ning teepikkus ei ole kaarte arv vaid kaarte kaalude summa. Algoritm vajab tööks tippude tabelit, kuhu kirjutatakse iga tipu jaoks tema kaugus lähtetipust ja tipu number, kust antud tippu jõuti. Tippude tabel algväärtustatakse selliselt, et tippudel puuduvad eellased ja kõik kaugused on lõpmata suured. Alustatakse tipust s ja selle tipu kauguseks märgitakse 0. WHILE-tsükli töö on järgmine: kõigi nende tippude hulgast, mille naabrid on läbiuurimata, valitakse tipp u, mille kaugus lähtetipust on minimaalne (esimesel kordusel on selleks lähtetipp). Seejärel vaadatakse üle kõik tipu u naabrid v, kaasaarvatud need, mida on juba eelnevalt töödeldud, ning kui hetke kaugus tipus v on suurem kui kaugus, mis tekiks tippu v liikumisel üle tipu u, asendatakse nii tipu v kaugus d[v] kui ka eelmine tipp P[v]. WHILE-tsükkel töötab seni, kuni kõigi graafi tippude naabrid on läbiuuritud. Ajaliselt kõige kriitilisem on läbiuurimata tippude hulgast kõige väiksema kaugusega tipu leidmine. Seetõttu soovitatakse graafi tippude ajutiseks hoidmiseks kasutada prioriteetidega järjekorda (priority queue) Q, mille ülalpidamine peaks olema kiirem. Prioriteedi määrab kaugus mida väiksem kaugus, seda kõrgem prioriteet. Peale tutvumist kuhjaga (heap), võiks proovida sellise järjekorra loomist. Väikese tippude hulga juures võib leida lihtsalt miinimumi kauguste massiivist, jättes kõrvale läbiuuritud tipud. Algoritmis kasutatakse ka hulka S, kuhu pannakse läbiuuritud tipud (sellele võib järjekorrata realisatsioonis vastata tipu märkimine läbiuurituks). Dijkstra algoritm {Algoritm graafis G lühima tee leidmiseks lähtudes tipust s, (raamatust Cormen, Leiserson, Rivest, Introduction to Algorithms)} Dijkstra(G,w,s) {G graaf; w kaarte kaalud; s algustipp} foreach v in G do {Teepikkuste ja eellaste massiivid algväärtustatakse} d[v] <- P[v] <- nil endforeach d[s] <- 0 {Algustipu s kaugus iseendast on 0} S <- nil {Läbi uuritud tipud pannakse edaspidi hulka S} Q <- V[G] {Kõik graafi G tipud pannakse prioriteetidega järjekorda vastavalt teepikkusele massiivis d} while Q <> nil do u <- Min(Q) {Järjekorrast võetakse vähima teepikkusega tipp} Inga Petuhhov, TLÜ 13/16

14 S <- S + u {Tipp u lisatakse läbiuuritud elementide hulka S} foreach v in adj[u] do {Vaadatakse üle kõik u naabrid} if d[v] > d[u] +w (u,v) then {Kui läbi u minev tee} d[v] <- d[u] + w(u,v) {on lühem seni leitud teest,} P[v] <- u {asendatakse teepikkus ja eelnev tipp} endif endforeach endwhile Kui graaf sisaldab negatiivse kaalude summaga tsükleid, tuleb kasutada Bellmann-Fordi või Floyd- Warshalli algoritme. Topoloogiline sorteerimine Kui graaf on atsükliline ja orienteeritud (DAG), siis on graafi tippude vahel olemas (ja leitav) osaline järjestus. Topoloogilise sorteerimise (topological sort) eesmärgiks on saada selline tippude järgnevus, kus iga tippu töödeldakse enne kui neid tippe, millele ta osutab. NB! Mõistest sorteerimine ei tohi lasta enda segadusse viia tüüpilise sorteerimisülesandega siin tegemist ei ole. Kõigi graafi tippude omavaheliste seoste kohta ei saa otsustada, et üks on suurem kui teine või eelneb teisele, võimalik on seda väita osade või paaride kaupa. Sellised omavahelised suhted on võimalik kirja panna graafina ja järgnevuse leidmise protsessi kutsutakse topoloogiliseks sorteerimiseks. Õigeks vastuseks on tavaliselt mitu erinevat järgnevust. Topoloogilise sorteerimise ülesanne: on antud atsükliline orienteeritud graaf. Tuleb leida graafi tippude selline lineaarne järjestus, et iga kaar läheb nö väiksema tipu juurest suurema tipu juurde (tekkinud järjestuse mõttes). Ülesande võib sõnastada ka läbi graafi tippude piltliku ümberpaigutamise: kas graafi tipud on võimalik paigutada ühte ritta selliselt, et kõik kaared oleksid suunatud vasakult paremale? Kui selline ümberpaigutus on loodud, ongi olemas topoloogilise sorteerimise tulemus. Öeldakse, et tipp u eelneb tipule v, kui tipust u läheb kaar tippu v. Võib väita, et atsükliline orienteeritud graaf on alati topoloogiliselt järjestatav ja vastupidi, kui graafi on võimalik topoloogiliselt sorteerida, on tegemist atsüklilise graafiga. Topoloogilise sorteerimise abil on võimalik lahendada näiteks tööde järgnevuse planeerimise ülesannet. Sel juhul võib kaart tipust teise tõlgendada kui sõltuvust (üks tipp sõltub teisest, ehk kui tipp on mingi töö, siis ühte tööd ei saa enne alustada, kui teine töö on lõpetatud). Topoloogilise sorteerimise tulemus annab aga ühe võimaliku järgnevuse tööde tegemiseks. Et sorteerimise tulemusi võib olla mitu, siis on võimalikud ka mitu erinevat tööde järjekorda. Algoritm Kõigepealt tuleb leida üles need tipud, kuhu ühtegi kaart ei sisene. Kui graaf on atsükliline, on vähemalt üks selline tipp kindlasti olemas. Kuidas neid leida (vähemalt ühte)? Selleks tuleks alustades suvalisest tipust, liikuda kaari pidi vastu kaare suunale. Selliselt liikudes jõutakse mingil hetkel kindlasti tipuni, kust enam edasi ei saa (ehk kuhu ühtegi kaart ei sisene). Variant 1 Kasutatakse sügavutiotsimise algoritmi: Topological_sort(G) 1. Kutsu välja DFS(G) Inga Petuhhov, TLÜ 14/16

15 2. Lõpetades tipu töötlemise (DFS-Visit viimane või eelviimane lause), lisada see, tipp nimekirja algusesse 3. Väljastada tekkinud tippude nimekiri. Variant 2 Sobib hästi külgnevusmaatriksit kasutades. 1. Loeme iga tipu kohta kokku, mitu kaart temasse siseneb ehk mitu eellast tal on. 2. Paigutame sorteeritud jadasse kõik need tipud, millel vahetud eellased puuduvad. 3. Vähendame jagasse paigutatud tippude arvel eellaste arvu (kui tipp on jagas ehk töödeldud, annab ta piltlikult öeldes vabaks oma naabertipu. 4. Kui tipu kõik vahetud eellased on jadasse paigutatud, võib sinna paigutada ka tipu enda. Algoritmi esimene samm oleks seega vahetute eellaste arvu kindlaks määramine kõigi tippude jaoks. Eellaste arvu meelespidamiseks saab kasutada massiivi. Ebamugavam on ühe tipu eellaseid leida külgnevusloendist. Sest seal on info organiseeritud mugavalt just järglaste ehk naabrite leidmiseks. Parem on neid leida külgnevusmaatriksist. Kui mõnes veerus 1-d puuduvad, ongi eellasteta tipp leitud. Ilmselt on selline meetod kõige lihtsam. Kui tipp on paigutatud sorteeritud jadasse, tuleb kõigilt tema järglastelt üks eellane maha kustutada ja järgmisel sammul saab sorteeritud jadasse panna taas neid tippe, millel eellaste arv on Joonis 5: Orienteeritud atsükliline graaf topoloogiliseks sorteerimiseks Kui lugeda kokku kõigi joonisel (Joonis 5) oleva graafi tippude eellased, saab järgmise tabeli tipp eellasi Selle järgi võiks tippude jada alustada nii 1. kui 8. tipuga. Ja edasi on võimalikud mitu erinevat järjekorda. Kaks võimalikku väljundit oleksid: Huvitavaks probleemiks on veel, millal tipp kõige varem ja kõige hiljem sorteeritud jadasse sattuda saab. Sellist teadmist võib vaja olla tööde planeerimise ülesande juures. Ja seda saab leida süviti otsimise käigus ajatempleid kasutades. Inga Petuhhov, TLÜ 15/16

16 Toesepuu Toesepuu (spanning tree) on alamgraaf (graafi osa), millesse arvatud servad moodustavad puu, ühendades samal ajal kõik graafi tipud. Servi on eemaldatud nii, et kaoksid tsüklid, ent sidusus kõigi tippude vahel säiluks. Toesepuu ei ole üldjuhul üheselt määratud. Kui servadel on mittenegatiivsed kaalud, saab leida minimaalse toesepuu. See on toes, mille kogukaal on kõigi toespuude hulgast minimaalne. Näide Kruskali algoritmist minimaalse toesepuu leidmiseks: %27s_algorithm Kokkuvõte 1. Graafe saab kasutada väga erinevate struktuuride ja seoste kujutamiseks 2. Paljude ülesannete juures, kui probleem korralikult formuleerida, saab teda modelleerida graafi kasutades selliselt, et lahenduseks sobib mõne tuntud efektiivse algoritmi kasutamine. Tavaliselt graafi töötlemiseks ise algoritme leiutada on keeruline. Seega tasub teada, mis on olemas. 3. Sügavuti ja laiuti otsimine on algoritmid, millega kõik tipud ja kaared läbitakse. Nad on aluseks mitmetele teistele algoritmidele 4. Kuluta suurem aeg graafi mõistlikuks modelleerimiseks, pärast on algoritmi lihtsam kirja panna. Inga Petuhhov, TLÜ 16/16

IFI6083_Algoritmid_ja_andmestruktuurid_IF_3

IFI6083_Algoritmid_ja_andmestruktuurid_IF_3 Kursuseprogramm IFI6083.DT Algoritmid ja andmestruktuurid Maht 4 EAP Kontakttundide maht: 54 Õppesemester: K Eksam Eesmärk: Aine lühikirjeldus: (sh iseseisva töö sisu kirjeldus vastavuses iseseisva töö

Rohkem

lvk04lah.dvi

lvk04lah.dvi Lahtine matemaatikaülesannete lahendamise võistlus. veebruaril 004. a. Lahendused ja vastused Noorem rühm 1. Vastus: a) jah; b) ei. Lahendus 1. a) Kuna (3m+k) 3 7m 3 +7m k+9mk +k 3 3M +k 3 ning 0 3 0,

Rohkem

prakt8.dvi

prakt8.dvi Diskreetne matemaatika 2012 8. praktikum Reimo Palm Praktikumiülesanded 1. Kas järgmised graafid on tasandilised? a) b) Lahendus. a) Jah. Vahetades kahe parempoolse tipu asukohad, saame graafi joonistada

Rohkem

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Konstruktorile antakse andmed, mis iseloomustavad mingit

Rohkem

raamat5_2013.pdf

raamat5_2013.pdf Peatükk 5 Prognoosiintervall ja Usaldusintervall 5.1 Prognoosiintervall Unustame hetkeks populatsiooni parameetrite hindamise ja pöördume tagasi üksikvaatluste juurde. On raske ennustada, milline on huvipakkuva

Rohkem

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k Neurovõrgud. Praktikum 11. 29. aprill 2005. a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust kombinatoorsete optimiseerimisülesannete lahendamiseks.

Rohkem

3D mänguarenduse kursus (MTAT ) Loeng 3 Jaanus Uri 2013

3D mänguarenduse kursus (MTAT ) Loeng 3 Jaanus Uri 2013 3D mänguarenduse kursus (MTAT.03.283) Loeng 3 Jaanus Uri 2013 Teemad Tee leidmine ja navigatsioon Andmete protseduuriline genereerimine Projektijuhtimine Tee leidmine Navigatsiooni võrgustik (navigation

Rohkem

Andmed arvuti mälus Bitid ja baidid

Andmed arvuti mälus Bitid ja baidid Andmed arvuti mälus Bitid ja baidid A bit about bit Bitt, (ingl k bit) on info mõõtmise ühik, tuleb mõistest binary digit nö kahendarv kahe võimaliku väärtusega 0 ja 1. Saab näidata kahte võimalikku olekut

Rohkem

Praks 1

Praks 1 Biomeetria praks 3 Illustreeritud (mittetäielik) tööjuhend Eeltöö 1. Avage MS Excel is oma kursuse ankeedivastuseid sisaldav andmestik, 2. lisage uus tööleht, 3. nimetage see ümber leheküljeks Praks3 ja

Rohkem

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et Excel2016 - Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et programm suudaks anda tulemusi. Mõisted VALEM - s.o

Rohkem

VL1_praks6_2010k

VL1_praks6_2010k Biomeetria praks 6 Illustreeritud (mittetäielik) tööjuhend Eeltöö 1. Avage MS Excel is oma kursuse ankeedivastuseid sisaldav andmestik, 2. lisage uus tööleht (Insert / Lisa -> Worksheet / Tööleht), nimetage

Rohkem

Mining Meaningful Patterns

Mining Meaningful Patterns Konstantin Tretjakov (kt@ut.ee) EIO õppesessioon 19. märts, 2011 Nimetuse saladus Vanasti kandis sõna programmeerimine natuke teistsugust tähendust: Linear program (~linear plan) X ülesannet * 10 punkti

Rohkem

Praks 1

Praks 1 Biomeetria praks 6 Illustreeritud (mittetäielik) tööjuhend Eeltöö 1. Avage MS Excel is oma kursuse ankeedivastuseid sisaldav andmestik, 2. lisage uus tööleht, nimetage see ümber leheküljeks Praks6 ja 3.

Rohkem

Word Pro - digiTUNDkaug.lwp

Word Pro - digiTUNDkaug.lwp / näide: \ neeldumisseadusest x w x y = x tuleneb, et neeldumine toimub ka näiteks avaldises x 2 w x 2 x 5 : x 2 w x 2 x 5 = ( x 2 ) w ( x 2 ) [ x 5 ] = x 2 Digitaalskeemide optimeerimine (lihtsustamine)

Rohkem

Relatsiooniline andmebaaside teooria II. 6. Loeng

Relatsiooniline andmebaaside teooria II. 6. Loeng Relatsiooniline andmebaaside teooria II. 5. Loeng Anne Villems ATI Loengu plaan Sõltuvuste pere Relatsiooni dekompositsioon Kadudeta ühendi omadus Sõltuvuste pere säilitamine Kui jõuame, siis ka normaalkujud

Rohkem

loogikaYL_netis_2018_NAIDISED.indd

loogikaYL_netis_2018_NAIDISED.indd . Lihtne nagu AB Igas reas ja veerus peavad tähed A, B ja esinema vaid korra. Väljaspool ruudustikku antud tähed näitavad, mis täht on selles suunas esimene. Vastuseks kirjutage ringidesse sattuvad tähed

Rohkem

Microsoft Word - 56ylesanded1415_lõppvoor

Microsoft Word - 56ylesanded1415_lõppvoor 1. 1) Iga tärnike tuleb asendada ühe numbriga nii, et tehe oleks õige. (Kolmekohaline arv on korrutatud ühekohalise arvuga ja tulemuseks on neljakohaline arv.) * * 3 * = 2 * 1 5 Kas on õige, et nii on

Rohkem

IMO 2000 Eesti võistkonna valikvõistlus Tartus, aprillil a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a 2, a 3,

IMO 2000 Eesti võistkonna valikvõistlus Tartus, aprillil a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a 2, a 3, IMO 000 Eesti võistkonna valikvõistlus Tartus, 19. 0. aprillil 000. a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a, a 3, a 4, a 5. Paneme tähele, et (a 1 + a + a 3 a 4 a 5 ) (a

Rohkem

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier 09.02.2019 Miks on ülesannete lahendamise käigu kohta info kogumine oluline? Üha rohkem erinevas eas inimesi õpib programmeerimist.

Rohkem

Praks 1

Praks 1 Biomeetria praks 6 Illustreeritud (mittetäielik) tööjuhend Eeltöö 1. Avage MS Excel is ankeedivastuseid sisaldav andmestik, 2. lisage uus tööleht, nimetage see ümber leheküljeks Praks6 ja 3. kopeerige

Rohkem

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc Tallinna Linnavalitsuse sõnumisaatja kasutusjuhend asutuse juhatajale Sisukord 1. Süsteemi sisenemine...2 2. Parooli lisamine ja vahetamine...2 3. Ametnike lisamine ametiasutuse juurde...2 4. Saatjanimede

Rohkem

Polünoomi juured Juure definitsioon ja Bézout teoreem Vaadelgem polünoomi kus K on mingi korpus. f = a 0 x n + a 1 x n a n 1 x

Polünoomi juured Juure definitsioon ja Bézout teoreem Vaadelgem polünoomi kus K on mingi korpus. f = a 0 x n + a 1 x n a n 1 x 1 5.5. Polünoomi juured 5.5.1. Juure definitsioon ja Bézout teoreem Vaadelgem polünoomi kus K on mingi korpus. f = a 0 x n + a 1 x n 1 +... + a n 1 x + a n K[x], (1) Definitsioon 1. Olgu c K. Polünoomi

Rohkem

Matemaatiline analüüs IV 1 3. Mitme muutuja funktsioonide diferentseerimine 1. Mitme muutuja funktsiooni osatuletised Üleminekul ühe muutuja funktsioo

Matemaatiline analüüs IV 1 3. Mitme muutuja funktsioonide diferentseerimine 1. Mitme muutuja funktsiooni osatuletised Üleminekul ühe muutuja funktsioo Matemaatiline analüüs IV 1 3. Mitme muutuja funktsioonide diferentseerimine 1. Mitme muutuja funktsiooni osatuletised Üleminekul üe muutuja funktsioonidelt m muutuja funktsioonidele, kus m, 3,..., kerkib

Rohkem

Pintsli otsade juurde tegemine Esiteks Looge pilt suurusega 64x64 ja tema taustaks olgu läbipaistev kiht (Transparent). Teiseks Minge kihtide (Layers)

Pintsli otsade juurde tegemine Esiteks Looge pilt suurusega 64x64 ja tema taustaks olgu läbipaistev kiht (Transparent). Teiseks Minge kihtide (Layers) Pintsli otsade juurde tegemine Esiteks Looge pilt suurusega 64x64 ja tema taustaks olgu läbipaistev kiht (Transparent). Teiseks Minge kihtide (Layers) aknasse ja looge kaks läbipaistvat kihti juurde. Pange

Rohkem

Pythoni Turtle moodul ja Scratchi värvilisem pool Plaan Isikukoodi kontrollnumbri leidmine vaatame üle lahenduse kontrollnumbri leimiseks. Pythoni joo

Pythoni Turtle moodul ja Scratchi värvilisem pool Plaan Isikukoodi kontrollnumbri leidmine vaatame üle lahenduse kontrollnumbri leimiseks. Pythoni joo Pythoni Turtle moodul ja Scratchi värvilisem pool Plaan Isikukoodi kontrollnumbri leidmine vaatame üle lahenduse kontrollnumbri leimiseks. Pythoni joonistamise võimalused Turtle mooduli abil. Scratchi

Rohkem

VL1_praks2_2009s

VL1_praks2_2009s Biomeetria praks 2 Illustreeritud (mittetäielik) tööjuhend Eeltöö 1. Avage MS Excel is oma kursuse ankeedivastuseid sisaldav andmestik (see, mida 1. praktikumiski analüüsisite), 2. nimetage Sheet3 ümber

Rohkem

KOOLITUSTE HALDAMINE E-TÖÖTUKASSA KASUTAJAJUHEND 1

KOOLITUSTE HALDAMINE E-TÖÖTUKASSA KASUTAJAJUHEND 1 KOOLITUSTE HALDAMINE E-TÖÖTUKASSA KASUTAJAJUHEND 1 Sisukord E-TÖÖTUKASSASSE SISSE LOGIMINE JA MINU KOOLITUSED AVALEHT... 2 UUE KOOLITUSE LISAMINE... 5 MÄÄRAMATA TOIMUMISAJAGA KOOLITUSED... 9 REGISTREERIMISTEATE

Rohkem

Ruutvormid Denitsioon 1. P n Ütleme, et avaldis i;j=1 a ijx i x j ; kus a ij = a ji ; a ij 2 K ja K on korpus, on ruutvorm üle korpuse K muutujate x 1

Ruutvormid Denitsioon 1. P n Ütleme, et avaldis i;j=1 a ijx i x j ; kus a ij = a ji ; a ij 2 K ja K on korpus, on ruutvorm üle korpuse K muutujate x 1 Ruutvormid Denitsioon. P n Ütleme, et avaldis i;j= a ijx i x j ; kus a ij = a ji ; a ij K ja K on korus, on ruutvorm üle koruse K muutujate x ;;x n suhtes. Maatriksit =(a ij ) nimetame selle ruutvormi

Rohkem

Andmeturve

Andmeturve CORBA Sissejuhatus IDL CORBA struktuur Serveri ehitus Objekti adapter Lisateenused MEELIS ROOS 1 CORBA sissejuhatus CORBA Common Object Request Broker Architecture Üldine Objektipäringute Vahendaja Arhitektuur:)

Rohkem

Kaupmehed ja ehitusmeistrid Selle laiendusega mängimiseks on vajalik Carcassonne põhimäng. Laiendit võib mängus kasutada täielikult või osaliselt ning

Kaupmehed ja ehitusmeistrid Selle laiendusega mängimiseks on vajalik Carcassonne põhimäng. Laiendit võib mängus kasutada täielikult või osaliselt ning Kaupmehed ja ehitusmeistrid Selle laiendusega mängimiseks on vajalik Carcassonne põhimäng. Laiendit võib mängus kasutada täielikult või osaliselt ning seda saab kombineerida teiste Carcassonne laiendustega.

Rohkem

Heading 1

Heading 1 Pärnu Sütevaka Humanitaargümnaasium Optimaalse tee leidmine kahe punkti vahel etteantud kolmemõõtmelisel maastikul Lõputöö / aastatöö Prima /Secunda aste Dan Bogdanov / Martin Kapp Juhendaja: Ahto Truu

Rohkem

vv05lah.dvi

vv05lah.dvi IMO 05 Eesti võistkonna valikvõistlus 3. 4. aprill 005 Lahendused ja vastused Esimene päev 1. Vastus: π. Vaatleme esiteks juhtu, kus ringjooned c 1 ja c asuvad sirgest l samal pool (joonis 1). Olgu O 1

Rohkem

Antennide vastastikune takistus

Antennide vastastikune takistus Antennide vastastikune takistus Eelmises peatükis leidsime antenni kiirgustakistuse arvestamata antenni lähedal teisi objekte. Teised objektid, näiteks teised antennielemendid, võivad aga mõjutada antenni

Rohkem

Microsoft Word - ref - Romet Piho - Tutorial D.doc

Microsoft Word - ref - Romet Piho - Tutorial D.doc Tartu Ülikool Andmetöötluskeel "Tutorial D" realisatsiooni "Rel" põhjal Referaat aines Tarkvaratehnika Romet Piho Informaatika 2 Juhendaja Indrek Sander Tartu 2005 Sissejuhatus Tänapäeval on niinimetatud

Rohkem

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi*r^2, Float -> Int Infixoperaatori kasutamiseks prefix-vormis

Rohkem

(loeng3-ohtlikud_koodiloigud)

(loeng3-ohtlikud_koodiloigud) #include int main (void) uint8_t arr[] = 0x11, 0x22 uint16_t *ptr; ptr = (uint16_t*)&arr[0]; printf ("arr: 0x%02x, 0x%02x\n", arr[0], arr[1]); printf ("ptr: 0x%04x\n", *ptr); /* vigane pointeri

Rohkem

Maksu- ja Tolliamet MAKSUKOHUSTUSLANE Vorm KMD INF Nimi Registri- või isikukood A-osa ANDMED VÄLJASTATUD ARVETE KOHTA. Esitatakse koos käibedeklaratsi

Maksu- ja Tolliamet MAKSUKOHUSTUSLANE Vorm KMD INF Nimi Registri- või isikukood A-osa ANDMED VÄLJASTATUD ARVETE KOHTA. Esitatakse koos käibedeklaratsi Vorm KMD INF A-osa ANDMED VÄLJASTATUD ARVETE KOHTA. Esitatakse koos käibedeklaratsiooniga maksustamisperioodile järgneva kuu 0. kuupäevaks Kinnitan, et deklareeritavad arved puuduvad Esitan arvete andmed

Rohkem

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx Tartu Ülikool CVE-2013-7040 Referaat aines Andmeturve Autor: Markko Kasvandik Juhendaja : Meelis Roos Tartu 2015 1.CVE 2013 7040 olemus. CVE 2013 7040 sisu seisneb krüptograafilises nõrkuses. Turvaaugu

Rohkem

Funktsionaalne Programmeerimine

Funktsionaalne Programmeerimine Kõrvalefektid ja Haskell Kõik senised programmid on olnud ilma kõrvalefektideta; so. puhtalt funktsionaalsed. Programmi täitmise ainsaks efektiks on tema väartus. Osade ülesannete jaoks on kõrvalefektid

Rohkem

Programmeerimiskeel APL Raivo Laanemets 17. mai a.

Programmeerimiskeel APL Raivo Laanemets 17. mai a. Programmeerimiskeel APL Raivo Laanemets 17. mai 2009. a. Sissejuhatus I APL - A Programming Language I Kenneth E. Iverson (1920-2004) I Elukutselt matemaatik I Uuris matemaatilist notatsiooni I 1960 -

Rohkem

Microsoft Word - RM_ _17lisa2.rtf

Microsoft Word - RM_ _17lisa2.rtf Maksu- ja Tolliamet Maksukohustuslane Vorm KMD INF Nimi Registri- või isikukood A-osa ANDMED VÄLJASTATUD ARVETE KOHTA Esitatakse koos käibedeklaratsiooniga maksustamisperioodile järgneva kuu 20. kuupäevaks

Rohkem

Sissejuhatus mehhatroonikasse MHK0120

Sissejuhatus mehhatroonikasse  MHK0120 Sissejuhatus mehhatroonikasse MHK0120 5. nädala loeng Raavo Josepson raavo.josepson@ttu.ee Pöördliikumine Kulgliikumine Kohavektor Ԧr Kiirus Ԧv = d Ԧr dt Kiirendus Ԧa = dv dt Pöördliikumine Pöördenurk

Rohkem

SQL

SQL SQL Kuues loeng 3GL inside 4GL Protseduurid Funktsioonid Tavalised Funktsioonid (üks väljund) Ilma väljundita Protseduurid Viitargumentide kasutamise võimalus Tabel-väljundiga Protseduurid Create function

Rohkem

Image segmentation

Image segmentation Image segmentation Mihkel Heidelberg Karl Tarbe Image segmentation Image segmentation Thresholding Watershed Region splitting and merging Motion segmentation Muud meetodid Thresholding Lihtne Intuitiivne

Rohkem

Funktsionaalne Programmeerimine

Funktsionaalne Programmeerimine Geomeetrilised kujundid Geomeetriliste kujundite definitsioon: data Shape = Rectangle Side Side Ellipse Radius Radius RtTriangle Side Side Polygon [Vertex] deriving Show type Radius = Float type Side =

Rohkem

Microsoft PowerPoint - loeng2.pptx

Microsoft PowerPoint - loeng2.pptx Kirjeldavad statistikud ja graafikud pidevatele tunnustele Krista Fischer Pidevad tunnused ja nende kirjeldamine Pidevaid (tihti ka diskreetseid) tunnuseid iseloomustatakse tavaliselt kirjeldavate statistikute

Rohkem

FIDE reitingumäärus 1. juuli 2014 Kuremaa, Marek Kolk

FIDE reitingumäärus 1. juuli 2014 Kuremaa, Marek Kolk FIDE reitingumäärus 1. juuli 2014 Kuremaa, 2014. Marek Kolk Artikkel 0. Sissejuhatus Artikkel 0.2 (uus) Millal läheb partii FIDE reitinguarvestusse? Reitinguarvestusse minev turniir tuleb ette registreerida

Rohkem

DVD_8_Klasteranalüüs

DVD_8_Klasteranalüüs Kursus: Mitmemõõtmeline statistika Seminar IX: Objektide grupeerimine hierarhiline klasteranalüüs Õppejõud: Katrin Niglas PhD, dotsent informaatika instituut Objektide grupeerimine Eesmärk (ehk miks objekte

Rohkem

ITI Loogika arvutiteaduses

ITI Loogika arvutiteaduses Predikaatloogika Predikaatloogika on lauseloogika tugev laiendus. Predikaatloogikas saab nimetada asju ning rääkida nende omadustest. Väljendusvõimsuselt on predikaatloogika seega oluliselt peenekoelisem

Rohkem

SH_Rogaini_AjaO

SH_Rogaini_AjaO Rogaini A ja O Sissejuhatus Rogaini Mis on rogain? * Rogain on võistkondlik valikorienteerumine * Kontrollpunktid(edaspidi KP-d) paiknevad maastikul laiali * KP-d on märgitud paberkaardile ehk orienteerumiskaardile

Rohkem

Projekt Kõik võib olla muusika

Projekt Kõik võib olla muusika Õpikäsitus ja projektiõpe Evelin Sarapuu Ülenurme lasteaed Pedagoog-metoodik TÜ Haridusteadused MA 7.märts 2018 Põlva Õpikäsitus... arusaam õppimise olemusest, eesmärkidest, meetoditest, erinevate osapoolte

Rohkem

1. Üliõpilased 1.1 Tõendid Vali menüüst: Üliõpilased tõendid tõendite trükkimine. Avaneb vorm Tõendite trükkimine, vali tõendi liik Tõend õppim

1. Üliõpilased 1.1 Tõendid Vali menüüst: Üliõpilased tõendid tõendite trükkimine. Avaneb vorm Tõendite trükkimine, vali tõendi liik Tõend õppim 1. Üliõpilased 1.1 Tõendid Vali menüüst: Üliõpilased tõendid tõendite trükkimine. Avaneb vorm Tõendite trükkimine, vali tõendi liik. 1.1.1 Tõend õppimise kohta TLÜ-s Seda tõendiliiki saab väljastada ainult

Rohkem

DUŠINURK MILDA PAIGALDUSJUHEND 1. Enne paigaldustööde alustamist veenduge, et elektrikaablid, veetorud vms ei jääks kruviaukude alla! 2. Puhastage sei

DUŠINURK MILDA PAIGALDUSJUHEND 1. Enne paigaldustööde alustamist veenduge, et elektrikaablid, veetorud vms ei jääks kruviaukude alla! 2. Puhastage sei DUŠINURK MILDA PAIGALDUSJUHEND 1. Enne paigaldustööde alustamist veenduge, et elektrikaablid, veetorud vms ei jääks kruviaukude alla! 2. Puhastage seinad ja põrand enne dušinurga paigaldamist! 3. Kasutage

Rohkem

1. AKE Ajalise keerukuse empiiriline hindamine

1. AKE Ajalise keerukuse empiiriline hindamine http://kodu.ut.ee/~kiho/ads/praktikum/ 4. PSK Paisksalvestus. Loendamine Mõisteid Paisktabel (Hashtable, HashMap) Paisktabeli kasutamine loendamisülesannetes Paiskfunktsioon, kollisoonid (põrked) Praktikumitööd

Rohkem

Eesti kõrgusmudel

Eesti kõrgusmudel Meie: 04.06.2002 nr 4-3/3740 Küsimustik Eesti maapinna kõrgusmudeli spetsifikatsioonide selgitamiseks Eestis on juba aastaid tõstatatud küsimus täpse maapinna kõrgusmudeli (edaspidi mudel) koostamisest

Rohkem

PAIGALDUSJUHEND DUŠINURK VESTA 1. Enne paigaldustööde alustamist veenduge, et elektrikaablid, veetorud vms ei jääks kruviaukude alla! 2. Puhastage sei

PAIGALDUSJUHEND DUŠINURK VESTA 1. Enne paigaldustööde alustamist veenduge, et elektrikaablid, veetorud vms ei jääks kruviaukude alla! 2. Puhastage sei PAIGALDUSJUHEND DUŠINURK VESTA 1. Enne paigaldustööde alustamist veenduge, et elektrikaablid, veetorud vms ei jääks kruviaukude alla! 2. Puhastage seinad ja põrand enne dušinurga paigaldamist! 3. Kasutage

Rohkem

VKE definitsioon

VKE definitsioon Väike- ja keskmise suurusega ettevõtete (VKE) definitsioon vastavalt Euroopa Komisjoni määruse 364/2004/EÜ Lisa 1-le. 1. Esiteks tuleb välja selgitada, kas tegemist on ettevõttega. Kõige pealt on VKE-na

Rohkem

Õppekava arendus

Õppekava arendus Õppekava arendus Ülle Liiber Õppekava kui kokkulepe ja ajastu peegeldus Riiklik õppekava on peegeldus sellest ajast, milles see on koostatud ja kirjutatud valitsevast mõtteviisist ja inimkäsitusest, pedagoogilistest

Rohkem

Mida me teame? Margus Niitsoo

Mida me teame? Margus Niitsoo Mida me teame? Margus Niitsoo Tänased teemad Tagasisidest Õppimisest TÜ informaatika esmakursuslased Väljalangevusest Üle kogu Ülikooli TÜ informaatika + IT Kokkuvõte Tagasisidest NB! Tagasiside Tagasiside

Rohkem

Kom igang med Scratch

Kom igang med Scratch Alustame algusest Getting Started versioon 1.4 SCRATCH on uus programmeerimiskeel, mis lubab sul endal luua interaktiivseid annimatsioone, lugusid, mänge, muusikat, taieseid jm Scratch'i saab kasutada

Rohkem

E-arvete juhend

E-arvete juhend E- arvete seadistamine ja saatmine Omniva kaudu Standard Books 7.2 põhjal Mai 2015 Sisukord Sissejuhatus... 3 Seadistamine... 3 Registreerimine... 4 E- arve konto... 5 Vastuvõtu eelistus... 5 Valik E-

Rohkem

Treeningvõistlus Balti tee 2014 võistkonnale Tartus, 4. novembril 2014 Vastused ja lahendused 1. Vastus: 15, 18, 45 ja kõik 0-ga lõppevad arvud. Olgu

Treeningvõistlus Balti tee 2014 võistkonnale Tartus, 4. novembril 2014 Vastused ja lahendused 1. Vastus: 15, 18, 45 ja kõik 0-ga lõppevad arvud. Olgu Treeningvõistlus Balti tee 014 võistkonnale Tartus, 4. novembril 014 Vastused ja lahendused 1. Vastus: 15, 18, 45 ja kõik 0-ga lõppevad arvud. Olgu b arvu k üheliste number ning a arv, mille saame arvust

Rohkem

Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk

Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk Klassiskeem (class diagram) Klass (class) atribuut (attribute) meetod (method) Liides (interface) meetod (method) Viidatavus (visibility) avalik

Rohkem

D vanuserühm

D vanuserühm Nimi Raja läbimise aeg Raja läbimise kontrollaeg on 2 tundi 30 min. Iga hilinenud minuti eest kaotab võistleja 0,5 punkti. Mobiiltelefoni ei tohi maastikuvõistlusel kaasas olla! Hea, kui saad rajale kaasa

Rohkem

Algoritmid ja andmestruktuurid

Algoritmid ja andmestruktuurid Algoritmid ja andmestruktuurid Arvutipraktikum 2017/2018 sügissemestril J.Liivi 2-202, E12-14 J.Liivi 2-202, T14-16 kodu.ut.ee/~kiho/ads/fall17 Jüri Kiho jyri.kiho@ut.ee Eesmärgid Paremini omandada, kinnistada

Rohkem

Sügis 2018 Kõrgema matemaatika 2. kontrolltöö tagasiside Üle 20 punkti kogus tervelt viis üliõpilast: Robert Johannes Sarap, Enely Ernits, August Luur

Sügis 2018 Kõrgema matemaatika 2. kontrolltöö tagasiside Üle 20 punkti kogus tervelt viis üliõpilast: Robert Johannes Sarap, Enely Ernits, August Luur Sügis 2018 Kõrgema matemaatika 2. kontrolltöö tagasiside Üle 20 punkti kogus tervelt viis üliõpilast: Robert Johannes Sarap, Enely Ernits, August Luure, Urmi Tari ja Miriam Nurm. Ka teistel oli edasiminek

Rohkem

Microsoft Word - Errata_Andmebaaside_projekteerimine_2013_06

Microsoft Word - Errata_Andmebaaside_projekteerimine_2013_06 Andmebaaside projekteerimine Erki Eessaar Esimene trükk Teadaolevate vigade nimekiri seisuga 24. juuni 2013 Lehekülg 37 (viimane lõik, teine lause). Korrektne lause on järgnev. Üheks tänapäeva infosüsteemide

Rohkem

(Microsoft PowerPoint - seminar_6_n\365uded-ainemudel tagasiside.ppt [Compatibility Mode])

(Microsoft PowerPoint - seminar_6_n\365uded-ainemudel tagasiside.ppt [Compatibility Mode]) Tarkvara projekt seminar VI Eelmise iteratsiooni tagasivaade, testimine, installatsioonijuhend, järgmise iteratsiooni näited. Karel Kravik Administratiivset:protestid Probleem: protestide hulk ja kvaliteet

Rohkem

P2P süsteemid

P2P süsteemid Gnutella Ajalugu Detsentraliseeritus Protokollist Paralleliseerimine Ujutamine Skaleeruvus Ultranoded Puuräsid DHT Muud MEELIS ROOS 1 Ajalugu Failivahetus P2P massidesse viija Napster tsentraalne süsteem

Rohkem

efo09v2pke.dvi

efo09v2pke.dvi Eesti koolinoorte 56. füüsikaolümpiaad 17. jaanuar 2009. a. Piirkondlik voor. Põhikooli ülesanded 1. (VÄRVITILGAD LAUAL) Ühtlaselt ja sirgjooneliselt liikuva horisontaalse laua kohal on kaks paigalseisvat

Rohkem

Lisa I_Müra modelleerimine

Lisa I_Müra modelleerimine LISA I MÜRA MODELLEERIMINE Lähteandmed ja metoodika Lähteandmetena kasutatakse AS K-Projekt poolt koostatud võimalikke eskiislahendusi (trassivariandid A ja B) ning liiklusprognoosi aastaks 2025. Kuna

Rohkem

(10. kl. I kursus, Teisendamine, kiirusega, kesk.kiirusega \374lesanded)

(10. kl. I kursus, Teisendamine, kiirusega, kesk.kiirusega  \374lesanded) TEISENDAMINE Koostanud: Janno Puks 1. Massiühikute teisendamine Eesmärk: vajalik osata teisendada tonne, kilogramme, gramme ja milligramme. Teisenda antud massiühikud etteantud ühikusse: a) 0,25 t = kg

Rohkem

E-õppe ajalugu

E-õppe ajalugu Koolituskeskkonnad MTAT.03.142 avaloeng Anne Villems September 2014.a. Põhiterminid Koolituskeskkonnad (Learning environments) IKT hariduses (ICT in education) E-õpe (e-learning) Kaugõpe (distance learning)

Rohkem

DIGITAALTEHNIKA DIGITAALTEHNIKA Arvusüsteemid Kümnendsüsteem Kahendsüsteem Kaheksandsüsteem Kuueteistkü

DIGITAALTEHNIKA DIGITAALTEHNIKA Arvusüsteemid Kümnendsüsteem Kahendsüsteem Kaheksandsüsteem Kuueteistkü DIGITAALTEHNIKA DIGITAALTEHNIKA... 1 1. Arvusüsteemid.... 2 1.1.Kümnendsüsteem....2 1.2.Kahendsüsteem.... 2 1.3.Kaheksandsüsteem.... 2 1.4.Kuueteistkümnendsüsteem....2 1.5.Kahendkodeeritud kümnendsüsteem

Rohkem

Õppimine Anne Villems, Margus Niitsoo ja Konstantin Tretjakov

Õppimine Anne Villems, Margus Niitsoo ja Konstantin Tretjakov Õppimine Anne Villems, Margus Niitsoo ja Konstantin Tretjakov Kava Kuulame Annet Essed ja Felder Õppimise teooriad 5 Eduka õppe reeglit 5 Olulisemat oskust Anne Loeng Mida uut saite teada andmebaasidest?

Rohkem

EDL Liiga reeglid 1. ÜLDSÄTTED 1.1. EDL Liiga toimub individuaalse arvestuse alusel, kus mängijad on jagatud hooaja EDL Liiga tulemuste põhj

EDL Liiga reeglid 1. ÜLDSÄTTED 1.1. EDL Liiga toimub individuaalse arvestuse alusel, kus mängijad on jagatud hooaja EDL Liiga tulemuste põhj EDL Liiga reeglid 1. ÜLDSÄTTED 1.1. EDL Liiga toimub individuaalse arvestuse alusel, kus mängijad on jagatud hooaja 2017-2018 EDL Liiga tulemuste põhjal nelja liigasse. a. Premium Liiga (9 osalejat) b.

Rohkem

Kuidas ärgitada loovust?

Kuidas ärgitada loovust? Harjumaa ettevõtluspäev äriideed : elluviimine : edulood : turundus : eksport Äriideede genereerimine Harald Lepisk OPPORTUNITYISNOWHERE Ideed on nagu lapsed Kas tead kedagi, kelle vastsündinud laps on

Rohkem

6. KLASSI MATEMAATIKA E-TASEMETÖÖ ERISTUSKIRI Alus: haridus- ja teadusministri määrus nr 54, vastu võetud 15. detsembril E-TASEMETÖÖ EESMÄRK Tas

6. KLASSI MATEMAATIKA E-TASEMETÖÖ ERISTUSKIRI Alus: haridus- ja teadusministri määrus nr 54, vastu võetud 15. detsembril E-TASEMETÖÖ EESMÄRK Tas 6. KLASSI MATEMAATIKA E-TASEMETÖÖ ERISTUSKIRI Alus: haridus- ja teadusministri määrus nr 54, vastu võetud 15. detsembril 2015. E-TASEMETÖÖ EESMÄRK Tasemetööga läbiviimise eesmärk on hinnata riiklike õppekavade

Rohkem

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööaknas leia Windows Update 4.Lase arvutil kontrollida

Rohkem

HCB_hinnakiri2017_kodukale

HCB_hinnakiri2017_kodukale Betooni baashinnakiri Hinnakiri kehtib alates 01.04.2016 Töödeldavus S3 Töödeldavus S4 / m 3 /m 3 km-ga / m 3 /m 3 km-ga C 8/10 69 83 71 85 C 12/15 73 88 75 90 C 16/20 75 90 77 92 C 20/25 78 94 80 96 C

Rohkem

HCB_hinnakiri2018_kodukale

HCB_hinnakiri2018_kodukale Betooni baashinnakiri Hinnakiri kehtib alates 01.01.2018 Töödeldavus S3 Töödeldavus S4 / m 3 /m 3 km-ga / m 3 /m 3 km-ga C 8/10 73 87 75 89 C 12/15 77 92 79 94 C 16/20 79 94 81 96 C 20/25 82 98 84 100

Rohkem

Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Dian

Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Dian Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Diana Lõvi (SV valdkond) Järgmised e-lõunad: 10. oktoober

Rohkem

NR-2.CDR

NR-2.CDR 2. Sõidutee on koht, kus sõidavad sõidukid. Jalakäija jaoks on kõnnitee. Kõnnitee paikneb tavaliselt mõlemal pool sõiduteed. Kõige ohutum on sõiduteed ületada seal, kus on jalakäijate tunnel, valgusfoor

Rohkem

Matemaatilised meetodid loodusteadustes. I Kontrolltöö I järeltöö I variant 1. On antud neli vektorit: a = (2; 1; 0), b = ( 2; 1; 2), c = (1; 0; 2), d

Matemaatilised meetodid loodusteadustes. I Kontrolltöö I järeltöö I variant 1. On antud neli vektorit: a = (2; 1; 0), b = ( 2; 1; 2), c = (1; 0; 2), d Matemaatilised meetodid loodusteadustes I Kontrolltöö I järeltöö I variant On antud neli vektorit: a (; ; ), b ( ; ; ), c (; ; ), d (; ; ) Leida vektorite a ja b vaheline nurk α ning vekoritele a, b ja

Rohkem

TARTU ORIENTEERUMIS- NELJAPÄEVAKUD neljapäevak Tehvandi, 1. august Ajakava: Start avatud: Finiš suletakse: Asukoht: Võistlu

TARTU ORIENTEERUMIS- NELJAPÄEVAKUD neljapäevak Tehvandi, 1. august Ajakava: Start avatud: Finiš suletakse: Asukoht: Võistlu TARTU ORIENTEERUMIS- NELJAPÄEVAKUD 2019 16. neljapäevak Tehvandi, 1. august Ajakava: Start avatud: 16.00 19.00 Finiš suletakse: 19.30 Asukoht: Võistluskeskuse, parkimise ja kohalesõidu tähistuse asukohad:

Rohkem

19. Marek Kolk, Kõrgem matemaatika, Tartu Ülikool, Arvridade koonduvustunnused Sisukord 19 Arvridade koonduvustunnused Vahelduvat

19. Marek Kolk, Kõrgem matemaatika, Tartu Ülikool, Arvridade koonduvustunnused Sisukord 19 Arvridade koonduvustunnused Vahelduvat 9. Marek Kolk, Kõrgem matemaatika, Tartu Ülikool, 203-4. 9 Arvridade koonduvustunnused Sisukord 9 Arvridade koonduvustunnused 23 9. Vahelduvate märkidega read.......................... 24 9.2 Leibniz i

Rohkem

Operatsioonisüsteemide ehitus

Operatsioonisüsteemide ehitus Lõimed Ülevaade Lõime mõiste Lõimede mudelid Probleemid lõimedega seoses Pthreads Solarise lõimed Windows 2000 lõimed Linuxi lõimed Java lõimed VARMO VENE & MEELIS ROOS 2 Ühe- ja mitmelõimelised protsessid

Rohkem

Skriptimiskeeli, mida ei käsitletud Perl Python Visual Basic Script Edition (VBScript) MS DOS/cmd skriptid Windows PowerShell midagi eksootilisemat: G

Skriptimiskeeli, mida ei käsitletud Perl Python Visual Basic Script Edition (VBScript) MS DOS/cmd skriptid Windows PowerShell midagi eksootilisemat: G Skriptimiskeeli, mida ei käsitletud Perl Python Visual Basic Script Edition (VBScript) MS DOS/cmd skriptid Windows PowerShell midagi eksootilisemat: GIMP Script-Fu 1 Skriptimiskeeli: Perl v1.0 loodud Larry

Rohkem

Microsoft Word - HOTSEC kasutusjuhend v1.900.docx

Microsoft Word - HOTSEC kasutusjuhend v1.900.docx HOTSEC Tarkvara kasutusjuhend v. 1.9 1 Sisukord Käivitamine:... 3 Programmi kasutamine... 4 Kasutajate lisamine ja eemaldamine:... 6 Jooksev logi:... 9 Häired:... 9 2 HOTSEC põhioperatsioonide kirjeldus

Rohkem

untitled

untitled Riistvara kirjelduskeel VHDL L4, L5. Riistvara kirjelduskeel VHDL L6. Mäluga süsteemid VHDL-s L7. VHDL ja süntees 1 Atribuudid Atribuut on väärtus, funktsioon, tüüp, vahemik, signaal või konstant, mida

Rohkem

efo03v2pkl.dvi

efo03v2pkl.dvi Eesti koolinoorte 50. füüsikaolümpiaad 1. veebruar 2003. a. Piirkondlik voor Põhikooli ülesannete lahendused NB! Käesoleval lahendustelehel on toodud iga ülesande üks õige lahenduskäik. Kõik alternatiivsed

Rohkem

Eesti_Energia_avatud_turg_elektrimüük_2013_Omanike keskliit

Eesti_Energia_avatud_turg_elektrimüük_2013_Omanike keskliit Elektri ostmine avatud elektriturult Sten Argos müügi- ja teenindusdirektor Eesti Energia AS 25.09.12 Eesti Energia elektritooted (1) Pakett Kindel = täielik hinnakindlus Hind, mis sõltub kliendi tarbimisest*

Rohkem

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimused: faili nimi faili vanus faili tüüp... 1 Failiotsing:

Rohkem

SINU UKS DIGITAALSESSE MAAILMA Ruuter Zyxel LTE3302 JUHEND INTERNETI ÜHENDAMISEKS

SINU UKS DIGITAALSESSE MAAILMA Ruuter Zyxel LTE3302 JUHEND INTERNETI ÜHENDAMISEKS SINU UKS DIGITAALSESSE MAAILMA Ruuter Zyxel LTE3302 JUHEND INTERNETI ÜHENDAMISEKS OLULINE TEAVE: LOE ENNE RUUTERI ÜHENDAMIST! Ruuter on sinu uks digitaalsesse maailma. Siit saavad alguse kõik Telia teenused

Rohkem

Valik harjutusi eesti keele postkaartide jaoks Tervitused ja hüvastijätud Grupp töötab paarides, harjutab fraase ja täiendab kaardil olevat veel omapo

Valik harjutusi eesti keele postkaartide jaoks Tervitused ja hüvastijätud Grupp töötab paarides, harjutab fraase ja täiendab kaardil olevat veel omapo Valik harjutusi eesti keele postkaartide jaoks Tervitused ja hüvastijätud Grupp töötab paarides, harjutab fraase ja täiendab kaardil olevat veel omapoolsete tervitus- ja hüvastijätufraasidega. Saab arutleda,

Rohkem

Microsoft PowerPoint - Niitmise_tuv_optiline_ja_radar.pptx

Microsoft PowerPoint - Niitmise_tuv_optiline_ja_radar.pptx Ettekanne ESTGIS aastakonverentsil 30.11.2012 Niidetud alade tuvastamine multispektraalsete ja radarsatelliidipiltide põhjal Kaupo Voormansik Sisukord 1. Eksperiment 2012 suvel multispektraalsete mõõtmiste

Rohkem

Tala dimensioonimine vildakpaindel

Tala dimensioonimine vildakpaindel Tala dimensioonimine vildakpaindel Ülesanne Joonisel 9 kujutatud okaspuidust konsool on koormatud vertikaaltasandis ühtlase lauskoormusega p ning varda teljega risti mõjuva kaldjõuga (-jõududega) F =pl.

Rohkem

Euroopa Liidu Nõukogu Brüssel, 24. september 2015 (OR. en) 12353/15 ADD 2 ENV 586 ENT 199 MI 583 SAATEMÄRKUSED Saatja: Kättesaamise kuupäev: Saaja: Eu

Euroopa Liidu Nõukogu Brüssel, 24. september 2015 (OR. en) 12353/15 ADD 2 ENV 586 ENT 199 MI 583 SAATEMÄRKUSED Saatja: Kättesaamise kuupäev: Saaja: Eu Euroopa Liidu Nõukogu Brüssel, 24. september 2015 (OR. en) 12353/15 ADD 2 ENV 586 ENT 199 MI 583 SAATEMÄRKUSED Saatja: Kättesaamise kuupäev: Saaja: Euroopa Komisjon 23. september 2015 Nõukogu peasekretariaat

Rohkem

Statistikatarkvara

Statistikatarkvara Sissejuhatus statistika erialasse, sissejuhatus matemaatika erialasse, 20. september 2018 Statistikatarkvara põgus ülevaade Krista Fischer Statistikatarkvara kategooriad Võib jagada mitut moodi: Tarkvara,

Rohkem