Esercizio - Unificazione e conversione in CNF nel primo ordine (slide del corso)
In questa pagina 3
Testo (dalle slide "Inference in first-order logic" del corso di Intelligenza Artificiale, Ing. dell'Informazione UniPD; teoria in Logica del primo ordine - unificazione, forward e backward chainingLogica del primo ordine (oggetti, relazioni, funzioni, quantificatori e errori tipici), sostituzioni, istanziazione universale ed esistenziale (Skolem), proposizionalizzazione e suoi limiti, unificazione con occur check, risoluzione nel primo ordine con conversione in CNF, esempio Criminal(West), clausole definite, forward e backward chaining, ingegneria della conoscenza.Logica del primo ordine - unificazione, forward e backward chaining →).
- Unificare le coppie della tabella delle slide: con , con , con , con .
- Altre coppie: e ; e ; e ; e .
- Convertire in CNF: (a) "chi ama tutti gli animali è amato da qualcuno" (esempio delle slide); (b) "chi possiede un cane è un amante degli animali"; (c) "ogni studente ha superato qualche esame".
Punto 1: la tabella delle slide
Convenzione: le variabili sono minuscole, le costanti maiuscole. Si legano le variabili confrontando gli argomenti da sinistra a destra; dopo ogni legame lo si applica ai termini seguenti.
| Passi | |||
|---|---|---|---|
| ok; con : | |||
| con : ; con : | |||
| ; poi con , che con è | |||
| con : ; poi (cioè ) con : due costanti diverse | fallisce |
L'ultimo fallimento dipende solo dal nome: i due appartengono a enunciati diversi. Standardizzando il secondo ( al posto di ) si ha con : , e .
Punto 2: altre coppie
- e : primo argomento con : . Secondo: con : . Applicando anche a : . Entrambi diventano .
- e : ; secondo argomento: (cioè ) contro : costanti diverse, fallisce.
- e : ; secondo argomento: con : ; applicando anche a : . Entrambi diventano .
- e : ; secondo argomento: , cioè , contro : compare in , quindi l'occur check blocca il legame: fallisce. Senza il controllo si legherebbe , un termine infinito.
Controllati con la funzione unify della nota: restituisce i legami elencati e None nei tre casi di fallimento.
Punto 3: conversione in CNF
(a) Animali. .
- Eliminare (), prima l'implicazione interna e poi l'esterna: .
- Portare dentro: , poi De Morgan e doppia negazione: .
- Standardizzare le due (sono variabili diverse): .
- Skolemizzare: entrambi gli sono sotto , quindi funzioni di : , : .
- Togliere .
- Distribuire: :
Verifica numerica: su un dominio di oggetti, per tutte le interpretazioni di e , l'enunciato originale è vero se e solo se esiste una scelta delle funzioni (tra le ) che rende vera la CNF. Zero discordanze.
(b) Cani. .
- Eliminare : .
- Portare dentro: e De Morgan: .
- Nessun rimasto: niente Skolem. Togliere i : .
Una clausola. L' nell'antecedente è diventato : "se esiste un cane posseduto allora" è lo stesso che "per ogni cane posseduto".
(c) Esami. .
- .
- Skolem: (l'esame dipende dallo studente): . Con una costante invece di si direbbe che tutti hanno superato lo stesso esame.
- Distribuire: .
Due clausole.
Versione ripasso
- Unificazione (variabili minuscole, da sinistra, applicando i legami già fatti): con dà ; con dà ; con dà ; con fallisce (stesso nome ), ma standardizzando si ha .
- Altre: e danno ; e falliscono (costanti diverse); e danno ; e falliscono per occur check ( in ).
- CNF animali: ; eliminare , dentro (con ), standardizzare, Skolem (, ), via , distribuire: . Controllato su dominio di oggetti, interpretazioni, discordanze.
- CNF cani: nell'antecedente diventa : (una clausola, niente Skolem).
- CNF esami: dà con le clausole e .
- Errori tipici: dimenticare di standardizzare; Skolem con costante dentro un ; legare senza occur check; non applicare ai termini successivi i legami trovati.