 |
 | Spolupráce při řešení |  |
Xenos
Anonymní
|
Zaslal: so, 25.srpen 2007, 9:27 |
|
 |
 |
Napadlo mě, že by se dalo sdílet částečné výsledky řešení promocí brute-force solverů aniž by to jednotlivé řešitele svazovalo do nějakého jednotného projektu nebo je omezovalo v tom jak ten solver musí vypadat, v jakém pořadí umísťuje kostky atd. Každý ať si to naprogramuje sám jak chce, ale určite postupně bude nacházet sekvence kostek, které zaručeně nevedou k cíli. Já třeba už teď znám některé sekvence např. šesti kostek a jejich umístění (nepočítám do toho středovou kostu a stopy), které samozřejmě k sobě ještě pasují, ale už o nich vím, že cokoliv dalšího bych udělal už nikdy nepovede k cíli. No a nějaký úplně jinak vypadající solver by toho mohl využít.
Prakticky je to ale asi dost naivní, protože někdo může mít v solveru buď chybu nebo je prostě záměrně upraví tak, aby neposkytl někomu výhodu. Jsme přece Češi, bože dej ať klidně nevyhraju, hlavně ať nevyhraje támhleten  .
|
|
 | |  |
xsoft
 Admin
| Založen: 25.07.2004 |
| Příspěvky: 3605 |
| Bydliště: Praha, Hostomice |
|
Zaslal: so, 25.srpen 2007, 20:47 |
|
 |
 |
Hi,
tenhle postup i pristup by se mi zamlouval.
U nas jsme si zatmi hrali jen s koskama typu 1 a 2, ty spojeny mame (zhruba tak, jak by na 80 procent mely byt spojeny ve finale).
Jestli bys mel nejakou kombinaci, kterou budes chtit oberit jestli sedi nebo naopak vubec nesedi spolu, tak muzem taky overit ...
Solver na to zatim nemam (jako program).
Co by teda dal (mimo "kostka sedi - nesedi") slo udelat? No, treba urcit, kde koska bude v planu umistena (problem je, ze se nezna pak jeji natoceni a taky ze jeji poloha muze byt okotena 4x o 90 stupnu)... jako ze treba udelate cele reseni a kdyz jej 4x otocite, tak mate 4 ruzna reseni (jasne, 139 to pak ukotvi jen na jednom).
Taky me napadlo, ze muzes zjusit poslat treba 10 kombinaci (dvojice cisel), a muzu zkusit nezavisle overit, co sedi a co ne (jako ze do svych 6ti .. nebo kolik si rikal .. pridas nejaky random). Schvalne jestli vyjde stejny vysleek, kdyz predem nereknes na co jsi prisel.
O cenu .. no, co tak na to napsat. Pokud uz to nemam vyhrat ja, tak at to vyhraje aspon nejaky cech nez Amik (chci taky ukazat, ze neco umime a ze tu nejsou jen lamy). Co psat dal .. resitel vse muze poprit, nebo udela opak .. kazdopadne to necham na nej. Az to slozi, bude mit dost casu si romyslet co s penezma udela (vcetne faktu, ze to jak se zachova si ponese do konce zivota).
|
|
 | |  |
 | Jak to programujete? |  |
Jean.P
Anonymní
|
Zaslal: st, 19.září 2007, 2:44 |
|
 |
 |
Zdravím. Tak jsem právě přečetl všechny příspěvky tady a na E2.net a plně sympatizuji s tím, že by výhra měla přijít do Čech. Mimochodem, nějak jste se tady ve fóru už dlouho neozvali, že bych si hru koupil už pozdě? (to byla jen řečnická)
Já mám pár představ o tom, jak by se dalo postupovat, ale nějak nejsem programátorsky zdatný, abych psal nějaké optimalizoavné solvery. Zaujalo mě, jaká ve fórech padají různá čísla typu 10 miliónů kostiček za vteřinu a pod. Já jsem pár možností vyzkoušel v Matlabu a tam jsem o několik řádů jinde (kde asi nemusím ani naznačovat  .) Můžete mi prosím prozradit, jak ty svoje solvery programujete? Jaký programovací jazyk, jaké datové struktury a pod.? Zajímala by mě řeba jen triviální operace, jak hledat kostičku, která se přiložit na volné místo a v dalším kroku už se tato ignoruje.
Také mi úplně není jasné, jak řešíte ten backtracking. Když tedy někam dojdete a není co přikládat, kam se vracíte a jak se při tom návratu změní ty vaše datové struktury?
Předem díky za rady. Kdyby někdo přiložil i třeba ukázku kódu, bylo by to fajn.
|
|
 | |  |
 | |  |
Xenos
Anonymní
|
Zaslal: čt, 20.září 2007, 23:12 |
|
 |
 |
Tady ta diskuze vážně nějak umřela, to máte už všichni vyřešeno nebo jste to vzdali ?
2 Jean.P : Po téměř 2 měsících běhu solveru Ti můžu říct, že je skoro jedno jestli pokládáš 1000 nebo 10M kostiček za sekundu, protože pravděpodobnost že se dožiješ výsledku je tak jako tak zanedbatelná. Já na několika ne moc výkonných počítačích dohromady pokládám asi 80M za sekundu a nikam jsem se moc nedopracoval. Maximální počet položených kostiček mám 224. Pro programování solveru rozhodně doporučuju C nebo C++, v extrémním případě aspoň částečně assembler. Jinak ten backtracking je v principu velice jednoduchý. Prostě v každém kroku kdy chci umístit kostičku mám obvykle na výběr několik pasujících kostiček, takže určím tyto alternativy a první z nich použiju. Pak umísťuju další kostičku (většinou tu sousední) a udělám totéž atd. Pokud nemám jic co by pasovalo, znamená to, že kterékoliv z předchozích umístění může být špatně (dost pravděpodobně už to první a tím pádem i většina ostatních  ). Takže se vrátím o jeden krok zpět a místo první alternativy použiju druhou a zase se pokouším postupovat dál. Pokud už žádná alternativa v předchozím kroku nezbývá, znamená to, že chyba musela být už někdy dřív, tj. vrátím se o další krok zpět, zase vyberu druhou alternativu atd. Výhodou tohoto postupu je, že má velice malé nároky na paměť, nemusí se ukládat žádné rozsáhlé informace o neprozkoumaných alternativách, takže se většina dat obvykle vejde do primární cache procesoru a je to poměrně rychlé. Problém je, že tak jak se postupně backtracking vrací zpět tak doba návratu směrem k začátku drasticky exponenciálně roste, takže je to touto cestou prakticky neřešitelné i kdybych pokládal 10G kostiček za sekundu.
2 boubelka : Můžeš napsat jak jsi to tomuto závěru dospěla ? Já to naopak řeším od kraje, protože se mi zdá, že tam jsem přece jen více omezen a nemám tolik možností a to i vzhledem k umístění obou stop, ke kterým se od krajů dostanu rychleji než ze středu. Naopak myslím, že pokud budu umísťovat od středu, např. spirálově, tak dost často budu muset umístit kostičku, která k té předcházející bude pasovat jen jednou stranou takže se to hned od začátku strašně rozvětví.
|
|
 | |  |
^RimmeR^
 Bot fora
|
|
|
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru.
|
Časy uváděny v GMT + 2 hodiny
Strana 1 z 1
|
|
|
|
|  |