IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:6.6.2013 11:51

Mě se záplavový algoritmus sekvenční nejeví vůbec, začínáš přeci na poli, odkud chceš hedat a pak procházíš postupně okolní body, kde tam je něco sekvenčního?

Např. když máš pole
0 1 2 3
4 5 6 7
8 9 A B
C D E F

a hledal bys cestu z 0 do A, tak budeš postupně prohledávat body (přesný postup by záležel na implementaci, jedna z nich by dopadla takto)
1 4 2 5 8 3 6 9 C 7 A

Využití sekvenčního procházení tam nikde nevidím.

Editováno 6.6.2013 11:52
Odpovědět
6.6.2013 11:51
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na TomBen
Luboš Běhounek Satik:6.6.2013 11:55

Chtělo by to napsat nějaký základ a interface, aby účastníci jen dodali DLL s AI mohly se pustit dvě AI proti sobě, piškvorkový turnaj :)

Nahoru Odpovědět
6.6.2013 11:55
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:6.6.2013 12:01

Z 0 vedou například 2 sekvence:

0 -> 1 -> 2 -> 3
0 -> 4 -> 8 -> C

Z 9 vedou 4 sekvence.

Nahoru Odpovědět
6.6.2013 12:01
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:6.6.2013 12:15

"Z 0 vedou například 2 sekvence:

0 -> 1 -> 2 -> 3
0 -> 4 -> 8 -> C

Z 9 vedou 4 sekvence."

Uh.
To klidně můžou, ale to ten záplavový algoritmus přece vůbec nezajímá, on prohledává okolí ve "vlnách", viz animace (nutno kliknout, aby se to animovalo).

Pod sekvenčním přístupem si představuju třeba foreach na prvcích pole, ale ne to, že při přímém přístupu do pole jde náhodou pár indexů za sebou.

Editováno 6.6.2013 12:16
Nahoru Odpovědět
6.6.2013 12:15
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:6.6.2013 13:35

Pokud s polem pracuješ cyklem foreach, tak s ním pracuješ jako se seznamem.

Ty indexy však nemusí jít za sebou. Zaplavuješ všemi směry, proto z každého prvku vedou 4 cesty na sousední prvky. Je to vlastně neorientovaný graf, který však nemusí být omezen na 4 cesty, ale třeba u piškvorek může mít 8 cest z každého prvku.

Tohle jsou však algoritmy, které nejsou příliš výhodné v imperativních jazycích, ale např. v Lispu se používají velmi často.

Nahoru Odpovědět
6.6.2013 13:35
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:6.6.2013 13:39

Hezkým příkladem by mohlo být testování korektnosti sudoku. Můžeš to udělat jako matici 9×9 a udělat 3 algoritmy na test (vodorovně, svisle, skupina). Když to však uděláš jako 81 objektů, které umístíš do 27 seznamů po 9 objektech, stačí ti jen jeden testovací algoritmus na všechno.

Nahoru Odpovědět
6.6.2013 13:39
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Luboš Běhounek Satik:6.6.2013 13:52

"Pokud s polem pracuješ cyklem foreach, tak s ním pracuješ jako se seznamem."
Někdy také, ale byl to jen příklad toho, co si představuju pod pojmem sekvenční přístup.

"Ty indexy však nemusí jít za sebou. Zaplavuješ všemi směry, proto z každého prvku vedou 4 cesty na sousední prvky. Je to vlastně neorientovaný graf, který však nemusí být omezen na 4 cesty, ale třeba u piškvorek může mít 8 cest z každého prvku."
Jestli prohledáváš osmiokolí nebo čtyřokolí je v tomhle případě úplně jedno.
To už přece není sekvenční přístup, když ty indexy nejsou za sebou, ale skáčeš při prohledávání v podstatě na náhodné indexy do té mapy...

"Tohle jsou však algoritmy, které nejsou příliš výhodné v imperativních jazycích, ale např. v Lispu se používají velmi často."
Nevím, proč by neměl tenhle algoritmus být výhodný v imperativním jazyce. Lisp neznám, nevidím moc důvod tyhle obskurní jazyky používat :) .

Nahoru Odpovědět
6.6.2013 13:52
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:6.6.2013 14:01

Pokud se ti seznamy jeví výhodné v imperativním jazyce, tak proč je tak kritizuješ?

I když ty indexy při záplavě nejdou za sebou, v seznamech se stále jedná o sekvenční přístup.

Nahoru Odpovědět
6.6.2013 14:01
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:6.6.2013 14:35

U toho sudoku souhlasím, že by to tvé řešení bylo docela hezké.

Já nekritizuju seznamy, jen mi to přišlo, že bys je nejraději cpal všude, i tam, kde se více hodí pole, třeba na tu reprezentaci mapy pro záplavové hledání.

Ani když tu mapu máš místo pole uloženou jako seznam, tak tam nezapisuješ/nečteš sekvenčně při záplavovém prohledávání, vždyť je to nesmysl, ještě jednou:

Mám mapu
0 1 2 3
4 5 6 7
8 9 A B
C D E F
uloženou jako list (0 1 2 3 4 5 6 7 8 9 A B C D E F)
a hledám tu cestu třeba z 0 do A, tak saháš postupně na indexy
1 4 2 5 8 3 6 9 C 7 A

Já tam pořád žádnou sekvenci nevidím a jako sekvenční přístup mi to rozhodně nepřipadá :)

Nahoru Odpovědět
6.6.2013 14:35
https://www.facebook.com/peasantsandcastles/
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 59.