Putkassa ei ole pitkään aikaan näkynyt mitään kilpailuja, niin ajattelin, että voisin itse järjestää nyt kesäksi virkistystä ihmisille, jos tarpeeksi innokkaita löytyy.
Kilpailu tulisi olemaan aikalailla samantyylinen, kuin Ohjelmointiputkan tekoälykilpailut. Nyt kyseessä olisi timanttipeli. Olen tehnyt simppelin pelin, johon kilpailu perustuisi: http://zux.sjr.fi/touho/Timantti.zip
Olen miettinyt vähän kilpailun sääntöjä ja pisteytyksiä.
Sinulla on 100 siirtoa. Tarkoitus on saada mahdollisimman paljon pisteitä. Kun kentässä ei ole enää siirtoja, ohjelma tekee uuden satunnaisen kentän ja pisteet ja siirtojen määrä pysyy samana.
Pelin juju on pisteytyksessä. Yhdestä siirrosta saa seuraavan kaavan mukaan pisteitä:
3^(poistuneiden_määrä-2+combo) + extrapisteet*poistuneiden_määrä
extrapisteet: Jos poistat samaa timanttia monta kertaa peräkkäin, niistä saa enemmän pisteitä.
combo: Jos timanttien poiston jälkeen tulee uusi 3:n rivi, niin se poistuu. Tämän poiston aikana combon arvo on 1. Ekan siirron aikana se on 0. Eli se kasvaa jokaisen poiston aikana yhdellä.
Tämä pistesysteemi tuo peliin jännitystä. On tärkeätä, että saa comboja aikaseksi, joska niistä saa helposti yli 10 kertaisesti pisteitä.
Selostan säännöt tarkemmin ja teen internetsivut kilpailulle, jos innokkaita löytyy. Sääntöjä on päätellä myös pelaamalla peliä. N-napista sekoitetaan kenttä, mutta siirtojen ja pisteiden määrä nollaantuu.
Rajoitteena on valitettavasti minun Windows käyttöjärjestelmä, jolla kyseinen ohjelma tulisi toimia. Tiedonsiirto ohjelmien välillä tulisi olemaan väripelikilpailun kaltainen.
Tällainen peli ei oikein sovellu tekoälyjen kilpailukentäksi, koska ylhäältä tulevat uudet palikat ovat satunnaisia, eikä siten laskettavissa mikä olisi optimaalinen siirto.
Sen sijaan jos kentät olisi ennalta määrättyjä ja tiedossa olisi kaikki ylhäältä uusina tippuvat palat, sekä muut kentät mihin siirrytään mahdollisten siirtojen loputtua, niin sitten sitä ehkä voisikin sanoa tekoälykilpailuksi tuurikilpailun sijaan.
Voin toki laittaa ylöspäin vaikka 5 riviä timantteja näkyviin. Tietenkin kaikille osallistujille tulisi identtiset tilanteet, joten ei tästä tuurikilpailua tule.
Tosiaan tällä hetkellä tuo tuntuu vähän tuuripeliltä. Toki hyvä tekoäly pärjännee paljon paremmin kuin ihminen, mutta silti suuria pisteitä saa lähinnä aikaiseksi vain jos ylhäältä sattuu tippumaan oikeanlaisia timantteja.
Toiseksi ainakin tuon kokosessa pelissä on niin vähän siirtovaihtoehtoja, että mielekäs pelitilanteiden rakentaminen ei juuri onnistu. En ole edes varma ratkaiseeko suurempi kenttäkoko tätä ongelmaa, sillä sallittujen siirtojen määrä suhteessa palikoiden määrään lienee melko vakio eli suuremmassakin kentässä rakentaminen voi olla hiukan hankalaa kun sallitut siirrot ovat niin erillä toisistaan. Korkeuden kasvattaminen
Kyllähän tästä tekoäly kilpailun voi pitää ja voin itsekin lähettää jonkin virityksen, mutta hiukan epäilen, että voittajaa ei ratkaista näkyvien palikoiden perusteella vaan sillä kuinka hyvin tekoäly onnistuu arvaamaan ylhäältä tippuvat piilossa olevat palikat.
Jos pelikentästä olisi 10x3000 näkyvissä, mutta vain 10x10 alueelta pystyy poistamaan palikoita tilanne voisi olla hiukan mielenkiintoisempi.
Ihan hyvä idea, mutta tuo satunnaisuus vaikuttaa liikaa lopputulokseen.
Vähäjärkinen kun olen, niin rupesin miettimään, että millaisia supersankareita joukostamme löytyykään.
Seuraava on jokseenkin sekava selvitys ajatuksestani ja mielelläni yritänkin selventää aukkoja tiedotuksessa, mutta, jos ajatellaan, että kyseinen tekoäly olisi robotissa..
Robotti kulkee kohti seinää. Seinän tullessa liian lähelle, robotti "ymmärtää" väistää seinää ja kääntyy toiseen suuntaan. Tällaisen tekoälyn aikaansaaminen ei liene "kovinkaan kummoista", mutta lähinnä mieltäni askarruttaa se, että kuinka tekoälystä voitaisiin saada itseoppiva ja ennenkaikkea itsetiedostava kokonaisuus? Kyllähän Mars-mönkijöitä, jotka väistelevät kivenlohkareita on jo olemassa ja on olemassa sellaisiakin ajatusmalleja, että robotit (siis robottien tekoälyt) kyhättäisiin itseoppiviksi, jolloin tekoäly opettaa itse itseään etsimään uusia ratkaisukeinoja ja valitsemaan niistä sopivimman kulloiseenkin ongelmaan sopivaksi.
Jos tällainen tekoäly ohjelmoitaisiin, niin voisiko sitä todellisuudessa sanoa "tietoiseksi olennoksi" vai olisiko kyseessä "tietoinen tekoäly"?
Ja tietäen, että Ohjelmointiputkassa sikiää monia harvinaisen älykkäitä ja oivalluskykyisiä henkilöitä, niin olisiko mitään järkeä perustaa kilpailu (joskin harvinaisen pitkäkestoinen ja kunnianhimoinen) joka tähtää itseoppivaan ja siten myös itsetiedostavaan tekoälyyn?
Luonnollisin lähtökulma oikeaan tekoälyyn on tunneohjelmointi. Tämä tarkoittaa sitä, että tiettyyn tilanteeseen joutuminen aiheuttaa "mielipahaa", ts. tämä tilanne rekisteröidään tavalla tai toisella muistiin ja se on "paha" muisto. Vastaavasti onnistuneet tilanteet tallentuvat "hyvinä" muistoina. Tämän jälkeen tekoälyn tärkeimmäksi tehtäväksi jäisi pyrkiä hyviin kokemuksiin.
Ihmisestä taas tekee ihmisen se, että huonot kokemukset värisyttävät tunteita ja heikentävät arvostelukykyä. Hyvät kokemukset ja onnistumiset taas syöttävät ihmistä taas ikään kuin toimimaan entistäkin paremmin, pyrkimään siihen parhaaseen. Tämä saa aikaan huippusuoritukset.
Suurimmat ongelmat ohjelmoinnin kannalta on se, miten muistot tallennetaan? Miten ärsykkeet toteutetaan? Miten käsitellä samantapaiset muistot, joista on sama määrä sekä hyviä että huonoja kokemuksia? Muistojen tallentaminen on vaikea homma. Ihmisaivotkin tallentavat muistot vain summittaisesti, ikään kuin ottaen huomioon vain ne olennaisimmat asiat muistojen kannalta.
Sami, FooBat ja T.M.: tuuri ei vaikuta tuossa pätkääkään. Täytyy vain kirjoittaa mahdollisimman hyvin senhetkisestä tilanteesta selviytyminen sekä kyky ennustaa ja suunnitella. Sekin on hyvää tekoälyä, että osaa suunnitella tulevaa siten, että tulisi vaikka mitä tahansa niin tilanteesta selviää. Jos kaikille pelaajille tulee testausvaiheessa samanlaiset palikat samassa järjestyksessä, niin sitten tekoälyt ovat samalla viivalla. Ja silloin testataan tekoälyn kykyä näihin edellä mainitsemiini asioihin: kykyyn suunnitella, estää tekemästä huonoja ratkaisuja... oikeastaan jos tekoäly kykenee siihen, että se pitää mahdollisimman monta hyvää ratkaisua jatkuvasti esillä, niin luultavasti se silloin tekee todella hyvää jälkeä.
Mutta näin muuten: minua ei kiinnosta tarpeeksi. Kunhan jaarittelin ajatuksia pois päästä.
Niin, olihan ristinollakisassakin tavallaan sattumanvaraista, mitä vastustaja seuraavaksi tekee, puhumattakaan sitten oikeista tietokonepelien tekoälyistä, jotka pelaavat strategiapelejä ihmisiä vastaan ja ainakin minun tapauksessani voittavat.
Mutta juu, enpä minäkään tuohon ryhtyisi. :S
Sain kerran kerran yhdestä siirrosta n. 750 pistettä. Tavallisesti saa alle 10. Nuo pisteet tulivat ilman mitään suunnittelemista, joten tuurilla voi olla todella paljon merkitystä. Sen takia on todella hyvä idea näyttää timantteja, joita tulee putoamaan. Jos 10*10 ruudussa kymmenellä timantilla on liian vähän vaihtoehtoja, voi tietenkin timantteja vähentää. Esim 10*10 ruutu kuudella timantilla ja 20 kerrosta näkyviin ruudukon yläpuolelle voisi olla parempi idea. Tosin tällaisen tekoälyn tekeminen voi olla vähän isompi urakka, jos meinaa hyödyntää kaikkia saatavilla olevia tietoja.
Tällaisiin "yksityisiin" kilpailuihin ei välttämättä ole paljon osallistujia saati sitten kun tehtävä on näin hankala. Jos innokkaita löytyy, niin voin tämän järjestää, mutta nyt näyttää vähän kehnolta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.