Kolmiulotteisten rakennusten proseduraalinen generointi generatiivisten kielioppien avulla

Koko: px
Aloita esitys sivulta:

Download "Kolmiulotteisten rakennusten proseduraalinen generointi generatiivisten kielioppien avulla"

Transkriptio

1 Kolmiulotteisten rakennusten proseduraalinen generointi generatiivisten kielioppien avulla Pauli Kostamo, Eero Kuurne Helsinki HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

2 Sisältö 1 Johdanto Säännöllisyyttä kieliopeilla Generatiiviset kieliopit L-systeemi Jakokieliopit CGA shape Komentosarjakieli rakennusten mallintamiseen Pohdinta Yhteenveto... 8 Lähteet... 10

3 1 1 Johdanto Rakennukset ovat olennainen osa monen pelin ja elokuvan visuaalista ympäristöä, ja ne kertovat paljon ympäröivästä maailmasta ja sen taustatarinasta. Arkkitehtuuri, rakennusten käyttötarkoitukset, pienet yksityiskohdat ja elämisen jäljet luovat ympäristöstä eloisan ja tunnelmallisen. Samalla rakennusten on oltava kuitenkin sopivan ainutlaatuisia, mutta noudattaa samankaltaisuutta ja sopia samaan ympäristöön. Yksittäisessä nykyaikaisessa pelissä tai elokuvassa voi olla jopa tuhansia erilaisia rakennuksia, ja niiden mallintaminen käsin voi olla erittäin työläs prosessi. Esimerkiksi Superman Returns elokuvan kaupungin mallintaminen ihmisvoimin vei noin 15 henkilötyövuotta (Parish & Müller, 2001, s. 621). Automatisoimalla rakennusten mallintamista voidaan säästää huomattavia määriä henkilötyötunteja. Kun sisällöntuotantoa automatisoidaan algoritmien avulla, sitä kutsutaan yleisesti proseduraaliseksi (sisällön)generoinniksi tai 3D-mallien tapauksessa proseduraaliseksi mallintamiseksi. Rakennusten ja kaupunkien proseduraalista mallintamista voidaan käyttää muun muassa peleissä, elokuvateollisuudessa ja kaupunkisuunnittelussa nopeuttamaan tuotantoprosessia (Parish & Müller, 2001). Tutkielmassa käsitellään kolmiulotteisten rakennusten proseduraalista generointia ja generatiivisten kielioppien ja CGA shape komentosarjakielen soveltuvuutta rakennusten generointiin. Ensimmäisessä luvussa kerrotaan, mitä ovat generatiiviset kieliopit ja kuinka niitä voidaan hyödyntää rakennusten proseduraalisessa generoinnissa. Tämän jälkeen perehdytään tarkemmin Pascal Müllerin ja Peter Wonkan kehittämään, generatiivisiin kielioppeihin perustuvaan CGA shape -menetelmään, jota voidaan käyttää monipuolisten rakennusten generointiin. 2 Säännöllisyyttä kieliopeilla Generatiiviset kieliopit ovat yksi tärkeimmistä proseduraalisen sisällöngeneroinnin menetelmistä, ja niitä voidaan käyttää monien erilaisten asioiden generointiin. Esimerkiksi luolastoja, tarinakaavioita, kenttäkaavioita, kasveja, puita ja rakennuksia voidaan tuottaa generatiivisten kielioppien avulla (Shaker, Togelius ja Nelson, 2016). Tässä luvussa käsitellään ensin generatiivisia kielioppeja, minkä jälkeen perehdytään tarkemmin L-systeemiin ja jakokielioppeihin.

4 2.1 Generatiiviset kieliopit 2 (Formaalilla) kieliopilla voidaan kuvata merkkijonoista koostuvan formaalin kielen rakenne. Kielioppiin kuuluu aakkosto, joka määrittelee kielen merkkijonojen mahdolliset merkit, sekä säännöt, joiden perusteella merkkijonot muodostuvat aakkoston merkeistä. Kielioppeja voidaan käyttää tunnistamaan kuuluuko annettu merkkijono kieleen tai muodostamaan kieleen kuuluvia merkkijonoja. Kun kielioppi määritellään tavalla, jolla sitä voidaan käyttää kieleen kuuluvien merkkijonojen muodostamiseen, sitä kutsutaan generatiiviseksi kieliopiksi (Chomsky, 1986). Yleensä kieliopeissa aakkosto jaetaan kahteen joukkoon: muuttujasymboleihin ja päätesymboleihin (Shaker, Togelius ja Nelson, 2016, s. 74). Muuttujasymbolit eli muuttujat ovat merkkejä, joita säännöt muuttavat, ja niitä kuvataan yleensä isoilla kirjaimilla. Päätesymbolit ovat merkkejä, jotka eivät muutu enää, kun ne on lisätty merkkijonoon, ja niitä kuvataan yleensä pienillä kirjaimilla. Kieliopin tuottama merkkijono koostuu pelkistä päätesymboleista. Säännöt esitetään usein muodossa A x y z, missä A on muuttuja ja x, y ja z ovat mielivaltaisia jonoja muuttujia ja päätesymboleja, joiksi muuttuja A voidaan muuttaa yhdellä iteraatiolla (Sipser, 2006, s ). Merkkijonon tuottaminen alkaa aina alustamalla merkkijono lähtösymbolilla, jota kuvataan yleensä S-kirjaimella. Tämän jälkeen algoritmi käy merkkijonon läpi jokaisella iteraatiolla ja kieliopin tyypistä riippuen soveltaa sääntöjä joko yhteen, useampaan tai kaikkiin merkkijonon muuttujiin kerralla, muuttamalla säännön vasemmalla puolella olevan muuttujan säännön oikealla puolella olevaksi merkkijonoksi. Jokaisen iteraation seurauksena käsiteltävä merkkijono muuttuu joko osittain tai kokonaan. Esimerkissä 1 havainnollistetaan yksinkertaisen kieliopin toimintaa. Esimerkin 1 kielioppi on yhteydetön ja epädeterministinen kielioppi eli muuttujat eivät ole riippuvaisia ympäröivistä merkeistä ja muuttujia muutetaan yksi kerrallaan vapaavalintaisesti. Muuttujia ovat S, A ja B, ja päätesymboleita a, b ja c. Esimerkissä 1 on kuvattu kieliopin säännöt ja merkkijonon "cabab" muodostaminen vaiheittain (eli merkkijonon "cabab" johto). S ca A AB a B BA b S ca cab caba cabab cabab cabab cabab cabab Esimerkki 1: Kieliopin säännöt ja merkkijonon cabab johto.

5 3 Kieliopin muodostamia merkkijonoja voidaan käyttää muodostamaan kaikenlaista sisältöä, jossa merkkijonon merkit muutetaan vastaamaan erilaisia sisällön elementtejä. Myöhemmissä luvuissa esitellään tarkemmin käytännön sovelluksia. 2.2 L-systeemi Rakennuksia ja kaupunkeja generoidaan usein L-systeemin johdannaisilla kielioppiperustaisilla malleilla (Parish & Müller, 2001). L-systeemi on alunperin kehitetty matemaattiseksi malliksi kasvien mallintamista varten (Prusinkiewicz & Lindenmayer, 1996, s. 1). L-systeemi on formaali kielioppi, joka perustuu uudelleenkirjoitukseen. Uudelleenkirjoituksessa alkuarvon toteuttamaa merkkijonoa iteroidaan erilaisten sääntöjen avulla, uudelleenkirjoittaen merkkijono kokonaan, luoden uusi merkkijono vanhan tilalle jokaisella iteraatiolla. Uudelleenkirjoittamisesta johtuen se sopiikin erittäin hyvin ajan funktiona kasvavien mallien mallintamiseen. Yksinkertaisimmillaan L-systeemi on yhteydettömässä ja deterministisessä DOL-systeemissä (Prusinkiewicz & Lindenmayer, 1996, s. 1). Ohessa esitetyssä esimerkin 2 DOL-systeemissä alkuarvona S on "b", säännön 1 mukaan merkkijono "a" uudelleenkirjoitetaan merkkijonolla "ab" ja säännön 2 mukaan merkkijono "b" uudelleenkirjoitetaan merkkijonolla "a". S: b 1: a ab 2: b a b a ab aba abaab Esimerkki 2: Kieliopin säännöt ja merkkijonon "abaab" johto. Oheisessa esimerkissä 2 on alkuarvolla "b" iteroitu sääntöjä 1 ja 2 neljä kertaa, ja saatu vastaukseksi merkkijono "abaab". 2.3 Jakokieliopit Perinteisen L-systeemin avulla on vaikea saada mallinnettua rakennuksia, sillä rakennuksilla on useita rajoitteita kokonsa ja mallinsa suhteen (Wonka, Wimmer, Sillion, & Ribarsky, 2003, s. 669). Wonka et. al. ovat tutkineet työssään Instant Architecture jakokielioppien (englanniksi split grammar) toimimista rakennusten mallintamisessa. Jakokieliopin mallissa rakennus yksinkertaisesti jaetaan lohkoihin käyttämällä jotain kielioppia. Syntyneet lohkot jaetaan uudelleen

6 4 lohkoiksi seuraavan kieliopin mukaan. Tätä iterointia jatketaan edelleen pienempiin lohkoihin uusilla kieliopeilla. Missä tahansa kieliopissa voi olla lohkon iteraation päättävä lopetusmerkki. Kun kaikissa muodostuneissa lohkoissa on vain lohkon iteraation päättäviä lopetusmerkkejä, rakennuksen raakamalli on valmis (Wonka et al., 2003, s ). Kuvassa 1 on esitettynä jakokieliopilla toteutettu julkisivu. Kuvassa 1 nähdään kuinka jokaisen iteraation jälkeen otetaan käyttöön uuden kieliopin säännöt, kunnes jäljellä on vain lopetusmerkkejä. Kuva 1: Jakokieliopilla ja L-systeemillä toteutettu julkisivu. Kuvassa lopetusmerkit on merkitty suluin. 3 CGA shape Kieliopeilla itsellään käsitellään vain merkkijonoja. Jotta niitä voitaisiin hyödyntää rakennusten generoinnissa, on merkkijonojen ympärille rakennettava toteutus, joka muuttaa niiden avulla saavutetun säännöllisyyden halutuiksi elementeiksi. CGA shape on eräs käytännön toteutus, jonka avulla voidaan muodostaa rakennusten ulkomuodot ja generoida niihin julkisivu jakokielioppien avulla. Tässä luvussa käsitellään CGA shapen teoriaa ja esitetään muutamia havainnollistavia esimerkkejä.

7 3.1 Komentosarjakieli rakennusten mallintamiseen 5 CGA shape on Pascal Müllerin, Peter Wonkan et. al. kehittämä muotokielioppien (englanniksi shape grammar) kanssa käytettävä komentosarjakieli rakennusten proseduraaliseen mallintamiseen. Se on sisällytetty muun muassa CityEngine-sovelluskehykseen (Esri, 2008). CGA shapessa on pyritty syntaksin helppolukuisuuteen (Parish & Müller, 2001). Syntaksi on esitetty seuraavassa muodossa: id: edeltäjä: ehto seuraaja: todennäköisyys CGA shapessa jokainen objekti lasketaan heksaedrin perusteella, ja objekti voidaan sijoittaa vapaasti koordinaatistoon. CGA shapen muotokielioppi vaatii ennalta määrätyn joukon kolmiulotteisia malleja, joita yhdistelemällä rakennus saadaan mallinnettua. Objektin koko ilmoitetaan komennolla S(x,y,z). Kuvassa 2 objektin koon parametrit on ilmoitettu parametreilla Sx, Sy ja Sz. Objektia voidaan myös kääntää jonkin akselin suhteen paremetreilla Rx, Ry ja Rz, ja objektin sijainti koordinaatistossa määritellään translaatiovektorin T(x,y,z) avulla. Objektin muoto haetaan tietokannasta komennolla I("objektin nimi"). Kuvassa 3 on esitetty yksi CGA shapen sääntö, jossa kahdella ennalta määritetyllä mallilla muodostetut kolme objektia on sijoitettu koordinaatistoon.

8 6 Rakennusta mallinnettaessa jokaisen lopetusmerkittömän objektin kohdalle generoidaan sääntöjen perusteella uusia objekteja. Paikalla ollut objekti merkataan inaktiiviseksi, jolloin sitä ei piirretä, mutta objektia ei poisteta muistista. Tämä mahdollistaa täyden iteraatiohistorian rakennukselle. Historiatiedon perusteella on helppo selvittää kohtaako joku objekti jonkin toisen objektin. CGA shape sisältää vain muutaman peruskomennon, joiden avulla on mahdollista mallintaa hyvin monenlaisia rakennuksia. Jokainen CGA shapen luoma objekti sisältää tiedon omasta aktiivisuudestaan (objektin tila voi olla joko aktiivinen tai inaktiivinen). Objektilta voidaan myös kysyä kohtaako se jonkin toisen objektin, ja missä kohdassa tämä kohtaaminen tapahtuu. Objekti voidaan jakaa aliobjekteiksi Subdiv-komennolla. Repeat-komennolla taas voidaan täyttää haluttu alue yhdentyyppisillä elementeillä. Kuvassa 4 on esitetty objektin jakaminen Subdiv-komennolla, ja kuvassa 5 objektin täyttäminen Repeat-komennolla. Täytettäesä aluetta uusilla objekteilla, objektin koko voi olla joko staattinen tai relatiivinen. Relatiivisten objektien koko merkitään numeerisella arvolla ja kirjaimella r. Niiden lopullinen koko lasketaan täytettävän alueen tilasta, kun siitä on vähennetty staattisten objektien koko. Objekteille voidaan asettaa myös leikkausviivoja (snap line) ja leikkauskappaleita (snap shape). Kun objekti täytetään aliobjekteilla, leikkausviivaa lähimpänä oleva kahden objektin raja muokataan leikkausviivan kohdalle. Kuvassa 6 on esitetty leikkausviivan toiminta. Leikkausviivoilla voidaan estää esimerkiksi puolikkaan ikkunan päättyminen rakennuksen kulmaan.

9 7 Kuva 6: Vasemmalla objekti jaettu identtisen kokoisiin aliobjekteihin. Oikealla lähin objektien reuna sijoitettuna leikkausviivan kohdalle. Molemmissa kuvissa punainen leikkausviiva on samassa kohdassa. Kolmiulotteinen objekti voidaan jakaa kaksiulotteisiksi pinnoiksi Comp-komennolla. Tällä voidaan luoda esimerkiksi rakennukselle erilaisia julkisivua riippuen millä laidalla rakennusta ollaan. Kuvassa 7 on havainnollistettu valmiita CGA shapella luotuja rakennuksia, joille on generoitu julkisivut. Kuva 7: CGA shapella generoituja rakennuksia (Müller, Wonka, Haegler, Ulmer & Van Gool, 2006). 3.2 Pohdinta CGA shape soveltuu muokattavuutensa ansiosta erittäin hyvin monenlaisten rakennusten generointiin. Käyttäjän on mahdollista luoda erittäin laajoja sääntökokonaisuuksia, joiden avulla voidaan mallintaa lähes minkälaisia rakennuksia tahansa. Leikkausviivojen ansiosta voidaan myös välttää julkisivun elementtien joutuminen väärään paikkaan, mikä on yleinen ongelma rakennusten generoinnissa (Müller, Wonka, Haegler, Ulmer ja Van Gool, 2006). Koska CGA shape ei poista korvattuja objekteja, rakennusten mallintamiseen tarvittava muistin määrä on suurempi kuin tavassa, jossa inaktiiviset elementit poistettaisiin muistista. Kuvan 7 vasemman puoleisen rakennuksen generointi tuottaa monikulmiota, ja sen generointiin kulunut aika vuonna 2001 on ollut noin sekunti (Parish & Müller, 2001). Mikäli myös rakennuksen yksityiskohdat generoitaisiin CGA shapen avulla, monikulmioita jouduttaisiin

10 8 generoimaan moninkertainen määrä. Tämä olisi hyvin tehotonta. Tämän takia rakennusten yksityiskohdat kannattaakin generoida esimerkiksi valmiiksi luoduilla kolmiulotteisilla malleilla. Müller et. al. kertovat myös, että vaikka CGA shapella voidaan generoida rakennuksia GIS ainestosta, näin generoidut rakennukset mallintuvat usein huonosti, ja että proseduraalinen generointi luo usein epäuskottavan näköisiä rakennuksia (Parish & Müller, 2001, s. 622). Tämä on yleinen ongelma rakennusten proseduraalisessa generoinnissa, ja usein parhaat lopputulokset saadaan ensin generoimalla rakennus ja sen jälkeen muokkaamalla niitä vielä käsin (Hendrikx, Mejer, Van Der Velden, Iosup, 2013). 4 Yhteenveto Nykyaikaisissa peleissä ja elokuvissa voi olla jopa tuhansia erilaisia rakennuksia. Uskottavan ympäristön luomiseksi rakennusten tulisi olla sopivan samankaltaisia, mutta kuitenkin ainutlaatuisia. Niiden mallintaminen ihmisvoimin voi olla erittäin työläs prosessi. Automatisoimalla rakennusten mallintamista algoritmien avulla voidaan säästää huomattavasti aikaa ja vaivaa. Sitä kutsutaan rakennusten proseduraaliseksi generoinniksi tai proseduraaliseksi mallintamiseksi. Rakennuksia ja kaupunkeja generoidaan usein kielioppiperustaisilla malleilla. Kielioppien avulla voidaan kuvata merkkijonoista koostuvan formaalin kielen rakenne, ja niitä voidaan käyttää tunnistamaan kuuluuko annettu merkkijono kieleen tai muodostamaan kieleen kuuluvia merkkijonoja. Kielioppeihin kuuluu merkeistä koostuva aakkosto ja säännöt, joiden avulla merkkijonoja muodostetaan. Monet rakennusten proseduraalisen generoinnin ratkaisut perustuvat Aristid Lindenmayerin kehittämään L-systeemiin, joka on alunperin kasvien mallintamista varten kehitetty formaali kielioppi. L-systeemi perustuu koko merkkijonon uudelleenkirjoittamiseen jokaisella iteraatiolla. Tästä johtuen se sopii erityisesti ajan funktiona kasvavien mallien mallintamiseen. Muita suosittuja kielioppeja ovat esimerkiksi jakokieliopit julkisivujen mallintamiseen ja muotokieliopit rakennuksen muotojen mallintamiseen. CGA shape on yksi hyvä käytännön esimerkki kielioppeihin perustuvasta rakennusten generoinnin menetelmästä. Se on Pascal Müller, Peter Wonkan et. al. kehittämä muotokieli-

11 9 oppien kanssa käytettävä komentosarjakieli, jota on käytetty muun muassa CityEngine-sovelluskehyksessä. CGA shapessa rakennus muodostetaan ensin yhdistelemällä yksinkertaisia kolmiulotteisia muotoja muotokieliopilla, minkä jälkeen muotojen päälle generoidaan jakokieliopin avulla julkisivu. CGA shape soveltuu muokattavuutensa ansiosta hyvin monenlaisten rakennusten generointiin, ja sen avulla generoidut rakennukset ovat parhaimmillaan erittäin uskottavan näköisiä. Rakennusten generointi vie kuitenkin paljon muistia, ja julkisivujen yksityiskohdat kannattaa generoida käsin tehdyillä 3D-malleilla. CGA shapea ja muita proseduraalisen rakennusten generoinnin tekniikoita käytetäänkin usein erityisesti apuna generoimaan alustavia rakennuksia, joita voidaan muokata käsin uskottavamman näköisiksi. Rakennusten proseduraalinen generointi voi auttaa rakennusten tuottamisessa, ja sen avulla voidaan säästää aikaa ja vaivaa. Olemassa olevilla tekniikoilla on kuitenkin vaikea saavuttaa rakennuksia, jotka olisivat yhtä uskottavia kuin käsin mallinnetut. Tulevaisuudessa mielenkiintoisen tutkimuskohteen luovat neuroverkot ja tekoäly, joiden avulla proseduraalisesta mallintamisesta saadaan todennäköisesti huomattavasti uskottavamman näköistä, kuin nykyisillä tekniikoilla.

12 Lähteet 10 Chomsky, N (1986). Knowledge of Language. Westport, CT: Greenwood Publishing Group. Esri (2008). CityEngine. Lainattu : Hendrikx, M., Mejer, S., Van Der Velden, J., Iosup, A. (2013). Procedural content generation for games: A survey. ACM Transactions on Multimedia Computing, Communications, and Applications, 9(1). Müller, P., Wonka, P., Haegler, S., Ulmer, A., Van Gool, L. (2006). Procedural modeling of Buildings. ACM Transactions on Graphics (TOG) - Proceedings of ACM SIGGRAPH 2006, 25(3), Parish, Y. I. H., & Müller, P. (2001). Procedural modeling of cities. Proceedings of the 28th annual conference on computer graphics and interactive techniques, New York, NY, USA: ACM. Prusinkiewicz, P., & Lindenmayer, A. (1996). The algorithmic beauty of plants. New York, NY, USA: Springer-Verlag New York, Inc. Shaker, N., Togelius, J. & Nelson, M. (2016). Procedural Content Generation in Games: A Textbook and an Overview of Current Research. Cham, CH: Springer. Sipser, M., Togelius, J. & Nelson, M. (2006). Introduction to the Theory of Computation, (Second Edition). Boston, MA: Thomson Course Technology. Wonka, P., Wimmer, M., Sillion, F., & Ribarsky, W. (2003, heinäkuuta). Instant architecture. ACM Trans. Graph., 22 (3),

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja 582206 Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja 1. Tarkastellaan yhteydetöntä kielioppia S SAB ε A aa a B bb ε Esitä merkkijonolle aa kaksi erilaista jäsennyspuuta ja kummallekin siitä vastaava

Lisätiedot

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: S A S B Samaan jäsennyspuuhun päästään myös johdolla S AB Ab ab: S A S B Yhteen jäsennyspuuhun liittyy aina tasan yksi vasen

Lisätiedot

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut T-79.148 Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S tuottama

Lisätiedot

Rajoittamattomat kieliopit (Unrestricted Grammars)

Rajoittamattomat kieliopit (Unrestricted Grammars) Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli

Lisätiedot

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS LUONNOLLISEN KIELEN KÄSITTELY (NATURAL LANGUAGE PROCESSING, NLP) TEKOÄLYSOVELLUKSET, JOTKA LIITTYVÄT IHMISTEN KANSSA (TAI IHMISTEN VÄLISEEN) KOMMUNIKAATIOON, OVAT TEKEMISISSÄ

Lisätiedot

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e) Tik-79.148 Kevät 2001 Tietojenkäsittelyteorian perusteet Laskuharjoitus 7 Demonstraatiotehtävien ratkaisut 1. Pinoautomaatti M = K Σ Γ s F missä K Σ s ja F on määritelty samalla tavalla kuin tilakoneellekin.

Lisätiedot

Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää

Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää S AB CA... A CB...... ja kutsua Derives(S, abcde), niin kutsu Derives(B,

Lisätiedot

Yhteydettömät kieliopit [Sipser luku 2.1]

Yhteydettömät kieliopit [Sipser luku 2.1] Yhteydettömät kieliopit [ipser luku 2.1] Johdantoesimerkkinä tarkastelemme kieltä L = { a n b m a n n > 0, m > 0 }, joka on yhteydetön (mutta ei säännöllinen). Vastaavan kieliopin ytimenä on säännöt eli

Lisätiedot

Chomskyn hierarkia ja yhteysherkät kieliopit

Chomskyn hierarkia ja yhteysherkät kieliopit Chomskyn hierarkia ja yhteysherkät kieliopit Laskennan teorian opintopiiri Tuomas Hakoniemi 21. helmikuuta 2014 Käsittelen tässä laskennan teorian opintopiirin harjoitustyössäni muodollisten kielioppien

Lisätiedot

S BAB ABA A aas bba B bbs c

S BAB ABA A aas bba B bbs c T-79.148 Kevät 2003 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S) tuottama

Lisätiedot

uv n, v 1, ja uv i w A kaikilla

uv n, v 1, ja uv i w A kaikilla 2.8 Säännöllisten kielten rajoituksista Kardinaliteettisyistä on oltava olemassa (paljon) ei-säännöllisiä kieliä: kieliä on ylinumeroituva määrä, säännöllisiä lausekkeita vain numeroituvasti. Voidaanko

Lisätiedot

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin Yhteydettömien kielioppien ja pinoautomaattien yhteys [Sipser s. 117 124] Todistamme, että yhteydettömien kielioppien tuottamat kielet ovat tasan samat kuin ne, jotka voidaan tunnistaa pinoautomaatilla.

Lisätiedot

Yhteydettömän kieliopin jäsennysongelma

Yhteydettömän kieliopin jäsennysongelma Yhteydettömän kieliopin jäsennysongelma Yhteydettömän kieliopin jäsennysongelmalla tarkoitetaan laskentaongelmaa Annettu: yhteydetön kielioppi G, merkkijono w Kysymys: päteekö w L(G). Ongelma voidaan periaatteessa

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja 581336 Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja 1. S! axc X! axc X! by c Y! by c Y! " 2. (a) Tehtävänä on konstruoida rajoittamaton kielioppi, joka tuottaa kielen f0 n 1 n jn 1g. Vaihe1: alkutilanteen

Lisätiedot

2. Yhteydettömät kielet

2. Yhteydettömät kielet 2. Yhteydettömät kielet Yhteydettömät eli kontekstittomat kielet (context-free language, CFL) ovat säännöllisiä kieliä laajempi luokka formaaleja kieliä. Ne voidaan esittää yhteydettömillä kieliopeilla

Lisätiedot

11.4. Context-free kielet 1 / 17

11.4. Context-free kielet 1 / 17 11.4. Context-free kielet 1 / 17 Määritelmä Tyypin 2 kielioppi (lauseyhteysvapaa, context free): jos jokainenp :n sääntö on muotoa A w, missäa V \V T jaw V. Context-free kielet ja kieliopit ovat tärkeitä

Lisätiedot

Hakuperustainen proseduraalinen sisällöntuotanto tietokonepeleissä

Hakuperustainen proseduraalinen sisällöntuotanto tietokonepeleissä Elina Keränen Hakuperustainen proseduraalinen sisällöntuotanto tietokonepeleissä Tietotekniikan kandidaatintutkielma 28. huhtikuuta 2015 Jyväskylän yliopisto Tietotekniikan laitos Tekijä: Elina Keränen

Lisätiedot

JONI RÄSÄNEN Pythonin käyttö satunnaisen L-järjestelmän toteuttamisessa. Kandidaatintyö

JONI RÄSÄNEN Pythonin käyttö satunnaisen L-järjestelmän toteuttamisessa. Kandidaatintyö JONI RÄSÄNEN Pythonin käyttö satunnaisen L-järjestelmän toteuttamisessa Kandidaatintyö Tarkastaja: Outi Sievi-Korte Jätetty tarkastettavaksi: 20.6.2013 I TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Tietotekniikan

Lisätiedot

Yleisten pelikenttien proseduraalisen generoinnin metodit

Yleisten pelikenttien proseduraalisen generoinnin metodit Joonas Karttunen Yleisten pelikenttien proseduraalisen generoinnin metodit Tietotekniikan kandidaatintutkielma 13. toukokuuta 2016 Jyväskylän yliopisto Tietotekniikan laitos Tekijä: Joonas Karttunen Yhteystiedot:

Lisätiedot

GeoGebra-harjoituksia malu-opettajille

GeoGebra-harjoituksia malu-opettajille GeoGebra-harjoituksia malu-opettajille 1. Ohjelman kielen vaihtaminen Mikäli ohjelma ei syystä tai toisesta avaudu toivomallasi kielellä, voit vaihtaa ohjelman käyttöliittymän kielen seuraavasti: 2. Fonttikoon

Lisätiedot

Ei-yhteydettömät kielet [Sipser luku 2.3]

Ei-yhteydettömät kielet [Sipser luku 2.3] Ei-yhteydettömät kielet [Sipser luku 2.3] Yhteydettömille kielille pätee samantapainen pumppauslemma kuin säännöllisille kielille. Siinä kuitenkin pumpataan kahta osamerkkijonoa samaan tahtiin. Lause 2.25

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 Kierros 7, 29. helmikuuta 4. maaliskuuta Demonstraatiotehtävien ratkaisut D1: Osoita, yhteydettömien kielten pumppauslemmaa käyttäen, että kieli {ww w {a,b}

Lisätiedot

Rajoittamattomat kieliopit

Rajoittamattomat kieliopit Rajoittamattomat kieliopit Ohjelmoinnin ja laskennan perusmalleista muistetaan, että kieli voidaan kuvata (esim.) kieliopilla joka tuottaa sen, tai automaatilla joka tunnistaa sen. säännölliset lausekkeet

Lisätiedot

Määrittelydokumentti

Määrittelydokumentti Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta

Lisätiedot

8. Kieliopit ja kielet

8. Kieliopit ja kielet 8. Kieliopit ja kielet Suomen kielen sanoja voidaan yhdistellä monella eri tavalla. Kielioppi määrää sen, milloin sanojen yhdistely antaa oikein muodostetun lauseen. "Mies räpyttää siipiään" on kieliopillisesti

Lisätiedot

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Satunnaisalgoritmit Topi Paavilainen Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 1 Johdanto Satunnaisalgoritmit ovat algoritmeja, joiden

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

Lisätiedot

Kun yhtälöä ei voi ratkaista tarkasti (esim yhtälölle x-sinx = 1 ei ole tarkkaa ratkaisua), voidaan sille etsiä likiarvo.

Kun yhtälöä ei voi ratkaista tarkasti (esim yhtälölle x-sinx = 1 ei ole tarkkaa ratkaisua), voidaan sille etsiä likiarvo. Kun yhtälöä ei voi ratkaista tarkasti (esim yhtälölle x-sinx = 1 ei ole tarkkaa ratkaisua), voidaan sille etsiä likiarvo. Iterointi on menetelmä, missä jollakin likiarvolla voidaan määrittää jokin toinen,

Lisätiedot

8. Kieliopit ja kielet 1 / 22

8. Kieliopit ja kielet 1 / 22 8. Kieliopit ja kielet 1 / 22 Luonnollinen kieli Suomen kielen sanoja voidaan yhdistellä monella eri tavalla. Kielioppi määrää sen, milloin sanojen yhdistely antaa oikein muodostetun lauseen. "Mies räpyttää

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallintaminen ja UML 582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti

Lisätiedot

Äärellisten automaattien ja säännöllisten lausekkeiden minimointi

Äärellisten automaattien ja säännöllisten lausekkeiden minimointi Äärellisten automaattien ja säännöllisten lausekkeiden minimointi Timi Suominen, Riia Ohtamaa ja Pessi Moilanen Helsinki..01 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Äärellisten automaattien

Lisätiedot

Ontologiakirjasto ONKI-Paikka

Ontologiakirjasto ONKI-Paikka Ontologiakirjasto ONKI-Paikka Tomi Kauppinen, Robin Lindroos, Riikka Henriksson, Eero Hyvönen Semantic Computing Research Group (SeCo) and University of Helsinki and Helsinki University of Technology (TKK)

Lisätiedot

Proseduraalinen tiegeneraattori

Proseduraalinen tiegeneraattori Juri Palotie Proseduraalinen tiegeneraattori Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikka Insinöörityö 5.5.2017 Tiivistelmä Tekijä(t) Otsikko Sivumäärä Aika Juri Palotie Proseduraalinen

Lisätiedot

Tehtävä 2: Loppuosataulukko

Tehtävä 2: Loppuosataulukko Tehtävä 2: Loppuosataulukko Tutustu tarkoin seuraavaan tekstiin ja vastaa sitä hyväksi käyttäen tehtävän loppuosassa esitettyihin viiteen kysymykseen. Annetun merkkijonon (ns. hahmo) esiintymän haku pidemmästä

Lisätiedot

Kolmiulotteisen maaston generointi peleissä

Kolmiulotteisen maaston generointi peleissä Ilari Paananen Kolmiulotteisen maaston generointi peleissä Tietotekniikan kandidaatintutkielma 6. kesäkuuta 2015 Jyväskylän yliopisto Tietotekniikan laitos Tekijä: Ilari Paananen Yhteystiedot: ilari.k.paananen@student.jyu.fi

Lisätiedot

Yleinen paikallinen vakautuva synkronointialgoritmi

Yleinen paikallinen vakautuva synkronointialgoritmi Yleinen paikallinen vakautuva synkronointialgoritmi Panu Luosto 23. marraskuuta 2007 3 4 putki 1 2 α α+1 α+2 α+3 0 K 1 kehä K 2 K 3 K 4 Lähdeartikkeli Boulinier, C., Petit, F. ja Villain, V., When graph

Lisätiedot

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 24. toukokuuta 2013 Sisällys Formaalit kielet On tapana sanoa, että merkkijonojen joukko on (formaali) kieli. Hieman

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

Lisätiedot

Muodolliset kieliopit

Muodolliset kieliopit Muodolliset kieliopit Luonnollisen kielen lauseenmuodostuksessa esiintyy luonnollisia säännönmukaisuuksia. Esimerkiksi, on jokseenkin mielekästä väittää, että luonnollisen kielen lauseet koostuvat nk.

Lisätiedot

ETAPPI ry JOOMLA 2.5 Mediapaja. Artikkeleiden hallinta ja julkaisu

ETAPPI ry JOOMLA 2.5 Mediapaja. Artikkeleiden hallinta ja julkaisu ETAPPI ry JOOMLA 2.5 Artikkeleiden hallinta ja julkaisu ETAPPI ry JOOMLA 2.5 Sivu 1(16) Sisällysluettelo 1 Joomla! sivuston sisällöntuotanto... 2 2 Artikkeleiden julkaisu sivustolla... 4 3 Artikkelin julkaisemista

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 11.08.2010 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

Projektisuunnitelma. Projektin tavoitteet

Projektisuunnitelma. Projektin tavoitteet Projektisuunnitelma Projektin tavoitteet Projektin tarkoituksena on tunnistaa erilaisia esineitä Kinect-kameran avulla. Kinect-kamera on kytkettynä tietokoneeseen, johon projektissa tehdään tunnistuksen

Lisätiedot

Esimerkki 2.28: Tarkastellaan edellisen sivun ehdot (1) (3) toteuttavaa pinoautomaattia, jossa päätemerkit ovat a, b ja c ja pinoaakkoset d, e ja $:

Esimerkki 2.28: Tarkastellaan edellisen sivun ehdot (1) (3) toteuttavaa pinoautomaattia, jossa päätemerkit ovat a, b ja c ja pinoaakkoset d, e ja $: Esimerkki 2.28: Tarkastellaan edellisen sivun ehdot (1) (3) toteuttavaa pinoautomaattia, jossa päätemerkit ovat a, b ja c ja pinoaakkoset d, e ja $: a, ε d b, d ε ε, ε $ b, d ε 1 2 3 6 c, ε e c, ε e c,

Lisätiedot

Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta.

Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta. Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta. Vastauksia kysymyksiin Miten hahmon saa hyppäämään? Yksinkertaisen hypyn

Lisätiedot

Osoitamme, että jotkut kielet eivät ole säännöllisiä eli niitä ei voi tunnistaa äärellisellä automaatilla.

Osoitamme, että jotkut kielet eivät ole säännöllisiä eli niitä ei voi tunnistaa äärellisellä automaatilla. Ei-säännöllisiä kieliä [Sipser luku 1.4] Osoitamme, että jotkut kielet eivät ole säännöllisiä eli niitä ei voi tunnistaa äärellisellä automaatilla. Tulos ei sinänsä ole erityisen yllättävä, koska äärellinen

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

Kaupunki-infrastruktuurin luonti proseduraalisin menetelmin

Kaupunki-infrastruktuurin luonti proseduraalisin menetelmin Ari Riipinen Kaupunki-infrastruktuurin luonti proseduraalisin menetelmin Tietotekniikan kandidaatintutkielma 29. huhtikuuta 2016 Jyväskylän yliopisto Tietotekniikan laitos Tekijä: Ari Riipinen Yhteystiedot:

Lisätiedot

Pinoautomaatit. Pois kontekstittomuudesta

Pinoautomaatit. Pois kontekstittomuudesta TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015 Sisällys Pinoautomaatti NFA:n yleistys automaatilla on käytössään LIFO-muisti 1 eli pino Pino

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015 TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. marraskuuta 2015 Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4 a 5 00 k 11 i

Lisätiedot

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005 Graafin 3-värittyvyyden tutkinta T-79.165 Graafiteoria, projektityö (eksakti algoritmi), kevät 2005 Mikko Malinen, 36474R 29. maaliskuuta, 2005 Tiivistelmä Artikkelissa käydään läpi teoriaa, jonka avulla

Lisätiedot

A-Tiilikate objektikirjasto

A-Tiilikate objektikirjasto A-Tiilikate objektikirjasto 15.1.2014 A-Tiilikate-objektikirjasto toimii ArchiCAD 14, 15, 16 ja 17 -versioissa. Kirjaston käyttöön tarvitaan Graphisoftin Tarvikkeet-laajennus. Tarvikkeet-laajennuksen käyttöönotto

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. syyskuuta 2016 Sisällys Neuvoja opintoihin tee joka päivä ainakin vähän uskalla mennä epämukavuusalueelle en

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 7. Kombinatoriikka 7.1 Johdanto Kombinatoriikka tutkii seuraavan kaltaisia kysymyksiä: Kuinka monella tavalla jokin toiminto voidaan suorittaa? Kuinka monta tietynlaista

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4

Lisätiedot

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko 9.5. Turingin kone Turingin kone on järjestetty seitsikko TM = (S, I, Γ, O, B, s 0, H), missä S on tilojen joukko, I on syöttöaakkosto, Γ on nauha-aakkosto, I Γ, O on äärellinen ohjeiden joukko, O S Γ

Lisätiedot

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä olevilla komponenteilla? Voisiko jollakin ohjelmointikielellä

Lisätiedot

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. kesäkuuta 2013 Sisällys Aikataulumuutos Tämänpäiväinen demotilaisuus on siirretty maanantaille klo 14:15 (Ag Delta).

Lisätiedot

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä hyväksymispäivä arvosana arvostelija Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä Tuomas Husu Helsinki 20.2.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto

Lisätiedot

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}. 42 Turingin koneiden laajennuksia 1 oniuraiset koneet Sallitaan, että Turingin koneen nauha koostuu k:sta rinnakkaisesta urasta, jotka kaikki kone lukee ja kirjoittaa yhdessä laskenta-askelessa: Koneen

Lisätiedot

12. luento: Simplexin implementointi Mallinnusjärjestelmät. Simplexin implementointiin liittyviä asioita

12. luento: Simplexin implementointi Mallinnusjärjestelmät. Simplexin implementointiin liittyviä asioita Simplex-menetelm menetelmän laskennalliset tekniikat 12. luento: Simplexin implementointi Mallinnusjärjestelmät Matemaattisten algoritmien ohjelmointi Kevät 2008 / 1 Simplexin implementointiin liittyviä

Lisätiedot

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus FORMAALI SYSTEEMI (in Nutshell): Formaali kieli: aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus esim. SSM:n tai EBNF:n avulla Semantiikka:

Lisätiedot

Kielitieteellisten aineistojen käsittely

Kielitieteellisten aineistojen käsittely Kielitieteellisten aineistojen käsittely 1 Johdanto...1 2 Aineistojen kommentointi, metadatan tyypit...1 3 Aineistojen käsittely...2 3.1 Rakenteisten kieliaineistojen kyselykielet...2 3.2 Tiedonlouhinta

Lisätiedot

T-111.4310 Vuorovaikutteinen tietokonegrafiikka Tentti 14.12.2011

T-111.4310 Vuorovaikutteinen tietokonegrafiikka Tentti 14.12.2011 T-111.4310 Vuorovaikutteinen tietokonegrafiikka Tentti 14.12.2011 Vastaa kolmeen tehtävistä 1-4 ja tehtävään 5. 1. Selitä lyhyesti mitä seuraavat termit tarkoittavat tai minkä ongelman algoritmi ratkaisee

Lisätiedot

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ 1 Kuva 1 Sakari Järvenpää sakari.o.a.jarvenpaa@student.jyu.fi TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ 28.3.16 2 Sisällys 1 Kaaviot... 3 1.1 Kaavion osat... 3 1.2 Kaavion tekeminen... 4 1.3 Kaavion muokkaaminen...

Lisätiedot

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

on rekursiivisesti numeroituva, mutta ei rekursiivinen. 6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = { M pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti

Lisätiedot

Platonin kappaleet. Avainsanat: geometria, matematiikan historia. Luokkataso: 6-9, lukio. Välineet: Polydron-rakennussarja, kynä, paperia.

Platonin kappaleet. Avainsanat: geometria, matematiikan historia. Luokkataso: 6-9, lukio. Välineet: Polydron-rakennussarja, kynä, paperia. Tero Suokas OuLUMA, sivu 1 Platonin kappaleet Avainsanat: geometria, matematiikan historia Luokkataso: 6-9, lukio Välineet: Polydron-rakennussarja, kynä, paperia Tavoitteet: Tehtävässä tutustutaan matematiikan

Lisätiedot

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure Automaattinen regressiotestaus ilman testitapauksia Pekka Aho, VTT Matias Suarez, F-Secure 2 Mitä on regressiotestaus ja miksi sitä tehdään? Kun ohjelmistoon tehdään muutoksia kehityksen tai ylläpidon

Lisätiedot

Tik-111.5450 Tietokoneanimaatio

Tik-111.5450 Tietokoneanimaatio Tik-111.5450 Tietokoneanimaatio 8.luento: procedural shapes fractals, graftals, etc. 14.11.2005 - Tassu Animaatio 2005 - luento 8 1 Sisältö Periaate: proseduraalisesti määritelty muoto Sovelluksia: muuntuvat

Lisätiedot

1 GDL-OBJEKTIN TUONTI...1

1 GDL-OBJEKTIN TUONTI...1 GDL-OBJEKTI SISÄLLYSLUETTELO 1 GDL-OBJEKTIN TUONTI...1 2 MTH CONCERTTO -OBJEKTI...3 2.1. Tekniset-välilehti...3 2.2. Asetukset-välilehti...3 2.3. Mitat-välilehti...4 2.4. Runko-välilehti...6 2.5. Aukko-välilehti...7

Lisätiedot

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki Malliperustainen ohjelmistokehitys - MDE 25.9.2007 Pasi Lehtimäki MDE Miksi MDE? Mitä on MDE? MDA, mallit, mallimuunnokset Ohjelmistoja Eclipse, MetaCase Mitä jatkossa? Akronyymiviidakko MDE, MDA, MDD,

Lisätiedot

RADAR - RANDOM DATA GENERATOR

RADAR - RANDOM DATA GENERATOR YLEISKUVAUS Radar on sovellus, jolla voi luoda näennäisen oikeaa satunnaisdataa testaus-, demo - ja muihin tarkoituksiin. TIEDUSTELUT Juha Levonen 050 372 5797 juha.levonen@kantapeikko.fi Osa datasta generoidaan

Lisätiedot

Käyttöohje. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Käyttöohje. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Käyttöohje Aija Helsinki 2.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö 1. Yleistä...3 2. Järjestelmän toiminnot...4 2.1 Rekisteröityminen...4 2.2 Sisäänkirjautuminen...4

Lisätiedot

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. marraskuuta 2015 Sisällys Tunnistamis- ja jäsennysongelma Olkoon G = (N, Σ, P, S) kontekstiton kielioppi ja

Lisätiedot

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt Yhtälöryhmät 1/6 Sisältö Yhtälöryhmä Yhtälöryhmässä on useita yhtälöitä ja yleensä myös useita tuntemattomia. Tavoitteena on löytää tuntemattomille sellaiset arvot, että kaikki yhtälöt toteutuvat samanaikaisesti.

Lisätiedot

Satunnaislukujen generointi

Satunnaislukujen generointi Satunnaislukujen generointi Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 1/27 Kevät 2003 Lähteet Knuth, D., The Art of Computer Programming,

Lisätiedot

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi Äärellisten automaattien ja säännöllisten kielten ekvivalenssi Osoitamme seuraavan keskeisen tuloksen: Lause 1.8: [Sipser Thm. 1.54] Kieli on säännöllinen, jos ja vain jos jokin säännöllinen lauseke esittää

Lisätiedot

ongelma A voidaan ratkaista ongelman B avulla, joten jossain mielessä

ongelma A voidaan ratkaista ongelman B avulla, joten jossain mielessä Edellä esitetyt kielten A TM ja HALT TM ratkeamattomuustodistukset ovat esimerkkejä palautuksesta (reduction). Intuitiivisesti ongelman A palauttaminen ongelmaan B tarkoittaa, että Oletetaan, että meillä

Lisätiedot

Mainosankkuri.fi-palvelun käyttöohjeita

Mainosankkuri.fi-palvelun käyttöohjeita Mainosankkuri.fi-palvelun käyttöohjeita Sisällys 1. Johdanto... 1 2. Sisäänkirjautuminen... 1 3. Palvelussa navigointi... 2 4. Laitteet... 2 5. Sisällönhallinta... 4 6. Soittolistat... 7 7. Aikataulut...

Lisätiedot

RAKENNUSTAPAOHJEET. Muutoksen kuvaus:

RAKENNUSTAPAOHJEET. Muutoksen kuvaus: 1 RAKENNUSTAPAOHJEET Muutoksen kuvaus: Asemakaavamuutoksessa on poistettu kaksi rivitalotonttia ja osoitettu niiden tilalle kolme pientalotonttia sekä virkistysaluetta. Alueen pohjoisosaan Pihakadun varrelle

Lisätiedot

ABHELSINKI UNIVERSITY OF TECHNOLOGY

ABHELSINKI UNIVERSITY OF TECHNOLOGY Satunnaismuuttujat ja todennäköisyysjakaumat Mitä tänään? Jos satunnaisilmiötä halutaan mallintaa matemaattisesti, on ilmiön tulosvaihtoehdot kuvattava numeerisessa muodossa. Tämä tapahtuu liittämällä

Lisätiedot

T Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut

T Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut T-79.1001 Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut Lemma (Säännöllisten kielten pumppauslemma). Olkoon A säännöllinen kieli. Tällöin on olemassa n 1

Lisätiedot

Muotokieliopit (Shape grammars)

Muotokieliopit (Shape grammars) Muotokieliopit (Shape grammars) Janne Rinta-Mänty jrm@iki.fi 2015-03-07 Tiivistelmä S Muotokielioppien periaatteet, historia ja sovelluksia, sekä yhteyksiä muihin kielioppijärjestelmiin. AP NP N V VP ADVP

Lisätiedot

Algoritmit 2. Luento 9 Ti Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö Algoritmit 2 Luento 9 Ti 17.4.2018 Timo Männikkö Luento 9 Merkkitiedon tiivistäminen Huffmanin koodi LZW-menetelmä Taulukointi Editointietäisyys Algoritmit 2 Kevät 2018 Luento 9 Ti 17.4.2018 2/29 Merkkitiedon

Lisätiedot

Introduction to Machine Learning

Introduction to Machine Learning Introduction to Machine Learning Aki Koivu 27.10.2016 HUMAN HEALT H ENVIRONMENTAL HEALT H 2016 PerkinElmer Miten tietokone oppii ennustamaan tai tekemään päätöksiä? Historia tiivistettynä Machine Learning

Lisätiedot

Säännöllisten kielten sulkeumaominaisuudet

Säännöllisten kielten sulkeumaominaisuudet Säännöllisten kielten sulkeumaominaisuudet Osoitamme nyt, että säännöllisten kielten joukko on suljettu yhdisteen, konkatenaation ja tähtioperaation suhteen. Toisin sanoen jos A ja B ovat säännöllisiä,

Lisätiedot

1. Universaaleja laskennan malleja

1. Universaaleja laskennan malleja 1. Universaaleja laskennan malleja Laskenta datan käsittely annettuja sääntöjä täsmällisesti seuraamalla kahden kokonaisluvun kertolasku tietokoneella, tai kynällä ja paperilla: selvästi laskentaa entä

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

Automaatit. Muodolliset kielet

Automaatit. Muodolliset kielet Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten

Lisätiedot

arvostelija OSDA ja UDDI palveluhakemistoina.

arvostelija OSDA ja UDDI palveluhakemistoina. Hyväksymispäivä Arvosana arvostelija OSDA ja UDDI palveluhakemistoina. HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Laitos Institution

Lisätiedot

Laskennan teoria

Laskennan teoria 581336-0 Laskennan teoria luennot syyslukukaudella 2003 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa esitiedot käytännössä

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja

Lisätiedot

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT MOBISITE-TYÖKALU MobiSite on työkalu matkapuhelimeen soveltuvan mobiilisivuston rakentamiseen. AIMO-järjestelmän jatkuvasti päivittyvä päätelaitetunnistus tunnistaa useimmat puhelinmallit ja mukauttaa

Lisätiedot

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 6. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 6. lokakuuta 2016 TIETOTEKNIIKAN LAITOS .. TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. lokakuuta 2016 Sisällys. Harjoitustehtävätilastoja Tilanne 6.10.2016 klo 8:28 passed potential redo submitters

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 4. Joukot, relaatiot ja funktiot Osa 3: Funktiot 4.3 Funktiot Olkoot A ja B joukkoja. Funktio joukosta A joukkoon B on sääntö, joka liittää yksikäsitteisesti määrätyn

Lisätiedot

Alkioiden x ja y muodostama järjestetty pari on jono (x, y), jossa x on ensimmäisenä ja y toisena jäsenenä.

Alkioiden x ja y muodostama järjestetty pari on jono (x, y), jossa x on ensimmäisenä ja y toisena jäsenenä. Alkioiden x ja y muodostama järjestetty pari on jono (x, y), jossa x on ensimmäisenä ja y toisena jäsenenä. Kaksi järjestettyä paria ovat samat, jos niillä on samat ensimmäiset alkiot ja samat toiset alkiot:

Lisätiedot

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa WWW ja tietokannat WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa tekstiä, kuvia, hyperlinkkejä Staattiset sivut kirjoitettu kerran, muuttaminen käsin ongelmana pysyminen ajantasalla Ylläpito hankalaa,

Lisätiedot

POHDIN - projekti. Funktio. Vektoriarvoinen funktio

POHDIN - projekti. Funktio. Vektoriarvoinen funktio POHDIN - projekti Funktio Funktio f joukosta A joukkoon B tarkoittaa sääntöä, joka liittää jokaiseen joukon A alkioon jonkin alkion joukosta B. Yleensä merkitään f : A B. Usein käytetään sanaa kuvaus synonyymina

Lisätiedot