Problema del pastore, lupo, capra, cavolo Ovidiu Birgu matricola s231567 Cheudong Nkengne Florian matricola s218136
Descrizione problema: In questo gioco di logica, l’obiettivo è trasportare da una riva all'altra di un fiume un lupo, una capra e dei cavoli su una barchetta. Dato che la barca non può trasportare più di una cosa contemporaneamente, il giocatore deve trovare l'esatto ordine di azioni affinché il lupo non mangi la capra o la capra non mangi i cavoli (si assume che il lupo, in quanto carnivoro, non mangi i cavoli; si assume inoltre che mentre il barcaiolo è presente lupo e capra non mangino alcunché).
Formalizzazione del problema Due tipi di stati: validi o invalidi Uno stato è un vettore con 4 elementi Struttura di uno stato: [<pos pastore>, <pos lupo>, <pos capra>, <pos cavolo>] La posizione può essere nord / sud
Descrizione degli stati Stato iniziale: [N, N , N , N] //tutti gli attori sono al nord Stato finale: [S, S , S , S] //tutti gli attori sono al sud Stati invalidi: [S, N, N, S] // il lupo mangia la capra [N, S, S, N] // il lupo mangia la capra [S, S, N, N] // la capra mangia il cavolo [N, N, S, S] // la capra mangia il cavolo [S, N, N, N] // la capra mangia il cavolo e il lupo mangia la capra [N, S, S, S] // la capra mangia il cavolo e il lupo mangia la capra
Transizioni // pastore va dal nord al sud [N, <pos lupo>, <pos capra>, <pos cavolo>] -> [S, <pos lupo>, <pos capra>, <pos cavolo>] // pastore va dal sud al nord [S, <pos lupo>, <pos capra>, <pos cavolo>] -> [N, <pos lupo>, <pos capra>, <pos cavolo>] // pastore e lupo vanno dal nord al sud [N, N, <pos capra>, <pos cavolo>] -> [S, S, <pos capra>, <pos cavolo>] // pastore e lupo vanno dal sud al nord [S, S, <pos capra>, <pos cavolo>] -> [N, N, <pos capra>, <pos cavolo>]
Transizioni // pastore e capra vanno dal nord al sud [N, <pos lupo>, N, <pos cavolo>] -> [S, <pos lupo>, S, <pos cavolo>] // pastore e capra vanno dal sud al nord [S, <pos lupo>, S, <pos cavolo>] -> [N, <pos lupo>, N, <pos cavolo>] // pastore e cavolo vanno dal nord al sud [N, <pos lupo>, <pos capra>, N] -> [S, <pos lupo>, <pos capra>, S] // pastore e cavolo vanno dal sud al nord [S, <pos lupo>, <pos capra>, S] -> [N, <pos lupo>, <pos capra>, N]
Diagramma stati [N, N, N, N] [S, S, N, N] [S, N, N, N] [S, N, S, N] [S, S, S, N] [S, N, S, S] [N, S, N, N] [N, S, S, N] [N, N, S, S] [N, N, N, S] [S, S, N, S] [N, S, N, S] [S, S, S, S]