ESERCITAZIONE APPLET: 2000-2001
Scopo
Lo scopo dell'esercitazione è quello di definire una Applet per
il gioco delle Otto regine, uno dei classici problemi di intelligenza
artificiale.
Più precisamente occorre definire:
-
una pagina HTML di presentazione del gioco con relative istruzioni (vedi
qui sotto per regole).
-
una Applet Java con interfaccia grafica per rappresentare la configurazione
corrente del gioco e una parte di controllo (preferibilmente tramite mouse)
che permettano di effettuare la mossa successiva (cioè l'utente
decide dove posizionare le regine).
-
Prevedere la possibilità di scegliere la grandezza della scacchiera
(cioè numero delle regine) e di visualizzare le possibili soluzioni
del gioco.
Regole
È dimostrato che su una scacchiera di ordine N > 3 si
possono collocare fino ad N regine da scacchi senza che nessuna
sia minacciata da un'altra. Una regina minaccia i pezzi che si trovano
sulla sua stessa riga, colonna o lungo le due diagonali. Lo scopo del rompicapo
è trovare tutti i modi di piazzare N regine su una scacchiera
di ordine N senza che nessuna sia minacciata da un'altra.
Celle controllate da una regina
La soluzione è il cosidetto algoritmo di backtracking, che consiste
nell'inserire un test dopo ogni nuovo assegnamento per controllare se qualche
vincolo non sia stato violato dagli assegnamenti (posizioni delle regine)
fatti fino a quel punto (invece di controllare l'ammissibilità della
soluzione alla fine). Il rompicapo delle otto regine venne pubblicato nel
1848 in una rivista tedesca di scacchi, ed attrasse l'attenzione del matematico
Carl Friedrich Gauss, che però riuscì a trovare solo 72 delle
92 possibili soluzioni.
Algoritmo
in C (copyright Eilon Lipton, 2000)
Output
(possibili soluzioni)
Materiale
Nella pagina
di laboratorio è disponibile documentazione su APPLET Java.
Consegna
-
L'esercitazione va consegnata entro Venerdì 27 Aprile con
le seguenti modalita':
-
mandando una mail a giorgio@disi.unige.it per notificare la consegna
contenente numero, e componenti del gruppo
-
consegnando un dischetto a Giorgio Delzanno (ufficio 104) contenente
l'applicazione e la documentazione necessarie per verificare l'esercizio