Tietokoneshakki. Kari Timonen

Koko: px
Aloita esitys sivulta:

Download "Tietokoneshakki. Kari Timonen kari.timonen@cs.helsinki.fi"

Transkriptio

1 Tietokoneshakki Kari Timonen Tekoäly kortti- ja lautapeleissä Helsingin yliopisto, tietojenkäsittelytieteen laitos Raportti C , s , joulukuu 2008 Tiivistelmä Tässä seminaarityössä selvitetään kuinka tekoäly toimii shakkipelissä. Seminaarityössä esitellään 64-bittinen pelilaudan esitystapa, usein käytetyt menetelmät pelitilanteen hyvyyden arvioimiseen ja pelipuun hakualgoritmi. Pelipuun hakualgoritmina esitellään minmax-algoritmi ja sen nopeuttamiseen käytettävät alpha-beta-karsinta, sekä transpositiotaulukko. Lisäksi esitellään kuinka tekoälyn toimintaa voidaan tehostaa alku- ja loppupelissä tietokantojen avulla. 74

2 Sisältö 1 Johdanto 76 2 Säännöt Pelinappulat ja siirrot Pelivaiheet Siirtojen generointi ja pelitilanteiden tallennus 78 4 Pelitilanteen arviointi 79 5 Pelipuu Minmax-algoritmi Alpha-beta-karsinta Transpositiotaulukko Alku- ja loppupelien tietokannat 83 7 Yhteenveto 84 75

3 1 Johdanto Shakki on lautapeli, jossa kaksi pelaajaa siirtävät vuoronperään nappuloitaan. Molemmilla pelaajilla on käytössä 16 nappulaa. Pelin tavoitteena on saada vastustajan kuningas hyökkäyksen kohteeksi niin, että vastustajalla ei ole käytössä yhtään laillista siirtoa. Shakki on ominaisuuksiltaan hyvin erilainen peli, kuin esimerkiksi pokeri. Shakissa kaikki mahdolliset siirrot ovat molempien pelaajien nähtävissä, kun taas pokerissa ei tiedetä mitä kortteja toisilla pelaajilla ja korttipakassa on. Shakin tekoälyn kehittämisestä ollaan oltu kiinnostuneita vuodesta 1770 lähtien [Wel84]. Ensimmäinen tunnettu tekoälyvastustaja, The Turk, oli huijaus, jossa kaapin päällä oli shakkilauta ja kaapin sisällä oli ihminen, joka hallinnoi oletetun tekoälyvastustajan peliä. Ensimmäisen toimivan shakkiohjelman kirjoitti Alan Turing vuonna Turingin kirjoittamaa ohjelmaa simuloitiin ainoastaan käsin ja simuloinnista selvisi, että ohjelma ei ollut taitava pelaaja [Wel84]. Vuonna 1996, IBM:n kehittämä Deep Blue -shakkitietokone voitti ensimmäisen kerran hallitsevan shakin maailmanmestarin, Garry Kasparovin [Hsu99]. Ensimmäisten shakkiohjelmien julkaisuhetkellä suuri ongelma tekoälyn kehittämisen kannalta oli tietokoneiden laskentatehon puute. Shakkiohjelma koostuu usein siirtojen generoinnista, pelitilanteen arvioinnista ja pelipuun läpikäynnistä. Kun shakkiohjelma laskee itselleen seuraavan siirron, se luo ensin listan sallituista siirroista. Jokainen sallittu siirto johtaa tiettyyn pelitilanteeseen, joka arvioidaan ja arvion perusteella pelitilanne saa tietyn määrän pisteitä. Pelin eri tilanteista voi rakentaa pelipuun niin, että juurisolmuksi valitaan lähtötilanne ja lapsisolmuiksi ne pelitilanteet joihin päästään käyttämällä sallittuja siirtoja. Tietokone valitsee seuraavaksi siirrokseen sen siirron, joka johtaa suurimpaan pistemäärän. Tässä seminaarityössä selvitetään, kuinka shakin tekoäly toimii. Seminaarityön alussa esitellään shakin säännöt. Säännöissä ei huomioida useita erikoissiirtoja, kuten tornitusta, jossa kuningasta siirretään kaksi ruutua oikealle, tai vasemmalle ja tornia siirretään kuninkaan yli sen vieressä olevaan ruutuun. Seuraavaksi esitellään, kuinka eri pelitilanteet tallennetaan tietokoneen muistiin, kuinka pelitilanne arvioidaan ja kuinka pelipuu rakennetaan, sekä käydään läpi. Pelitilanteiden muistiin tallentamiseen käytettävistä menetelmistä esitellään 64-bittinen bittikarttamalli. Pelipuun rakentamis- ja läpikäyntimenetelmistä esitellään minmax-algoritmi. Lisäksi esitellään, kuinka minmax-algoritmin toimintaa voidaan nopeuttaa alpha-beta-karsinnalla ja transpositiotaulukoilla. Seminaarityön loppuosassa esitellään alku- ja loppupeliin soveltuvat tietokannat. 2 Säännöt Shakkia pelataan 64 ruudun muodostamalla 8 x 8 kokoisella ruudukolla. Ruudut ovat vuorotellen mustia ja valkoisia siten, ettei samanvärisiä ruutuja ole vierekkäin. Lauta asetetaan niin, että pelaajasta katsottuna oikealla alhaalla on aina valkoinen ruutu. Peliä pelaa kaksi pelaajaa, joista toinen pelaa valkeilla ja toinen mustilla nappuloilla [Wik08b]. Valkeilla nappuloilla pelaava aloittaa aina pelin. Pelaajat siirtävät vuorotellen aina yhtä omaa nappulaansa. Nappulan voi siirtää joko tyhjään ruutuun, tai ruutuun, jossa on vastustajan nappula. Siirrettäessä nappula vastustajan nappulan varaamaan ruutuun tulee vastustajan nappula lyödyksi ja se poistetaan laudalta. Näin ollen ei samassa ruudussa voi olla kahta nappulaa samanaikaisesti. Nappulat eivät voi hyppiä toisten yli ratsua lukuun ottamatta [Wik08b]. 76

4 Pelin tavoitteena on saada vastustajan kuningas hyökkäyksen kohteeksi niin, että vastustajalla ei ole yhtään laillista siirtoa. Tällaista tilannetta kutsutaan shakkimatiksi. Shakkimattiin johtaneen siirron tehnyt pelaaja voittaa pelin. Pelaaja ei saa jättää kuningastaan hyökkäyksen kohteeksi, tai liikuttaa nappuloitaan niin, että kuningas joutuu hyökkäyksen kohteeksi. Jos kumpikaan pelaaja ei voi tehdä shakkimattia, peli päättyy tasapeliin, eli pattitilanteeseen. 2.1 Pelinappulat ja siirrot Pelin alussa molemmat pelaajat saavat käyttöönsä 16 nappulaa. Nappulat ovat seuraavat: Kahdeksan sotilasta. Kaksi tornia. Kaksi ratsua. Kaksi lähettiä. Yksi kuningatar. Yksi kuningas. Pelin alussa nappulat asetetaan laudalle siten, että kummastakin pelaajasta nähden toiselle riville sijoitetaan kaikki sotilaat riviin. Jos laudan laidoille on merkitty kirjaimet ja numerot, niin mustat sotilaat tulevat riville seitsemän ja valkeat riville kaksi. Korkeampiarvoiset nappulat sijoitetaan vapaalle riville, joka on lähinnä pelaajaa. Molemmilla pelaajilla tornit ovat molemmilla puolilla kaikkein uloimpana, niiden vieressä ratsu, sitten lähetti ja keskellä kuningas ja kuningatar. Kuningas ja kuningatar asetetaan paikoilleen niin, että molemmat kuningattaret ovat D-pystyrivillä ja kuninkaat kuningattariensa vieressä [Wik08b]. Kuvassa 1 esitellään aloitustilanne. Nappulat eivät voi hyppiä toistensa yli, ratsua lukuun ottamatta. Sotilas liikkuu yhden ruudun suoraan eteenpäin. Aloituksessa sotilasta voi liikuttaa halutessaan kaksi ruutua eteenpäin, mikäli molemmat ruudut ovat tyhjiä. Sotilas hyökkää vain etuviistoon, jolloin sotilas lyö kyseisessä ruudussa olevan vastustajan nappulan. Torni liikkuu mihin tahansa samalla rivillä, tai sarakkeella olevaan ruutuun. Ratsu liikkuu ensin kaksi ruutua suoraan ylös, alas, vasemmalle tai oikealle ja sitten yksi ruutu jommallekummalle sivulle [Wik08b]. Lähetti liikkuu mihin tahansa samalla viistorivillä olevaan ruutuun. Kuningatar liikkuu mihin tahansa samalla rivillä, sarakkeella, tai viistorivillä olevaan ruutuun. Kuningas liikkuu yhden ruudun ylös, alas, vasemmalle, oikealle, tai viistoon. Kuningas on shakissa, jos se on jonkin vastustajan nappulan uhkaama. 2.2 Pelivaiheet Shakki voidaan jakaa kolmeen eri pelivaiheeseen: avaukseen, keskipeliin ja loppupeliin. Avauksella tarkoitetaan pelin alussa tehtäviä siirtoja. Yleensä pelin avausvaiheen katsotaan jatkuvan kunnes jompikumpi pelaajista siirtää tavalla, joka poikkeaa siitä, mitä tunnetuissa avausteorioissa suositellaan [Wik08b]. Keskipelissä pelaajat yrittävät lyödä toistensa nappuloita ja saavuttaa strategisen aseman loppupeliä varten. Loppupeli on shakin viimeinen pelivaihe, jolloin pelilaudalla ei ole enää montaa nappulaa. Raja keskipelin ja loppupelin välillä on usein häilyvä. Yhtenä selkeänä erona keskipelin ja loppupelin välillä voidaan pitää sitä, että loppupelissä kuninkaan ja sotilaiden osuus pelissä on merkittävämpi, eikä välitöntä mattihyökkäyksen vaaraa useinkaan ole [Wik08b]. 77

5 Kuva 1: Aloitustilanne [Wik08b]. 3 Siirtojen generointi ja pelitilanteiden tallennus Tietokone tarvitsee siirtojen generointia varten tietorakenteen, jonka avulla voidaan esittää eri pelitilanteet. Pelitilanne tarkoittaa nappuloiden sijaintia pelilaudalla ja kumman pelaajan vuoro on siirtää nappulaa. Usein käytetty tapa esittää pelitilanne on bittikarttoina 64- bittisten muuttujien avulla. 64-bittiset muuttujat soveltuvat shakkilaudan esittämiseen hyvin, koska shakkilaudan koko on 8 x 8 = 64, eli jokaisella bitillä voi esittää yhden ruudun. Esimerkiksi sotilaiden sijaintia vastaavien ruutujen numeroiden kohdalta bitit asetetaan ykkösiksi, muissa ruuduissa bitit ovat nollia. Shakkilauta ja kaikki shakkilaudalla olevat nappulat esitetään kahdentoista 64-bittisen muuttujan listana [Wel84]. Yhden pelaajan nappulat esitetään kuuden muuttujan listassa, joista jokaisessa solmussa oleva muuttuja sisältää 64-bittisen bittikartan. Jokainen bittikartta sisältää yhden nappulan (sotilaiden, tornien, ratsujen, lähettien, kuningattaren, tai kuninkaan) eri ilmentymien sijainnit pelilaudalla [Hya04]. Kuvassa kaksi esitellään shakkilauta kahdentoista 64-bittisen muuttujan avulla. 64-bittiset bittikartat ovat tehokkaita siirtojen generoimiseen, koska tietokoneella voidaan suorittaa loogisia operaatiota (AND, OR, NOT) bittikarttojen välillä. Esimerkiksi mustan ratsun sallittujen siirtojen selvittämiseksi luodaan ensin bittikartta kaikista mustan ratsun mahdollisista siirroista. Seuraavaksi luodaan bittikartta kaikista pelaajan nappuloista, vertaamalla kaikkia kuutta bittikarttaa OR-operaatiolla. Saadusta bittikartasta otetaan komplementti (NOT) ja verrataan komplementin tuloksena saatua bittikarttaa mustan ratsun mahdolliset siirrot sisältävään bittikarttaan AND-operaatiolla. Saatu bittikartta sisältää kaikki mustan ratsun sallitut siirrot [Suh05]. Bittikartat ovat tehokkaita siirtojen generoimiseen, mutta niiden käyttäminen on monimutkaista ja tilantarpeeltaan vaativaa. Yhden siirron generointia varten tulee tallentaa useita bittikarttoja. Lisäksi pelitilanteet halutaan mahdollisesti tallentaa, esimerkiksi transpositiotaulukkoon. Transpositiotaulukkoa käytetään nopeuttamaan shakkiohjelman toimintaa, katso luku 5.3 Transpositiotaulukko. 78

6 Kuva 2: Shakkilaudan esittäminen bittikarttojen avulla [Wel84]. 4 Pelitilanteen arviointi Kun tietokone liikuttaa nappulaa pelilaudalla, tietokone ei tiedä onko siirto hyvä, vai huono. Tietokone tarvitsee pelitilanteen arviointia varten avukseen funktion, joka kertoo pelitilanteen hyvyyden. Pelitilanteen hyvyyttä mittaavaa funktiota kutsutaan arviointifunktioksi (evaluation function) [Wel84]. Arviointifunktio palauttaa kokonaisluvun, joka mittaa pelitilanteen hyvyyttä. Yksinkertaisimmillaan arviointifunktio voi palauttaa arvon 1, jos tietokone voittaa, arvon 0, jos peli päättyy tasapeliin ja arvon -1, jos tietokone häviää. Shakkiohjelman laatu riippuu paljon arviointifunktion tarkkuudesta, koska huono arviointifunktio voi ohjata peliä huonoon tulokseen. Pelilaudalla vallitsevaa tilannetta voidaan mitata useilla eri tavoilla. Arviointifunktio mittaa pelitilannetta usein materiaalin (material), liikkuvuuden (mobility), asetelman kehityksen (development) ja kuninkaan suojaamisen (king safety) avulla [Lar00, Wel84]. Materiaalia mitataan nappuloiden määrän avulla. Jokaiselle erityyppiselle nappulalle annetaan jokin arvo, lasketaan molempien pelaajien nappuloiden arvot yhteen ja vähennetään toisistaan. Suuremman materiaalisen tuloksen omaava pelaaja on materiaalin kannalta paremmassa asemassa. Liikkuvuudella mitataan kuinka paljon siirtoja pelaajalla on käytettävissä tietyssä pelitilanteessa. Shakkimattitilanteessa pelaajalla ei ole yhtään siirtoa käytettävissä, joten liikkuvuutta voidaan käyttää yhtenä mittarina [Lar00]. Osa siirroista on usein kuitenkin täysin hyödyttömiä. Liikkuvuuden mittaamisessa lasketaan pelaajalla käytössä olevat siirrot. Se pelaaja, jolla on käytössään enemmän siirtoja on liikkuvuuden kannalta paremmassa asemassa. 79

7 Pelitilanteen kehittämisessä mitataan kuinka pelaaja on liikuttanut nappuloitaan. Esimerkiksi sotilaat, ratsut ja lähetit on hyvä siirtää ennen torneja ja kuningatarta, tukemaan tornien ja kuningattaren hyökkäyksiä. Sotilaiden liikuttaminen antaa lisäksi tilaa tornien ja kuningattaren liikuttamiseen. Pelitilanteen kehityksen mittaamisessa voidaan esimerkiksi rangaista pelaajaa, jos pelaaja ei ole liikuttanut sotilaita, ratsuja ja lähettejä. Pelitilanteen kehittämisen painoarvo on suurempi pelin alkuvaiheessa ja vähenee pelin edetessä. Esimerkiksi kymmenen siirron jälkeen sotilaat, ratsut ja lähetit on jo siirretty ja pelin kehitys on mitattu [Lar00]. Kuninkaan suojaamista mitataan pelin alku- ja keskivaiheissa. Loppupelissä kuninkaan suojaamisella ei ole väliä, jos molemmilla pelaajilla on vähän nappuloita, jolloin kuningasta käytetään hyökkäämiseen. Kuninkaan suojaamista voidaan mitata esimerkiksi tornituksella (castling), jossa kuningasta siirretään kaksi ruutua oikealle, tai vasemmalle ja tornia siirretään kuninkaan yli sen vieressä olevaan ruutuun [Lar00, Wel84]. Mikäli tornitus on tehty, arviointifunktio antaa tornituksesta tietyn määrän pisteitä. Arviointifunktio antaa pelitilanteen hyvyydelle arvon materiaalista, liikkuvuudesta, asetelman kehityksestä ja kuninkaan suojaamisesta saatujen tulosten perusteella. Oikeiden painoarvojen löytäminen eri ominaisuuksien välille on vaikeaa. Lisäksi pelin eri vaiheissa toiset mittarit ovat toisia parempia. Materiaalin ja liikkuvuuden mittaaminen sopii kaikkiin pelivaiheisiin. Pelitilanteen kehittämisen mittaaminen sopii hyvin alku- ja keskipeliin, mutta ei loppupeliin. Myös kuninkaan suojaus sopii hyvin alku- ja keskipeliin, mutta ei loppupeliin. 5 Pelipuu Tietokone voi arvioida seuraavan siirron hyvyyttä esimerkiksi arviointifunktion avulla, joka mittaa pelitilanteen hyvyyttä. Arviointifunktio tosin antaa hyvyyden vain yhdelle pelitilanteelle, eikä näe, mikä tilanne voi olla kahden siirron jälkeen. Arviointifunktio voi esimerkiksi antaa hyvän tuloksen vastustajan kuningattaren lyömisestä, mutta mitä jos vastapelaaja voi oman kuningattaren uhraamalla tehdä seuraavalla siirrolla shakkimatin? Tällaista tilannetta kutsutaan horisontaaliseksi seuraukseksi (horizontal effect) [Wal97, Wel84]. Kahden pelaajan mahdollisista siirroista voi luoda pelipuun (game tree). Pelipuu luodaan siten, että aloitustilanne asetetaan juurisolmuksi ja lapsisolmuiksi laitetaan kaikki ne pelitilanteet, joihin päästään pelaajan tehtyä yhden sallitun siirron. Lapsisolmuille laitetaan edelleen lapsisolmuiksi vastapelaajan kaikki sallitut siirrot. Lapsisolmujen lisäämistä jatketaan rekursiivisesti, kunnes kaikissa haaroissa tullaan lopputiloihin. Tällöin pelipuu sisältää kaikki mahdolliset siirrot. Pelitilanne voidaan arvioida jokaisessa solmussa ja arvion perusteella voidaan valita se siirto, joka johtaa parhaaseen lopputilaan. Yhdellä siirtovuorolla on noin 35 erilaista siirtomahdollisuutta ja yksi peli kestää noin 50 siirtovuoroa, eli 100 siirtoa. [Wel84]. Pelipuun läpikäytäviä haaroja olisi tällöin Nykyisillä tietokoneilla ei voida käydä läpi koko pelipuuta kerralla aika- ja tilavaativuuden takia. Pelipuun hakusyvyys voidaan katkaista tiettyyn määrään siirtoja, esimerkiksi kahdeksaan siirtoon. Tällöin läpikäytäviä haaroja on 35 8 = Pelipuun luontiin ja läpikäyntiin käytetään usein minmax-algoritmia. Minmax-algoritmin toimintaa voidaan nopeuttaa esimerkiksi alpha-beta-karsinnalla ja transpositiotaulukoilla. 80

8 5.1 Minmax-algoritmi Pelipuu voidaan luoda ja läpikäydä esimerkiksi minmax-algoritmin avulla. Minmax-algoritmin toiminta perustuu siihen, että se käy rekursiivisesti läpi tiettyyn hakusyvyyteen asti kaikki mahdolliset siirrot ja valitsee parhaan mahdollisen siirron siirtovuorossa olevalle pelaajalle. Pelitilanteen hyvyys arvioidaan jokaisessa pelitilanteessa kokonaisluvulla. Valkoisilla nappuloilla pelaavalle pelaajalle hyviä pelitilanteita ovat positiiviset kokonaisluvut, suurempien kokonaislukujen tulkitaan esittävän parempia siirtoja. Mustilla nappuloilla pelaavalle pelaajalle hyviä pelitilanteita ovat vastaavasti negatiiviset kokonaisluvut. Tasapelitilanteessa minmax-algoritmi palauttaa arvon 0. Kuvissa 3 ja 4 esitellään minmax-algoritmin toimintaa ristinollapelissä, koska ristinolla on yksinkertaisempi peli kuin shakki. Minmax-algoritmi toimii vastaavalla tavalla shakissa. Ristinollaa pelataan yhdeksän ruudun muodostamalla 3 x 3 kokoisella ruudukolla. Peliä pelaa kaksi pelaajaa, joista toinen pelaa ristimerkeillä ja toinen nollamerkeillä. Pelaajat asettavat merkkinsä ruudukkoon vuoron perään. Pelin tavoitteena on saada kolme omaa merkkiä samalle pysty-, vaaka-, tai vinoriville. Kuvassa 3 esitellään minmax-algoritmin toiminta ristinollapelissä. Kuvassa 3 on ristin vuoro tehdä siirto. Pelipuuhun on kirjattu kaikki ristin siirrot, nollan vastasiirrot ja loppupelit näistä siirtopareista eteenpäin [LuN05]. Ristin voittoa merkitään kuvassa 3 numerolla 1, tasapeliä numerolla 0 ja nollan voittoa numerolla -1. Pelipuuta lähdetään arvioimaan lehdistä juureen. Kun on ristin vuoro siirtää, valitaan se siirto, joka johtaa ristille parhaaseen mahdolliseen pelitilanteeseen. Kun on nollan vuoro siirtää, valitaan vastaavasti se siirto, joka johtaa nollalle parhaaseen mahdolliseen pelitilanteeseen. Ristin siirrot ovat ns. max-siirtoja ja nollaan siirrot min-siirtoja. Kuva 3: Minmax-algoritmin toiminta ristinollapelissä [LuN05]. Kuvassa 4 esitellään esimerkki min- ja max-funktioista ristinollapelissä, jossa risti(v) kuvaa max-funktiota ja nolla(v) kuvaa min-funktiota. Aluksi kutsutaan risti-funktiota, joka saa arvokseen nykyisen pelitilanteen muuttujassa v. Rivillä 1 tutkitaan onko peli ohi. Jos risti voitti, palautetaan arvo 1 (rivi 2). Jos nolla voittaa palautetaan arvo -1 (rivi 3) ja tasapelitilanteessa palautetaan arvo 0 (rivi 4). Jos peli jatkuu, käydään läpi kaikki mahdolliset siirrot (rivi 6). Rivillä 7 arvioidaan, kuinka peli jatkuu yhden siirron seurauksena. Funktio risti palauttaa parhaan löytämänsä siirron antaman arvon (rivit 5, 8 ja 9) ja funktio 81

9 nolla vastaavasti huonoimman [LuN05]. Minmax-algoritmin toimintaa voidaan nopeuttaa esimerkiksi alpha-beta-karsinnalla ja transpositiotaulukoilla, jotka esitellään luvuissa 5.2 ja 5.3. Kuva 4: Minmax-algoritmi [LuN05]. 5.2 Alpha-beta-karsinta Shakissa on paljon turhia siirtoja, joita voidaan karsia. Turhien siirtojen karsiminen nopeuttaa minmax-algoritmin toimintaa. Usein käytetty algoritmi minmax-algoritmin nopeuttamiseen on alpha-beta-karsinta. Alpha-beta-karsinta katkoo pelipuusta pois sellaisia haaroja, joista ei voi saada parhaita, tai huonoimpia pisteitä. Alpha-beta-karsinta ei muuta minmaxalgoritmin lopputulosta, vaan nopeuttaa minmax-algoritmin laskenta-aikaa. Kuvassa 5 esitellään esimerkkitilanne alpha-beta-karsinnan toiminnasta. Kuvan 5 pelipuuta lähdetään arvioimaan lehdistä juureen ja vasemmalta oikealle. Max-tasoilla valitaan parhaaseen pelitilanteeseen johtava haara ja vastaavasti min-tasoilla valitaan huonoimpaan pelitilanteeseen johtava haara. Minmax-algoritmin ei tarvitse tutkia harmaalla korostettuja solmuja, koska minmax-algoritmi on jo löytänyt parempaan, tai huonompaan pelitilanteeseen johtavan siirron. Alpha-beta-karsinta voidaan toteuttaa esimerkiksi niin, että minmax-algoritmissa pidetään kirjaa kahdesta muuttujasta, alpha:sta ja beta:sta. Muuttuja alpha alustetaan arvolla ja beta arvolla +. Muuttujaan alpha tallennetaan suurin tähän mennessä löydetty maksimiarvo ja muuttujaan beta tallennetaan pienin tähän mennessä löydetty minimiarvo [Wel84]. Maksimiarvoa hakevassa funktiossa tarkastellaan onko alpha >= beta. Jos yhtälö 82

10 Kuva 5: Alpha-beta-karsinta [Wik08a]. on tosi, haku voidaan katkaista. Vastaavasti minimiarvoa hakevassa funktiossa tarkastellaan onko alpha <= beta. Jos yhtälö on tosi, haku voidaan katkaista. 5.3 Transpositiotaulukko Samoihin pelipuun pelitilanteisiin voidaan päästä useamman eri haaran kautta. Mikäli sama tilanne on pelattu aiemmin, voidaan aiemmin pelattua pelitilannetta käyttää hyväksi. Taulukkoa, johon tallennetaan pelatut pelitilanteet, kutsutaan transpositiotaulukoksi (transposition table). Minmax-algoritmia voidaan nopeuttaa tallentamalla jo pelattuja pelitilanteita taulukkoon ja jokaisen solmun kohdalla voidaan tarkastaa, löytyykö taulukosta nykyistä pelitilannetta vastaava pelitilanne [Wal97]. Kun käytetään esimerkiksi alpha-beta-karsintaa, pelitilanteelle saatu arvo ei aina ole tarkka, vaan se voi olla pelitilanteen ylä-, tai alaraja. Tästä on silti apua, jos transpositiotaulukkoon merkitään myös pelitilanteen arvon tyyppi. Jos alpha-beta-karsinnassa pelitilanteen yläraja on huonompi kuin tämän hetkinen alpha, voidaan haku tuosta asemasta eteenpäin katkaista [Num03, Wal97]. Pelitilanteet tallennetaan transpositiotaulukkoon hajautusfunktion avulla [Num03, Wal97]. Transpositiotaulukko nollataan usein ennen uutta siirtoa. Hajautusfunktion käyttäminen aiheuttaa yhteentörmäysten vaaran, eli kaksi eri pelitilannetta voi viitata samaan taulukon alkioon. Yhteentörmäysten vuoksi hajautusfunktio ja taulukon koko on valittava tarkkaan. Liian suuren taulukon nollaus aina siirron jälkeen olisi raskas operaatio ja lisäksi suurien muistialueiden osoittaminen saattaa olla hidasta. Liian pienessä taulukossa yhteentörmäyksiä tapahtuisi liikaa, ja sen hyöty menisi hukkaan [Num03]. 6 Alku- ja loppupelien tietokannat Shakkiohjelmat ovat huonoja alku- ja loppupeleissä, koska niissä on tärkeämpää ymmärtää pelinappuloiden aseman vahvuus, kuin laskea erikseen jokainen pelitilanne. Lisäksi shakkiohjelmien laskentasyvyys on lyhyt suhteessa siirtovuorojen ja siirtomahdollisuuksien määrään. Esimerkiksi IBM:n kehittämän Deep Blue -shakkitietokoneen laskentasyvyys on 6-12 siirtoa, riippuen pelitilanteesta, ja yksi shakkipeli kestää noin 100 siirtoa [Hsu99]. Alku- ja loppupelien mahdollisia tilanteita on tutkittu ihmispelaajien ja tietokoneen toimesta. Tutkituista alku- ja loppupeleistä on tehty tietokantoja, joita voidaan käyttää shakkiohjelmien apuna nopeuttamaan siirtojen laskentaa [Num03, Wal97]. Alku- ja loppupelien tietokannat ovat kokoelmia pelitilanteista ja parhaista siirroista vastaavissa pelitilanteissa. 83

11 Alku- ja loppupelivaiheet voidaan rajata helposti erilleen keskipelistä. Kun alkupelin tietokannan siirrot loppuvat, siirrytään pelipuun läpikäyntiin, esimerkiksi minmax-algoritmin avulla. Vastaavasti, kun nappuloita on tarpeeksi vähän, siirrytään pelipuun läpikäynnistä tietokantahakuun [Num03]. 7 Yhteenveto Toisin kuin ihminen, tietokone ei osaa pelata shakkia älyllään. Tietokoneen shakin pelaaminen perustuu laskemiseen. Tietokone laskee erilaiset pelitilanteet, arvioi pelitilanteet ja valitsee parhaaseen tulokseen johtavan siirron. Shakkiohjelma koostuu usein arviointifunktiosta, joka arvioi pelitilanteen hyvyyttä ja hakualgoritmista, joka käy läpi tulevat siirrot. Shakkiohjelmien luomisen vaikeutena on nopeasti kasvava pelipuu, joka syntyy tulevien siirtojen läpikäymisen yhteydessä. Yhden shakkipelin kesto on keskimäärin 50 siirtoparia, eli 100 siirtoa. Yhdessä pelitilanteessa on keskimäärin 35 erilaista siirtomahdollisuutta. Jos avaussiirron yhteydessä luotaisiin pelipuu, joka sisältää kaikki mahdolliset siirrot alusta loppuun, pelipuun koko olisi haaraa. Pelitilanteet tallennetaan tietokoneen muistiin usein kahdentoista 64-bittisen muuttujan listana. Jokainen muuttuja sisältää yhden nappulan (sotilaiden, tornien, ratsujen, lähettien, kuningattaren, tai kuninkaan) eri ilmentymien sijainnit pelilaudalla. Tulevien siirtojen läpikäynnissä syntyvän pelipuun läpikäyntiin käytetään usein minmax-algoritmia. Minmaxalgoritmi käy tiettyyn hakusyvyyteen asti kaikki mahdolliset siirrot läpi ja valitsee parhaan mahdollisen siirron siirtovuorossa olevalle pelaajalle. Minmax-algoritmia voidaan nopeuttaa esimerkiksi alpha-beta-karsinnalla ja transpositiotaulukoilla. Alpha-beta-karsinta katkoo pelipuusta pois sellaisia haaroja, joista ei voi saada parhaita, tai huonoimpia pisteitä. Transpositiotaulukkoon tallennetaan jokainen pelitilanne, jonka pelipuunläpikäyntialgoritmi käy läpi. Jokaisen solmun kohdalla tarkastetaan löytyykö transpositiotaulukosta nykyistä pelitilannetta vastaava pelitilanne. Jos löytyy, vastaavaa pelitilannetta voidaan käyttää hyväksi. Alku- ja loppupeleissä voidaan lisäksi käyttää hyväksi tietokantoja, joihin on tallennettu kokoelmia pelitilanteista ja parhaista siirroista vastaavissa pelitilanteissa. Tulevaisuudessa tietokoneet tulevat todennäköisesti pelaamaan shakkia paremmin kuin nykyään. Syy parempaan shakin pelaamiseen perustuu kasvavaan laskentatehoon, koska tietokone pelaa shakkia laskemalla. 84

12 Viitteet [Hsu99] F. Hsu. IBM s Deep Blue Chess Grandmaster Chips. IEEE Micro, 19(2):70 81, [Myös ]. [Hya04] R. Hyatt. Chess Program Board Representations, Robert Hyatt:n kotisivu, [ ]. [Lar00] [LN05] F. Laramée. Chess Programming Part VI: Evaluation Functions, GameDev.netverkkosivusto, article1208.asp [ ]. M. Luukkainen and M. Nykänen. Tietorakenteet. Tietorakenteet-kurssiin liittyvä moniste, tietojenkäsittelytieteen laitos, Helsinki, [Myös helsinki.fi/matti.nykanen/tira/s05/syksy05.pdf, ]. [Num00] A. Nummiaho. Shakkisivut, Antti Nummiahon kotisivu, kapsi.fi/ anummiah/files/portfolio/t /index.html [ ]. [Suh05] [Wal97] [Wel84] E. Suh. Introduction to Chess Board Representation, AI Horizon -verkkosivusto, [ ]. A. Walker. Game Theory. Game Theory -kurssiin liittyvä verkkosivusto, School of Mathematical Sciences, Nottingham, Englanti, ac.uk/personal/anw/g13gam [ ]. D. Welsh. Computer Chess. Wm. C. Brown Publishers, Dubuque, Iowa, USA, [Wik08a] Wikipedia. Alpha-beta pruning, beta pruning [ ]. [Wik08b] Wikipedia. Shakki, [ ]. 85

Ohjeet ovat työn alla ja kirjaan niitä päivittäen ja edes takaisin lukien pari viikkoa.

Ohjeet ovat työn alla ja kirjaan niitä päivittäen ja edes takaisin lukien pari viikkoa. ( 1 ) Hannu Särön lautapelien ohjeita pelaajille - ( 1 ) - Sisältö. ( 2 ) - Jätkänshakki. ( 3 ) - Reversi. ( 4 ) - Tammi. ( 5 ) - Mylly. ( 6 ) - Shakki. ( 7 ) - Shakki, uudet napit ja uudet laudat. Ohjeet

Lisätiedot

Matinteko (1 / 10) Matinteko (2 / 10) Helpointa matin tekeminen on kahdella raskaalla upseerilla (esim. kuningattarella ja tornilla).

Matinteko (1 / 10) Matinteko (2 / 10) Helpointa matin tekeminen on kahdella raskaalla upseerilla (esim. kuningattarella ja tornilla). Shakkinappuloiden voimasuhteet Matinteko (1 / 10) Kuningas on pelin tärkein nappula, ilman kuningasta peli on hävitty. 1. Kuningas + Daami + Torni vs Kuningas Matinteko (2 / 10) Helpointa matin tekeminen

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS PELIPUU ACTIVATOR 1 ACTIVATOR 2 PELIPUU ACTIVATOR 1 ACTIVATOR 2 -1 0 1 PELIPUU PELIPUU PELIPUU I -ARVO(Solmu) if LOPPUTILA(Solmu) return(arvo(solmu)) v = for each Lapsi in

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS PELIPUU -1 0 1 PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU I -ARVO(Solmu) if LOPPUTILA(Solmu) return(arvo(solmu))!

Lisätiedot

Pelaajat siirtävät nappuloitaan vastakkaisiin suuntiin pelilaudalla. Peli alkaa näin. Tuplauskuutio asetetaan yhtä kauas kummastakin pelaajasta.

Pelaajat siirtävät nappuloitaan vastakkaisiin suuntiin pelilaudalla. Peli alkaa näin. Tuplauskuutio asetetaan yhtä kauas kummastakin pelaajasta. DVD Backgammon Pelin tavoite Pelin tavoitteena on siirtää kaikki omat pelinappulat omalle sisäkentälle ja sieltä pois laudalta. Se pelaaja, joka ensimmäisenä on poistanut kaikki pelinappulansa pelilaudalta,

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS PELIPUU PELIPUU -1 0 1 PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU I -ARVO(Solmu) if LOPPUTILA(Solmu) return(arvo(solmu))

Lisätiedot

Shakkiopas vähemmän pelanneille

Shakkiopas vähemmän pelanneille Shakkiopas vähemmän pelanneille Sisällysluettelo: 1. Siirtäminen 2. Yleisiä muodollisuuksia 3. Pöytäkirjan pito 4. Avaukset yleensä 5. Siirron miettiminen 6. Vastustajan vuoro 7. Koulumatti ja Preussilainen

Lisätiedot

Algoritmit 2. Luento 11 Ti Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö Algoritmit 2 Luento 11 Ti 25.4.2017 Timo Männikkö Luento 11 Peruutusmenetelmä Osajoukon summa Pelipuut Pelipuun läpikäynti Rajoitehaku Kapsäkkiongelma Algoritmit 2 Kevät 2017 Luento 11 Ti 25.4.2017 2/29

Lisätiedot

Tietokoneshakki. Risto Ranta-aho TKK, Tietoliikenneohjelmistojen ja multimedian laboratorio. Risto.Ranta-aho@hut.fi. Tiivistelmä

Tietokoneshakki. Risto Ranta-aho TKK, Tietoliikenneohjelmistojen ja multimedian laboratorio. Risto.Ranta-aho@hut.fi. Tiivistelmä Tietokoneshakki Risto Ranta-aho TKK, Tietoliikenneohjelmistojen ja multimedian laboratorio Risto.Ranta-aho@hut.fi Tiivistelmä Shakin ohjelmoimista tietokoneelle on tutkittu jo 50 vuotta. Vasta muutama

Lisätiedot

CHESS & GAMES KÄYTTÖOHJE

CHESS & GAMES KÄYTTÖOHJE CHESS & GAMES KÄYTTÖOHJE Sisällysluettelo Luku 1: Esittely... 4 1.1 Millennium-tietokone... 4 1.2 Paristojen asettaminen... 4 1.3 Kielen valinta... 5 1.4 Nestekidenäyttö... 5 1.5 Pelilauta... 5 1.6 Tekstialue...

Lisätiedot

Tietokoneshakin ohjelmointi JavaScript-kielellä. Jarkko Kuusela

Tietokoneshakin ohjelmointi JavaScript-kielellä. Jarkko Kuusela Tietokoneshakin ohjelmointi JavaScript-kielellä Jarkko Kuusela Opinnäytetyö Tietojenkäsittelyn koulutusohjelma 2017 Tiivistelmä Tekijä(t) Jarkko Kuusela Koulutusohjelma Tietojenkäsittelyn koulutusohjelma

Lisätiedot

SÄÄNNÖT. Language: English / Suomi

SÄÄNNÖT. Language: English / Suomi Rules of Coerceo by Coerceo Company Finnish translation by Janne Henriksson SÄÄNNÖT Language: English / Suomi Tekijänoikeus Mitään tämän dokumentin osaa ei saa jäljentää, kopioida tai välittää missään

Lisätiedot

Opettajan opas. Shakkilinna www.shakkilinna.fi info@shakkilinna.fi

Opettajan opas. Shakkilinna www.shakkilinna.fi info@shakkilinna.fi Opettajan opas Shakkilinna www.shakkilinna.fi info@shakkilinna.fi Saatteeksi kerho-ohjaajalle Säännöt hanskaan ja pelaamaan käsittelee shakkipelin perusteet kymmenen kerhotunnin (45 minuuttia) aikana.

Lisätiedot

Puzzle SM 2005 15. 25.7.2005. Pistelasku

Puzzle SM 2005 15. 25.7.2005. Pistelasku Puzzle SM 005 5. 5.7.005 Pistelasku Jokaisesta oikein ratkotusta tehtävästä saa yhden () pisteen, minkä lisäksi saa yhden () bonuspisteen jokaisesta muusta ratkojasta, joka ei ole osannut ratkoa tehtävää.

Lisätiedot

250092 SUURI PELIPAKETTI

250092 SUURI PELIPAKETTI Viinikankatu 49, 33800 TAMPERE Puh (03) 380 5300, Fax (03) 380 5353 E-mail: myynti@tevella.fi, www.tevella.fi Ohje Tevellan tuotteelle 250092 SUURI PELIPAKETTI Suuri pelipaketti sisältää välineet kymmenen

Lisätiedot

Impedanssitomografia-peli

Impedanssitomografia-peli Impedanssitomografia-peli Avainsanat: inversio-ongelmat, päättely, satunnaisuus Luokkataso: 3.-5. luokka, 6.-9. luokka, lukio, yliopisto Välineet: kynä, paperia, 2 pelinappulaa, 4 kolikkoa tai kolikonheittokortit

Lisätiedot

Timo Myyrä. Tietokoneshakki funktionaalisella ohjelmoinnilla

Timo Myyrä. Tietokoneshakki funktionaalisella ohjelmoinnilla Timo Myyrä Tietokoneshakki funktionaalisella ohjelmoinnilla Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikan koulutusohjelma Insinöörityö 16.3.2011 Tiivistelmä Tekijä(t) Otsikko Sivumäärä Aika

Lisätiedot

Algoritmit 2. Luento 10 To Timo Männikkö

Algoritmit 2. Luento 10 To Timo Männikkö Algoritmit 2 Luento 10 To 19.4.2018 Timo Männikkö Luento 10 Peruutusmenetelmä Osajoukon summa Verkon 3-väritys Pelipuut Pelipuun läpikäynti Algoritmit 2 Kevät 2018 Luento 10 To 19.4.2018 2/34 Algoritmien

Lisätiedot

KOKO PERHEEN HAUSKA STRATEGIAPELI OHJEET

KOKO PERHEEN HAUSKA STRATEGIAPELI OHJEET KOKO PERHEEN HAUSKA STRATEGIAPELI OHJEET ROBOGEM_Ohjevihko_148x210mm.indd 1 PELIN TAVOITE Robotit laskeutuvat kaukaiselle planeetalle etsimään timantteja, joista saavat lisää virtaa aluksiinsa. Ohjelmoi

Lisätiedot

Yleiset säännöt Shakissa on tavoitteena voittaa vastustaja vangitsemalla tämän kuningas.

Yleiset säännöt Shakissa on tavoitteena voittaa vastustaja vangitsemalla tämän kuningas. DVD Shakki Säännöt Shakkitehtävät Klassiset ottelut Ekstrat - Avaussiirrot - Pelaajafaktat Yleiset säännöt Shakissa on tavoitteena voittaa vastustaja vangitsemalla tämän kuningas. Valkoinen siirtää aina

Lisätiedot

Koneoppiminen shakkitekoälyissä

Koneoppiminen shakkitekoälyissä hyväksymispäivä arvosana arvostelija Koneoppiminen shakkitekoälyissä Verna Koskinen Helsinki 8.5.2016 Kandidaatin tutkielma HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS

Lisätiedot

Kiinalaisen shakin esittely

Kiinalaisen shakin esittely 1 / 10 Kiinalaisen shakin esittely Kuva 1 : Kiinalainen shakki Kuva 2 : Shakki Kuvia vertailemalla havaitaan, että monet nappulat ovat samassa järjestyksessä. Kiinalaisessa shakissa nappulat tosin liikkuvat

Lisätiedot

Sisällysluettelo. 1. Johdanto

Sisällysluettelo. 1. Johdanto Säännöt Sisällysluettelo 1. Johdanto 3 2. Sisältö 4 3. Alkuvalmistelut 5 4. Pelin aloitus ja kulku 6 5. Pelin lopetus 9 6. Vaikea peli ja muut pelimuunnelmat 10 1. Johdanto Pelilauta on 25 ruudusta muodostuva

Lisätiedot

Antitammirobotti. Antti Meriläinen Martin Pärtel 29. toukokuuta 2009

Antitammirobotti. Antti Meriläinen Martin Pärtel 29. toukokuuta 2009 Antitammirobotti Antti Meriläinen Martin Pärtel 29. toukokuuta 2009 Helsingin yliopisto Tietojenkäsittelytieteen laitos Robottiohjelmoinnin harjoitustyö

Lisätiedot

Johdatus go-peliin. 25. joulukuuta 2011

Johdatus go-peliin. 25. joulukuuta 2011 Johdatus go-peliin 25. joulukuuta 2011 Tämän dokumentin tarkoitus on toimia johdatuksena go-lautapeliin. Lähestymistapamme poikkeaa tavallisista go-johdatuksista, koska tässä dokumentissa neuvotaan ensin

Lisätiedot

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet, laskuharjoitus 7, ratkaisuja Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9

Lisätiedot

Minimax ja alfa-beta-karsinta

Minimax ja alfa-beta-karsinta Jaakko Karhunen Minimax ja alfa-beta-karsinta Tietotekniikan kandidaatintutkielma 28. toukokuuta 2018 Jyväskylän yliopisto Informaatioteknologian tiedekunta Tekijä: Jaakko Karhunen Yhteystiedot: jakubmedvedjev@gmail.com

Lisätiedot

1 MOTIVOINTI Keskustellaan välitunnin viettomahdollisuuksista ja katsotaan kuvia puistoshakin pelaajista.

1 MOTIVOINTI Keskustellaan välitunnin viettomahdollisuuksista ja katsotaan kuvia puistoshakin pelaajista. P I H A S H A K K I 1 MOTIVOINTI Keskustellaan välitunnin viettomahdollisuuksista ja katsotaan kuvia puistoshakin pelaajista. 2 SUUNNITTELU Perusongelmana on toteuttaa erilaisiin lautapeleihin soveltuva

Lisätiedot

Neljän alkion kunta, solitaire-peli ja

Neljän alkion kunta, solitaire-peli ja Neljän alkion kunta, solitaire-peli ja taikaneliöt Kalle Ranto ja Petri Rosendahl Matematiikan laitos, Turun yliopisto Nykyisissä tietoliikennesovelluksissa käytetään paljon tekniikoita, jotka perustuvat

Lisätiedot

KASVOTON VIHOLLINEN - SÄÄNNÖT

KASVOTON VIHOLLINEN - SÄÄNNÖT KASTN IHLLINEN - SÄÄNNÖT A. LÄHTÖKHTA Kaksi armeijaa valmistautuu taisteluun. Torvet soivat, hevoset korskuvat malttamattomina. Sadat jalat marssivat tasatahtia ottaakseen paikkansa kentällä - paikan,

Lisätiedot

Pelivaihtoehtoja. Enemmän vaihtelua peliin saa käyttämällä erikoislaattoja. Jännittävimmillään Alfapet on, kun miinusruudut ovat mukana pelissä!

Pelivaihtoehtoja. Enemmän vaihtelua peliin saa käyttämällä erikoislaattoja. Jännittävimmillään Alfapet on, kun miinusruudut ovat mukana pelissä! Pelivaihtoehtoja Yksinkertaisin vaihtoehto: lfapetia voi pelata monella eri tavalla. Yksinkertaisimmassa vaihtoehdossa käytetään ainoastaan kirjainlaattoja. Pelilaudan miinusruudut ovat tavallisia ruutuja,

Lisätiedot

Tarvikkeet: A5-kokoisia papereita, valmiiksi piirrettyjä yksinkertaisia kuvioita, kyniä

Tarvikkeet: A5-kokoisia papereita, valmiiksi piirrettyjä yksinkertaisia kuvioita, kyniä LUMATE-tiedekerhokerta, suunnitelma AIHE: OHJELMOINTI 1. Alkupohdinta: Mitä ohjelmointi on? Keskustellaan siitä, mitä ohjelmointi on (käskyjen antamista tietokoneelle). Miten käskyjen antaminen tietokoneelle

Lisätiedot

Merkkijono on palindromi, jos se säilyy samana, vaikka sen kääntää väärinpäin.

Merkkijono on palindromi, jos se säilyy samana, vaikka sen kääntää väärinpäin. A Palindromi Sinulle annetaan merkkijono, ja tehtäväsi on poistaa siitä tarkalleen yksi merkki, minkä jälkeen merkkijonon tulisi olla palindromi. Onko tehtäväsi mahdollinen? Merkkijono on palindromi, jos

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

- 4 aloituslaattaa pelaajien väreissä molemmille puolille on kuvattu vesialtaat, joista lähtee eri määrä akvedukteja.

- 4 aloituslaattaa pelaajien väreissä molemmille puolille on kuvattu vesialtaat, joista lähtee eri määrä akvedukteja. AQUA ROMANA Vesi oli elintärkeä ja keskeinen edellytys Rooman imperiumin kehitykselle. Vedensaannin turvaamiseksi taitavimmat rakennusmestarit rakensivat valtavan pitkiä akvedukteja, joita pidetään antiikin

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

Englanninkielisessä tekstissä käytettyä maskuliinia merkitsevää "hän" sanaa käytetään yhtäläisesti tarkoittamaan naispuolista henkilöä.

Englanninkielisessä tekstissä käytettyä maskuliinia merkitsevää hän sanaa käytetään yhtäläisesti tarkoittamaan naispuolista henkilöä. FIDEn Shakkisäännöt Säännöt poikkeavat edellisestä virallisesta versiosta hyvin vähän. Suurin osa vuoden 2004 kongressissa tehdyistä muutoksista on englanninkielen hienosäätöjä. Nämä on enimmiltä osin

Lisätiedot

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin: A Numeropeli Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin: 1 2 3 4 5 6 7 8 9 Voit jokaisella siirrolla vaihtaa keskenään kaksi vierekkäistä lukua vaaka- tai

Lisätiedot

Kuinka matti tehdään?

Kuinka matti tehdään? Kuinka matti tehdään? Kun oppinut oot siirtämään shakkinappuloita, on aika alkaa piirtämään voittokuvioita. Siis shakkipelin päämäärä, pikku neropatti, taltuttaa on kunkku jäärä tehdä shakkimatti! Shakkipelin

Lisätiedot

LUMATE-tiedekerhokerta, suunnitelma AIHE: PELIT JA TAKTIIKAT

LUMATE-tiedekerhokerta, suunnitelma AIHE: PELIT JA TAKTIIKAT LUMATE-tiedekerhokerta, suunnitelma AIHE: PELIT JA TAKTIIKAT 1. Alkupohdintaa Mitä lempipelejä oppilailla on? Ovatko ne pohjimmiltaan matemaattisia? (laskeminen, todennäköisyys ) Mitä taktiikoita esimerkiksi

Lisätiedot

Englanninkielisessä tekstissä käytettyä maskuliinia merkitsevää "hän" sanaa käytetään yhtäläisesti tarkoittamaan naispuolista henkilöä.

Englanninkielisessä tekstissä käytettyä maskuliinia merkitsevää hän sanaa käytetään yhtäläisesti tarkoittamaan naispuolista henkilöä. FIDEn Shakkisäännöt Säännöt poikkeavat edellisestä virallisesta versiosta hyvin vähän. Suuri osa vuoden 2008 kongressissa tehdyistä muutoksista on englanninkielen hienosäätöjä tai muita pieniä täsmennyksiä.

Lisätiedot

Heinäkuun alussa 2014 voimaan tuleviin sääntöihin on jälleen tullut joukko hienosäädöksi luokiteltavia muutoksia ja muutama täysin uusi sääntökohta.

Heinäkuun alussa 2014 voimaan tuleviin sääntöihin on jälleen tullut joukko hienosäädöksi luokiteltavia muutoksia ja muutama täysin uusi sääntökohta. FIDEn Shakkisäännöt Heinäkuun alussa 2014 voimaan tuleviin sääntöihin on jälleen tullut joukko hienosäädöksi luokiteltavia muutoksia ja muutama täysin uusi sääntökohta. Merkittävin lienee mahdollisuus

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 21.3.2017 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2017 Luento 3 Ti 21.3.2017

Lisätiedot

Muumion kirous. Pelisuunnitteludokumentti. Veikkauksen pelisuunnittelukilpailua (Peliskaba2015) varten

Muumion kirous. Pelisuunnitteludokumentti. Veikkauksen pelisuunnittelukilpailua (Peliskaba2015) varten Pelisuunnitteludokumentti Muumion kirous Veikkauksen pelisuunnittelukilpailua (Peliskaba2015) varten Tekijä: Esko Vankka Osoite: Yliopistonkatu 39 E 51, 33500 Tampere Puh: 0400 832 907 Email: esko.pj.vankka@gmail.com

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 20.3.2018 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2018 Luento 3 Ti 20.3.2018

Lisätiedot

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua A Lista Sinulle on annettu lista, joka sisältää kokonaisluvut 1, 2,, n jossakin järjestyksessä. Tehtäväsi on järjestää luvut pienimmästä suurimpaan käyttäen seuraavia operaatioita: S: siirtää listan ensimmäisen

Lisätiedot

Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0.

Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0. A Bittien nollaus Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0. Saat käyttää seuraavia operaatioita: muuta jokin bitti vastakkaiseksi (0 1 tai 1 0) muuta kaikki

Lisätiedot

Sisällysluettelo. Eri upseerit vastaan sotilas...2. Kuningatar vastaan sotilas... 2 Torni vastaan sotilas... 3 Kevytupseeri vastaan sotilas...

Sisällysluettelo. Eri upseerit vastaan sotilas...2. Kuningatar vastaan sotilas... 2 Torni vastaan sotilas... 3 Kevytupseeri vastaan sotilas... Sisällysluettelo Eri upseerit vastaan sotilas... Kuningatar vastaan sotilas... Torni vastaan sotilas... Kevytupseeri vastaan sotilas... Kevytupseeri ja sotilas vastaan kuningas... Ratsu ja sotilas vastaan

Lisätiedot

Trafficars - Ruuhkaara

Trafficars - Ruuhkaara 760104 Trafficars - Ruuhkaara 2 5 pelaajaa Ikäsuositus 5+, 8+ Peliaika 10 15 minuuttia Pelipaketin sisältö 50 autokorttia 12 erikoiskorttia ohjevihko Pelissä: Opitaan liikkumaan lukualueella 0 50. Harjoitellaan

Lisätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

Lisätiedot

Sisällysluettelo. Perusteet

Sisällysluettelo. Perusteet 1 Sisällysluettelo Perusteet 1. Hiukan shakin historiasta ja shakkivälineiden esittely 2. Shakin säännöt 3. Nappuloiden ominaisuuksia 4. Siirtojen merkintä pöytäkirjaan 5. Päämääränä matti - erilaisia

Lisätiedot

Salasuhteita. esimerkiksi espanjaksi nimi tarkoittaa pientä pusua.

Salasuhteita. esimerkiksi espanjaksi nimi tarkoittaa pientä pusua. Salasuhteita Avioliittopeleistä kehiteltiin edelleen uusia pelejä, joissa varsinaisten avioliittojen lisäksi kohdataan sopimattomia suhteita kuningatarten ja sotilaiden välillä vieläpä maiden rajat ylittäen!

Lisätiedot

Peliteoria luento 1. May 25, 2015. Peliteoria luento 1

Peliteoria luento 1. May 25, 2015. Peliteoria luento 1 May 25, 2015 Tavoitteet Valmius muotoilla strategisesti ja yhteiskunnallisesti kiinnostavia tilanteita peleinä. Kyky ratkaista yksinkertaisia pelejä. Luentojen rakenne 1 Joitain pelejä ajanvietematematiikasta.

Lisätiedot

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu

Lisätiedot

Pelin suunnitellut Timo Multamäki

Pelin suunnitellut Timo Multamäki Pelin suunnitellut Timo Multamäki BLACKHAT Black Hat on tikkipeli 2-6 pelaajalle. Pelin tarkoituksena on murtautua tietojärjestelmään ja varastaa sieltä tietoja ilman, että kukaan saa selville sinun olleen

Lisätiedot

1) Pelin ollessa käynnissä kummastakin joukkueesta saa olla samanaikaisesti kentällä enintään

1) Pelin ollessa käynnissä kummastakin joukkueesta saa olla samanaikaisesti kentällä enintään SÄÄNNÖT PELIAIKA 1) Peliaika on 18 minuuttia. 2) Peliaika on juokseva. OSALLISTUJAT Pelaajat 1) Pelin ollessa käynnissä kummastakin joukkueesta saa olla samanaikaisesti kentällä enintään kuusi pelaajaa,

Lisätiedot

Kenguru 2017 Benjamin (6. ja 7. luokka)

Kenguru 2017 Benjamin (6. ja 7. luokka) sivu 1 / 8 NIMI LUOKKA Pisteet: Kenguruloikan pituus: Irrota tämä vastauslomake tehtävämonisteesta. Merkitse tehtävän numeron alle valitsemasi vastausvaihtoehto. Oikeasta vastauksesta saat 3, 4 tai 5 pistettä.

Lisätiedot

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly Bayesin pelit Kalle Siukola MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly 12.10.2016 Toistetun pelin esittäminen automaatin avulla Ekstensiivisen muodon puu on tehoton esitystapa, jos peliä

Lisätiedot

1 PÖYDÄT JA PALLOT 1. Kilpailuissa tulee käyttää Suomen Biljardiliiton hyväksymiä pöytiä ja palloja.

1 PÖYDÄT JA PALLOT 1. Kilpailuissa tulee käyttää Suomen Biljardiliiton hyväksymiä pöytiä ja palloja. KARAMBOLEN SÄÄNNÖT Kolmen vallin kara Yhden vallin kara Suora kara - Cadre YHTEISET SÄÄNNÖT KAIKILLE PELIMUODOILLE 1 PÖYDÄT JA PALLOT 1. Kilpailuissa tulee käyttää Suomen Biljardiliiton hyväksymiä pöytiä

Lisätiedot

Muinaiset kreikkalaiset uskoivat kaiken maanpäällisen koostuvan neljästä elementistä: maasta, ilmasta, vedestä ja tulesta.

Muinaiset kreikkalaiset uskoivat kaiken maanpäällisen koostuvan neljästä elementistä: maasta, ilmasta, vedestä ja tulesta. Johdanto Muinaiset kreikkalaiset uskoivat kaiken maanpäällisen koostuvan neljästä elementistä: maasta, ilmasta, vedestä ja tulesta. Jumalten maailma, kaikki ihmisten maailman yläpuolinen, koostui viidennestä

Lisätiedot

Go-tekoälyjen toteutusratkaisuja

Go-tekoälyjen toteutusratkaisuja Outa Valkama Go-tekoälyjen toteutusratkaisuja Tietotekniikan kandidaatintutkielma 7. syyskuuta 2009 JYVÄSKYLÄN YLIOPISTO TIETOTEKNIIKAN LAITOS Jyväskylä Tekijä: Outa Valkama Yhteystiedot: outa.j.valkama@jyu.fi

Lisätiedot

Tehtävä: FIL Tiedostopolut

Tehtävä: FIL Tiedostopolut Tehtävä: FIL Tiedostopolut finnish BOI 2015, päivä 2. Muistiraja: 256 MB. 1.05.2015 Jarkka pitää vaarallisesta elämästä. Hän juoksee saksien kanssa, lähettää ratkaisuja kisatehtäviin testaamatta esimerkkisyötteillä

Lisätiedot

SEKASTRATEGIAT PELITEORIASSA

SEKASTRATEGIAT PELITEORIASSA SEKASTRATEGIAT PELITEORIASSA Matti Estola 8. joulukuuta 2013 Sisältö 1 Johdanto 2 2 Ratkaistaan sukupuolten välinen taistelu sekastrategioiden avulla 5 Teksti on suomennettu kirjasta: Gibbons: A Primer

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

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

Kenguru 2015 Mini-Ecolier (2. ja 3. luokka) RATKAISUT

Kenguru 2015 Mini-Ecolier (2. ja 3. luokka) RATKAISUT sivu 1 / 10 3 pistettä 1. Kuinka monta pilkkua kuvan leppäkertuilla on yhteensä? (A) 17 (B) 18 (C) 19 (D) 20 (E) 21 Ratkaisu: Pilkkuja on 1 + 1 + 1 + 2 + 2 + 1 + 3 + 2 + 3 + 3 = 19. 2. Miltä kuvan pyöreä

Lisätiedot

http://www.nelostuote.fi/suomi/rummikubsaan.html

http://www.nelostuote.fi/suomi/rummikubsaan.html Sivu 1/5 Pelin sisältö 104 numeroitua laattaa (numeroitu 1-13) 2 laattaa kutakin neljää väriä (musta, oranssi, sininen ja punainen) 2 jokerilaattaa, 4 laattatelinettä, pelisäännöt Pelin tavoite Tavoitteena

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

Tuntemattomassa ympäristössä etsiminen

Tuntemattomassa ympäristössä etsiminen 165 Tuntemattomassa ympäristössä etsiminen Online haussa agentin on reagoitava havaintoihinsa välittömästi tekemättä pitkälle tulevaisuuteen ulottuvia suunnitelmia Tuntemattomassa ympäristössä tutkiskelu

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 2. Lukujen esittäminen ja aritmetiikka 2.1 Kantajärjestelmät ja lukujen esittäminen Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut

Lisätiedot

FIDEn Shakkisäännöt 2017

FIDEn Shakkisäännöt 2017 FIDEn Shakkisäännöt 2017 Uutuuksien ja Suomen käytäntöjen esittely Heinäkuun alussa 2017 voimaan tulleisiin FIDEn virallisiin shakkisääntöihin on tullut jonkin verran muutoksia ja muutama täysin uusi sääntökohta.

Lisätiedot

Algoritmit 2. Luento 4 To Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö Algoritmit 2 Luento 4 To 21.3.2019 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2019 Luento 4

Lisätiedot

Nollasummapelit ja bayesilaiset pelit

Nollasummapelit ja bayesilaiset pelit Nollasummapelit ja bayesilaiset pelit Kristian Ovaska HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Seminaari: Peliteoria Helsinki 18. syyskuuta 2006 Sisältö 1 Johdanto 1 2 Nollasummapelit 1 2.1

Lisätiedot

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin?

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? Pistelaskurin saamiseksi tarvitaan kaksi osaa: Laskuri, joka laskee pisteitä Olio, joka näyttää pisteet ruudulla Laskuri voi olla esimerkiksi tyyppiä

Lisätiedot

Hex-pelin matematiikkaa

Hex-pelin matematiikkaa Solmu 3/2013 1 Hex-pelin matematiikkaa Tuomas Korppi Johdanto Hex on kahden pelaajan strategiapeli, jonka ovat keksineet toisistaan riippumatta matemaatikot Piet Hein ja taloustieteen Nobelinkin saanut

Lisätiedot

Avaruuden muoto. Kuvaus: Tehtävässä pohditaan avaruuden muotoa ja pelataan ristinollaa erilaisilla pinnoilla.

Avaruuden muoto. Kuvaus: Tehtävässä pohditaan avaruuden muotoa ja pelataan ristinollaa erilaisilla pinnoilla. Avaruuden muoto Avainsanat: torus, Kleinin pullo, topologia Luokkataso: 6.-9. luokka, lukio Välineet: kyniä, pelilaudat (liitteenä) Kuvaus: Tehtävässä pohditaan avaruuden muotoa ja pelataan ristinollaa

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

VIRUSKAAPPARI-PELI - KURKISTUS OHJELMOINNILLISEEN AJATTELUUN

VIRUSKAAPPARI-PELI - KURKISTUS OHJELMOINNILLISEEN AJATTELUUN VIRUSKAAPPARI-PELI - KURKISTUS OHJELMOINNILLISEEN AJATTELUUN Tämä teos on lisensoitu Creative Commons CC BY 4.0 Kansainvälinen -käyttöluvalla. Tarkastele käyttölupaa osoitteessa http://creativecommons.org/licenses/by/4.0/.

Lisätiedot

Yhtälönratkaisu oppilaan materiaali

Yhtälönratkaisu oppilaan materiaali Yhtälönratkaisu oppilaan materiaali Nimi: Luokka: 1 1. Tosia ja epätosia väitteitä Alkupalat Kirjoita taulukkoon T, jos väite on tosi ja E, jos väite on epätosi. Väite 5 > 3 16 < 8 19 = 26 9 < 28 64 =

Lisätiedot

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu 832A Tietorakenteet ja algoritmit, 204-205, Harjoitus 7, ratkaisu Hajota ja hallitse-menetelmä: Tehtävä 7.. Muodosta hajota ja hallitse-menetelmää käyttäen algoritmi TULOSTA_PUU_LASKEVA, joka tulostaa

Lisätiedot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot

Lisätiedot

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta 811312A Tietorakenteet ja algoritmit 2017-2018 Kertausta kurssin alkuosasta II Perustietorakenteet Pino, jono ja listat tunnettava Osattava soveltaa rakenteita algoritmeissa Osattava päätellä operaatioiden

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Kenguru Student (lukion 2. ja 3. vuosi) sivu 1 / 6

Kenguru Student (lukion 2. ja 3. vuosi) sivu 1 / 6 Kenguru Student (lukion 2. ja 3. vuosi) sivu 1 / 6 NIMI LUOKKA/RYHMÄ Pisteet: Kenguruloikan pituus: Irrota tämä vastauslomake tehtävämonisteesta. Merkitse tehtävän numeron alle valitsemasi vastausvaihtoehto.

Lisätiedot

Kenguru 2014 Ecolier (4. ja 5. luokka)

Kenguru 2014 Ecolier (4. ja 5. luokka) sivu 1 / 11 NIMI LUOKKA Pisteet: Kenguruloikan pituus: Irrota tämä vastauslomake tehtävämonisteesta. Merkitse tehtävän numeron alle valitsemasi vastausvaihtoehto. Väärästä vastauksesta saat miinuspisteitä

Lisätiedot

Kenguru 2014 Junior sivu 1 / 8 (lukion 1. vuosikurssi)

Kenguru 2014 Junior sivu 1 / 8 (lukion 1. vuosikurssi) Kenguru 2014 Junior sivu 1 / 8 Nimi Ryhmä Pisteet: Kenguruloikan pituus: Irrota tämä vastauslomake tehtävämonisteesta. Merkitse tehtävän numeron alle valitsemasi vastausvaihtoehto. Väärästä vastauksesta

Lisätiedot

Ongelma 1: Mistä joihinkin tehtäviin liittyvä epädeterminismi syntyy?

Ongelma 1: Mistä joihinkin tehtäviin liittyvä epädeterminismi syntyy? Ongelma : Mistä jihinkin tehtäviin liittyvä epädeterminismi syntyy? 0-0 Lasse Lensu Ongelma : Miten vidaan pelata algritmisesti? 0-0 Lasse Lensu Ongelma : Onk mahdllista pelata ptimaalisesti? 0-0 Lasse

Lisätiedot

Kenguru 2014 Ecolier ratkaisut (4. ja 5. luokka)

Kenguru 2014 Ecolier ratkaisut (4. ja 5. luokka) sivu 1 / 13 3 pistettä 1. Mikä oheisista kuvista esittää ison tähtikuvion keskiosaa? Isossa tähtikuviossa on 9 sakaraa. 2. Kauppias Koikkalainen on maalannut liikkeensä ikkunaan kukkakuvion. Miltä kukkakuvio

Lisätiedot

42 lukukorttia, 6 jokerikorttia, 1 pistenoppa, 26 pelimerkkiä, kääntyvä kertotaulu

42 lukukorttia, 6 jokerikorttia, 1 pistenoppa, 26 pelimerkkiä, kääntyvä kertotaulu PELIOHJE 1 (14) Pelaajat: 1-4 pelaajaa Ikäsuositus: 6+ SISÄLTÖ / PELIVÄLINEET 42 lukukorttia, 6 jokerikorttia, 1 pistenoppa, 26 pelimerkkiä, kääntyvä kertotaulu PELI OPETTAA Harjoittelemaan ja vahvistamaan

Lisätiedot

ALHAMBRA. Muuri Seralji Puutarha Holvikäytävä Paviljonki Asuinrakennus Torni Rakennuksen nimi Hinta

ALHAMBRA. Muuri Seralji Puutarha Holvikäytävä Paviljonki Asuinrakennus Torni Rakennuksen nimi Hinta ALHAMBRA Parhaat rakennusmestarit kaikkialta Euroopasta ja Arabiasta haluavat näyttää taitonsa. Palkkaa sopivimmat työjoukot ja varmista, että sinulla on aina tarpeeksi oikeaa valuuttaa. Sillä kaikkia

Lisätiedot

Pinta-ala- ja tilavuuskäsitteiden oppimispeli

Pinta-ala- ja tilavuuskäsitteiden oppimispeli Pinta-ala- ja tilavuuskäsitteiden oppimispeli Kari Mikkola, FM, OSAO, Kaukovainion yksikkö, tekniikka Geometriaa on perinteisesti osattu heikoiten matematiikan osa-alueista peruskoulun päättyessä [1],

Lisätiedot

Ongelma 1: Mistä joihinkin tehtäviin liittyvä epädeterminismi syntyy?

Ongelma 1: Mistä joihinkin tehtäviin liittyvä epädeterminismi syntyy? Ongelma : Mistä jihinkin tehtäviin liittyvä epädeterminismi syntyy? 0-0 Lasse Lensu Ongelma : Miten vidaan pelata algritmisesti? 0-0 Lasse Lensu Ongelma : Onk mahdllista pelata ptimaalisesti? 0-0 Lasse

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

CSC:N SHAKKIKOULU. esittää: Kuinka mestari ajattelee?

CSC:N SHAKKIKOULU. esittää: Kuinka mestari ajattelee? CSC:N SHAKKIKOULU esittää: Kuinka mestari ajattelee? The topic of the 3rd lecture is an in-depth dive to the thinking of chess player - chess knowledge, memory, time management, all discussed through a

Lisätiedot

Pelin sisältö: Pelilauta, tiimalasi, 6 pelinappulaa ja 400 korttia.

Pelin sisältö: Pelilauta, tiimalasi, 6 pelinappulaa ja 400 korttia. 7+ 4+ 60+ FI Pelin sisältö: Pelilauta, tiimalasi, 6 pelinappulaa ja 400 korttia. Selitä sanoja käyttäen eri sanoja, synonyymejä tai vastakohtia! Tarkoituksena on saada oma pelikumppani tai joukkue arvaamaan

Lisätiedot

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26

Lisätiedot

Kirjoita ohjelma jossa luetaan kokonaislukuja taulukkoon (saat itse päättää taulun koon, kunhan koko on vähintään 10)

Kirjoita ohjelma jossa luetaan kokonaislukuja taulukkoon (saat itse päättää taulun koon, kunhan koko on vähintään 10) Tehtävä 40. Kirjoita ohjelma, jossa luetaan 20 lukua, joiden arvot ovat välillä 10 100. Kun taulukko on täytetty, ohjelma tulostaa vain ne taulukon arvot, jotka esiintyvät taulukossa vain kerran. Tehtävä

Lisätiedot

CSC:N SHAKKIKOULU. esittää: Taktinen pelitapa ja kuningashyökkäykset

CSC:N SHAKKIKOULU. esittää: Taktinen pelitapa ja kuningashyökkäykset CSC:N SHAKKIKOULU esittää: Taktinen pelitapa ja kuningashyökkäykset 14.2.2019 Pelin evoluutio Useimmissa globaalisti kilpailluissa urheilulajeissa ja peleissä on käynnissä valtava pelin evoluutio. Digitalisoituminen,

Lisätiedot

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A. Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta

Lisätiedot

Tilastoja Tekoälykilpailun tulokset Palkintojen jako ja keskustelua. Lopputilaisuus. T-93.4400 Tekoälyn perusteet. Heikki Kallasjoki 28.4.

Tilastoja Tekoälykilpailun tulokset Palkintojen jako ja keskustelua. Lopputilaisuus. T-93.4400 Tekoälyn perusteet. Heikki Kallasjoki 28.4. Heikki Kallasjoki 28.4.2010 Lopputilaisuuden ohjelma Tilastoja Palkintojen jako Keskustelua Sisältö Tilastoja Palkintojen jako Keskustelua 2596 ottelua (44 43 = 1892 virallista) 1241 voittoa siniselle,

Lisätiedot