Ho iniziato ad aggiornare la mia conoscenza ai quindi ho implementato alcuni algoritmi di pathfind per risolvere 8-Puzzle.python idastar vs astar solving 8 puzzle
Mi chiedevo perché mia implementazione di IDA * ha un percorso più lungo. Dovrebbe essere ottimale come A *.
% python puzzle8.py -a idastar -d hard
IDASTAR - RESULT in 161.6099:
1 | 2 | 3
4 | 5 | 6
7 | 8 | N
cost: 0 total_cost: 121
...
nodes 28
% python puzzle8.py -a astar -d hard
Max nodes 665 loops 1085
ASTAR - RESULT in 0.3148:
1 | 2 | 3
4 | 5 | 6
7 | 8 | N
cost: 0 total_cost: 115
...
nodes 24
Codice è il succo https://gist.github.com/1629405
Aggiornamento:
codice è ora punta a un lavorare versione.
% python puzzle8.py -a idastar -d hard
IDASTAR - RESULT in 234.4490:
1 | 2 | 3
4 | 5 | 6
7 | 8 | N
...
nodes 24
ma sto ancora chiedendo perché IDA * vuole così tanto più sotto pitone di A *.
Aggiornamento 2:
codice viene cambiato stampe ora visitati nodi.
IDASTAR crea 4.184.368 ASTAR nodi.
Grazie ho cambiato il mio codice per incrementare il limite ora di 1. Ma un'altra domanda perché ci vuole così tanto ** lungo ** per finire in idastar? – delijati
Quante iterazioni passa attraverso l'idastar? Quanti nodi si espandono in totale, non solo nell'ultima iterazione? Rispondi a queste domande e dovresti avere la risposta alle tue. –
Oh sì, giusto. Il codice maxnode modificato conta ora ogni nodo visualizzato. ** ASTAR ** ha 1748 nodi e ** IDASTAR ** 4184368 nodi. – delijati