Graaf. Põhimõisted graafi kohta. Graaf. Mõisted. Algoritmid: BFS, DFS

Suurus: px
Alustada lehe näitamist:

Download "Graaf. Põhimõisted graafi kohta. Graaf. Mõisted. Algoritmid: BFS, DFS"

Väljavõte

1 Graaf Kui ühendada elemendid omavahel seostega vabamal kujul, kui seda lubavad puude või lineaarnimistute reeglid, saadakse graaf. Graafi võib kirjeldada kui andmestruktuuri, mis ei pea olema lineaarne. Graaf on kõige üldisem võimalus andmete vaheliste seoste kujutamiseks. Nii lineaarnimistu kui ka puu on vaadeldavad graafi kitsamate erijuhtudena. Graaf on struktuur, mille abil saab modelleerida objektide hulgas esinevaid paari-kaupa suhteid/seoseid. Graafi mõiste võttis kasutusele inglise matemaatik James Joseph Sylvester ( ) 1878 a. Esimese graafiteooria probleemi Königsbergi sildadest esitas 1736 a. Šveitsi matemaatik ja füüsik Leonard Euler ( ) (vaata allpool). Põhimõisted graafi kohta (Vaata ka diskreetse matemaatika loenguid!!) Graaf (graph) koosneb tippudest (vertex, node) ja tippe ühendavatest kaartest (servadest) (edge). Graaf on tippude hulk ja servade hulk, mis ühendavad omavahel kahekaupa konkreetseid tippe. 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 graafi ehk graaf (undirected graph) puhul on seos kahe tipu vahel mõlemas suunas. See kehtib kõigi graafi servade kohta. Joonisel nooli ei märgita. Suunatud graafi puhul 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 (adjacency relation ), kui ühest tipust läheb kaar teise tippu. Öeldakse ka, et tipud külgnevad. Suunamata graafi puhul on tegemist sümmeetrilise seosega. Suunatud graafil tuleb arvestada kaare suunaga ning seos ei ole sümmeetriline. Kui tipust w läheb tippu v kaar, siis v külgneb w-ga. 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 selline ahel (kaarte või servade jada), mis ei lähe läbi ühegi tipu üle ühe korra. Lihtahel on ahel, milles ei ole ühegi serva üle ühe korra. 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. 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. Graafiteooria tutvustamine matemaatik Leonard Euleri poolt Königsbergi sildade probleemi läbi (1736): kas lugupeetav linnakodanik saab pühapäevasel jalutuskäigul linna läbiva jõe ääres ja saartel jalutada nii, et ta ületab kõik sillad ühe korra ja saab koju tagasi minna? Vaata kõrval olevat joonist! Praegutes mõistetes räägiksime sel puhul Euleri tsükli leidmisest. Inga Petuhhov, TLÜ 1/12

2 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 graaf, kus puudub suunatud tsükkel. See 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. Info graafis Kui graafi kasutatakse mõne ülesande lahendamiseks ja objektide vaheliste suhete modelleerimiseks, paigutatakse tippudesse info nimetatud objektide kohta. Tipud saavad sõltuvalt rakendusest endale nimed, seega on tipud kui mingid objektid, sündmused vms. Kaar kahe tipu vahel tähistab seost nende kahe objekti või sündmuse vahel. Suunamata graafi saab kasutada mõlemapidise seose näitamiseks (seos on võrdne tipust u tippu v ja vastupidi). Suunatud graafi puhul 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, pannakse nende tippude vahele kaks kaart. Graafi kaartega saab siduda arvud. Sel juhul kannab kaar informatsiooni lisaks seoseinfole. Neid arve kutsutakse kaaludeks ning vastavat graafi kaalutud graafiks (weighted graph) e. võrguks (network). Kaalutud graafiga saab näidata seoste tugevust, pikkust vms. Toimingud graafis Olulisemad nö lihttoimingud graafiga hõlmavad manipulatsioone kaarte ja tippudega. Lihttoiminguid on enamasti tarvis kasutada graafi loomisel ja töötlemisel: 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 küsida, kas tippu või kaart on külastatud Graafi kohta saab mitmesugust infot küsida: tippude arvu kaarte arvu ühe tipu naabreid 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ühima tee leidmine kõigi tippude vahel Inga Petuhhov, TLÜ 2/12

3 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-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ülgnevusnimistuna (adjacency-list) ja külgnevusmaatriksina (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. 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 ruuduga V 2. Loomulikult ei arvuta siin keegi välja täpset suhet, vaid tegemist on üldise hinnanguga. 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. Joonisel on sel juhul kaared ilma noolteta. Suunatud graafil võib olla kahe tipu vahel ka kaks kaart, kui seos mõlemas suunas on olemas. Graafi tippude infot saab säilitada eraldi tippude kogumine, 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 ka 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 sarnasel viisil nagu maatriks. Inga Petuhhov, TLÜ 3/12

4 Joonis 1. Suunatud graaf Joonis 2. Joonisel 1 oleva graafi külgnevusmaatriks Joonisel 2 olev kaarte massiiv 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 külgnevusmaatriksis näidata kaare kaalu. Nii 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 list algväärtustada. Seda võib teha järgmine protseduur: struct graph *GraphInit(V) { int i,j; struct graph *graaf; graaf = malloc(sizeof *graaf); graaf->v = 0; printf("%d",graaf->v); graaf->e = 0; for (i=0;i<v;i++){ graaf->vert[i] = 0; for (j=0;j<v;j++){ graaf->adj[i][j] = 0; } } Inga Petuhhov, TLÜ 4/12

5 return(graaf); } Protseduur kaare lisamiseks etteantud tippude vahele võiks olla järgmine. NB! Graaf ei ole suunatud (on orienteerimata). InsertEdge(struct graph *graaf,int v1,int v2){ graaf->adj[v1][v2] = 1; graaf->adj[v2][v1] = 1; graaf->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 loendid, nn külgnevusloend ehk külgnevusnimistu (adjacency list). Graafi tippudest moodustatakse massiiv, üks on lahter iga tipu jaoks (massiivi võib asendada ka lineaarahel) ning iga tipulahtri külge kinnitatakse lineaarahel nendest tippudest, mis külgnevad antud tipuga. Loendi lõpus on tühi viit. Selliselt saab mälu kokku hoida. Siit võite endale ise ette kujutada, mida sel juhul tähendaksid uue kaare lisamine (riputame loendi lõppu uue elemendi), kaare kustutamine (kustutame elemendi) ja naabrite leidmine (läbime vastava loendi). Kahe viidaga loend külgnevate tippude hoidmiseks on sobivam > 2 ---> 3 None 2 None 3 ---> 4 ---> 5 ---> 6 None 4 ---> 5 None 5 ---> 6 None 6 ---> 7 ---> 9 None 7 None 8 ---> 7 ---> 9 None 9 ---> 10 None 10 None Joonis 3. Külgnevusloend joonisel 1 olevale 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 tipuga v seotud ahelasse ning tipp v tipuga u seotud ahelasse. Realisatsiooniks tuleb mängu panna kõik oskused, mis ahelaid programmeerides tekkinud on. Graafiprobleemid Mõned probleemid, millele on võimalik vastuseid leida kasutades graafide jaoks mõeldud algoritme: Kuidas jõuab kõige kiiremini Tallinnast Värskasse? Kuidas saab kõige odavamalt Tallinnast Värskasse? Kuidas transportida kaupa kõige odavamalt erinevatelt müüjatelt erinevatele ostjatele. Kuidas korraldada tööde järjekord, et saada maja valmis kõige lühema ajaga? Inga Petuhhov, TLÜ 5/12

6 Millises järjekorras valida õppeained, et võimalikult lühema ajaga ülikool lõpetada? Millises järjekorras käia ära kõigis linnades, et see toimuks võimalikult ruttu või lühemat teed mööda. Tegemist on klassikalise nn 'rändkaupmehe ülesandega' (travelling salesman). Graafiteooria probleemiks liigitatakse ka tuntud nelja värvi probleem (geograafilise kaardi värvimine 4 värvi abil). 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 tuleks kõigepealt olukord 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 algoritmile. Graafi tippude läbimine Graafi süstemaatilisekls uurimiseks tuleb tema tippe ka kaari ükshaaval uurida. Kui on 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 tee 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 kaartest ja nende suundadest. Klassikaliselt kasutatakse kaarte/tippude läbimiseks kahte erinevat strateegiat ja sõltub kaugemast eesmärgist, millist nendest valida. Need strateegiad on laiuti otsimine ja sügavuti otsimine. Ehkki mõistes sisaldub sõna otsimine, ei ole tegemist klassikalises mõttes otsimisega. Mõlemal strateegia juures 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 (breadth-first search) Laiuti otsimine 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üüpilsemaks ülesandeks on leida lühimat teed kahe tipu vahel. Tee pikkuseks loetakse antud juhul kaarte arvu, mis nimetatud tippude vahele jäävad. Mitte ükski teine tee samade tippude vahel ei tohi sisaldada vähem kaari. Iseloomulikuks sellise lähenemise 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 (tipu u naabrid). Seejärel võetakse aluseks kõik eelnevalt leitud tipud 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 ei fikseerita. Nii toimides läbitakse lõpuks kõik tipud. Algorimis 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 juhul, 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, siis BFS-algoritmi abil ta leitakse. Algoritm Algoritmi alguses valitakse algustipp S ja sellest lähtudes uuritakse graafi. 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, mis on ees); Inga Petuhhov, TLÜ 6/12

7 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 järglased 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ärgneva algoritm on esitatud pseudokeeles NB! See ei käivitu ei C, Pythoni ega mingi teise keele kompilaatoii abil. Breadth_first(G,s) {Algoritm graafis G laiutiotsimiseks lähtudes tipust s} Foreach u in G do {Graafi algväärtustamine, 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) {Halli algustipp järjekorda} while Q not Empty do Dequeue(Q,u) {Võtame järjekorrast halli tipu u} foreach v in Adj[u] do {Iga valge tipuga v, mis on tipu u naabriks} if color[v]=white then color[v]<-grey {Värvime tipu halliks} d[v]<-d[u]+1 {Salvestame tema jaoks teepikkuse algtipust} p[v]<-u {Salvestame tema eellase} Enqueue(Q,v) {Paneme ta järjekorda} endif endforeach color[u]<-black {Värvime uuritud tipu mustaks} endwhile Algoritm sobib nii külgnevusnimistu 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 protseduure põhitegevuste jaoks (võttes eeskuju pinu protseduuridest). Laiuti otsimise algoritm on aluseks teiste algoritmide koostamisele graafiprobleemide lahendamiseks. Sügavuti otsimine (depth-first search) Sügavuti otsimise starteegia on sarnane labürindi läbimisele. Juhul, kui seda vähegi süstemaatiliselt teha. Labürint, see on hulk käike, kus juures käigud 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 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 Inga Petuhhov, TLÜ 7/12

8 tegevust. Sellise tegevuse tulemusena saadakse sügavuti otsimise puu(d) (depth search tree) ja mitme puu puhul tekib mets. Iga tipp saab 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. 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 protseduuri väljakutsumist. Algoritm DFS(G) sisaldab rekursiivset protseduuri DFS-Visit(u). {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} DFS-Visit(u) endif endforeach end DFS {Rekursiivne tipukülastamise protseduur} DFS-Visit(u) color[u]<-grey {Jõudsime tipuni u, 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 uuritud, värvime ta mustaks} f[u]<-time<-time+1 {Väärtustame teise ajatempli} end DFS-Visit Protseduuri 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 protseduuri. Kui tipu u Inga Petuhhov, TLÜ 8/12

9 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). Kaared jagatakse nelja klassi järgmiselt: 1. Puu kaared (tree edges) need on kaared, mis paiknevad otsimise puus, mis on selle puu ehitamise käigus läbitud. 2. Tagasiviivad kaared (back edges) see on kaar (u,v), mis ühendab sügavutiotsimise 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ügavutiotsimise käigus ei leita ühtega tagasiviivat kaart. Oluline erinevus laiutiotsimisega: läbitakse kindlasti kõik graafi tipud ja tekkida võib seega mitu sügavutiotsimise puud. Lühim tee (shortest path) Lühima tee leidmine graafis on tihti vajaminev ü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 kõik teised tipud. Seal juures mõistetakse tee pikkuse all sammude ehk kaarte arvu. Vastav info on kirjas iga tipu küljes, lisaks on seal kirjas ka vahetu eellane, seega on konstrueeritav tee igast tipust algustippu. Rekursiivne protseduur, 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 (vt tee üleskirjutamist edasi) 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. Inga Petuhhov, TLÜ 9/12

10 Lühimad teed kõigi tipupaaride vahel (all-pairs shortest paths) selle ülesande lahendamiseks tuleb BFS teha kõigit 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 tuleks tegelikku teepikkust, 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. 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. 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öödeldudm, ning kui 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. Graafi tippude hoidmiseks soovitatakse kasutada prioriteetidega järjekorda 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 ADT loomist. Väikese tippude hulga juures võib leida lihtsalt miinimumi läbiuurimata.tippude hulgast, st teha tavaline tsükkel üle kõigi tippude ja töödelda kauguste massiivi. Algoritmis kasutatakse ka hulka S, kuhu pannakse läbiuuritud tipud (sellele võib järjekorrata realisatsioonis vastata tipu märkimine läbiuurituks). Dijkstra algoritm Dijkstra(G,w,s) {G graaf; w kaarte kaalud; s algustipp} foreach v in G do {teedepikkuse ja eellaste massiivid nullitakse} d[v] <- lõpmatus P[v] <- nil endforeach d[s] <- 0 {algustipu s kaugus iseendast on 0} S <- nil {Läbi uuritud tipud pannakse hulka S} Inga Petuhhov, TLÜ 10/12

11 Q <- V[G] {Kõik graafi G tipud pannakse prioriteetidega järjekorda} while Q <> nil do u <- Min(Q) {Järjekorrast võetakse vähima teepikkusega tipp} 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 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 omavahelise suhete 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 nii läbi graafi tippude ümberpaigutamise pildidl : 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) 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ülgnevusmaatriksi jaoks Üks võimalus TS algoritmi maha mängida on järgmine: 1. Paigutame jadasse kõik need tipud, millel vahetud eellased puuduvad. 2. Kui tipu kõik vahetud eellased on jadasse paigutatud, võib sinna paigutada ka tipu enda. Inga Petuhhov, TLÜ 11/12

12 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. Sela on info organiseeritud mugavalt just järglaste leidmiseks. Parem on neid leida külgnevusmaatriksist, liikudes selleks mööda veergu. 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 4 Orienteeritud atsükliline graaf, mida saab topoloogiliselt sorteerida Kui lugeda kokku kõigi joonisel 4 olevate 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. 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Ü 12/12

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Loeng03

Loeng03 Loeng 03 Failiõigused ja -manipulatsioon Operatsioonisüsteemide administreerimine ja sidumine I233 Katrin Loodus, Tallinn 2015 Failid ja kataloogid Mis on fail? Linuxi laadsetes süsteemides on kõik failid

Rohkem

Microsoft PowerPoint - BPP_MLHvaade_juuni2012 (2)

Microsoft PowerPoint - BPP_MLHvaade_juuni2012 (2) Balti pakendi protseduur MLH kogemus Iivi Ammon, Ravimitootjate Liit Ravimiameti infopäev 13.06.2012 Eeltöö ja protseduuri algus Päev -30 MLH esindajad kolmes riigis jõuavad arusaamani Balti pakendi protseduuri

Rohkem

1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad

1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad 1 / 16 7. loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad 2 / 16 Sisend/väljund vaikimisi: Termid: read, write?-read(x). : 2+3. X = 2+3.?-write(2+3). 2+3 true. Jooksva sisendi vaatamine: seeing?-

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

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

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

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

Puitpõrandad

Puitpõrandad Vanajamaja koostöös Muinsuskaitseametiga Puitpõrandad Andres Uus ja Jan Varet Mooste 9 mai 2014 Puitpõrandad Talumajade põrandad toetuvad tihti otse kividele, liivale, kruusale. Vahed on täidetud kuiva

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

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

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

Õ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

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

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

(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

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

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

Õ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

Tarkvaraline raadio Software defined radio (SDR) Jaanus Kalde 2017

Tarkvaraline raadio Software defined radio (SDR) Jaanus Kalde 2017 Tarkvaraline raadio Software defined radio (SDR) Jaanus Kalde 2017 Sissejuhatus Raadiosidest üldiselt Tarkvaraline raadio Kuidas alustada 2 Raadioside Palju siinussignaale õhus Info edastamiseks moduleerid

Rohkem

ArcGIS Online Konto loomine Veebikaardi loomine Rakenduste tegemine - esitlus

ArcGIS Online Konto loomine Veebikaardi loomine Rakenduste tegemine - esitlus PILVI TAUER Tallinna Tehnikagümnaasium ArcGIS Online 1.Konto loomine 2.Veebikaardi loomine 3.Rakenduste tegemine - esitlus Avaliku konto loomine Ava ArcGIS Online keskkond http://www.arcgis.com/ ning logi

Rohkem

loeng7.key

loeng7.key Grammatikate elustamine JFLAPiga Vesal Vojdani (TÜ Arvutiteaduse Instituut) Otse Elust: Java Spec https://docs.oracle.com/javase/specs/jls/se8/html/ jls-14.html#jls-14.9 Kodutöö (2. nädalat) 1. Avaldise

Rohkem

PowerPoint Presentation

PowerPoint Presentation Kick-off 30.06.2014 Toetuse kasutamise leping Kadri Klaos 30.06.2014 Lepingu struktuur Eritingimused Üldtingimused Lisa I, Projekti sisukirjeldus Lisa II, Projekti eelarve Lisa III, Projekti rahastamis-

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

Automaatjuhtimise alused Automaatjuhtimissüsteemi kirjeldamine Loeng 2

Automaatjuhtimise alused Automaatjuhtimissüsteemi kirjeldamine Loeng 2 Automaatjuhtimise alused Automaatjuhtimissüsteemi kirjeldamine Loeng 2 Laplace'i teisendus Diferentsiaalvõrrandite lahendamine ilma tarkvara toeta on keeruline Üheks lahendamisvõtteks on Laplace'i teisendus

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

01_loomade tundmaõppimine

01_loomade tundmaõppimine Tunnikava vorm Õppeaine ja -valdkond: Mina ja keskkond Klass, vanuse- või haridusaste: alusharidus Tunni kestvus: 30+15minutit Tunni teema (sh alateemad): Loomade tundmaõppimine, maal elavad loomad Tase:

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

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

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

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

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

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

SQL

SQL SQL Teine loeng Mõtelda CREATE TABLE ( { INTEGER VARCHAR(10)} [ NOT NULL] ); Standard SQL-86 (ANSI X3.135-1986), ISO võttis üle 1987 SQL-89 (ANSIX3.135-1989) SQL-92 (ISO/IEC 9075:1992)

Rohkem

(Estonian) DM-RBCS Edasimüüja juhend MAANTEE MTB Rändamine City Touring/ Comfort Bike URBAN SPORT E-BIKE Kasseti ketiratas CS-HG400-9 CS-HG50-8

(Estonian) DM-RBCS Edasimüüja juhend MAANTEE MTB Rändamine City Touring/ Comfort Bike URBAN SPORT E-BIKE Kasseti ketiratas CS-HG400-9 CS-HG50-8 (Estonian) DM-RBCS001-02 Edasimüüja juhend MAANTEE MTB Rändamine City Touring/ Comfort Bike URBAN SPORT E-BIKE Kasseti ketiratas CS-HG400-9 CS-HG50-8 SISUKORD OLULINE MÄRKUS... 3 OHUTUSE TAGAMINE... 4

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

(Microsoft Word - T\366\366leht m\365isaprogramm 4-6 kl tr\374kkimiseks.doc)

(Microsoft Word - T\366\366leht m\365isaprogramm 4-6 kl tr\374kkimiseks.doc) 4-6 KLASS 1 Minu nimi on Ma olen praegu Täna on 1. KÄRNERIMAJA JA LILLED Kirjuta või joonista siia kolm kärneri tööriista Kirjuta siia selle taime nimi, 1. TÖÖRIIST 2. TÖÖRIIST 3. TÖÖRIIST mida istutasid

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

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

Microsoft PowerPoint - EMCS13

Microsoft PowerPoint - EMCS13 EMCS piloot-projekt Raigo Veisberg Maksu- ja Tolliameti kaudsete maksude ja aktsiiside talitus TEEMAD Mis on EMCS EMCS käivitumine EMCS kasutamine ja selle võimalused E-saateleht Info edastamine EMCS infosüsteemi

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