 |
 | |  |
 | |  |
 | |  |
 | |  |
 | |  |
P.
Anonymní
|
Zaslal: pá, 24.srpen 2007, 15:26 |
|
 |
 |
tak předně mi šlo o to rozpoutat flame .. to se podařilo .. aspoň je vidět, že je tu živo ..
Nešlo mi ani tak o to kdo koliv poskládal kostiček (já mimochodem 239), ale o algoritmus. A těmi tu moc nikdo neoplývá .. jde o to, že přece jen backtrackingem s bruteforce je to absolutně nereálné, což dokazují všechny teoretické výpočty počtu možností. Důležité je tedy ne se zaměřit na rychlost testování, ale heuristiku odřezávání větví stromu výpočtu.
Co do větších bloků, toto mně taky napadlo, ale má to několik háčků ... možností jak k sobě napasovat dvě kostky je něco přes 40000. Jak udělat matici 2x2 je těch možností už 4 miliony. Kolik myslíte, že bude těch možností s 4x4 maticí? I kdyby jich byly čtyři miliardy (a to je optimistickej odhad), tak je třeba pokaždé vybrat jen 16 z nich tak, aby se žádná z těch 16 ze kterých jsou poskládány neopakovala. Zjednodušeně, původní bruteforce algoritmus se vlastně jen zesložitil. Nebude potřeba počítat 1E100 puzzlí s jednou kostičkou, ale 1E90 puzzlí s 1E10možnostmi.
Btw nějakej magor obíhá na cz eternity forech s infem, že to vyřešil. Tak jsem zvědav, kdy se ukáže tady.
|
|
 | |  |
 | alg |  |
hasan
Anonymní
|
Zaslal: po, 27.srpen 2007, 14:07 |
|
 |
 |
Zdravím!
Také přileju trochu svého oleje do ohně... Skládat dílky do dlaždic není dobrá cesta. Zkoušel jsem dlaždice 2x2, takže jsem pak skládal pole 8x8, jenže těch kombinací dlaždic je tolik, že to vyjde nastejno.
Ořezávat backtracking je si myslím také nesmysl, protože dokud algoritmus nedojde do místa, kde už nemá žádný dílek k dispozici, tak nelze s jistotou předpovědět, zda má daná větev smysl. Otázou spíš je, které větve preferovat - a teď babo raď
Mám algoritmus, který vyhledává potřebné dílky téměř v čase O(1) včetně správné rotace, průměrná rychlost je +5 milionů položených dílků. Funguje to celkem spolehlivě, 14x14 vyřeší v průměru za 2 hodiny. Skládám šnekem od kraje. 15x15 jsem radši nezkoušel, na několika serverech jsem rovnou zkusil spustit 16x16, má to za sebou po 6-ti dnech asi 10 bilionů dílků a ani ťuk
Napadá tedy někoho jak řadit větve pro procházení?
Hasan
|
|
 | |  |
 | |  |
Xenos
Anonymní
|
Zaslal: út, 28.srpen 2007, 9:54 |
|
 |
 |
Ano, mám seznam kostiček v nějakém vlastně úplně náhodném pořadí a vždy použiju první vyhovující volnou. Teprve až když se backtrackingem vrátím na to samé místo použiju druhou atd. V optimálním případě by ty kostičky byly zamíchané v takovém pořadí, že vždy jako první vezmu tu správnou. Bohužel takto spárvě zamíchané to evidentně nemám  .
|
|
^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 2 z 3
|
|
|
|
|  |