Richiami di Prolog. Marco Pennacchiotti. Tel Ing.dell Informazione, stanza 1035 (primo piano)
|
|
- Filippo Turco
- 5 anni fa
- Visualizzazioni
Transcript
1 Intelligenza Artificiale A.A Maggio 2005 Richiami di Prolog Marco Pennacchiotti Tel Ing.dell Informazione, stanza 1035 (primo piano) 1
2 Riferimenti Testi di riferimento per il Prolog: - Prolog Programming - Paul Brna - Learn Prolog Now! - Blackbourn,Bos,Stregnitz Dove scaricare SWI Prolog: - Ricevimento: - Giovedì, dalle 14 alle 16 Stanza 1035 Primo Piano Ingegneria della Informazione 2
3 Sommario Perché (ancora) Prolog? I concetti essenziali del prolog: E un linguaggio dichiarativo Utilizza il Modus Ponens Utilizza l unificazione Utilizza uno spazio di ricerca delle soluzioni in profondità Liste Modifiche dello spazio di ricerca Tecniche di programmazione Test in itinere 3
4 Perché (ancora) Prolog? Il Prolog è il linguaggio di programmazione ideale per analizzare la sintassi del Linguaggio Naturale (LN): Le regole grammaticali del LN possono essere facilmente rappresentate con regole Prolog Uno stesso programma Prolog consente di :» Riconoscere se una frase in un LN è sintatticamente corretta (Riconoscimento)» Produrre tutte le frasi sintatticamente corrette di un LN (Generazione) GRAMMATICA LN s -> n v n -> Mario n -> Giorgio v -> corre v -> mangia PROGRAMMA PROLOG s --> n, v. n --> [Mario]. n --> [Giorgio]. v --> [corre]. v --> [mangia]. Riconoscimento: Mario mangia OK! Giorgio Mario NO! Generazione: Mario mangia Mario corre Giorgio mangia Giorgio corre 4
5 Sommario Perché (ancora) Prolog? I concetti essenziali del prolog: E un linguaggio dichiarativo Utilizza il Modus Ponens Utilizza l unificazione Utilizza uno spazio di ricerca delle soluzioni in profondità Liste Modifiche dello spazio di ricerca Tecniche di programmazione 5
6 Linguaggio Dichiarativo Linguaggi di programmazione Procedurali (C, Java, etc) COSA DEVO FARE PER? Obiettivo: dato un input elaborare un output tramite un algoritmo Il programmatore deve: implementare l algoritmo in una procedura Dichiarativi (Prolog, etc) CHE PROPRIETA DEVE AVERE UN OGGETTO PER? Obiettivo: dati degli oggetti verificare le loro proprietà e relazioni (query) Il programmatore deve: codificare proprietà, relazioni e i loro vincoli in una base di conoscenza (knowledge base, KB) attraverso fatti e regole INPUT procedurale OUTPUT PROPRIETA DA VERIFICARE dichiarativo PROPRIETA VERIFICATA Algoritmo Risolutivo Base di conoscenza 6
7 Linguaggio Dichiarativo ESEMPIO Problema: data una lista di numeri, ordinarla in ordine crescente. - Soluzione Procedurale: COSA DEVO FARE PER ORDINARE UNA LISTA? Obiettivo: data la lista in input ottenere in output la sua versione ordinata Il programmatore deve: implementare una procedura di ordinamento - Soluzione Dichiarativa: CHE PROPRIETA DEVONO AVERE DUE LISTE PER ESSERE UNA L ORDINAMENTO DELL ALTRA? Obiettivo: rappresentare una relazione tra due liste che sia vera quando una è l ordinamento dell altra Il programmatore deve: codificare le proprietà ed i vincoli che la relazione deve avere affinché sia vera [ 3, 1, 7, 2 ] [ 1, 2, 3, 7 ] ORDINAMENTO ( [3,1,7,2], Y ) ORDINAMENTO ( [3,1,7,2], [1,2,3,7] ) procedurale Selection Sort dichiarativo lista_riordinata(x,y) :- permutazione(x,y), ha_elementi_ordinati(y). 7
8 Cos è un programma Prolog? Un programma Prolog è una base di dati, ovvero una collezione di: - FATTI cose incondizionatamente vere nel dominio di interesse - REGOLE cose condizionatamente vere nel dominio di interesse uomo(socrate). uomo(platone). maestro_di(socrate,platone). mortale(x) :- uomo(x). conosce(x,y) :- maestro(x,y). conosce(x,y) :- maestro(y,x). FATTI: PROPRIETA : socrate è un uomo, platone è un uomo RELAZIONI: socrate è maestro di platone REGOLE: PROPRIETA : X è mortale se è un uomo RELAZIONI: X conosce Y se X è maestro di Y Un esecuzione di un programma Prolog è una QUERY alla base di dati riguardo alla conoscenza (esplicita o implicita) racchiusa nel programma:?- uomo(socrate) yes!?- conosce(socrate,platone) yes! 8
9 Sommario Perché (ancora) Prolog? I concetti essenziali del prolog: E un linguaggio dichiarativo Utilizza il Modus Ponens Utilizza l unificazione Utilizza uno spazio di ricerca delle soluzioni in profondità Liste Modifiche dello spazio di ricerca Tecniche di programmazione 9
10 Modus Ponens: la deduzione in Prolog Le Regole Prolog implementano la regola di inferenza logica del Modus Ponens MODUS PONENS IN LOGICA x uomo(x) mortale(x), uomo(socrate) mortale(socrate) MODUS PONENS IN PROLOG uomo(socrate). mortale(x) :- uomo(x). mortale(socrate). X è mortale se X è un uomo (condizione sufficiente, ma non necessaria, per essere mortale è essere uomo) Questo metodo di deduzione logica è alla base del ragionamento che permette all interprete Prolog di trovare le informazioni richieste in una query, a partire dalle informazioni racchiuse nel programma 10
11 Modus Ponens: esempio Esempio di programma con congiunzioni e disgiunzioni tifoso(mario,lazio). vinto(lazio). famoso(giorgio). Mario è tifoso della Lazio. La Lazio ha vinto. Giorgio è famoso. felice(x) :- felice(x) :- felice(x) :- ricco(x), famoso(x). sano(x). tifoso(x,y), vinto(y). X è felice: - Se è ricco e famoso OPPURE - Se è sano OPPURE - Se è tifoso di una squadra E la squadra ha vinto Esempio di risposta a query utilizzando al Modus Ponens?- felice(mario). YES!?- felice(giorgio) NO! Closed World Assumption eppure ci potrebbero essere altri modi per essere felici, non rappresentati nel programma! 11
12 Sommario Perché (ancora) Prolog? I concetti essenziali del prolog: E un linguaggio dichiarativo Utilizza il Modus Ponens Utilizza l unificazione Utilizza uno spazio di ricerca delle soluzioni in profondità Liste Modifiche dello spazio di ricerca Tecniche di programmazione 12
13 Unificazione Fatti, regole e queries sono costituiti da termini. Esistono tre tipi di termini: Costanti (mario, giorgio, 10, -11, ) Variabili (X,Y, ) Termini complessi (felice(giorgio), felice(x), f(f(f(x), ) Due termini unificano se sono uguali o se contengono variabili che possono essere istanziate in modo da rendere i termini uguali ESEMPI POSITIVI mario = mario X = Y X = mario ama(joe,x)=ama(y,laura) YES! X=_5018 X=_5018 YES! X=mario YES! joe=y laura=x YES! ESEMPI NEGATIVI mario = giorgio NO! mario = felice(mario) NO! ama(joe,x) = ama(x,laura) NO! OCCURS CHECK X = f(x) X=f(f(f(f(f(f(f(f(f(f(...)))))))))) Yes 13
14 Programmare con l Unificazione Si possono costruire semplici programmi Prolog utilizzando la solo unificazione, senza fare quindi uso di inferenza logica vertical(line(point(x,y),point(x,z))). horizontal(line(point(x,y),point(z,y))).?- vertical(line(point(1,2),point(3,4))). NO!?- horizontal(line(point(3,1),x)). X = point(_g21,1) YES! Questo semplice tipo di programmazione : permette di costruire concetti complessi e strutturati; è molto efficiente (non si deve ricorrere ad inferenza); è particolarmente utile in applicazioni linguistiche 14
15 Sommario Perché (ancora) Prolog? I concetti essenziali del prolog: E un linguaggio dichiarativo Utilizza il Modus Ponens Utilizza l unificazione Utilizza uno spazio di ricerca delle soluzioni in profondità Liste Modifiche dello spazio di ricerca Tecniche di programmazione 15
16 Ricerca delle soluzioni Il Prolog cerca le soluzioni ad una query (goal) effettuando una ricerca in profondità all interno del programma. Punti fondamentali: Unificazione: vengono restituiti come soluzioni i termini che unificano con la query Backtracking: se la ricerca non ha successo in un ramo, essa continua in un ramo ancora non esplorato (choice point) Le diverse fasi della ricerca (proof search) possono essere rappresentate graficamente da un albero di esplorazione: - NODI = goal che devono essere soddisfatti ad un dato punto della ricerca - ARCHI = istanziazioni delle variabili ad un dato punto della ricerca - FOGLIE = rami della ricerca terminati, con successo o fallimento 16
17 Ricerca delle soluzioni: esempio PROGRAMMA f(a). f(b). g(a). g(b). SEARCH TREE k(x) X=_G21 f(_g21), g(_g21), h(_g21) GOAL SUBGOALS h(b). k(x) :- f(x),g(x),h(x). _G21=a _G21=b CHOICE POINT g(a), h(a) g(b), h(b) QUERY BACKTRACK h(a) h(b)?- k(x). Punti fondamentali: I fatti vengono letti dall alto al basso. I sub-goals vengono soddisfatti da sinistra verso destra. 17
18 Ricerca delle soluzioni: esempio con ricorsione PROGRAMMA figlio(marta,carla). figlio(carla,maria). figlio(maria,laura). figlio(laura,rosa). discendente(x,y) :- figlio(x,y). figlio(marta,laura) SEARCH TREE discendente(marta,laura) _G21=carla figlio(marta,_g21), discendente(_g21,laura) discendente(x,y) :- figlio(x,z), discendente(z,y). discendente(carla,laura) QUERY figlio(carla,laura) figlio(carla,_g22), discendente(_g22,laura)?-discendente(marta,laura). ATTENZIONE! Cambiando l ordine dei fatti e delle regole cambia il comportamento procedurale Prolog non è un linguaggio completamente dichiarativo, ma parzialmente anche procedurale _G22=maria discendente(maria,laura) figlio(maria,laura) 18
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
DettagliEsercitazione di Basi di Dati
Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 29 Aprile 2004 Da Access a Protégé Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza 1035
DettagliProlog: 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.
DettagliProgrammazione 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
DettagliCorso 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
DettagliProgrammazione 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
DettagliIntroduzione 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
DettagliEsercitazione di Logica
Esercitazione di Logica Corso di Fondamenti di Informatica 20 Maggio 2004 Reti semantiche, FOL, Prolog Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza 1035
DettagliEsercizi di Programmazione Prolog
Esercizi di Programmazione Prolog Marco Comini 29 febbraio 2008 Nel seguito useremo il termine PROLOG in contrasto a PROLOG PURO per distinguere Prolog con builtins (come < e is) da quello senza. Inoltre
DettagliFONDAMENTI 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:
DettagliFONDAMENTI 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:
DettagliLinguaggi 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
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliIl linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)
DettagliAutomi & Morfologia. Marco Pennacchiotti. Tel Ing.dell Informazione, stanza 1035 (primo piano)
Intelligenza Artificiale A.A. 2004-2005 23 Giugno 2005 Automi & Morfologia Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza 1035 (primo piano) Sommario Morfologia
DettagliIntelligenza Artificiale. Tecniche di ricerca basate sullo spazio degli stati
Intelligenza Artificiale Tecniche di ricerca basate sullo spazio degli stati Marco Piastra Ricerca e stati - 1 Problemi diversi, soluzioni simili Fox, Goat and Cabbage La definizione prevede Uno stato
DettagliFONDAMENTI 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à
DettagliLOGICA PER LA PROGRAMMAZIONE
LOGICA PER LA PROGRAMMAZIONE Franco Turini turini@di.unipi.it IPSE DIXIT Occorre dire, anzitutto, quale oggetto riguardi ed a quale disciplina spetti la presente indagine, che essa cioè riguarda la dimostrazione
DettagliFONDAMENTI 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:
DettagliPROLOG: PROgramming in LOGic Linguaggio usato per risolvere problemi che coinvolgono oggetti e relazioni tra oggetti.
Paradigmi di programmazione Imperativo: orientato alla soluzione algoritmica del problema (Assembler, C, Pascal, Ada,...) Dichiarativo: si concentra sulla descrizione del problema. Il programmatore specifica
DettagliIL 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.
DettagliIL 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.
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE 13 Luglio 2017 Tempo a disposizione: 2 h Risultato: 32/32 punti
FONDAMENTI DI INTELLIGENZA ARTIFICIALE 13 Luglio 2017 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si formalizzino le seguenti frasi in logica dei predicati: - Esiste almeno un
DettagliSommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio. Messaggio
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio Messaggio Insieme di sequenze di simboli, le parole,
DettagliLinguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,
DettagliC1: 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
DettagliSommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio (1) Linguaggio (2)
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,
DettagliFondamenti 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
DettagliLinguaggi 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
DettagliTEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE
TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE Riccardo Dondi Dipartimento di Scienze dei linguaggi, della comunicazione e degli studi culturali Università degli Studi di Bergamo Informazione sul corso
DettagliAgenti 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
DettagliUniversità 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
DettagliFondamenti 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
DettagliDall algoritmo al calcolatore: concetti introduttivi. Algoritmo. Problema: consumo medio 9/27/2018. Fondamenti di Programmazione 3
Dall algoritmo al calcolatore: concetti introduttivi Fondamenti di Programmazione Algoritmo Problema o compito Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo sequenza precisa
DettagliPROGRAMMAZIONE DIDATTICA MODULARE Anno Scolastico 2018/2019. MATERIA Informatica CLASSE III DOCENTE Claudia Mantero INDIRIZZO A.F.
Istituti Paritari PIO XII RMTD545007 Amministrazione Finanza e Marketing Sistemi Informativi Aziendali 00159 ROMA - via Galla Placidia, 63 RMTL395001 Costruzioni, Ambiente e territorio Tel 06431465 Fax
DettagliEsempio 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
DettagliAlgoritmi e Strutture Dati Laboratorio 15/12/2008. Daniele Loiacono
Algoritmi e Strutture Dati Laboratorio 15/12/2008 Problema della compressione Rappresentare i dati in modo efficiente Impiegare il numero minore di bit per la rappresentazione Goal: risparmio spazio su
DettagliIntelligenza 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,
DettagliIntelligenza 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
DettagliConstraint Satisfaction Problems
Constraint Satisfaction Problems Corso di Intelligenza Artificiale, a.a. 2017-2018 Prof. Francesco Trovò 19/03/2018 Constraint Satisfaction problem Fino ad ora ogni stato è stato modellizzato come una
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE 12 Gennaio 2017 Tempo a disposizione: 2 h Risultato: 32/32 punti
FONDAMENTI DI INTELLIGENZA ARTIFICIALE 12 Gennaio 2017 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (5 punti) Si formalizzino in logica dei predicati del I ordine le seguenti frasi: 1.
DettagliProgrammazione di INFORMATICA e Laboratorio
ISIUO ECNICO SAALE settore ECNOLOGICO ad indirizzo: Elettronica ed Elettrotecnica - Informatica e elecomunicazioni Meccanica, Meccatronica ed Energia "VIORIO EMANUELE III" Via Duca della Verdura, 48-90143
DettagliAlgoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
DettagliN-Regine POSSIBILE SOLUZIONE IN PROLOG: GENERATE AND TEST
N-Regine POSSIBILE SOLUZIONE IN PROLOG: GENERATE AND TEST La soluzione è rappresentata da una permutazione della lista: [1,2,3,4,5,6,7,8] La permutazione è una soluzione se le posizioni di ogni regina
DettagliTail,PermTail), delete1(head,permlist. PermList,PermTail).
N-Regine POSSIBILE SOLUZIONE IN PROLOG: GENERATE AND TEST La soluzione è rappresentata da una permutazione della lista: [1,2,3,4,5,6,7,8] La permutazione è una soluzione se le posizioni di ogni regina
DettagliIntelligenza 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
DettagliLogica per la Programmazione Corso di Laurea in INFORMATICA a.a. 2016/17
Logica per la Programmazione Corso di Laurea in INFORMATICA a.a. 2016/17 Andrea Corradini e Francesca Levi Dipartimento di Informatica E-mail: andrea@di.unipi.it, francesca.levi@unipi.it A. Corradini e
DettagliLinguaggi di Programmazione e Paradigmi. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Linguaggi di Programmazione e Paradigmi Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Come risolvere un problema Le 3 tappe fondamentali di risoluzione di un problema algoritmico sono:
DettagliFondamenti di Intelligenza Artificiale M. Altri possibili esercizi
Fondamenti di Intelligenza Artificiale M Altri possibili esercizi 1 Esempi di possibili esercizi Description Logic e SW e domande sui seminari in generale Introdurre brevemente la differenza tra Open World
DettagliLogica per la Programmazione Corso di Laurea in INFORMATICA a.a. 2015/16
Logica per la Programmazione Corso di Laurea in INFORMATICA a.a. 2015/16 Andrea Corradini e Francesca Levi Dipartimento di Informatica E-mail: andrea@di.unipi.it, francesca.levi@unipi.it A. Corradini e
DettagliLinguaggi 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)
DettagliAlgoritmo. Calcolabilità
Algoritmo In altri termini, l algoritmo può essere definito come la descrizione di un procedimento che ha le seguenti proprietà: deve essere esplicita e non ambigua per l interlocutore cui è destinata
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE 11 Gennaio 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti
FONDAMENTI DI INTELLIGENZA ARTIFICIALE 11 Gennaio 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si formalizzino le seguenti frasi in logica dei predicati: 1. Chi conosce la
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE PRIMA PARTE (6 CFU) 9 Dicembre 2010 Tempo a disposizione 2h Risultato 32/32 punti
FONDAMENTI DI INTELLIGENZA ARTIFICIALE PRIMA PARTE (6 CFU) 9 Dicembre 0 Tempo a disposizione h Risultato / punti Esercizio 1 (punti 6) Si rappresentino in logica dei predicati del primo ordine le seguenti
DettagliProlog. 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
DettagliLinguaggi di programmazione
Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input
DettagliLinguaggi 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
DettagliAlgoritmi e Strutture Dati
Maria Rita Di Berardini 2, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 2 Polo di Scienze Università di Camerino ad Ascoli Piceno Il concetto di dato Il concetto
DettagliCalcolo numerico e programmazione Programmazione
Calcolo numerico e programmazione Programmazione Tullio Facchinetti 11 maggio 2012 14:05 http://robot.unipv.it/toolleeo La programmazione la programmazione è l insieme delle
DettagliIntroduzione 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
DettagliUn metodo di rappresentazione della Conoscenza e un insieme di CONVENZIONI e FORMALISMI per esprimere la conoscenza.
RAPPRESENTAZIONE DELLA CONOSCENZA e Ragionamento Un metodo di rappresentazione della Conoscenza e un insieme di CONVENZIONI e FORMALISMI per esprimere la conoscenza. Una buona Rappresentazione della Conoscenza
DettagliI Linguaggi di Programmazione
I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliRagionamenti e metodi di dimostrazione. Liceo Scientifico Statale S. Cannizzaro Prof.re E. Modica
Ragionamenti e metodi di dimostrazione Liceo Scientifico Statale S. Cannizzaro Prof.re E. Modica Proposizioni Si definisce proposizione una frase alla quale è possibile attribuire uno e un solo valore
DettagliKnowledge base (KB) = insiemi di sentenze scritte in un linguaggio formale.
Basi di Conoscenza Knowledge base (KB) = insiemi di sentenze scritte in un linguaggio formale. Le risposte devono seguire dalla KB. Inference Engine: strutture dati ed algoritmi per manipolare la KB ed
DettagliSistemi a Regole. Fabio Sartori 3 dicembre L algoritmo RETE Forward e Backward Chaining
Sistemi a Regole Fabio Sartori sartori@disco.unimib.it 3 dicembre 2008 L algoritmo RETE Forward e Backward Chaining 1 Sistemi di Produzioni (1) Un sistema di produzioni consiste in un insieme non ordinato
DettagliInformatica (A-K) 5. Algoritmi e pseudocodifica
Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
DettagliInformatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione
Informatica 3 LEZIONE 1: Introduzione Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Informatica 3 Lezione 1- Modulo 1 Introduzione al corso Introduzione Corso di Informatica 3
DettagliFondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE 12 Febbraio 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti
FONDAMENTI DI INTELLIGENZA ARTIFICIALE 12 Febbraio 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Date le seguenti frasi in linguaggio naturale: 1. Chi soffre di allergie starnutisce.
DettagliSecondo Anno: Informatica Economico-Turistico
Secondo Anno: Informatica Economico-Turistico Competenze ASSE DEI LINGUAGGI (1) Utilizzare e produrre testi multimediali (1.1) Comprendere i prodotti della comunicazione audiovisiva Elaborare prodotti
DettagliAlgoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal
Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi
DettagliCAPITOLO 3 - ALGORITMI E CODIFICA
FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica)
DettagliRappresentazione 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
DettagliLogica per la Programmazione Corso di Laurea in INFORMATICA a.a. 2018/19
Logica per la Programmazione Corso di Laurea in INFORMATICA a.a. 2018/19 Andrea Corradini e Filippo Bonchi Dipartimento di Informatica E-mail: andrea@di.unipi.it, filippo.bonchi@unipi.it A. Corradini e
DettagliAlgoritmi e Strutture Dati
Strutture Elementari Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 29 ottobre 2008 Strutture Dati Astratte Il concetto di dato Il concetto
DettagliInformatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione
Informatica 3 Informatica 3 LEZIONE 1: Introduzione Lezione 1- Modulo 1 Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Introduzione al corso Politecnico di Milano - Prof. Sara Comai
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE 1 parte (6 CFU)
FONDAMENTI DI INTELLIGENZA ARTIFICIALE 1 parte (6 CFU) 14 Giugno 2013 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (7 punti) Si considerino le seguenti frasi: 1. Tutti gli insegnanti sono
DettagliFondamenti teorici e programmazione
Fondamenti teorici e programmazione FTP(A) - modb Lezione 9 di ricerca binaria F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 1 liberi Un albero libero è un
DettagliLinguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
DettagliSesto modulo: Logica Obiettivi 1. individuare dei "calcoli logici" che consentano di meccanizzare l attività deduttiva
Sesto modulo: Logica Obiettivi 1. individuare dei "calcoli logici" che consentano di meccanizzare l attività deduttiva 2. stabilire quali ragionamenti sono corretti e quali no 3. distinguere tra condizione
DettagliISTITUTO TECNICO INDUSTRIALE ITI "E. MEDI" PIANO DI STUDIO DELLA DISCIPLINA Scienze e Tecnologie Applicate: indirizzo INFORMATICA PIANO DELLE UDA
ISTITUTO TECNICO INDUSTRIALE ITI "E. MEDI" PIANO DI STUDIO DELLA DISCIPLINA Scienze e Tecnologie Applicate: indirizzo INFORMATICA PIANO DELLE UDA UDA COMPETENZE della UDA ABILITA UDA CONOSCENZE UDA DISCIPLINA
DettagliFondamenti di Informatica
Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile
DettagliIntelligenza 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
DettagliFondamenti di Informatica. per la Sicurezza. a.a. 2003/04. Grammatiche. Stefano Ferrari
Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Grammatiche Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università degli Studi
DettagliLez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
DettagliLinguaggi e Traduttori: Analisi sintattica
Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova
DettagliInformatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 08/02/2017/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 08/02/2017/ Foglio delle domande/ VERSIONE 1 1) Nella ricorsione, quando il problema ha soluzione immediata siamo a) nell ipotesi ricorsiva b) nel
DettagliRagionamento Automatico Richiami di tableaux proposizionali
Richiami di logica e deduzione proposizionale Ragionamento Automatico Richiami di tableaux proposizionali (L. Carlucci Aiello & F. Pirri: SLL, Cap. 5) La logica proposizionale I tableau proposizionali
DettagliLOGICA PER LA PROGRAMMAZIONE a.a. 2017/18 Prima esercitazione 28/9/2017 Soluzioni Proposte
LOGICA PER LA PROGRAMMAZIONE a.a. 2017/18 Prima esercitazione 28/9/2017 Soluzioni Proposte Attenzione: Le soluzioni che seguono sono considerate corrette dai docenti. possono esistere altre soluzioni corrette,
DettagliIntroduzione all Intelligenza Artificiale a.a. 2016/17
Introduzione all Intelligenza Artificiale a.a. 2016/17 Prima prova intermedia 7 Aprile 2017 PRIMA PARTE Domande (punti 7) La risposta corretta alla maggior parte delle domande abilita la correzione della
DettagliCorso di Informatica Modulo T1 C1-Sequenza e selezione
Corso di Informatica Modulo T C-Sequenza e selezione Prerequisiti Analizzare un problema Scrivere un algoritmo Istruzioni semplici Espressione logica 2 Introduzione La programmazione a salti crea diverse
DettagliLogica per la Programmazione
Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 9 Proof System per la Logica del Primo Ordine Leggi per i Quantificatori Regole di inferenza: Generalizzazione
DettagliUnità Didattica 2 I Linguaggi di Programmazione
Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche
Dettagli