Académique Documents
Professionnel Documents
Culture Documents
Alberto Merciaimatricola:5421314
Il gioco si svolge su una tavola di 3x3 tessere (`e una versione ridotta del gioco
originario, che ha dimensioni 4x4)contenente i numeri da 1 a 8 e una tessera
vuota (modellato nel mio caso con la tessera 0).Partendo da una configurazione iniziale casuale,spostando le tessere in orizzontale e verticale grazie alla
tessera vuota,si deve giungere alla configurazione goal:
1
4
7
3
5
2
6
8
3
6
1
4
7
2
5
8
2
2.1
Dettagli Implementazione
metodo di utilizzo
la configurazione di ogni sottoproblema con associato il costo esatto. I tasselli usati per costruire il sottoproblema possono essere specificati inserendo
nella lista tilesOftheSubproblem i numeri corrispondenti ai tasselli, presente nel
metodo simplyfyProblem della classe HdbHeuristic(problema). Leuristica
basata su Database di pattern `e ottenuta istanziando la classe HdbHeuristic
che riceve come parametro del suo costruttore il problema (Problem);fatto ci`o,
il metodo makeDb che costruisce il Database deve essere chiamato.Per utilizzare questa euristica durante la ricerca sar`a sufficente passare listanza della
classe HdbHeuristic al metodo astar della classe Search,questultimo restituisce il nodo (una istanza della classe Node) della soluzione.Tramite il metodo
printSolution del nodo `e possibile stampare la soluzione, mentre il costo della
soluzione `e memorizzato nellattributo pathCost del nodo (Node) fornito in output dal metodo astar. Infine `e possibile caratterizzare la qualit`a delleuristica
determinando l effective branching factor o calcolare la Penetrance istanziando
la classe Info(problema,nodoSoluzione) chiamando poi i metodi getPenetrance oppure effectiveBF a seconda di quello che si desidera.
2.2
2.2.1
classe Manhattam
2.2.3
classe HdbHeuristic
Analisi
3.1
Penetrance
3.2
3.3
ottimalit`
a
Lottimalit`
a `e garantita dal fatto che ogni volta che trovo 2 cammini che portano
allo stesso nodo il pi`
u costoso viene scartato ed inoltre entrambe le euristiche
sono ammissibili, questo garantisce lottimalit`a dellalgoritmo poich`e ogni nodo
espanso sar`
a sicuramente quello meno costoso,dunque quando `e trovato uno
stato goal questo avr`
a sicuramente un costo ottimo.
Conclusioni