Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Czosnek
Dołączył: 08 Paź 2006
Posty: 130
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 13:27, 25 Lis 2008 Temat postu: przeszukiwanie puzzli wglab |
|
|
ustawilem sobie tablice
1 2 3
4 5 6
0 7 8
no i wszerz znajduje mi rozwiazanie po przegladnieciu 5 wezlow, ale juz wglab szuka go od 10 min i cos dalej nie moze znalezc tak ma byc ? bo pamietam ze koles cos mowil ze niektorym dlugo szukalo rozwiazania ale nic wiecej nie pamietam co tam gadal
Ostatnio zmieniony przez Czosnek dnia Wto 13:27, 25 Lis 2008, w całości zmieniany 1 raz |
|
Powrót do góry |
|
|
|
|
sltrut
Dołączył: 01 Paź 2007
Posty: 23
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 13:46, 25 Lis 2008 Temat postu: |
|
|
raczej nie bardzo, przy takim ułożeniu przeszukanie grafu nie powinno zająć więcej niż dziesiątą część sekundy, a przynajmniej tak działa u mnie
|
|
Powrót do góry |
|
|
Gribo
Dołączył: 07 Paź 2006
Posty: 267
Przeczytał: 0 tematów
Ostrzeżeń: 1/5 Skąd: Z wykładu
|
Wysłany: Wto 15:35, 25 Lis 2008 Temat postu: |
|
|
może tak być. zalezy którą gałąź zacznie pierwsza sprawdzać.
|
|
Powrót do góry |
|
|
Czosnek
Dołączył: 08 Paź 2006
Posty: 130
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 16:44, 02 Gru 2008 Temat postu: |
|
|
hm no po miesiacu wrocilem do tego problemu ;p dalej nie wiem czemu tak dlugo przeszukuje mi wglab, tak do 5000 wezla leci dosc szybko a potem zaczyna znacznie zwalniac, a tak sobie obliczylem ze do przeszukania w pesymistycznym wypadku ma jakies 360 000 wezlow, wiec jak moze wlacze teraz to w sam raz na zaliczenie zdaze ;p
moze trzeba gdzies zwalniac pamiec albo zastosowac jakis sprytny trik, nie wiem. Tak wyglada kod samego tworzenia dzieciakow
open.add( initwezel );
while( open.size() > 0 )
{
wezel temp;
temp = (wezel) open.get(0);
open.remove(0);
closed.add(temp);
wezel child = new wezel(temp);
child.zeroLeft();
if (wygenerowano(child) != true)
open.add(0,child);
child = new wezel(temp);
child.zeroRight();
if (wygenerowano(child) != true)
open.add(0,child);
child = new wezel(temp);
child.zeroUp();
if (wygenerowano(child) != true)
open.add(0,child);
child = new wezel(temp);
child.zeroDown();
if (wygenerowano(child) != true)
open.add(0,child);
}
mi by sie tego w zyciu nie chcialo czytac, ale moze jest ktos bardziej ambitny odemnie ;p
Ostatnio zmieniony przez Czosnek dnia Wto 16:46, 02 Gru 2008, w całości zmieniany 1 raz |
|
Powrót do góry |
|
|
|