JOHDATUS TEKOÄLYYN TEEMU ROOS

Samankaltaiset tiedostot
JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

Minimax ja alfa-beta-karsinta

Tietokoneshakki. Kari Timonen

Algoritmit 2. Luento 10 To Timo Männikkö

JOHDATUS TEKOÄLYYN TEEMU ROOS

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

Algoritmit 2. Luento 11 Ti Timo Männikkö

Koneoppiminen shakkitekoälyissä

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

Johdatus tekoälyyn

Timo Myyrä. Tietokoneshakki funktionaalisella ohjelmoinnilla

Johdatus tekoälyyn (T. Roos) Kurssikoe

.. X JOHDATUS TEKOÄLYYN TEEMU ROOS

SM-turnaukset /5

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

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

JOHDATUS TEKOÄLYYN TEEMU ROOS

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

JOHDATUS TEKOÄLYYN TEEMU ROOS

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

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

Sarjatiedote 2012 Joukkueilla pitää olla yhtenäinen peliasu.

Tuntemattomassa ympäristössä etsiminen

Tosiaikaiset päätökset

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

Epätäydellisen tiedon jatkuvat pelit. Mika Viljanen Peliteorian seminaari

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

Aluksi... Shakki. Ajankäyttö. "Voittopeli"

Sarjatiedote 2019 Joukkueilla pitää olla yhtenäinen peliasu.

Ohjelmistotekniikan laitos OHJ-2550 Tekoäly, kevät

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

Janne Eskola Eetu Haapamäki Jani Jarkima Shakkirobotin pelitekoäly rajallisen laskentatehon ympäristössä

INDOOR-SARJAT

Tutkimustiedonhallinnan peruskurssi

Sarjatiedote 2013 Joukkueilla pitää olla yhtenäinen peliasu.

Sarjatiedote 2015 Joukkueilla pitää olla yhtenäinen peliasu.

Tilastollisia peruskäsitteitä ja Monte Carlo

RANTALENTISSÄÄNNÖT 2016 Rantalentisturnaus Paukarlahden kyläyhdistys RY

Näytösotteluita pelataan lähtien ja otteluohjelma on nähtävillä kokonaisuudessaan tässä mediaoppaassa.

Juniori KuPS JÄSENKIRJE LOKAKUU Juniori KuPS nyt myös Facebookissa TYKKÄÄ

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

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

C2-D2 Final Four-turnaukset

Johdatus tekoälyn taustalla olevaan matematiikkaan

Tietokoneshakin ohjelmointi JavaScript-kielellä. Jarkko Kuusela

INDOOR-HOCKEY 2017/2018 SARJAT

MAAILMANLIIGA 2013 SUOMI KANADA CALGARY, KANADA

Rajoittamattomat kieliopit (Unrestricted Grammars)

PÄRNU SUMMER CUP 2013 JALKAPALLOTURNAUKSEN OHJEET

T9 (2008) haastetaso, joukkueet Hyps T08-09 Punainen FC Loviisa FC Kontu T08-09 HJK Kannelmäki T0809 Käpylän Pallo

CURLINGIN MIESTEN SM-SARJAN SÄÄNNÖT KAUDELLA

Käytetään SEUL overwatch sääntöjen ingame asetuksia. Kotijoukkueen kapteeni on vastuussa lobbyn tekemisestä.

TURNAUSSÄÄNNÖT Ottelut pelataan kahden minuutin vaihdoilla. Vaihdot kuulutetaan.

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

JOHDATUS TEKOÄLYYN TEEMU ROOS

CHESS & GAMES KÄYTTÖOHJE

BIDDY BASKET 2015 / New Orleans

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

C2-D2 Final Four-turnaukset

TEKOÄLYN TOTEUTTAMINEN UNITY-PELIMOOTTORILLA

Pelaajien lukumäärä: suositus 3 4 pelaajaa; peliä voi soveltaa myös muille pelaajamäärille

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

XXXVI KULTAVASKOOLI TURNAUS ROVANIEMI

NUORTEN KILPAILU- JÄRJESTELMÄ. Muutokset &

Pohdiskeleva ajattelu ja tasapainotarkennukset

Johdatus go-peliin. 25. joulukuuta 2011

JOHDATUS TEKOÄLYYN LUENTO 4.

Pelit, tietokone ja ihminen

Sarjatiedote 2014 Joukkueilla pitää olla yhtenäinen peliasu.

Othello-pelin evaluointifunktion kehittäminen

CHAMPIONS CUP

X X. Johdatus tekoälyyn. v=1 X O. Kevät 2016 T. Roos. v=1 v= 1 8) 9) 10) X X O X O O. v=1 13) 14) X X X O O X O O X O. v=1 v=1 v= 1.

Go-tekoälyjen toteutusratkaisuja

Luento 7. June 3, 2014

Johdatus tekoälyyn

SUOMEN RATAGOLFLIITTO RY SM-LIIGAN SÄÄNNÖT 2013 PELIOIKEUS

Tervetuloa yksipäiväiseen salibandyturnaukseen Pasilan Urheiluhalliin osoitteessa Radiokatu 22.

Algoritmit 2. Luento 14 Ke Timo Männikkö

Tervetuloa yksipäiväiseen salibandyturnaukseen Pasilan Urheiluhalliin osoitteessa Radiokatu 22.

JOHDATUS TEKOÄLYYN TEEMU ROOS

ALKUSARJA JATKOSARJAT PLAYOFFS Puolivälierät Välierät Finaali

RANTALENTIS- SA A NNÖ T

NUORTEN KILPAILU- JÄRJESTELMÄ Muutokset &

Hallituksen esitys liittokokoukselle sääntömuutoksiksi Käsitelty hallituksen kokouksessa

Aika: Perjantai Paikka: Pirkka-halli, D-halli, Kentät no 1, 2, 3 ja 4

Laskuharjoitus 2. Markkinoitten mallintaminen ja Internet-markkinat Saara Hämäläinen, Helsingin yliopisto, syksy 2016

Chess Action Game (Shakkiseikkailu)

Curlingin naisten SM-sarjan säännöt kaudella

Tekoäly ja go-peli. Hanne Korhonen

RANTALAKEUS 2019 SÄÄNNÖT

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

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

Curlingin miesten SM-sarjan säännöt kaudella

Hallisarja Joukkuetta. Liiga, 1. divisioona, 2. divisioona lohkot A, B, C

Kuinka matti tehdään?

Opettajan opas. Shakkilinna

POWERADE KESÄLIIGA 2005 L O H K O

Transkriptio:

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 LAPSET(Solmu) v = (v, -ARVO(Lapsi)) return(v)

I -ARVO(Solmu) if LOPPUTILA(Solmu) return(arvo(solmu)) v = for each Lapsi in LAPSET(Solmu) v = (v, -ARVO(Lapsi)) return(v) -ARVO(Solmu) if LOPPUTILA(Solmu) return(arvo(solmu)) v = + for each Lapsi in LAPSET(Solmu) v = (v, -ARVO(Lapsi)) return(v)

SHAKKI

SHAKKI

SHAKKI

SHAKKI (NICE TO KNOW: EI TARVITSE OPETELLA) 1769 Wolfgang von Kempelen rakentaa Turkin 1912 L. Torres y Quevedo rakentaa koneen kuningas&torni vs kuningas -loppupeleihin 1948 Norbert Wiener esittää syvyysrajoitetun minimax- algoritmin heuristisella arviontifunktiolla 1950 Claude Shannon julkaisee artikkelin Programming a Computer for Playing Chess 1951 Alan Turing kehittää ensimmäisen algoritmin, joka pystyy pelaamaan kokonaisen shakkiottelun 1956 Los Alamos chess: ensimmäinen tietokoneohjelma, joka pelaa (yksinkertaistettua) shakkia 1956 John McCarthy keksii alpha-beta-karsinnan 1957 Ensimmäiset oikeaa shakkia pelaavat ohjelmat 1966-67 Ensimmäiset tietokoneohjelmien väliset ottelut (Moskova voittaa.)

SHAKKI (NICE TO KNOW: EI TARVITSE OPETELLA) 1967 Ensimmäinen tietokoneohjelman voitto turnauksessa. 1981 Cray Blitz voittaa Mississippin osavaltion mestaruuden ja saa ensimmäisenä tietokoneena mestarin statuksen. 1988 Deep Thought voittaa ensimmäistä kertaa suurmestarin turnauksessa. 1989 Garry Kasparov voittaa kaksi näytösottelua Deep Thoughtia vastaan. 1996 Garry Kasparov voittaa Deep Bluen kuuden pelin ottelussa. 1997 Deep Blue voittaa Garry Kasparovin kuuden pelin ottelussa. 2006 Deep Fritz voittaa maailmanmestari Vladimir Kramnikin.

SHAKKI TILA: (LAUDAN TILANNE) SIIRTYMÄT: (SALLITUT SIIRROT) MENETELMÄ: SYVYYSRAJOITETTU ALPHA-BETA- KARSINTA

PELIPUU ARVIOITA TILANTEEN HYVYYDESTÄ

SHAKKI TILA: (LAUDAN TILANNE) SIIRTYMÄT: (SALLITUT SIIRROT) MENETELMÄ: SYVYYSRAJOITETTU ALPHA-BETA- KARSINTA TEHTÄVÄ: SUUNNITTELE HEURISTINEN ARVIOINTIFUNKTIO

HEURISTIIKKOJEN VALINNASTA HEURISTIIKAN HYVYYS VAIKUTTAA PELIN TULOKSEEN: HYVÄ HEURISTIIKKA > HYVÄ TULOS VASTAAVASTI HEURISTIIKAN HYVYYTTÄ VOI MITATA TARKKAILEMALLA PELIEN TULOKSIA: HYVÄ TULOS > HYVÄ HEURISTIIKKA JOSKUS HYVÄKIN PELAAJA VOI SILTI HÄVITÄ HUONOMMALLEEN JA TOISINPÄIN, JOTEN ARVIOINTI EI OLE HELPPOA YLEINEN MENETELMÄ HYVYYDEN ARVIONTIIN: ELO-RATING

HEURISTIIKKOJEN VALINNASTA (NICE TO KNOW: EI TARVITSE OPETELLA) ELO RATING I NEED THE ALGORITHM The Social Network Columbia Pictures, Inc.

ALPHA-BETA-KARSINTA AKTIVATOR! -ARVO 1

ALPHA-BETA-KARSINTA AKTIVATOR! -ARVO 1 -ARVO = 3

ALPHA-BETA-KARSINTA -ARVO(Solmu, α, β) if LOPPUTILA(Solmu) return(arvo(solmu)) v = for each Lapsi in LAPSET(Solmu) v = (v, -ARVO(Lapsi, α, β)) if v β return(v) α = (α, v) return(v) -PELAAJAN TOISTAISEKSI PARAS ARVO -PELAAJAN TOISTAISEKSI PARAS ARVO

ALPHA-BETA-KARSINTA -ARVO(Solmu, α, β) if LOPPUTILA(Solmu) return(arvo(solmu)) v = for each Lapsi in LAPSET(Solmu) v = (v, -ARVO(Lapsi, α, β)) if v β return(v) α = (α, v) return(v) -ARVO(Solmu, α, β) if LOPPUTILA(Solmu) return(arvo(solmu)) v = + for each Lapsi in LAPSET(Solmu) v = (v, -ARVO(Lapsi, α, β)) if v α return(v) β = (β, v) return(v)

ALPHA-BETA-KARSINTA

ALPHA-BETA-KARSINTA α = 0

ALPHA-BETA-KARSINTA α = 1

ALPHA-BETA-KARSINTA α = 6

ALPHA-BETA-KARSINTA α = 6

ALPHA-BETA-KARSINTA β = 6

ALPHA-BETA-KARSINTA β = 6 α = 3

-ARVO(Solmu, α, β) ALPHA-BETA-KARSINTA if LOPPUTILA(Solmu) return(arvo(solmu)) v = + for each Lapsi in LAPSET(Solmu) v = (v, -ARVO(Lapsi, α, β)) if v α return(v) β = (β, v) β = 6return(v) α = 3 α = 3

-ARVO(Solmu, α, β) ALPHA-BETA-KARSINTA if LOPPUTILA(Solmu) return(arvo(solmu)) v = + for each Lapsi in LAPSET(Solmu) v = (v, 1 -ARVO(Lapsi, α, β)) if 1v 3α return(v) β = (β, v) β = 6return(v) α = 3 α = 3

-ARVO(Solmu, α, β) ALPHA-BETA-KARSINTA if LOPPUTILA(Solmu) return(arvo(solmu)) v = + for each Lapsi in LAPSET(Solmu) v = (v, 1 -ARVO(Lapsi, α, β)) if 1v 3α return(v) β = (β, v) β = 6return(v) α = 3 α = 3

-ARVO(Solmu, α, β) ALPHA-BETA-KARSINTA if LOPPUTILA(Solmu) return(arvo(solmu)) v = + for each Lapsi in LAPSET(Solmu) v = (v, 1 -ARVO(Lapsi, α, β)) if 1v 3α return(v) β = (β, v) β = 6return(v) α = 3 α = 3

ALPHA-BETA-KARSINTA β = 6 α = 3 α = 3

ALPHA-BETA-KARSINTA β = 3

ALPHA-BETA-KARSINTA α = 3 α = 3

ALPHA-BETA-KARSINTA α = 3 α = 3

ALPHA-BETA-KARSINTA α = 3 α = 3 -ARVO(Solmu, α, β) if LOPPUTILA(Solmu) return(arvo(solmu)) v = + for each Lapsi in LAPSET(Solmu) v = (v, -ARVO(Lapsi, α, β)) if v α return(v) β = (β, v) return(v)

ALPHA-BETA-KARSINTA α = 3 α = 3 -ARVO(Solmu, α, β) if LOPPUTILA(Solmu) return(arvo(solmu)) v = + for each Lapsi in LAPSET(Solmu) v = (v, 2 -ARVO(Lapsi, α, β)) if v 2 3α return(v) β = (β, v) return(v)

ALPHA-BETA-KARSINTA α = 3 -ARVO(Solmu, α, β) if LOPPUTILA(Solmu) return(arvo(solmu)) v = + for each Lapsi in LAPSET(Solmu) v = (v, 2 -ARVO(Lapsi, α, β)) if v 2 3α return(v) β = (β, v) return(v) α = 3 AKTIVATOR!

ARPAPELIT ARPA 0.5 0.5

ENSI VIIKOLLA LOGIIKASTA (TEKOÄLYN HISTORIAA) TODENNÄKÖISYYS