CLP 8 marzo 2011
Applicazioni di Intelligenza Artificiale - CLP
Prof. Marco Gavanelli
Esercizio (8 punti)
Una infermiera deve visitare a casa dei pazienti. Ogni paziente va visitato in una determinata fascia oraria. Il file pazienti.pl contiene per ogni paziente un fatto
|
dove
- ID è un numero intero che identifica univocamente il paziente
- OrarioMinimo e OrarioMassimo sono il minimo e massimo orario in cui deve avvenire la visita.
Il file pazienti.pl contiene inoltre, per ogni coppia di pazienti (diversi) un fatto
|
che indica quanto tempo è necessario per andare dal domicilio del Paziente1 a quello del Paziente2.
L'infermiera parte dall'ospedale e alla fine della giornata ritorna all'ospedale, indicato nel file pazienti.pl dall'identificatore 0.
Si scriva un programma CLP(FD) che calcola qual è il tragitto ottimale dell'infermiera, in modo da minimizzare il tempo totale impiegato dall'infermiera.
Si supponga per semplicità che la visita sia istantanea (abbia durata nulla) e che l'infermiera non possa effettuare pause fra una visita e l'altra, ma riparta immediatamente per la destinazione successiva (il prossimo paziente o l'ospedale, se si sono già visitati tutti i pazienti).