Játékok és MI
2003-10-21T19:55:57+02:00
2004-03-05T10:54:22+01:00
2022-06-29T07:30:26+02:00
  • Ez különösen hasznos lehet akkor, ha heurisztikával dolgozik az MI, és vizsgálja a döntései kimenetelét. Ha jónak ítélt valamit és rossz lett, vagy bizonytalannak, de a kimenetel alapján mégis kiszámíthatónak tűnő a helyzet, akkor érdemes erre építeni.

    Vagyis, ha már többször csapdába csalják kínálkozó lépésekkel, akkor így felismerheti, illetve, ha olyan döntés előtt áll, amelyben bizonytalan, akkor "megtanulhatja" milyen kimenetelt várhat a hasonló helyzetektől.
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Mivel láttam, hogy itt vannak MI iránt érdeklődő emberek, szeretnék mindenki figyelmébe ajánlani egy versenyt, amit magyar készítésű sakkprogramok számára rendeznek meg várhatóan jövő tavasszal.

    Mindenkit szeretettel várunk, aki érdeklődik a téma iránt, pláne, ha esetleg van saját készításű programja, és be kívánja nevezni.

    A pontos részleteket (időpont, hely, stb.) a verseny holnapja fogja tartalmazni, amint elkészül, addig is az előző versenyekét meg lehet nézni az alábbi címen:

    MASPV 2003
    MASPV 2002
    MASPV 2001
    Mutasd a teljes hozzászólást!
  • Hmm... teljes jatszmat ugy ertettem, hogy eltarolni a jatszma adatait. Hossz lepesek, eredmeny. Termeszetesen vmi olyan formaban, hogy le lehessen szurni belole, ha vmi hasonlo szituacio van. Pl. ha hasonlo az elrendezes (nem globalisan, csak egy x*y reszen hasonloan allnak a babuk), akkor mar lehet nezni hogy a regebbi jatszmaban milyen lepesek voltak, es mi lett az eredmenye... ez alapjan - nameg a helyzet modosultsagai alapjan - lehet ugy cselekedni, vagy az alapjan korrigalni.
    Hasonlosag tovabba, ha egy adott elore tervezett lepessor - amit alfabeta alapjan leszamolt - x nagysagban egyezik egy masikkal... Vagy legalabbis hasonlo ra.

    Hasonlosagrol: tudom, ez nehez tema... a lenyege, hogy ki kell szamolni hogy mekkora az elteres erteke, es ha az egy N erteken belul van, akkor meg hasonlonak veheto... Persze nem csak azt kell tarolni hogy hasonlo vagy nem, hanem ezt az elteresi erteket is, avagy mennyire...

    Ez persze szvsz... konkretan tanulo sakkot meg nem probaltam sem leprogramozni, bar lehet ezek alapjan most osszeutok valamit...
    Mutasd a teljes hozzászólást!
  • Az eredeti kerdere is valaszolva:

    www.tar.hu/tenser - ide kiraktam ami nekem annak idejen a legtobbet segitett
    Mutasd a teljes hozzászólást!
  • En probalkoztam tanulo sakkprogrammal, s elotte utana olvastam, hogy is erdemes hozzaalni. Tulajdonkeppen arrol van szo, amit Te is irtal, csak nem igazan erdemes egesz jatszmaban gondolkodni. Annak az eselye, hogy egy allas pontosan ugyanugy ujra elofordul eszmeletlenul kicsi az eselye (kiveve a megnyitas fazist, de azt ugyis konyvbol kell jatszani). Felismerni a hasonlo szitaciokat pedig talan bonyolultabb, mint maga a sakkprogram.

    En a kovetkezokepp tudom elkepzelni (s ha jol tudom a komoly sakkprogiknal is valami ilyesmit hasznalnak):

    1. Okos emberek (mas programok) kitalaljak, mi is lenne a legjobb lepes az adott allasban
    2. Addig modositjuk valamilyen elv alapjan a kiertekelo fuggvenyt, amig a programunk is ezt lepne
    3. Tovabblepunk a kovetkezo allasra

    Ez a modszer jol automatizalhato, meghatarozott ki es bemenete van, igy akar neuralis halo/genetikus algoritmus is bevetheto.

    Mas dolog, hogy ha a tanitok es a tanulo kozott tul nagy a tudaskulonbseg, akkor az eletbe nem fog semmi ertelmes kisulni belole (az en probalkozasom is ezen halt el, elobb magan a sakkprogin kellett volna erosen javitani, s csak utana elkezdni tanitani).
    Mutasd a teljes hozzászólást!
  • "Ha olyant akarsz, ami tanul, fejleszti önmagát, az emberhez hasonló módon gondolkozik, akkor másfelé kell elindulnod."

    Szvsz nem... hiszen a tanulashoz kell lennie alapnak. A tanulo sakkprgoram szvsz ugy a jo, ha adott egy alap alfa-beta, plusszba melle meg informaciokat tarol az eredmenyekrol (lepesekrol, egeszeben a meccsrol), amiket figyelembe vesz.

    Azaz pl. elso esetben lepi az elmeleti legjobbakat, de kikap... ha felall ugyanaz (vagy hasonlo) szituacio, es ezt felismeri, akkor legkozelebb lephet mast... Igy lehet talan legcelszerubben kivedeni jopar problemat. (van 1 eleg hires is, amit annak idejen sok sakkprogram elkovetett, de most nem jut eszembe a neve). A lenyeg, hogy ennek koszonhetoen masodszor mar nem koveti el a hibat, hiszen tudja, hogy rosszra vezet... Persze meg kell oldani, hogy ezt felismerje.

    Nameg fontos, hogy ne csak az aktualis lepesre figyeljen, hanem probaljon eloreszamolni... Persze egy nem tanulo algoritmus eseten is, hiaba a "legjobbat" lepi a gep, a felhasznalorol ezt nem lehet feltetelezni, tehat vegig kell nezni a lehetosegeket... pontosabban idot takarithatunk meg, ha a teljesen valoszinutlen eseteket kikuszobolod. Maximum ha megis bekovetkezik, akkor igyekszik korrigalni magat... es legkozelebb talan eszreveszei, ha jol irod meg :D
    Mutasd a teljes hozzászólást!
  • Szerintem (ha megy a C) érdemes átnézned a GNU Chess forrását. A dokumentációban van arról is, hogy hogyan evaluál.
    Mutasd a teljes hozzászólást!
  • Amire neked szükséged van, feltehetően az alfa-béta algoritmus. Írd be a googleba, hogy "alfa-béta algoritmus" és az első 10 találatban nagyjából minden le is van írva. Hogy hogyan alkalmazod ezt egy konkrét játékra, az már mindig a programozó dolga, erre nincsenek általános tanácsok, úgy írod meg a súlyozást meg a többit, ahogy jónak látod. Épp ettől érdekes a dolog
    Könyvajánló: Kovács P. Atilla: Sakkprogramozásról mindenkinek - ebben minden le van frankón írva, igaz a példák C64 Assemblyben szólnak, de sztem ez nem olyan nagy gond.

    A pontosság kedvéért megjegyzem, hogy szerintem az alfabéta nem MI algoritmus, hisz csupán mennyiségi számításon alapulva keresi meg a legjobb lépést. Ha olyant akarsz, ami tanul, fejleszti önmagát, az emberhez hasonló módon gondolkozik, akkor másfelé kell elindulnod. Ha ez érdekel, kérdezz tovább, ezen a fórumon biztos tudnak neked segíteni ebben is.

    Ui: ha érdekel írtam még anno egy sakkprogramot turbo pascalban alfa-béta alapokon. Ha érdekel szívesen elküldöm a forrást, de talán jobb ha nem egyből sakkprogammal kezdesz.
    Amúgy kevés jobb érzés adódik az életben, mint amikor egy általad írt ilyen táblás játékprogram lealáz téged a pályán Úgyhogy mindent bele
    Mutasd a teljes hozzászólást!
  • Írtam pár játékprogramot, melyekben régi, hagyományos táblás társasjátékokkal lehet egymás ellen játszani (dáma, malom, stb).
    Most szeretném, ha a gép ellen is lehetne játszani. Tudtok segíteni, hogyan induljak el, lehet adni általános tanácsokat (elvégre ilyen típusu játékok elég hasonló elveken működnek), hogy döntsön a gép lépések között? Hogy súlyozzon?
    Mutasd a teljes hozzászólást!
abcd