Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi G - M > Logica matematica
 
Esercizi Prolog
Clicca QUI per vedere il messaggio nel forum
Gimmy
Ciao a tutti, qualcuno ha svolto il compitino di prolog del 6 giugno 2008?
Se si o se cmq sa come risoovere i due esercizi puo aiutarmi per favore? Non sono sicuro di alcune regole sullo svolgimento degli es di prolog...

Grazie!

marco.b
Originally posted by Gimmy
Ciao a tutti, qualcuno ha svolto il compitino di prolog del 6 giugno 2008?
Se si o se cmq sa come risoovere i due esercizi puo aiutarmi per favore? Non sono sicuro di alcune regole sullo svolgimento degli es di prolog...

Grazie!

infatti... anche se do per buoni gli esercizi postati nella sezione file da Simone_155, non riesco a capire come rinomina le variabili.
prova a dire di quale regola non sei sicuro.

Gimmy
Per esempio, facendo riferimento agli esercizi di Simone_155:

- in Luglio 2006 3.1, perchè nel ramo 1/4/ usa le lettere L1',L2',L3' se le lettere L1,L2,L3 non sono ancora state usate? Poi sempre in questo esercizio io ho rinominato le variabili in modo differente, cioè se in un ramo incontro + di una volta la stessa variabile (proveniente dal fatto) allora la rinomino, è sbagliato?

- se ottengo come primo elemento di un quesito il ' ! ' allora da quel punto non devo + tornare su per quel ramo giusto? Quindi in Giugno 2006 3.1 il programma non dovrebbe terminare una volta concluso il primo ramo (ossia 5/3/1/3/2/fail) ?

marco.b
- in Luglio 2006 3.1, perchè nel ramo 1/4/ usa le lettere L1',L2',L3' se le lettere L1,L2,L3 non sono ancora state usate? Poi sempre in questo esercizio io ho rinominato le variabili in modo differente, cioè se in un ramo incontro + di una volta la stessa variabile (proveniente dal fatto) allora la rinomino, è sbagliato?

era quello che chiedevo io, ed è scandaloso non riuscire a trovare ingiro una regola (che sicuramente sara semplice).
la prof a lezione ha fatto scrivere delle regole un po + formali ma tra queste non c'era la rinomina delle variabili.

- se ottengo come primo elemento di un quesito il ' ! ' allora da quel punto non devo + tornare su per quel ramo giusto? Quindi in Giugno 2006 3.1 il programma non dovrebbe terminare una volta concluso il primo ramo (ossia 5/3/1/3/2/fail) ? [/B][/QUOTE]

il cut congela il ramo dalla meta che lo fa saltar fuori fino a dove viene soddisfatto cioè sparisce. ma attenzione, se non c'è un fallimento e nel caso che dici tu c'è.

Gimmy
per le variabili non so... una regola generale dovrebbe essere che non possono esserci variabili del quesito e variabili del fatto uguali, ossia se nel quesito ho una X e anche nel fatto che devo applicare ho una X, allora la X del fatto va rinominata X'... però su tutto il resto non saprei...

ah ok... quindi nel caso quel ramo avesse dato true il programma sarebbe finito lì?
Poi un'altra cosa... se ho un ramo congelato da una certa istruzione a un'altra posso tornare a eseguire il programma prima di quel segmento (ossia prima dell'istruzione che genera il cut)?

valeriam.
Il backtracking congela il ramo da quando viene generato il ! a quando viene attraversato.

Ciò vuol dire che se prima che lo generate si possono far partire 2 rami quelli li fate partire. Spero di essere stata abbastanza chiara......

Per la differenza della rinomina tra N1 o N' è una convenzione che utilizza la prof x sua comodità. Non me la ricordo molto bene ma penso che dipende se la variabile è una variabile nuova non presente nella testa, o meno... (se mi viene in mente un lampo di genio ve lo faccio saxe xD )

marco.b
Originally posted by valeriam.
Il backtracking congela il ramo da quando viene generato il ! a quando viene attraversato.

Per la differenza della rinomina tra N1 o N' è una convenzione che utilizza la prof x sua comodità. Non me la ricordo molto bene ma penso che dipende se la variabile è una variabile nuova non presente nella testa, o meno... (se mi viene in mente un lampo di genio ve lo faccio saxe xD )


ciao, mi sapresti dire perche nell'esercizio 3.2 di febbrai 2006 alla fine salta fuori un L' ?
lung([], 2, N) unifica con la 2a regola che è un fatto!
mi sembra che questo contraddica le regole.

marco.b
Originally posted by marco.b
ciao, mi sapresti dire perche nell'esercizio 3.2 di febbrai 2006 alla fine salta fuori un L' ?
lung([], 2, N) unifica con la 2a regola che è un fatto!
mi sembra che questo contraddica le regole.


mi spiego meglio....
essendo un fatto secondo me quando viene utilizzato come regola non dovrei rinominare le variabili.

stiwi
penso che usi L' perchè c'è già una L nel quesito, che non corrisponde alla L della regola, quindi è necessaria la rinomina della variabile.

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate