Introduzione alla Programmazione Logica ed al linguaggio PROLOG
|
|
- Ortensia Ranieri
- 7 anni fa
- Visualizzazioni
Transcript
1 Introduzione alla Programmazione Logica ed al linguaggio PROLOG Esercitazioni per il corso di Logica ed Intelligenza Artificiale a.a Vito Claudio Ostuni
2 Linguaggi procedurali e dichiarativi linguaggi procedurali (o imperativi): sono composti da una serie di istruzioni (algoritmo) che indicano al calcolatore come deve essere svolto un certo compito. Si parte da un insieme di dati, e si applicano una serie di operazioni da eseguire in sequenza che li elaborano per produrre il risultato finale. (Es.: C, Java,..) linguaggi dichiarativi: dicono al calcolatore cosa deve fare, lasciando al computer stesso la scelta di come farlo. Questo avviene solo in teoria, in pratica anche i linguaggi dichiarativi devono inserire alcuni suggerimenti su quale sia la strada migliore. (Es.: Prolog, SQL, Lisp,..)
3 Programmazione logica Il concetto di base della programmazione logica è di descrivere la conoscenza generale che si ha sul problema, piuttosto che uno specifico procedimento di soluzione. Si tratta di trovare la rappresentazione più adeguata alla specifica area applicativa ed esprimerla in un linguaggio logico. Un problema è caratterizzato dall'esistenza di oggetti discreti, o individui, da relazioni tra essi, e da proposizioni che esprimono proprietà logiche su queste relazioni. Per rappresentare simbolicamente la conoscenza relativa ad un problema, occorre fare uso di un linguaggio formale, assegnando innanzi tutto dei nomi sia agli oggetti che alle relazioni.
4 In programmazione logica un problema viene descritto con un insieme di formule della logica, dunque in forma dichiarativa. Un comune programma in programmazione logica è composto da una serie di fatti, che descrivono cose e situazioni sempre vere, e una serie di regole, che permettono di dedurre nuove situazioni vere sulla base dei fatti a disposizione. Noi forniamo al programma una serie di informazioni vere, aggiungiamo un altra serie di regole che descrivono il modo in cui le informazioni si combinano tra loro e infine interroghiamo il programma. Es: logica = rappresentazione del problema deduzione = risoluzione del problema Tutti gli uomini sono mortali Socrate è un uomo Si deduce che: Socrate è mortale
5 Programmazione classica Algoritmi + Strutture dati = Programmi Dati e algoritmo sono interdipendenti. Programmazione logica Algoritmo = Logica + Controllo Dati e controllo sono indipendenti. Il programmatore deve solo preoccuparsi di definire la parte logica (fatti+regole), ovvero deve solo definire il problema. Non bisogna specificare come risolverlo (il controllo è compito del calcolatore).
6 Prolog PROLOG: PROgramming in LOGic Nato nel 1973, si fonda sulle idee di programmazione logica di R. Kowalski. È il più noto linguaggio di programmazione logica. È basato sulla logica dei Predicati del Primo Ordine (prova automatica di teoremi e risoluzione). È un linguaggio di altissimo livello. È un manipolatore di stringhe e non di numeri. È largamente utilizzato per applicazioni di Intelligenza Articiale (Planning, Sistemi Esperti, Sistemi a Regole di Produzione,..). Non adatto per applicazioni numeriche o real-time.
7 Prolog Il Prolog è un linguaggio di programmazione logica basato sulle clausole di Horn. h :- b 1, b 2,.. b n h rappresenta la testa della clausola e b 1, b 2,.. b n sono i letterali (atomi) che compongono il corpo. h è vera se è solo se il corpo è vero, ovvero se sono veri tutti i letterali nel corpo. La testa della clausola è detta anche conseguente, mentre il corpo antecedente. Un programma logico consiste in un insieme di procedure espresse in clausole di Horn ed attivate da una asserzione iniziale d'obiettivo.
8 Considerando le clausole espresse secondo due categorie che sono i fatti e le regole Un programma Prolog è costituito da: un insieme di fatti, che dichiarano un certo stato di cose da un insieme di regole, che definiscono relazioni fra stati di cose da obiettivi (o domande) a cui rispondere. Fatti + regole = Base di conoscenza L'interprete Prolog possiede un meccanismo di inferenza che tenta di rispondere alle domande ponendole in relazione con i fatti e le regole della base di conoscenza e tentando di eseguire delle deduzioni.
9 Oggetti Un programma Prolog è costituito da un insieme di termini ognuno dei quali è costituito da un insieme di caratteri. Un oggetto può essere semplice, come una costante, oppure composto, ossia formato da altri oggetti componenti e sono detti strutture. Ci sono 3 tipologie di termini: Costanti Variabili Strutture Oggetti semplici Oggetti Strutture Variabili Costanti Atomi Numeri
10 Costanti I nomi semplici di oggetti sono detti costanti. Essi denotano oggetti elementari definiti. In Prolog esistono due tipi di costanti: gli atomi e gli interi. - Gli atomi possono essere di due tipi: sequenza di lettere e cifre che inizia con lettera minuscola oppure che inizia con lettera maiuscola, ma in questo caso la sequenza va messa fra apici. Si può usare il carattere speciale _ inserito nel corpo di un atomo per migliorarne la leggibilità. Es: tavolo Tavolo tavolo_di_legno a113 simboli. Es: :-?- - Gli interi sono utilizzati per rappresentare numeri, sono costituiti da sole cifre e non possono contenere il punto decimale.
11 Variabili Le variabili, cioè i termini utilizzati per indicare una entità che al momento sono ancora da determinate o da identificare, sono rappresentati dalle lettere maiuscole o dal carattere _ (underscore) che indica la variabile anonima.
12 Strutture Una struttura è un oggetto costituito da un insieme di termini, chiamati componenti. Una struttura è una entità del tipo: Es: mangia(gianni,mela). dove il predicato mangia è chiamato funtore e gli argomenti gianni e mela sono chiamati componenti. Il funtore deve essere necessariamente un atomo. Una variabile non può esser usata come funtore. Gli argomenti invece possono esser termini di qualsiasi tipo. Un funtore con n componenti è detto funtore n-ario (o ad n posti, o ad n argomenti, o di molteplicità n). Se più funtori hanno lo stesso nome ma molteplicità diverse, sono a tutti gli effetti funtori diversi. Le convenzioni di scrittura dei funtori sono le stesse di quelle degli atomi. Si noti che le costanti possono essere considerate come funtori 0-ari, cioè senza argomenti.
13 Strutture I nomi che costituiscono la n-pla di argomenti di un funtore possono a loro volta essere strutture. Ciò consente la costituzione di nomi arbitrariamente complessi, a vari livelli di composizione. Es: acquisto(mario_rossi,album(viva_la_vida,band(coldplay))). Questo fatto codifica l acquisto di un album. Si può notare che band e album sono funtori.
14 Sintassi Come detto un termine è un insieme di caratteri. I caratteri riconosciuti dal Prolog sono divisi in 4 categorie: insieme delle lettere maiuscole: A B C D... X Y Z; insieme delle lettere minuscole: a b c... x y z; insieme dei caratteri numerici: ; insieme dei caratteri speciali:! " # $ % & ' ( ) = - ~ ^ \ { } [ ] _ + ; * < >,.? /
15 Sintassi I nomi di predicati e oggetti devono necessariamente iniziare con una lettera minuscola Es: genitore gianni tommaso I nomi di variabili devono iniziare con una lettera maiuscola o con _ per le variabili anonime Es: X Un'asserzione è composta dal nome del predicato e dagli argomenti espressi tra parentesi tonde separati da virgole. Es: genitore(gianni, tommaso) si legge gianni è genitore di tommaso Ogni asserzione termina con un punto. Questo è il simbolo che indica al Prolog la fine di un elemento di conoscenza.
16 Relazioni Una relazione è l'attribuzione di una qualità comune a più oggetti. Ad esempio, una relazione di parentela, come l'essere genitore correla ogni genitore ai suoi figli. Naturalmente, una relazione può valere tra più di un gruppo di oggetti; per esempio, la relazione "padre di" vale tra molte coppie di persone. Analogamente, un singolo gruppo di oggetti può soddisfare più di una relazione, ad esempio, Mario Rossi è compagno di lavoro di Mario Bianchi, ed anche suo vicino di casa.
17 Una relazione collega tra loro gli elementi di una n-pla. È un insieme di asserzioni con uguale predicato e numero di argomenti. In Prolog una relazione è denotata da un nome, detto predicato, seguito (in parentesi) dalla n-pla dei nomi degli oggetti correlati (separati da virgola). Perciò ogni predicato, come ogni funtore, ha la sua molteplicità; in particolare, si dice binario se ha 2 argomenti, ternario se ha 3 argomenti, e così via. Es: genitore(gianni,tommaso). È un predicato binario
18 Proposizioni Come visto i termini indicano gli oggetti e i predicati le relazioni tra gli stessi, quindi le proposizioni indicano le proprietà logiche che sussistono tra le relazioni. Ogni proposizione termina con un punto. Ci sono due tipi di proposizioni: Atomiche o asserzioni ( o anche fatti) Regole genitore(gianni,tommaso). figlio(y,x) :- genitore(x,y). Sono proposizioni non atomiche condizionali Le proposizioni prive di variabili vengono dette chiuse (ground sentences). Es: padre(gianni)
19 Fatti Sono clausole di Horn non condizionali. Esprimono un'affermazione non vincolata alla preventiva verifica di un insieme di condizioni. h:-b h è vera se b è vero (non è un fatto, è una regola) h h è vera a prescindere (è un fatto) Un fatto è una frase riguardante qualcosa o qualcuno, che stabilisce una relazione fra gli argomenti. Questa relazione può esser vera o falsa. Il Prolog assume implicitamente che tutti i fatti presenti nella base di conoscenza siano veri. Es: caldo(agosto). genitore( gianni, tommaso).
20 Regole Sono clausole di Horn condizionali. Proposizioni non atomiche costituite da più predicati connessi da operatori (o connettivi) logici, denotati da simboli speciali. Il connettivo :- indica l implicazione, detto anche condizionale. I predicati a destra del simbolo condizionale sono detti premesse, a sinistra ci può esser un unico predicato detto conclusione. Il connettivo, indica la congiunzione (AND logico) tra due predicati. Es: batteria(guasta) :- luci(spente), motorino_avviamento(muto).
21 Disgiunzione Una relazione può essere definita da più proposizioni condizionali aventi lo stesso predicato come conclusione (o da più proposizioni atomiche con lo stesso predicato). In questo caso esse vengono considerate in alternativa tra loro, cioè implicitamente connesse dall'operatore logico di disgiunzione (OR logico). genitore(x, Y) :- padre(x, Y). genitore(x, Y) :- madre(x, Y). Oppure si può usare il simbolo ; genitore(x, Y) :- padre(x, Y) ; madre(x, Y). In entrambi i casi si legge: X è genitore di Y se è padre o è madre di Y
22 Query Sono clausole di Horn senza conclusione. Le query prolog si basano su un meccanismo di pattern matching chiamato unificazione. Es: acquisto(mario_rossi,album(viva_la_vida,band(coldplay))). Vogliamo sapere quali siano gli album acquistati dal sig. mario rossi, allora poniamo all interprete la seguente query:?-acquisto(mario_rossi,album(x,band(y))). Tramite unificazione l interprete prolog cerca di unificare i termini nella query con quelli nell asserzione. Le variabili X e Y presenti nel goal (query) vengono sostituite con gli atomi presenti nell asserzione. X = viva_la_vida, Y = coldplay
23 Unificazione L unificazione può esser applicata ad una coppia qualsiasi di termini. Dati la coppia di termini, essi unificano se vale una delle seguenti condizioni: sono identici le variabili in essi possono essere istanziate con oggetti in modo che dopo la sostituzione delle variabili i termini diventano identici L unificazione è un processo che prende due termini e verifica se unificano. Se non unificano, il processo di unificazione fallisce. Se unificano, il processo di unificazione ha successo e istanzia le variabili. persona(antonio) unifica con persona(antonio) persona(gianni) non unifica con persona(antonio) persona(x) unifica con persona(gianni) grazie alla sostituzione X/gianni
24 Regole di Unificazione Valutiamo le possibili unificazioni tra T1 e T2 Se T1 e T2 sono entrambi delle costanti, possono essere unificati se e solo se sono lo stesso termine costante. Se T1 è un termine diverso da una variabile (ovvero è una costante od una struttura) e T2 è una variabile non istanziata, T1 e T2 possono venire unificati, istanziando T2 a T1. Se T1 e T2 sono entrambi strutture, possono essere unificati se e solo se hanno lo stesso funtore principale e lo stesso numero di argomenti, e gli argomenti che si corrispondono per posizione possono essere a loro volta unificati. Se T1 e T2 sono entrambi variabili non istanziate, vengono unificate l'una con l'altra, non appena una di esse viene istanziata ad un termine secondo le regole precedenti, anche l'altra assume lo stesso termine.
25 Riassumendo Le componenti fondamentali di un programma Prolog sono: dichiarazioni di fatti sugli oggetti e le loro relazioni dichiarazioni di regole sugli oggetti e le loro relazioni domande sugli oggetti e le loro relazioni. genitore(gianni,tommaso). genitore(tommaso,andrea). figlio(y,x) :- genitore(x,y).?- figlio(x,y). X = tommaso Y = gianni
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
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
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
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
DettagliLogica 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
DettagliProgrammazione 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
DettagliRichiami 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
Dettagli1 Cenni di logica matematica
1 Cenni di logica matematica 1 1 Cenni di logica matematica Una delle discipline chiave della matematica (e non solo, visto che è fondamentale anche per comprendere la lingua parlata) è la logica matematica,
DettagliBREVE CENNO DI LOGICA CLASSICA La logica può essere definita come la scienza che studia le condizioni in base alle quali un ragionamento risulta
BREVE CENNO DI LOGICA CLASSICA La logica può essere definita come la scienza che studia le condizioni in base alle quali un ragionamento risulta corretto e vero. Un ragionamento è corretto se segue uno
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
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
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.
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
DettagliProlog 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
DettagliLogica: 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
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,
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
DettagliUNIFICAZIONE 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.
DettagliLogica proposizionale
Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Logica proposizionale Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università degli
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
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.
DettagliLo studioso di logica si chiede se la conclusione segue correttamente dalla premesse fornite e se premesse sono buone per accettare la conclusione.
Logica binaria La logica è la scienza del corretto ragionamento e consiste nello studio dei principi e dei metodi che consentono di individuare il corretto ragionamento. Lo studioso di logica si chiede
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
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
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
DettagliModulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1
Concetti base della Tecnologia dell informazione Algoritmi Come interpreta un computer un problema? Algoritmi Algoritmo: sequenza ordinata di istruzioni per risolvere un problema (tradotto: sequenza di
DettagliLogica 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.
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
Dettaglisi vuole verificare: P5: pioverà
Logica matematica ntroduzione alla logica matematica ilvana adaloni Paolo ison Fondamenti di nformatica AA 20004 niversità di Padova formalizzazione dei meccanismi di ragionamento la logica studia proposizioni
DettagliIl linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1
Il linguaggio C I linguaggi di programmazione ad alto livello sono linguaggi formali ( sintassi e semantica formalmente definite) però sono compatti e comprensibili. Le tipologie di linguaggi sono: procedurali
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
Dettagli1 Il linguaggio matematico
1 Il linguaggio matematico 1.1 La logica delle proposizioni La matematica è un linguaggio; a differenza del linguaggio letterario che utilizza una logica soggettiva, la matematica si serve di una logica
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
DettagliLez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1
Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli
DettagliSommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo
Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione
DettagliElementi di Logica matematica. Elementi di logica matematica
1 Elementi di logica matematica Molte grammatiche definiscono la proposizione come un giudizio della mente espresso con parole, cioè da un punto di vista grammaticale la parola proposizione sta ad indicare
DettagliCaratteristiche di un linguaggio ad alto livello
Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono
DettagliRichiami teorici ed esercizi di Logica
Facoltà di ingegneria Università della Calabria Corsi di Potenziamento Matematica e Logica A. A. 2008-2009 Richiami teorici ed esercizi di Logica Proposizioni logiche: Ogni espressione matematica alla
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
DettagliCorso di Fondamenti di Informatica Università degli Studi di Cassino
Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono l algoritmo Cominciamo ad analizzare la
DettagliIntroduzione al C. Informatica Generale - Introduzione al C Versione 1.0, aa p.1/17
Introduzione al C Informatica Generale - Introduzione al C Versione 1.0, aa 2005-2006 p.1/17 Linguaggi di programmazione Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili,
DettagliFondamenti d Informatica: Grammatiche. Barbara Re, Phd
Fondamenti d Informatica: Grammatiche Barbara Re, Phd Grammatiche } Con il termine grammatica s intende } Un formalismo che permette di definire un insieme di stringhe mediante l imposizione di un particolare
DettagliCorso di Programmazione Dati e Istruzioni. Comunicazione dell algoritmo all elaboratore. Programmazione. Dott. Pasquale Lops
Materiale didattico preparato dal dott. Stefano Ferilli Corso di Programmazione Dati e Istruzioni Dott. Pasquale Lops lops@di.uniba.it Corso di Programmazione - DIB 1/28 Comunicazione dell algoritmo all
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
DettagliRagionamento formalei. Ragionamento formale
Ragionamento formale La necessità e l importanza di comprendere le basi del ragionamento formale, utilizzato in matematica per dimostrare teoremi all interno di teorie, è in generale un argomento piuttosto
DettagliFogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari
Fogli Elettronici Idoneità Informatica Prof. Mauro Gaspari Cosa è un foglio elettronico. Strumento per raccogliere dati organizzati in tabelle e farci delle operazioni: Le celle contengono numeri o altri
DettagliC++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI
Linguaggi di alto livello Barriera di astrazione C Fortran Cobol Modula-2 Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI C Fortran Modula-2
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 alto livello. Barriera di astrazione. Pascal. Cobol. Fortran. Basic. Modula-2. Lisp. Simula67 Scheme. Smalltalk C++ Prolog AN
Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI Fortran Cobol
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
DettagliProposizioni e verità
Proposizioni e verità Claudia Casadio Logica e Psicologia del Pensiero Laurea Triennale - Parte Istituzionale A.A. 2007-08 Contents 1 Proposizione.......................................... 3 2 Verità...............................................
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
DettagliINSIEMI. DEF. Un INSIEME è una qualsiasi collezione di oggetti.
INSIEMI DEF. Un INSIEME è una qualsiasi collezione di oggetti. Esso è ben definito quando è chiaro se un oggetto appartiene o non appartiene all insieme stesso. Esempio. E possibile definire l insieme
DettagliCALCOLO PROPOSIZIONALE: CENNI
CALCOLO PROPOSIZIONALE: CENNI Francesca Levi Dipartimento di Informatica February 26, 2016 F.Levi Dip.to Informatica Informatica per le Scienze Umane a.a. 15/16 pag. 1 La Logica La logica è la disciplina
DettagliTipi di dato e variabili. Walter Didimo
Tipi di dato e variabili Walter Didimo Tipi di dato I dati che possono essere manipolati in un programma si classificano in tipologie differenti, chiamate tipi di dato Esistono due macro tipi di dato in
DettagliElementi di programmazione
Elementi di programmazione L E Z I O N I P E R I C O R S I D I I N F O R M A T I C A D E L L I C E O S C I E N T I F I C O O P Z I O N E S C I E N Z E A P P L I C A T E P R O F. D O M E N I C O L O R U
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Algebra di Boole Elementi di
DettagliInformatica. Logica e Algebra di Boole
Informatica Logica e Algebra di Boole La logica è la scienza del corretto ragionamento e consiste nello studio dei principi e dei metodi che consentono di individuare il corretto ragionamento. Lo studioso
DettagliCorso di Informatica di Base
Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere
Dettagli4 La Logica come base di ogni scienza. 5 Alla ricerca della forma logica. logica
4 La Logica come base di ogni scienza La Logica è alla base di ogni scienza (o teoria) in quanto è fondamento di ogni scienza non tanto per i contenuti specifici ma per la loro articolazione deduttiva.
DettagliRAPPRESENTAZIONE DELLA CONOSCENZA. È un insieme di CONVENZIONI e FORMALISMI per esprimere la conoscenza;
RAPPRESENTAZIONE DELLA CONOSCENZA È un insieme di CONVENZIONI e FORMALISMI per esprimere la conoscenza; Una buona Rappresentazione della Conoscenza può FACILITARE la SOLUZIONE di un Problema riducendone
DettagliLa matematica non è un opinione, lo è oppure...?
La matematica non è un opinione, lo è oppure...? Giulio Giusteri Dipartimento di Matematica e Fisica Università Cattolica del Sacro Cuore Brescia 26 Febbraio 2010 Vecchie conoscenze Dedurre... dedurre...
DettagliIntroduzione alla Matematica per le Scienze Sociali - parte II
Introduzione alla Matematica per le Scienze Sociali - parte II Lucrezia Fanti Istituto Nazionale per l Analisi delle Politiche Pubbliche (INAPP) lucrezia.fanti@uniroma1.it Lucrezia Fanti Intro Matematica
DettagliDISPENSE DI PROGRAMMAZIONE LINGUAGGI A TIPIZZAZIONE FORTE: IL COSTRUTTO DI TIPO. TIPI SEMPLICI: TIPI PRE-DEFINITI E TIPI DEFINITI DAL PROGRAMMATORE.
DISPENSE DI PROGRAMMAZIONE Modulo 3 Linguaggi di programmazione: dati e controllo (Parte I) LINGUAGGI A TIPIZZAZIONE FORTE: IL COSTRUTTO DI TIPO. TIPI SEMPLICI: TIPI PRE-DEFINITI E TIPI DEFINITI DAL PROGRAMMATORE.
DettagliUn po di logica. Christian Ferrari. Laboratorio di matematica
Un po di logica Christian Ferrari Laboratorio di matematica 1 Introduzione La logica è la disciplina che studia le condizioni di correttezza del ragionamento. Il suo scopo è quindi quello di elaborare
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Elementi di Programmazione Architettura del calcolatore Reti di Calcolatori Calcolo proposizionale Algebra Booleana Contempla
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 C-Introduzione.tex: Versione 1.0, aa 2005-2006 Linguaggi di programmazione (1) Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili, direttamente
DettagliAPI. 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
DettagliFoglio Elettronico Lezione 1
- Introduzione - Celle e riferimenti - Formule - Approfondimenti - Funzioni logiche Sommario Introduzione - Foglio elettronico o foglio di calcolo - Cos'è? Strumento per raccogliere dati organizzati in
DettagliFasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo Sviluppo di programmi Per la costruzione di un programma
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
DettagliSistemi 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
DettagliProgrammazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica
Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 28 Linguaggi 2 / 28 Linguaggi 3 / 28 Linguaggi di alto livello Si basano su una macchina
DettagliElementi di teoria degli insiemi
ppendice Elementi di teoria degli insiemi.1 Introduzione Comincia qui l esposizione di alcuni concetti primitivi, molto semplici da un punto di vista intuitivo, ma a volte difficili da definire con grande
DettagliLogica degli enunciati; Operazioni con le proposizioni; Proprietà delle operazioni logiche; Tautologie; Regole di deduzione; Logica dei predicati;
Logica degli enunciati; Operazioni con le proposizioni; Proprietà delle operazioni logiche; Tautologie; Regole di deduzione; Logica dei predicati; Implicazione logica. Equivalenza logica; Condizione necessaria,
Dettaglio 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
DettagliLinguaggio di Riferimento: C
Programmazione procedurale Linguaggio di Riferimento: C 1 Linguaggio macchina Il linguaggio macchina costituisce la forma espressiva atta a descrivere programmi e ad essere direttamente interpretata dall
DettagliIntroduzione al PROLOG
Introduzione al PROLOG Laboratorio di apprendimento logico-matematico C.Gallo Introduzione al Prolog 1 Rapporti con la logica Ogni sistema intelligente si basa essenzialmente sulla capacità di: riconoscere
DettagliDalla precedente lezione: LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 3 LA RAPPRESENTAZIONE DEI DATI (1) 28/02/2016
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 3 LA RAPPRESENTAZIONE DEI DATI (1) Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
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,
DettagliSviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
DettagliISTITUTO TECNICO STATALE COMMERCIALE E PER GEOMETRI A. MARTINI Castelfranco Veneto (TV) Elementi di Logica
settembre 008 Elementi di Logica 1. Nozioni preliminari La logica studia come funziona il pensiero e il ragionamento espresso attraverso degli enunciati Il ragionamento è un sistema di enunciati che permette
DettagliFondamenti teorici e programmazione
Fondamenti teorici e programmazione FTP(A) - modb Lezione 8 F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 1 Ragionamento formale Comprendere le basi del ragionamento
DettagliOperatori di relazione
Condizioni Negli algoritmi compaiono passi decisionali che contengono una proposizione (o predicato) dal cui valore di verità dipende la sequenza dinamica Chiamiamo condizioni tali proposizioni Nei casi
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,
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
DettagliIntelligenza 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
DettagliCiclo di vita di un sistema informativo
Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi e le priorità di realizzazione. Raccolta e analisi dei requisiti individua proprietà
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
DettagliNOZIONI DI LOGICA PROPOSIZIONI.
NOZIONI DI LOGICA PROPOSIZIONI. Una proposizione è un affermazione che è vera o falsa, ma non può essere contemporaneamente vera e falsa. ESEMPI Sono proposizioni : 7 è maggiore di 2 Londra è la capitale
DettagliLINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C
Dettagli