Hirdetés

Új hozzászólás Aktív témák

  • Robitrix

    senior tag

    válasz Pötyi #20 üzenetére

    a lehetséges legjobbhoz mindet meg kéne keresni majd abból kiválasztani azokat, amelyek a legrövidebbek. alapvetően egy adott kocka állásból 18 féle 90 fokos forgatást tudsz végre hajtani egy sík 3 kockasorból áll amelyeket vagy egyik vagy másik irányba tekersz az akkor 6 féle és van 3 dimenziód az akkor 18. Ebből persze lejön egy mert az aktuális állapotot is elérted egy forgatással és ugyan azt visszaforgatni nincsen értelme. illetve felmerül a kérdés, hogy egy kocka sor 180 fokos elforgatása egynek számít vagy két valamelyik irányba végrehajtott 90 fokosnak számít. :) a matematikusok szerint 17-18 forgatás az optimális maximum. amivel bármelyik állásból bármelyikbe el lehet jutni. vagyis bárhogyan áll a kocka széttekerve maximum ennyiből ellehet érni azt az állapotot, amikor ki van rakva. Ez persze nem jelenti azt, hogy egy adott állásból ne lehetne mondjuk egy akár 13 forgatással is eljutni a egy kirakott állapothoz. elméletben egy back trackingnek nevezett technikával meglehet keresni a kirakáshoz vezető forgatásokat. vagyis halad az ember egy úton és mikor elágazáshoz ér akkor elindul az elágazáson egy irányba és halad tovább amikor sikertelen lesz visszalép egy elágazásnyit majd ott a másik ágat választja. ha az se vezet sikerre , akkor megint vissza lép és új irányba indul közben persze lehet hogy talál mondjuk 46 forgatásos eredményt. aztán gyüri gyüri és lesznek jobb útvonalak is a kirakáshoz. minnél több idöt hasgy az algoritmusnak a futásra annál nagyobb esélye van egyre rövidebb kirakási útakat megtalálni. amikor az összes lehetőséget végig járta vagy elunja az algoritmus futását akkor a legrövidebb számú forgatások lesznek az eredmények. Némileg olyan, mint a sakk program algoritmusok. ott is egyre több lépéssel előre igyekeznek kiszámolni minden lépést és az azokra adott válasz lépéseket majd minden állást egy kiértékelő algoritmus pontként meghatároz minél tovább fut az algoritmus annál több lépésben elemzi előre a lehetséges kimeneteket a sakkban. majd amikor megáll az algoritmus futás(mondjuk letelik a futásra biztosított idő) és az addigi legnagyobb pontértékű álláshoz vezető irány lesz az optimális és azt fogja lépni a gép. Minnél több ideje van számolni annál jobb lehetőséget fog választani. Vagyis a kocka kirakó program se a lehetséges legjobbat fogja megtalálni, hanem a adott idő alatt megtalálható kirakási módokból a legjobbat, ami a legrövidebb a megtaláltak közül.

Új hozzászólás Aktív témák