PROLOG: PROgramming in LOGic Linguaggio usato per risolvere problemi che coinvolgono oggetti e relazioni tra oggetti.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "PROLOG: PROgramming in LOGic Linguaggio usato per risolvere problemi che coinvolgono oggetti e relazioni tra oggetti."

Transcript

1 Paradigmi di programmazione Imperativo: orientato alla soluzione algoritmica del problema (Assembler, C, Pascal, Ada,...) Dichiarativo: si concentra sulla descrizione del problema. Il programmatore specifica che cosa si deve calcolare, piuttosto che come calcolare; descrive il problema, le relazioni e concetti in esso coinvolti, non il modo dettagliato in cui il problema va risolto. Funzionale: il programma definisce funzioni Logico: il programma definisce relazioni PROLOG: PROgramming in LOGic Linguaggio usato per risolvere problemi che coinvolgono oggetti e relazioni tra oggetti. Programmare in Prolog consiste nel dichiarare fatti su oggetti e relazioni definire regole su oggetti e relazioni fare domande su oggetti e relazioni Fatti e regole costituiscono il programma logico. 1

2 Programma logico Un programma logico è costituito da un insieme di clausole definite: disgiunzioni di letterali con uno ed un unico letterale positivo (con n 0, e P, Q 1,..., Q n atomiche). Se n = 0, allora la clausola è un fatto. P Q 1 Q 2... Q n Altrimenti, la clausola si può riscrivere nella forma equivalente: (Q 1 Q 2... Q n P) (P Q 1 Q 2... Q n ) P :- Q1, Q2,..., Qn. regola P: testa della regola Q1, Q2,..., Qn: corpo della regola Il segno :- è un se ( ). La virgola è un. Un insieme di clausole definite (un programma logico) è sempre soddisfacibile. 2

3 Goal Un goal è una clausola negativa: tutti i letterali sono negativi: che equivale a Questa clausola corrisponde alla formula che equivale a Q 1 Q 2... Q n (Q 1 Q 2... Q n )?- Q1, Q2,..., Qn. goal x 1... x k (Q 1 Q 2... Q n ) x 1... x k (Q 1 Q 2... Q n ) Questa formula corrisponde alla negazione della query. Quindi il goal?- Q1, Q2,..., Qn. corrisponde alla query x 1... x k (Q 1 Q 2... Q n ) Le variabili nel goal hanno lettura esistenziale, la virgola è un AND. Esecuzione del programma logico P con goal G: la query corrispondente a G è derivabile dall insieme di formule corrispondenti a P? 3

4 Programmazione logica Supponiamo di avere la seguente base di conoscenza (KB): {padre(aldo, piero), padre(piero, ugo), x y( z(padre(x, z) padre(z, y)) nonno(x, y))} Verificare se da KB è derivabile x nonno(x, ugo) equivale a verificare se KB { x nonno(x, ugo)} è insoddisfacibile. Il programma logico P corrispondente a KB è la forma a clausole di KB: padre(aldo, piero) padre(piero, ugo) nonno(x, y) padre(x, z) padre(z, y) padre(aldo,piero). padre(piero,ugo). nonno(x,y) :- padre(x,z), padre(z,y). Verificare se da P è derivabile x nonno(x, ugo) si riduce a derivare (clausola vuota) da P {?- nonno(x, ugo)}. Risoluzione SLD con la regola di calcolo scelta del primo atomo :?- n(x, ugo) n(x 1, Y ) :- p(x 1, Z), p(z, Y ) Quindi KB = x nonno(x, ugo)?- p(x, Z), p(z, ugo) p(aldo, piero)?- p(piero, ugo) p(piero, ugo) 4

5 Programmazione logica per rispondere a domande ASK Domande ASK hanno spesso la forma quale x è tale che...? Un programma serve per calcolare dei valori e non solo per rispondere SI o NO. Informazioni utili si possono estrarre dalle sostituzioni applicate nella refutazione SLD. Le sostituzioni applicate nella derivazione data sopra sono: θ 0 = {X/X 1, ugo/y } θ 1 = {aldo/x, piero/z} θ 2 = La loro composizione è: Non solo P = x nonno(x, ugo), ma anche θ = θ 0 θ 1 θ 2 = {aldo/x, ugo/y, piero/z} P = nonno(x, ugo)θ cioè P = nonno(aldo, ugo) Quindi la composizione delle sostituzioni utilizzate nella SLD-refutazione fornisce una risposta alla domanda: chi è un nonno di ugo? Sostituzione di risposta (answer substitution): restrizione di θ 0 θ 1... θ n alle variabili del goal. Una esecuzione in programmazione logica consiste nel tentativo di dimostrare che esiste un istanza della query che segue logicamente dal programma, e, se esiste, calcolare la sostituzione di risposta data dalla dimostrazione. 5

6 PROGRAMMAZIONE = LOGICA + CONTROLLO Un programma PROLOG è una rappresentazione logica del problema Il problema viene risolto dal motore di inferenza del PROLOG, basato sulla risoluzione SLD, con strategia di ricerca in profondità. Importanti meccanismi di base: unificazione (che differenza c è tra unificazione e pattern matching?) procedimento di ricerca mediante backtracking PROLOG utilizzato soprattutto in Intelligenza Artificiale sistemi esperti e, in generale, sistemi basati sulla conoscenza elaborazione del linguaggio naturale pianificazione automatica Facilità di rapid prototyping 6

7 Semantica dichiarativa e semantica procedurale La chiave della programmazione logica è il fatto che una regola si può leggere in due modi: nonno(x,y) :- padre(x,z), padre(z,y). lettura dichiarativa ( che cosa ): per ogni X e Y, se esiste Z tale che X è padre di Z e Z è padre di Y, allora X è nonno di Y X Y Z(padre(X, Z) padre(z, Y ) nonno(x, Y )) Programma = specifica del problema lettura procedurale ( come ): per risolvere il problema nonno(x,y), si trovi Z che risolve il problema padre(x,z) e risolvere poi il problema padre(z,y) L insieme delle clausole che definiscono un predicato P costituiscono la definizione della procedura P Il Prolog puro consente sia la lettura dichiarativa che quella procedurale di un programma 7

8 Osservazione sulla lettura delle regole nonno(x,y) :- padre(x,z), padre(z,y). è la sintassi Prolog per la clausola Questa clausola corrisponde alla formula nonno(x, y) padre(x, z) padre(z, y) x y z(padre(x, z) padre(z, y) nonno(x, y)) Dato che z non occorre nel conseguente, la formula equivale a In una regola della forma testa :- corpo. x y( z(padre(x, z) padre(z, y)) nonno(x, y)) le variabili nella testa hanno un significato universale (su tutta la clausola); le variabili in corpo che non occorrono in testa hanno un significato esistenziale all interno del corpo. 8

9 PROLOG: rappresenta oggetti e relazioni vicino(c,c1). vicino(c,c2). colore(c1,blu). colore(c2,rosso). colore(x,y) :- vicino(x,z), colore(z,y). colore è una relazione: un oggetto può avere più colori.?- colore(c,x). ha più di una soluzione REVERSIBILITÀ dei predicati: una stessa procedura può essere invocata con diversi parametri di input/output?- colore(c,x).?- colore(x,rosso).?- colore(x,y). 9

10 Fatti, regole, procedure Fatti genitore(pam,bob). genitore(tom,bob). genitore(tom,liz). genitore(bob,ann). genitore(bob,pat). genitore(pat,jim). Regole figlio(x,y) :- genitore(y,x). madre(x,y) :- genitore(x,y), femmina(x). nonno(x,y) :- genitore(x,z), genitore(z,y). Procedure: insiemi di fatti e regole antenato(x,y) :- genitore(x,y). antenato(x,y) :- genitore(x,z), antenato(z,y). Le clausole (fatti e regole) di una procedura rappresentano modi alternativi di risolvere problemi della stessa forma (antenato). 10

11 Ricerca in profondità genitore(pam,bob). genitore(tom,bob). genitore(tom,liz). genitore(bob,ann). genitore(bob,pat). genitore(pat,jim). antenato(x,y) :- genitore(x,y). antenato(x,y) :- genitore(x,z), antenato(z,y).?- antenato(bob,jim). a(bob,jim) g(bob,jim) NO g(bob,z), a(z,jim) Z=ann a(z,jim) Z=pat a(z,jim) g(z,jim) NO g(z,z 1 ), a(z 1,jim) NO g(z,jim) YES g(z,z 1 ), a(z 1,jim) 11

12 Trace 1?- [bratko1]. % bratko1 compiled 0.00 sec, 3,336 bytes 2?- trace. [trace] 2?- antenato(bob,jim). Call: (6) antenato(bob, jim)? Call: (7) genitore(bob, jim)? Fail: (7) genitore(bob, jim)? Redo: (6) antenato(bob, jim)? Call: (7) genitore(bob, _G466)? Exit: (7) genitore(bob, ann)? Call: (7) antenato(ann, jim)? Call: (8) genitore(ann, jim)? Fail: (8) genitore(ann, jim)? Redo: (7) antenato(ann, jim)? Call: (8) genitore(ann, _G466)? Fail: (8) genitore(ann, _G466)? Fail: (7) antenato(ann, jim)? 12 Redo: (7) genitore(bob, _G466)? Exit: (7) genitore(bob, pat)? Call: (7) antenato(pat, jim)? Call: (8) genitore(pat, jim)? Exit: (8) genitore(pat, jim)? Exit: (7) antenato(pat, jim)? Exit: (6) antenato(bob, jim)?

13 Il backtracking Ogni sottogoal ha il proprio puntatore al programma likes(mary,food). /* 1 */ likes(mary,wine). /* 2 */ likes(john,beer). /* 3 */ likes(john,wine). /* 4 */ likes(john,mary). /* 5 */?- likes(mary,x), likes(john,x). Goal 1: likes(mary,x): X=food. Puntatore alla prossima clausola: 2 Goal 2: likes(john,x) con X=food. Fallimento dopo aver scandito tutta la procedura Tentativo di risoddisfare Goal 1, a partire dalla clausola 2: X=wine Goal 2 con X=wine (scansione della procedura dall inizio): successo 13

14 Ricerca in profondità La scelta di una strategia di ricerca può compromettere la completezza del sistema: Ricerca in profondità: si può espandere un cammino infinito e non trovare mai una soluzione Riordino delle clausole nel programma o degli atomi nel corpo delle regole: il significato dichiarativo non cambia, ma può cambiare il significato procedurale. Riordino delle clausole nel programma vicino(c,c1). vicino(x,y) :- vicino(y,x).?- vicino(c1,c). vicino(x,y) :- vicino(y,x). vicino(c,c1).?- vicino(c1,c). ERROR: Out of local stack 14

15 Riordino dei goal nel corpo delle regole pat jim pam bob ann tom liz /* Prima variante */ antenato(x,y) :- genitore(x,y). antenato(x,y) :- genitore(x,z), antenato(z,y).?- antenato(bob,jim).?- antenato(liz,bob). No /* riordino dei goal nel corpo della regola */ antenato(x,y) :- genitore(x,y). antenato(x,y) :- antenato(z,y), genitore(x,z).?- antenato(bob,jim).?- antenato(liz,bob). ERROR: Out of local stack 15

16 Il goal non è derivabile dal programma, ma il meccanismo di ricerca non termina antenato(x,y) :- genitore(x,y). antenato(x,y) :- antenato(z,y), genitore(x,z).?- antenato(liz,bob). a(liz,bob) (liz non è genitore di nessuno) g(liz,bob) NO a(z,bob), g(liz,z) g(z,bob), g(liz,z). NO a(z 1,bob), g(z,z 1 ), g(liz,z) g(z 1,bob), g(z,z 1 ), g(liz,z). NO a(z 2,bob), g(z 1,Z 2 ), g(z,z 1 ), g(liz,z). 16

17 Riordino delle clausole e dei goal pat jim pam bob ann tom liz antenato(x,y) :- antenato(z,y), genitore(x,z). antenato(x,y) :- genitore(x,y).?- antenato(bob,jim). ERROR: Out of local stack Goal derivabile ma la ricerca non termina?- antenato(liz,bob). ERROR: Out of local stack Goal non derivabile e la ricerca non termina Regole di programmazione 1. In una procedura, prima i fatti poi le regole (prima le cose più semplici, poi quelle più complicate) 2. Nel corpo di una regola, prima i goal più semplici da dimostrare o refutare, poi quelli più difficili 17

18 Il Prolog è corretto? Il predicato predefinito = controlla se due termini sono unificabili: Term 1 = Term 2 unifica Term 1 con Term 2. Ha successo se l unificazione ha successo?- f(x,pippo) = f(pluto,y). X = pluto Y = pippo Ma attenzione:?- X = f(x). X = f(f(f(f(f(f(f(f(f(f(...))))))))))?- unify_with_occurs_check(x,f(x)). No 18

19 L unificazione utilizzata dal motore di inferenza non esegue l occur check figlio(x,padre(x)).?- figlio(pippo,y). Y = padre(pippo)?- figlio(y,y). X = padre(padre(padre(padre(padre(padre(padre(padre(padre(padre(...)))))))))) 19

Raffinamenti della risoluzione

Raffinamenti della risoluzione Raffinamenti della risoluzione Il metodo di risoluzione fornisce vantaggi drastici rispetto ad altri sistemi di inferenza. Ma l applicazione non ristretta della risoluzione genera molte clausole inutili

Dettagli

Prolog: materiale didattico

Prolog: materiale didattico Prolog: materiale didattico Qualunque testo di introduzione al Prolog, ad esempio: I. Bratko. Programmare in Prolog per l Intelligenza Artificiale. Masson - Addison Wesley, 1988. W. F. Clocksin and C.

Dettagli

L 1 L 2... L k. dove L i = p i oppure L i = p

L 1 L 2... L k. dove L i = p i oppure L i = p Il metodo di risoluzione per la logica proposizionale Sistema di inferenza con una sola regola: la regola di risoluzione La regola di risoluzione si applica a clausole (disgiunzioni di letterali) dove

Dettagli

Introduzione alla Programmazione Logica ed al linguaggio PROLOG

Introduzione alla Programmazione Logica ed al linguaggio PROLOG Introduzione alla Programmazione Logica ed al linguaggio PROLOG Esercitazioni per il corso di Logica ed Intelligenza Artificiale a.a. 2014/15 Paolo Tomeo http://sisinflab.poliba.it/tomeo Programmazione

Dettagli

C1: L C1 C2: L C2 C: C1 C2

C1: L C1 C2: L C2 C: C1 C2 Abbiamo visto Gli agenti logici applicano inferenze a una base di conoscenza per derivare nuove informazioni. Concetti base della logica: sintassi: struttura formale delle sentenze semantica: verita` di

Dettagli

Programmazione Dichiarativa. Programmazione Logica. SICStus PROLOG PROLOG. http://www.sics.se/sicstus/ Bob Kowalski: "Algoritmo = Logica + Controllo"

Programmazione Dichiarativa. Programmazione Logica. SICStus PROLOG PROLOG. http://www.sics.se/sicstus/ Bob Kowalski: Algoritmo = Logica + Controllo Programmazione Logica Bob Kowalski: "Algoritmo = Logica + Controllo" nella programmazione tradizionale: il programmatore deve occuparsi di entrambi gli aspetti nella programmazione dichiarativa: il programmatore

Dettagli

Esempio compito 11 Sett 2008

Esempio compito 11 Sett 2008 Esempio compito 11 Sett 2008 no_dupl([], []). no_dupl([x Xs], Ys):- member(x, Xs), no_dupl(xs, Ys). no_dupl([x Xs], [X Ys]):- nonmember(x, Xs), no_dupl(xs, Ys). nonmember(_, []). nonmember(x, [Y Ys]):-X

Dettagli

Linguaggi di Programmazione Prolog (1) Prolog. Processo di dimostrazione (limiti) Linguaggio: Utile per:

Linguaggi di Programmazione Prolog (1) Prolog. Processo di dimostrazione (limiti) Linguaggio: Utile per: Linguaggi di Programmazione Prolog (1) Prolog Linguaggio: basato su una restrizione della logica del primo ordine dichiarativo Utile per: Prototipizzazione radipa (di alcuni problemi) Applicazioni di Intelligenza

Dettagli

Sistemi di dimostrazione

Sistemi di dimostrazione Sistemi di dimostrazione Un sistema di deduzione (o dimostrazione) consiste di un insieme di assiomi (a volte vuoto) un insieme di regole di inferenza Una deduzione (o derivazione) di una formula A da

Dettagli

IL PROBLEMA DELLA NEGAZIONE IPOTESI DI MONDO CHIUSO IPOTESI DI MONDO CHIUSO IPOTESI DI MONDO CHIUSO

IL PROBLEMA DELLA NEGAZIONE IPOTESI DI MONDO CHIUSO IPOTESI DI MONDO CHIUSO IPOTESI DI MONDO CHIUSO IL PROBLEMA DELLA NEGAZIONE Finora non abbiamo preso in esame il trattamento di informazioni negative Solo programmi logici costituiti da clausole definite e che quindi non possono contenere atomi negati.

Dettagli

IL PROBLEMA DELLA NEGAZIONE

IL PROBLEMA DELLA NEGAZIONE IL PROBLEMA DELLA NEGAZIONE Finora non abbiamo preso in esame il trattamento di informazioni negative Solo programmi logici costituiti da clausole definite e che quindi non possono contenere atomi negati.

Dettagli

Programmazione logica e PROLOG. Esercitazione 1. Sommario. Programmazione logica. Applicazioni della Programmazione Logica

Programmazione logica e PROLOG. Esercitazione 1. Sommario. Programmazione logica. Applicazioni della Programmazione Logica Sommario Programmazione logica e PROLOG Esercitazione 1 Programmazione logica Base delle conoscenze Interrogazione del sistema Regole Ricorsive Esecuzione dei programmi Modello operazionale Rappresentazione

Dettagli

Prolog Prodromi. Sistemi distribuiti LS 2003/2004 Prof. Andrea Omicini

Prolog Prodromi. Sistemi distribuiti LS 2003/2004 Prof. Andrea Omicini Prolog Prodromi Sistemi distribuiti LS 2003/2004 Prof. Andrea Omicini 1 Prima della Programmazione Logica I primi edifici formali: aritmetica e geometria Aristotele e l'inferenza logica Il concetto di

Dettagli

Introduzione alla Programmazione Logica ed al linguaggio PROLOG

Introduzione alla Programmazione Logica ed al linguaggio PROLOG Introduzione alla Programmazione Logica ed al linguaggio PROLOG Esercitazioni per il corso di Logica ed Intelligenza Artificiale a.a. 2013-14 Vito Claudio Ostuni Linguaggi procedurali e dichiarativi linguaggi

Dettagli

In Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile

In Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile IL PREDICATO CALL In Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile Un primo predicato predefinito che può essere utilizzato

Dettagli

In Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile

In Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile IL PREDICATO CALL In Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile Un primo predicato predefinito che può essere utilizzato

Dettagli

In Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile

In Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile IL PREDICATO CALL In Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile Un primo predicato predefinito che può essere utilizzato

Dettagli

Intelligenza Artificiale. Logica proposizionale: calcolo automatico

Intelligenza Artificiale. Logica proposizionale: calcolo automatico Intelligenza Artificiale Logica proposizionale: calcolo automatico Marco Piastra Logica formale (Parte 3) - Parte 3 Calcolo automatico Forme normali ed a clausole Risoluzione e refutazione Forward chaining

Dettagli

Prolog. Processo di dimostrazione (limiti) Dott. Fabio Massimo Zanzotto. Linguaggio: Utile per:

Prolog. Processo di dimostrazione (limiti) Dott. Fabio Massimo Zanzotto. Linguaggio: Utile per: ! "!#$&%&' Dott. Fabio Massimo Zanzotto Prolog Linguaggio: basato su una restrizione della logica del primo ordine ()+*-,.+*-/0 /213* 4657 Utile per: Prototipizzazione radipa (di alcuni problemi) Applicazioni

Dettagli

Programmazione logica e PROLOG. Esercitazione 1. AI - Carlucci Aiello & Nardi, 2007 Esercitazione 1 0

Programmazione logica e PROLOG. Esercitazione 1. AI - Carlucci Aiello & Nardi, 2007 Esercitazione 1 0 Programmazione logica e PROLOG Esercitazione 1 AI - Carlucci Aiello & Nardi, 2007 Esercitazione 1 0 Sommario Programmazione logica Base delle conoscenze Interrogazioni Regole Ricorsive Esecuzione dei programmi

Dettagli

Introduzione alla logica

Introduzione alla logica Corso di Intelligenza Artificiale 2011/12 Introduzione alla logica iola Schiaffonati Dipartimento di Elettronica e Informazione Sommario 2 Logica proposizionale (logica di Boole) Logica del primo ordine

Dettagli

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) 12 Giugno 2014 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si esprimano in logica dei predicati del I ordine le seguenti frasi:

Dettagli

Derivazioni SLD. Passo di derivazione SLD. Derivazione SLD. Notazione

Derivazioni SLD. Passo di derivazione SLD. Derivazione SLD. Notazione Passo di derivazione SLD Derivazioni SLD Sia R una regola di selezione e P un insieme di clausole definite. Diciamo che G' deriva da G in P con un passo di derivazione SLD (G => G') se G = A,B,C dove B

Dettagli

Maiuscole e minuscole

Maiuscole e minuscole Maiuscole e minuscole Abilità interessate Distinguere tra processi induttivi e processi deduttivi. Comprendere il ruolo e le caratteristiche di un sistema assiomatico. Riconoscere aspetti sintattici e

Dettagli

Università di Bergamo Facoltà di Ingegneria. Intelligenza Artificiale. Paolo Salvaneschi B1_1 V1.3. Sistemi a regole

Università di Bergamo Facoltà di Ingegneria. Intelligenza Artificiale. Paolo Salvaneschi B1_1 V1.3. Sistemi a regole Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi B1_1 V1.3 Sistemi a regole Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale

Dettagli

Intelligenza Artificiale. Logica proposizionale: calcolo simbolico

Intelligenza Artificiale. Logica proposizionale: calcolo simbolico Intelligenza Artificiale Logica proposizionale: calcolo simbolico Marco Piastra Logica formale (Parte 2) - 1 Parte 2 Calcolo logico Assiomi Derivazioni Derivazioni e conseguenza logica Completezza Logica

Dettagli

Logica: materiale didattico

Logica: materiale didattico Logica: materiale didattico M. Cialdea Mayer. Logica (dispense): http://cialdea.dia.uniroma3.it/teaching/logica/materiale/dispense-logica.pdf Logica dei Predicati (Logica per l Informatica) 01: Logica

Dettagli

Basi di Dati. prof. Letizia Tanca AA Linguaggi di query basati sulla. programmazione logica. programmazione logica

Basi di Dati. prof. Letizia Tanca AA Linguaggi di query basati sulla. programmazione logica. programmazione logica Basi di Dati prof. Letizia Tanca AA 2005-06 Linguaggi di query basati sulla programmazione logica Linguaggi di query basati sulla programmazione logica La programmazione logica è un paradigma di programmazione

Dettagli

Linguaggi di programmazione. Paradigmi di programmazione

Linguaggi di programmazione. Paradigmi di programmazione Linguaggi di programmazione Paradigmi di programmazione Linguaggi: un po di storia Albori: Macchine a programma memorizzato, Programmi come dati Linguaggio Macchina Assemblatore FORTRAN (calcolo scientifico)

Dettagli

Basi di Dati. prof. Letizia Tanca AA Altri linguaggi formali di interrogazione per il Modello Relazionale dei Dati

Basi di Dati. prof. Letizia Tanca AA Altri linguaggi formali di interrogazione per il Modello Relazionale dei Dati Basi di Dati prof. Letizia Tanca AA 2005-06 Altri linguaggi formali di interrogazione per il Modello Relazionale dei Dati Classificazione dei Linguaggi LINGUAGGI FORMALI Algebra relazionale Calcolo relazionale

Dettagli

Rappresentazione della conoscenza. Lezione 4. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 4 0

Rappresentazione della conoscenza. Lezione 4. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 4 0 Rappresentazione della conoscenza Lezione 4 Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 4 0 Efficienza nei programmi PROLOG Controllo dell inferenza Meta-predicati Termini e loro rappresentazione

Dettagli

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale

Dettagli

Rappresentazione della conoscenza. Lezione 5. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 5 0

Rappresentazione della conoscenza. Lezione 5. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 5 0 Rappresentazione della conoscenza Lezione 5 Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 5 0 Sommario Logiche non monotone Ipotesi di mondo chiuso Negazione come fallimento Semantica dei

Dettagli

anche i programmi sono strutture dati manipolabili utilizzo della ricorsione e non assegnamento

anche i programmi sono strutture dati manipolabili utilizzo della ricorsione e non assegnamento LINGUAGGIO PROLOG PROLOG: PROgramming in LOGic, nato nel 1973 E il più noto linguaggio di Programmazione Logica ALGORITMO = LOGICA + CONTROLLO Si fonda sulle idee di Programmazione Logica avanzate da R.

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 7 Alberto Ceselli alberto.ceselli@unimi.it Università degli Studi di Milano 19 Marzo 2013 Programmazione dichiarativa Programmi = Algoritmi + Strutture Dati

Dettagli

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione!paradigmi linguistici, costrutti!semantica!implementazione, strutture a tempo di esecuzione 1 Linguaggi di programmazione e astrazione! i linguaggi di programmazione ad alto

Dettagli

Richiami di Prolog. Marco Pennacchiotti. Tel Ing.dell Informazione, stanza 1035 (primo piano)

Richiami di Prolog. Marco Pennacchiotti. Tel Ing.dell Informazione, stanza 1035 (primo piano) Intelligenza Artificiale A.A. 2004-2005 20 Maggio 2005 Richiami di Prolog Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza 1035 (primo piano) 1 Riferimenti

Dettagli

Logica proposizionale

Logica proposizionale Logica proposizionale Proposizione: frase compiuta che è sempre o vera o falsa. Connettivi Posti in ordine di precedenza: not, and, or, implica, doppia implicazione Sintassi Le proposizioni sono costituite

Dettagli

Sistemi Deduttivi. Marco Piastra. Intelligenza Artificiale I. Intelligenza Artificiale I - A.A Sistemi Deduttivi[1]

Sistemi Deduttivi. Marco Piastra. Intelligenza Artificiale I. Intelligenza Artificiale I - A.A Sistemi Deduttivi[1] Intelligenza Artificiale I Sistemi Deduttivi Marco Piastra Intelligenza Artificiale I - A.A. 2010- Sistemi Deduttivi[1] Calcolo simbolico? Una fbf è conseguenza logica di un insieme di fbf sse qualsiasi

Dettagli

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) 29 Gennaio 2015 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si esprimano in logica dei predicati del I ordine le seguenti frasi:

Dettagli

CAPITOLO 5. SLD-risoluzione

CAPITOLO 5. SLD-risoluzione CAPITOLO 5 SLD-risoluzione Nel Capitolo 3 abbiamo visto alcuni esempi elementari di programmazione con clausole definite. Riprendiamo uno di quegli esempi. In particolare, il programma definito costituito

Dettagli

(X (, Y, Y Z ) Z " Z Z

(X (, Y, Y Z ) Z  Z Z ARITMETICA E RICORSIONE Non esiste, in logica, alcun meccanismo per la valutazione di funzioni, operazione fondamentale in un linguaggio di programmazione I numeri interi possono essere rappresentati come

Dettagli

Intelligenza Artificiale I

Intelligenza Artificiale I Intelligenza Artificiale I Risoluzione e clausole di Horn Marco Piastra Risoluzione e clausole di Horn [1] Sistemi deduttivi e automazione Il problema è decidibile? La definizione di derivabilità a la

Dettagli

TABELLA OPERATORI ARITMETICI

TABELLA OPERATORI ARITMETICI ARITMETICA E RICORSIONE Non esiste, in logica, alcun meccanismo per la valutazione di funzioni, operazione fondamentale in un linguaggio di programmazione I numeri interi possono essere rappresentati come

Dettagli

Intelligenza Artificiale I

Intelligenza Artificiale I Intelligenza Artificiale I Logica formale Automazione del calcolo Marco Piastra Logica formale Automazione del calcolo - Calcolo automatico Una logica (p.es. L P ) è decidibile Se esiste una procedura

Dettagli

Forme normali, clausole e Calcolo con regola di Risoluzione

Forme normali, clausole e Calcolo con regola di Risoluzione Forme normali, clausole e Calcolo con regola di Risoluzione Esempi di equivalenze valide α β (α β ) (α β ) α ( β γ ) ( xα ) ( xα ) α α α α β α β α β (α β ) (α γ ) x α x α V α α F α 1 Forma normale congiuntiva

Dettagli

Basi di Dati. prof. Letizia Tanca. Linguaggi di query basati sulla. programmazione logica. programmazione logica

Basi di Dati. prof. Letizia Tanca. Linguaggi di query basati sulla. programmazione logica. programmazione logica Basi di Dati prof. Letizia Tanca Linguaggi di query basati sulla programmazione logica Linguaggi di query basati sulla programmazione logica La programmazione logica è un paradigma di programmazione basato

Dettagli

Intelligenza Artificiale. Breve introduzione alla logica classica (Parte 2)

Intelligenza Artificiale. Breve introduzione alla logica classica (Parte 2) Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra Logica formale (Parte 2) - Introduzione alla logica formale Parte. Preambolo: algebra di Boole, proposizioni, conseguenza

Dettagli

Intelligenza Artificiale I

Intelligenza Artificiale I Intelligenza Artificiale I Risoluzione con unificazione Marco Piastra Risoluzione con unificazione [1] Risoluzione proposizionale Procedura per stabilire se a) Refutazione { } e traduzione in forma normale

Dettagli

Agenti Basati su Logica

Agenti Basati su Logica Agenti Basati su Logica Corso di Intelligenza Artificiale, a.a. 2017-2018 Prof. Francesco Trovò 09/04/2018 Agenti basati sulla logica Generico agente logico Il mondo del Wumpus Logica proposizionale Inferenza

Dettagli

UNIFICAZIONE E PATTERN MATCHING

UNIFICAZIONE E PATTERN MATCHING UNIFICAZIONE E PATTERN MATCHING In Intelligenza Artificiale (IA), la maggior parte dei sistemi basati su conoscenza poggia sul confronto di descrizioni (simboliche), nella forma di Unificazione o di Matching.

Dettagli

Intelligenza Artificiale. Logica proposizionale classica (Parte 2)

Intelligenza Artificiale. Logica proposizionale classica (Parte 2) Intelligenza Artificiale Logica proposizionale classica (Parte 2) Marco Piastra Logica formale (Parte 2) - Introduzione alla logica formale Parte. Preambolo: algebra di Boole, proposizioni, conseguenza

Dettagli

anche i programmi sono strutture dati manipolabili utilizzo della ricorsione e non assegnamento

anche i programmi sono strutture dati manipolabili utilizzo della ricorsione e non assegnamento IL LINGUAGGIO PROLOG PROLOG: PROgramming in LOGic, nato nel 1973 E il più noto linguaggio di Programmazione Logica ALGORITMO = LOGICA + CONTROLLO Si fonda sulle idee di Programmazione Logica avanzate da

Dettagli

Rappresentazione della Conoscenza. Lezione 2. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 2 0

Rappresentazione della Conoscenza. Lezione 2. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 2 0 Rappresentazione della Conoscenza Lezione 2 Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 2 0 Logica come linguaggio di rappresentazione della conoscenza Sommario richiami sintassi e semantica

Dettagli

3.2 Calcolo della risoluzione

3.2 Calcolo della risoluzione 3.2 Calcolo della risoluzione Il calcolo della risoluzione serve a stabilire l insoddisfacibilità di proposizioni in forma normale congiuntiva. Ai fini della soddisfacibilità è equivalente considerare

Dettagli

Il sistema di dimostrazione dei tableaux semantici. Il metodo dei tableaux è un modo per dimostrare una formula logica in maniera sistematica:

Il sistema di dimostrazione dei tableaux semantici. Il metodo dei tableaux è un modo per dimostrare una formula logica in maniera sistematica: Il sistema di dimostrazione dei tableaux semantici Il metodo dei tableaux è un modo per dimostrare una formula logica in maniera sistematica: un certo numero di regole di inferenza delle istruzioni su

Dettagli

Linguaggi di programmazione e astrazione

Linguaggi di programmazione e astrazione Linguaggi di programmazione e astrazione i linguaggi di programmazione ad alto livello moderni sono il più potente strumento di astrazione messo a disposizione dei programmatori che possono, con un solo

Dettagli

Fondamenti di Intelligenza Artificiale M

Fondamenti di Intelligenza Artificiale M Fondamenti di Intelligenza Artificiale M 1 Esempi di possibili esercizi Description Logic e SW Introdurre brevemente la differenza tra Open World Assumption e Close World Assumption, illustrando tale differenza

Dettagli

Ragionamento Automatico Richiami di calcolo dei predicati

Ragionamento Automatico Richiami di calcolo dei predicati Richiami di logica del primo ordine Ragionamento Automatico Richiami di calcolo dei predicati (SLL: Capitolo 7) Sintassi Semantica Lezione 2 Ragionamento Automatico Carlucci Aiello, 2004/05Lezione 2 0

Dettagli

I predicati cut e not

I predicati cut e not Operatore Informatico Giuridico Informatica Giuridica Avanzata A.A. 2006/2007 I Semestre I predicati cut e not Ing. Rossella Rubino CIRSFID rrubino@cirsfid.unibo.it 31 Ottobre 2006 Il cut Il predicato

Dettagli

Esercitazioni per il corso di Logica Matematica

Esercitazioni per il corso di Logica Matematica Esercitazioni per il corso di Logica Matematica Luca Motto Ros 02 marzo 2005 Nota importante. Queste pagine contengono appunti personali dell esercitatore e sono messe a disposizione nel caso possano risultare

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 8 Modelli, Formule Valide, Conseguenza Logica Proof Systems Regole di inferenza per Calcolo Proposizionale

Dettagli

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) 13 Gennaio 2015 Tempo a disposizione: 2 h Risultato: 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) 13 Gennaio 2015 Tempo a disposizione: 2 h Risultato: 32/32 punti FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) 13 Gennaio 2015 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si esprimano in logica dei predicati del I ordine le seguenti frasi:

Dettagli

Agenti logici: calcolo proposizionale. Maria Simi a.a. 2015/2016

Agenti logici: calcolo proposizionale. Maria Simi a.a. 2015/2016 Agenti logici: calcolo proposizionale Maria Simi a.a. 2015/2016 Sintassi La sintassi definisce quali sono le frasi legittime del linguaggio: formula formulaatomica simbolo formulacompless a formulaatomica

Dettagli

Risoluzione efficiente. Agenti logici: sistemi a regole. Strategie di risoluzione. Strategie di cancellazione. Cancellazione di tautologie

Risoluzione efficiente. Agenti logici: sistemi a regole. Strategie di risoluzione. Strategie di cancellazione. Cancellazione di tautologie Risoluzione efficiente Agenti logici: sistemi a regole Regole all indietro e programmazione logica Regole in avanti e basi di dati deduttive Maria Simi a.a. 2011-2012 Il metodo di risoluzione per il FOL

Dettagli

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) FONDMENTI DI INTELLIGENZ RTIFIILE (8 FU) 10 Luglio 2014 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si esprimano in logica dei predicati del I ordine le seguenti frasi: 1. Lucy

Dettagli

API. Ripasso di logica. Davide Martinenghi. Politecnico di Milano. API Davide Martinenghi (1/30)

API. Ripasso di logica. Davide Martinenghi. Politecnico di Milano. API Davide Martinenghi (1/30) API Ripasso di logica Davide Martinenghi Politecnico di Milano API Davide Martinenghi (1/30) Logica proposizionale - sintassi L è un linguaggio della logica proposizionale L alfabeto di L è composto da

Dettagli

6 Calcolo della risoluzione

6 Calcolo della risoluzione 6 Calcolo della risoluzione Il calcolo della risoluzione serve a stabilire l insoddisfacibilità di insiemi di proposizioni scritte in forma normale congiuntiva. Il calcolo della risoluzione si esprime

Dettagli

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 14 Gennaio 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 14 Gennaio 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti FONDAMENTI DI INTELLIGENZA ARTIFICIALE 14 Gennaio 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si rappresentino in logica dei predicati del I ordine, le seguenti affermazioni:

Dettagli

Esercizi di Logica Matematica

Esercizi di Logica Matematica Esercizi di Logica Matematica Francesco Bottacin 1 Logica Proposizionale Esercizio 1.1. Eliminare le parentesi non necessarie nelle seguenti formule: 1. ((A B) ( C)) 2. (A (B ( C))) 3. ((A B) (C D)) 4.

Dettagli

Intelligenza Artificiale. Sistemi a regole Sistemi esperti

Intelligenza Artificiale. Sistemi a regole Sistemi esperti Intelligenza Artificiale Sistemi a regole Sistemi esperti Marco Piastra Sistemi a regole - 1 Sistemi a regole Sistemi esperti 1. Introduzione al calcolo dei predicati 2. Sistemi a regole 3. Jess 4. Fox,

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 1 Calcolo Proposizionale: sintassi e semantica Tautologie Esempi di Formalizzazione di Enunciati pag.

Dettagli

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 16 Giugno 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 16 Giugno 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti FONDAMENTI DI INTELLIGENZA ARTIFICIALE 16 Giugno 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si modellino le seguenti frasi (si noti che il dominio contiene solo entità

Dettagli

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) 11 Settembre 2014 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si esprimano in logica dei predicati del I ordine le seguenti frasi:

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 7 Formule Valide, Conseguenza Logica Proof System per la Logica del Primo Ordine Leggi per i Quantificatori

Dettagli

Logica e risoluzione: esercizi

Logica e risoluzione: esercizi Logica e risoluzione: esercizi 1 CLAUSOLE Una clausola è una disgiunzione di letterali (cioè formule atomiche negate e non negate), in cui tutte le variabili sono quantificate universalmente in modo implicito.

Dettagli

INTELLIGENZA ARTIFICIALE (elementi) 6 cfu

INTELLIGENZA ARTIFICIALE (elementi) 6 cfu INTELLIGENZA ARTIFICIALE (elementi) 6 cfu Docente: prof.ssa Stefania Bandini Esercitatore: dr. Matteo Palmonari Dipartimento di Informatica, Sistemistica e Comunicazione Università di Milano-Bicocca www.lintar.disco.unimib.it

Dettagli

e Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità

e Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità Intelligenza Artificiale I Soddisfacibilità e Algoritmi Marco Piastra Intelligenza Artificiale I - A.A. 2010- Soddisfacibilità e Semantic Tableau [1] Problemi e decidibilità (automatica) Problema Un problema

Dettagli

14. Nozione di modello e verità di un predicato

14. Nozione di modello e verità di un predicato 14. Nozione di modello e verità di un predicato Per definire la validità di un predicato facciamo uso della nozione di modello. Intuitivamente un modello definisce in modo primitivo l interpretazione delle

Dettagli

Procedura di Davis Putnam

Procedura di Davis Putnam Procedura di Davis Putnam Nel 1960 è stata introdotta la procedura di Davis Putnam. Doveva essere una tecnica di theorem proving adatta all automazione, per la logica proposizionale e del I ordine. La

Dettagli

COMPITO DI INTELLIGENZA ARTIFICIALE (v.o.) PARTE I FONDAMENTI DI INTELLIGENZA ARTIFICIALE. 13 Dicembre 2006 (Tempo a disposizione 2h; su 32 punti)

COMPITO DI INTELLIGENZA ARTIFICIALE (v.o.) PARTE I FONDAMENTI DI INTELLIGENZA ARTIFICIALE. 13 Dicembre 2006 (Tempo a disposizione 2h; su 32 punti) COMPTO D NTELLGENZA ARTFCALE (v.o.) PARTE FONDAMENT D NTELLGENZA ARTFCALE 13 Dicembre 200 (Tempo a disposizione 2h; su 32 punti) Esercizio 1: (punti ) Sia data una formulazione CSP del problema delle regine

Dettagli

Fondamenti di Intelligenza Artificiale M a.a. 2010/2011. Note sul compito d esame

Fondamenti di Intelligenza Artificiale M a.a. 2010/2011. Note sul compito d esame Fondamenti di Intelligenza Artificiale M a.a. 2010/2011 Note sul compito d esame 1 Composizione di un possibile testo d esame Il testo d esame di Fondamenti di Intelligenza Artificiale M, dal 2009/2010

Dettagli

Inferenza nella logica del primo ordine

Inferenza nella logica del primo ordine Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A7_6 V1.5 Inferenza nella logica del primo ordine Il contenuto del documento è liberamente utilizzabile dagli studenti,

Dettagli

Problemi decisionali. Esempi

Problemi decisionali. Esempi Problemi decisionali La teoria della complessità computazionale è definita principalmente in termini di problemi di decisione Essendo la risposta binaria, non ci si deve preoccupare del tempo richiesto

Dettagli

Fondamenti Logici dell Informatica

Fondamenti Logici dell Informatica Fondamenti Logici dell Informatica Corso di Laurea Magistrale in Informatica Introduzione al Corso Ugo Dal Lago Anno Accademico 2017-2018 Sezione 1 Introduzione al Corso Questo Corso Questo è un corso

Dettagli

Intelligenza Artificiale I

Intelligenza Artificiale I Intelligenza Artificiale I Logica formale Calcolo simbolico Marco Piastra Logica formale - Calcolo simbolico - 1 Conseguenza, decidibilità Una fbf è conseguenza logica di un insieme di fbf sse qualsiasi

Dettagli

Soddisfacibilità e Semantic Tableau [1]

Soddisfacibilità e Semantic Tableau [1] Intelligenza Artificiale I Soddisfacibilità e Semantic Tableau Marco Piastra Soddisfacibilità e Semantic Tableau [1] Problemi e decidibilità (automatica) Problema Un problema è una relazione tra istanze

Dettagli

15. Nozione di modello e verità di un predicato

15. Nozione di modello e verità di un predicato 15. Nozione di modello e verità di un predicato Def. 0.1 (modello di un linguaggio predicativo) Dato linguaggio predicativo L con costanti c j e predicati atomici P k (x 1,..., x n ) un modello per L è

Dettagli

Agenti logici: sistemi a regole

Agenti logici: sistemi a regole Agenti logici: sistemi a regole Regole all indietro e programmazione logica Maria Simi a.a. 2015-2016 KB in forma a regole Forma normale implicativa (del tutto generale) P 1 P k Q 1 Q n Caso particolare

Dettagli

View-based query answering

View-based query answering View-based query answering Maurizio Lenzerini Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza Anno Accademico 2004/2005 Prerequisites Calcolo relazionale (FOL

Dettagli

Interpreti, compilatori e semantica operazionale

Interpreti, compilatori e semantica operazionale Interpreti, compilatori e semantica operazionale 1 Linguaggi di programmazione Come si comprendono le caratteristiche di un linguaggio di programmazione? Molte risposte diverse manuali, documentazione

Dettagli

Soddisfacibilità e Semantic Tableau [1]

Soddisfacibilità e Semantic Tableau [1] Intelligenza Artificiale I Soddisfacibilità e Semantic Tableau Marco Piastra Soddisfacibilità e Semantic Tableau [1] Problemi e decidibilità (automatica) Problema In forma rigorosa, un problema è una relazione

Dettagli

15. Nozione di modello e verità di un predicato

15. Nozione di modello e verità di un predicato 15. Nozione di modello e verità di un predicato Def. (modello di un linguaggio predicativo) Dato linguaggio predicativo L con costanti c j e predicati atomici P k (x 1,..., x n ) un modello per L è dato

Dettagli

FONDAMENTI DI INTELLIGENZA ARTIFICIALE Giugno 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE Giugno 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti FONDAMENTI DI INTELLIGENZA ARTIFICIALE Giugno 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Date le seguenti frasi in linguaggio naturale: 1.Mario sa risolvere gli stessi

Dettagli