I predicati cut e not

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "I predicati cut e not"

Transcript

1 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

2 Il cut Il predicato cut! permette di segnalare al Prolog quali delle precedenti scelte non deve considerare nuovamente quando si verifica un backtracking. I programmi che utilizzano il cut: risulteranno più veloci; occuperanno meno memoria. In alcuni casi il cut è fondamentale per il buon funzionamento di un programma. 2

3 Sintassi del predicato cut Sintatticamente, il cut viene rappresentato come un goal che ha il simbolo! come predicato e nessun argomento. Esempio: somma_a(1,1):-!. Come goal, il cut ha successo immediatamente e non può essere risoddisfatto. L effetto del cut è rimuovere il place-marker per certi goal in modo che essi non possano essere ri-soddisfatti. 3

4 Esempio n. 1 Consideriamo il seguente programma: a(x,y):- b(x),!,c(y). a(0,0). b(1). b(2). c(1). c(2). Poniamo la domanda:?- a(x,y). yes X=1 Y=1; X=1 Y=2; no 4

5 Esempio n1 (continua) a(x,y) X=1 b(x),!,c(y) X=2 a(0,0) b(1),!,c(y) c(y) Y=1 Y=2 c(1) c(2) a(x,y):- b(x),!,c(y). a(0,0). b(1). b(2). c(1). c(2). ok ok 5

6 Esempio n.2 (continua) Riprendiamo l esempio della scorsa lezione: coppia_possibile(x,y) :- ragazzo(rigoberto). ragazzo(ubaldo). ragazzo(everardo). ragazzo(palmiro). ragazza(teodora). ragazza(brunilde). ragazza(griselda). ragazzo(x),!, ragazza(y). 6

7 Esempio n.2 (continua) Ponendo la stessa domanda:?-coppia_possibile(x,y). Le risposte fornite sono: X=rigoberto, Y=teodora; X=rigoberto, Y=brunilde; X=rigoberto, Y=griselda; 7

8 Esempio n.3 Che cosa succede con e senza il cut? p(x):-q(x),r(x). p(x):-q(x),!,r(x). q(1). q(2). r(2). q(1). q(2). r(2). 8

9 Usi comuni del cut 1. Quando vogliamo dire al Prolog che ha trovato la regola giusta per un particolare goal. 2. Quando vogliamo dire al Prolog di dichiarare fallito un particolare goal senza trovare soluzioni alternative. In questo caso, il cut si usa in congiunzione con il predicato fail. 3. Quando vogliamo terminare la generazione di soluzioni alternative nel backtracking. NB: per il Prolog il cut ha lo stesso significato in tutte e tre le aree. Questa suddivisione è per motivi puramente didattici, e mostra quali sono i diversi motivi per cui il cut viene inserito nei programmi 9

10 Primo uso del cut Vogliamo dire al Prolog che ha trovato la regola giusta per un particolare goal. In sostanza, il cut dice se sei arrivato a questo punto, vuol dire che questa è la regola giusta (tra quelle possibili) per soddisfare il goal. O, detto in altro modo, il cut rende deterministica la scelta tra due o più clausole alternative. Si supponga che la condizione a(x) debba rendere le due clausole mutuamente esclusive per realizzare uno schema del tipo: if a(.) then b else c 10

11 Esempio n.4 Utilizzando il predicato predefinito "cut": p(x) :- a(x),!, b. p(x) :- c. Se a(x) e vera, viene valutato il cut che toglie il punto di scelta per p(x). Se invece a(x) fallisce, si innesca il backtracking prima che il cut venga eseguito. 11

12 Secondo uso del cut Vogliamo dire al Prolog di dichiarare fallito un particolare goal senza trovare soluzioni alternative. In questo caso, il cut si usa in congiunzione con il predicato fail per dire se sei arrivato fino a questo punto senza aver trovato una soluzione, non tornare indietro a cercarne altre. Il fail è un predicato built-in. Non ha argomenti, e ciò significa che il successo del goal fail non dipende da alcuna variabile. Quando si incontra il fail dopo un cut, il normale comportamento del backtracking viene alterato. 12

13 Esempio n.5 not(p):- call(p),!,fail. not(p). Questo utilizzo non verrà considerato in questo corso, perché richiederebbe l introduzione in contemporanea dei predicati fail, not e call, che fanno parte di un utilizzo avanzato del Prolog. 13

14 Terzo uso del cut Vogliamo terminare la generazione di soluzioni alternative nel backtracking. In pratica, diciamo al Prolog: se hai trovato una soluzione, è già quella giusta, quindi non tornare indietro a cercarne altre. E l uso più intuitivo del cut: corrisponde a quello proposto negli esempi n.1 e 2 14

15 Problemi con il cut L uso del cut può risultare dannoso in alcuni casi: dobbiamo sempre tenere conto del modo con cui il Prolog valuta i fatti e le regole contenute nel database. Altrimenti possiamo ottenere risultati apparentemente imprevedibili. 15

16 Esempio n.6 Immaginiamo di voler creare un programma per determinare il numero dei genitori di tutti gli esseri viventi, compreso il caso un po particolare di Adamo ed Eva: numero_genitori(adamo,0):-!. numero_genitori(eva,0):-!. numero_genitori(x,2). 16

17 Esempio n.6 (continua) Se poniamo la domanda:?-numero_genitori(eva,x). Otteniamo: X=0 Se la domanda è:?-numero_genitori(pippo,x). Otteniamo (giustamente!): X=2 17

18 Esempio n.6 (continua) Ma se la domanda fosse posta in questo modo..?-numero_genitori(eva,2). La risposta quale sarebbe? La risposta sarebbe yes perché il goal fallirebbe con la prima regola perché adamo è diverso da eva con la seconda perché 0 è diverso da 2 ma il goal avrebbe successo analizzando il fatto 3 perché assocerebbe ad X il valore eva. 18

19 Esempio n.6 (continua) Ecco due possibili soluzioni al problema: numero_genitori(adamo,n):-!,n=0. numero_genitori(eva,n):-!,n=0. numero_genitori(x,2). Oppure numero_genitori(adamo,0):-!. numero_genitori(eva,0):-!. numero_genitori(x,2):- X\=adamo, X\=eva. 19

20 Esempio n.7 Il pompeiano Marco, come tutti gli umani, era fedele a qualcuno. Nel periodo in cui Marco visse era imperatore cesare; i romani di allora erano divisi in due fazioni: quelli fedeli a Cesare e quelli che lo odiavano. Poiché è noto che la gente cerca di assassinare gli imperatori cui non è fedele e tenendo conto che Marco tentò di assassinare Cesare, ci si chiede: Marco era fedele a Cesare? umano(marco). pompeiano(marco). imperatore(cesare). tenta_uccidere(marco,cesare). fedele_a(x,y):-umano(x), umano(y). non_fedele_a(x,y):- umano(x),imperatore(y),tenta_uccidere(x,y). odia(x,y):-umano(x), imperatore(y). 20

21 Esempio n. 7 (continua) Se ci si chiede se c è un rapporto di non fedeltà tra due persone, la risposta che Prolog fornisce è: Marco - Cesare. Se ci si chiede se Marco è fedele a Cesare, la risposta fornita da Prolog è: False. Se ci si chiede se qualcuno odia Cesare, la risposta che Prolog fornisce è: Marco. 21

22 Il predicato not Non abbiamo preso in esame il trattamento di informazioni negative. Questo è l'approccio utilizzato nelle basi di dati, in cui per ovvi problemi di dimensioni, si memorizzano solo informazioni positive. Si consideri ad esempio il programma: persona(maria). persona(giuseppe). persona(giovanni). cane(fido). 22

23 Il predicato not (continua) Risulterebbe più intuitivo interpretare la formula "persona(fido)" come falsa, cioè interpretare come falso tutto ciò che non è dimostrabile, ovvero che non è conseguenza logica. Per tale ragione è stato introdotto il predicato di negazione not indicato anche con la tilde ~. 23

24 Esempio n.9 Si consideri il seguente programma: capoluogo(bologna). capitale(roma). citta(x):-capoluogo(x). citta(x):-capitale(x). ed il goal:?-citta(x),not capitale(x). 24

25 Esempio n.9 (continua) Per dimostrare not capitale(x), l'interprete del linguaggio Prolog cerca di costruire una dimostrazione per capitale(x). Se la dimostrazione ha successo, allora la dimostrazione di not capitale(x), fallisce, mentre se la dimostrazione per capitale(x) fallisce, si considera not capitale(x) dimostrato con successo. 25

26 Esempio n.9 (continua) 26

27 Riflessioni sulla negazione Per il Prolog è vero solo ciò che è esplicitato nel database. Non sempre il prolog riesce ad inferire quello che è falso, per esempio consideriamo i due casi che seguono. disoccupato(x):- not occupato(x), adulto(x). occupato(giovanni). adulto(mario). Questa è la nostra domanda:?- disoccupato(x) Potremmo aspettarci come risposta yes con X=mario. Invece la risposta è.? Perché? 27

28 Esempio n.10 disoccupato(x):- not occupato(x), adulto(x). occupato(giovanni). adulto(mario). La nostra domanda è questa:?- disoccupato(mario). E la risposta e yes. Perché? 28

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

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 3 Dimostrazione di Tautologie e Sintassi del Calcolo osizionale Antonio, Corrado e Bruno... formalmente Tautologie: dimostrazioni e controesempi Sintassi del Calcolo

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 3 Dimostrazione di Tautologie e Sintassi del Calcolo osizionale Antonio, Corrado e Bruno... formalmente Tautologie: dimostrazioni e controesempi Sintassi del Calcolo

Dettagli

Ciclo do while in FORTRAN

Ciclo do while in FORTRAN Ciclo do while in FORTRAN Vogliamo tradurre in linguaggio FORTRAN un algoritmo che risponde a questo tipo di struttura: Fino a quando e vera questa espressione logica allora: fai questo fai quest altro

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

Materiale didattico aggiuntivo - Analisi Matematica I CENNI DI LOGICA MATEMATICA. 1. Proposizioni. Valori logici. Connettivi logici. Tavole di verita.

Materiale didattico aggiuntivo - Analisi Matematica I CENNI DI LOGICA MATEMATICA. 1. Proposizioni. Valori logici. Connettivi logici. Tavole di verita. Materiale didattico aggiuntivo - Analisi Matematica I CENNI DI LOGICA MATEMATICA 1. Proposizioni. Valori logici. Connettivi logici. Tavole di verita. Intenderemo per PROPOSIZIONE (o ENUNCIATO) una qualunque

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

CALCOLO PROPOSIZIONALE

CALCOLO PROPOSIZIONALE CALCOLO PROPOSIZIONALE UN PROBLEMA DI DEDUZIONE LOGICA (da un test d ingresso) Tre amici, Antonio, Bruno e Corrado, sono incerti se andare al cinema. Si sa che: Se Corrado va al cinema, allora ci va anche

Dettagli

04 - Logica delle dimostrazioni

04 - Logica delle dimostrazioni Università degli Studi di Palermo Facoltà di Economia CdS Sviluppo Economico e Cooperazione Internazionale Appunti del corso di Matematica 04 - Logica delle dimostrazioni Anno Accademico 013/014 D. Provenzano,

Dettagli

Un po di logica. Christian Ferrari. Laboratorio di matematica

Un 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

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

Cenni di logica e calcolo proposizionale

Cenni di logica e calcolo proposizionale Cenni di logica e calcolo proposizionale Corso di Laurea in Informatica Università degli Studi di Bari (sede Brindisi) Analisi Matematica S.Milella (sabina.milella@uniba.it) Cenni di logica 1 / 10 Proposizioni

Dettagli

Logica 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; Logica degli enunciati; Operazioni con le proposizioni; Proprietà delle operazioni logiche; Tautologie; Regole di deduzione; Logica dei predicati; Implicazione logica. Equivalenza logica; Condizione necessaria,

Dettagli

Introduzione alla programmazione

Introduzione 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

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

Richiami teorici ed esercizi di Logica

Richiami 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

Dettagli

Foglio Elettronico Lezione 1

Foglio 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

Dettagli

NOZIONI DI LOGICA PROPOSIZIONI.

NOZIONI 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

Dettagli

CALCOLO DEI PREDICATI DEL I ORDINE

CALCOLO DEI PREDICATI DEL I ORDINE CALCOLO DEI PREDICATI DEL I ORDINE Dizionario Simboli descrittivi lettere o variabili proposizionali: p, q, r, A, B, C, lettere o variabili predicative: P, Q, R, lettere o variabili individuali: a, b,

Dettagli

Semantica proposizionale. Unit 2, Lez 3 e 4 Corso di Logica

Semantica proposizionale. Unit 2, Lez 3 e 4 Corso di Logica Semantica proposizionale Unit 2, Lez 3 e 4 Corso di Logica Sommario Semantica dei connettivi Costruzione delle tavole di verità Tautologie, contraddizioni e contingenze Semantica delle forme argomentative

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 6 Istruzioni Condizionali Carla Limongelli Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Istruzioni condizionali

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

Matlab. Istruzioni condizionali, cicli for e cicli while.

Matlab. Istruzioni condizionali, cicli for e cicli while. Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il

Dettagli

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari

Fogli 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

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 15 aprile 2005 Esercizi Nota importante. In questa dispensa sono stati raccolti, senza alcun ordine particolare, alcuni esercizi che possono

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

sempre vere sempre false

sempre vere sempre false Logica: elementi I principi della logica sono innanzitutto i seguenti: Identità: a=a (ogni cosa è cioè identica a se stessa) Non contraddizione: non (a e non a). E impossibile che la stessa cosa sia e

Dettagli

Insegnamento Informatica CdS Scienze Giuridiche

Insegnamento Informatica CdS Scienze Giuridiche Insegnamento Informatica CdS Scienze Giuridiche A.A. 29/ Prof. Valle D.ssa Folgieri Informazioni preliminari Prof. Valle email valle@dsi.unimi.it SITO DEL CORSO: http://webcen.dsi.unimi.it/wcinfo Syllabus:

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Dettagli

George BOOLE ( ) L algebra booleana. (logica proposizionale)

George BOOLE ( ) L algebra booleana. (logica proposizionale) George BOOLE (1815-64) L algebra booleana. (logica proposizionale) La logica e George BOOLE George BOOLE nel 1847 pubblicò il libro Mathematical Analysis of Logic, nel quale presentava ciò che oggi si

Dettagli

MATEMATICA. a.a. 2014/ LIMITI (I parte): Definizione, proprietà e calcolo. Limiti di funzioni, continuità e asintoti.

MATEMATICA. a.a. 2014/ LIMITI (I parte): Definizione, proprietà e calcolo. Limiti di funzioni, continuità e asintoti. MATEMATICA a.a. 2014/15 2. LIMITI (I parte): Definizione, proprietà e calcolo. Limiti di funzioni, continuità e asintoti. Definizione Il campo di esistenza è l insieme di tutti i punti nei quali la funzione

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi Codice BCD Prima di passare alla rappresentazione dei numeri relativi in binario vediamo un tipo di codifica che ha una certa rilevanza in alcune applicazioni: il codice BCD (Binary Coded Decimal). È un

Dettagli

02 - Logica delle dimostrazioni

02 - Logica delle dimostrazioni Università degli Studi di Palermo Facoltà di Economia Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 0 - Logica delle dimostrazioni Anno Accademico 015/016

Dettagli

LOGICA PER LA PROGRAMMAZIONE - a.a Secondo Appello - 11/02/2016 Soluzioni Proposte

LOGICA PER LA PROGRAMMAZIONE - a.a Secondo Appello - 11/02/2016 Soluzioni Proposte LOGICA PER LA PROGRAMMAZIONE - a.a. 2015-2016 Secondo Appello - 11/02/2016 Soluzioni Proposte Attenzione: Le soluzioni che seguono sono considerate corrette dai docenti. Per ogni esercizio possono esistere

Dettagli

METODI MATEMATICI PER L INFORMATICA

METODI MATEMATICI PER L INFORMATICA METODI MATEMATICI PER L INFORMATICA Tutorato Lezione 2 17/03/2016 Corso per matricole congrue a 1 Docente: Margherita Napoli Tutor: Amedeo Leo Applicazioni della logica proposizionale La logica ha una

Dettagli

Anno 3. Equazioni esponenziali e logaritmiche

Anno 3. Equazioni esponenziali e logaritmiche Anno 3 Equazioni esponenziali e logaritmiche 1 Introduzione Lo scopo delle pagine che seguono è quello di passare in rassegna le strategie risolutive per le equazioni esponenziali e logaritmiche. Al termine

Dettagli

Valutazione Lazy. Prefazione alla lezione

Valutazione Lazy. Prefazione alla lezione Valutazione Lazy Aniello Murano Università degli Studi di Napoli Federico II 1 Prefazione alla lezione Nella lezione precedente abbiamo introdotto i linguaggi (funzionali) con tipi di ordine superiore.

Dettagli

I circuiti elementari

I circuiti elementari I circuiti elementari Nel lavoro diprogrammazione con il computer si fa largo uso della logica delle proposizioni e delle regole dell algebra delle proposizioni o algebra di Boole. L algebra di Boole ha

Dettagli

11. Misure con segno.

11. Misure con segno. 11. Misure con segno. 11.1. Misure con segno. Sia Ω un insieme non vuoto e sia A una σ-algebra in Ω. Definizione 11.1.1. (Misura con segno). Si chiama misura con segno su A ogni funzione ϕ : A R verificante

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

Logica booleana, Costrutto IF

Logica booleana, Costrutto IF Logica booleana, Costrutto IF Informatica@SEFA 207/208 - Lezione 4 Massimo Lauria http://massimolauria.net/courses/infosefa207/ Mercoledì, 4 Ottobre 207 La logica booleana 2

Dettagli

ESERCIZI DI ANALISI MATEMATICA 1 FOGLIO 1

ESERCIZI DI ANALISI MATEMATICA 1 FOGLIO 1 ESERCIZI DI ANALISI MATEMATICA 1 FOGLIO 1 Logica e connettivi logici Esercizio 0.1. Si costruiscano le tabelle di verità delle seguenti espressioni booleane; cioè, al variare dei valori di verit delle

Dettagli

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli Codice La relazione che associa ad ogni successione ben formata di simboli di un alfabeto il dato corrispondente è detta codice. Un codice mette quindi in relazione le successioni di simboli con il significato

Dettagli

Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1

Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1 Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1 Esercizio 1.12 Per dimostrare che per ogni funzione esiste una formula in cui compaiono le variabili tale che la corrispondente

Dettagli

Laboratorio Informatica

Laboratorio Informatica Laboratorio Informatica Le funzioni Massimo Marchi http://marchi.usr.dsi.unimi.it/ Le funzioni Introduzione Massimo Marchi - http:// marchi.usr.dsi.unimi.it/ Le funzioni nelle formule! L utente per creare

Dettagli

Prerequisiti Matematici

Prerequisiti Matematici Prerequisiti Matematici Richiami di teoria degli insiemi Relazioni d ordine, d equivalenza Richiami di logica Logica proposizionale, tabelle di verità, calcolo dei predicati Importante: Principio di Induzione

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

Dettagli

LOGICA DEL PRIMO ORDINE: PROOF SYSTEM. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini

LOGICA DEL PRIMO ORDINE: PROOF SYSTEM. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini LOGICA DEL PRIMO ORDINE: PROOF SYSTEM Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini LOGICA DEL PRIMO ORDINE: RIASSUNTO Sintassi: grammatica libera da contesto (BNF), parametrica rispetto

Dettagli

Elementi di logica. SCOPO: introdurre nozioni di logica & vocabolario per una corretta interpretazione delle dimostrazioni.

Elementi di logica. SCOPO: introdurre nozioni di logica & vocabolario per una corretta interpretazione delle dimostrazioni. Elementi di logica SCOPO: introdurre nozioni di logica & vocabolario per una corretta interpretazione delle dimostrazioni. Quantificatori: elementi fondamentali del linguaggio matematico. quantificatore

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

Calcoli dei sequenti classici e lineare

Calcoli dei sequenti classici e lineare Calcoli dei sequenti classici e lineare Gianluigi Bellin November 5, 2009 Scheda per il compito 2, scadenza rinviata al marteedì 10 novembre 2009 1 Calcolo dei sequenti classico 1.1 Linguaggio ed interpretazione

Dettagli

2 non è un numero razionale

2 non è un numero razionale 2 non è un numero razionale 1. Richiami: numeri pari e dispari. Un numero naturale m è pari (rispettivamente dispari) se e solo se esiste un numero naturale r tale che m = 2r (rispettivamente m = 2r +

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

BREVE 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 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

Dettagli

401 PREDICATI RICORSIVI PRIMITIVI

401 PREDICATI RICORSIVI PRIMITIVI 401 PREDICATI RICORSIVI PRIMITIVI Corso di Informatica Teorica - modulo 2 Prof. Settimo Termini 1 Breve richiamo Un predicato su un insieme S è una funzione totale P su S tale che a S si ha: P(a) = VERO

Dettagli

Prima lezione. Gilberto Bini. 16 Dicembre 2006

Prima lezione. Gilberto Bini. 16 Dicembre 2006 16 Dicembre 2006 Vediamo alcune nozioni di teoria ingenua degli insiemi. Vediamo alcune nozioni di teoria ingenua degli insiemi. Un insieme è una collezione di oggetti di cui possiamo specificare una proprietà

Dettagli

Cenni di logica. Hynek Kovarik. Università di Brescia. Analisi Matematica A

Cenni di logica. Hynek Kovarik. Università di Brescia. Analisi Matematica A Cenni di logica Hynek Kovarik Università di Brescia Analisi Matematica A Hynek Kovarik (Università di Brescia) Cenni di logica Analisi Matematica A 1 / 21 Scopo: introdurre nozioni di logica & terminologia

Dettagli

NOZIONI DI LOGICA. Premessa

NOZIONI DI LOGICA. Premessa NOZIONI DI LOGICA Premessa Il compito principale della logica è quello di studiare il nesso di conseguenza logica tra proposizioni, predisponendo delle tecniche per determinare quando la verità di una

Dettagli

DIMOSTRAZIONI DI EQUIVALENZE, SUI CONNETTIVI E SULL'AMBIGUITA' DELLA SINTASSI. Corso di Logica per la Programmazione

DIMOSTRAZIONI DI EQUIVALENZE, SUI CONNETTIVI E SULL'AMBIGUITA' DELLA SINTASSI. Corso di Logica per la Programmazione DIMOSTRAZIONI DI EQUIVALENZE, SUI CONNETTIVI E SULL'AMBIGUITA' DELLA SINTASSI Corso di Logica per la Programmazione SULLE LEGGI DEL CALCOLO PROPOSIZIONALE Abbiamo visto le leggi per l'equivalenza ( ),

Dettagli

Appunti di informatica. Lezione 7 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 7 anno accademico Mario Verdicchio Appunti di informatica Lezione 7 anno accademico 2016-2017 Mario Verdicchio L algoritmo di Euclide per l MCD Dati due numeri A e B, per trovare il loro MCD procedere nel seguente modo: 1. dividere il maggiore

Dettagli

Lezione 6 Richiami di Geometria Analitica

Lezione 6 Richiami di Geometria Analitica 1 Piano cartesiano Lezione 6 Richiami di Geometria Analitica Consideriamo nel piano due rette perpendicolari che si intersecano in un punto O Consideriamo ciascuna di queste rette come retta orientata

Dettagli

Le strutture di controllo

Le strutture di controllo INFORMATICA B Ingegneria Elettrica Le strutture di controllo Selezione un esempio introduttivo Si disegni il diagramma di flusso di un algoritmo che chiede all utente un valore intero e visualizza il suo

Dettagli

Logica 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 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

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

ISTITUTO TECNICO STATALE COMMERCIALE E PER GEOMETRI A. MARTINI Castelfranco Veneto (TV) Elementi di Logica

ISTITUTO 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

Dettagli

TRADUZIONE STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+

TRADUZIONE STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+ TRADUZIONE DI STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+ a cura di: Eleonora Antonelli Simone Maletta Stefano Novara INDICE 1. Grammatica di TLA+ a cura di Eleonora Antonelli

Dettagli

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010 Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo

Dettagli

Una Breve Introduzione alla Logica

Una Breve Introduzione alla Logica Una Breve Introduzione alla Logica LOGICA La LOGICA è la disciplina che studia le condizioni di correttezza del ragionamento Occorre dire, anzitutto, quale oggetto riguardi ed a quale disciplina spetti

Dettagli

Logica proposizionale

Logica 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

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

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

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

Linguaggi. Claudio Sacerdoti Coen 29,?/10/ : La struttura dei numeri naturali. Universitá di Bologna

Linguaggi. Claudio Sacerdoti Coen 29,?/10/ : La struttura dei numeri naturali. Universitá di Bologna Linguaggi 5: La struttura dei numeri naturali Universitá di Bologna 29,?/10/2014 Outline La struttura dei numeri naturali 1 La struttura dei numeri naturali I numeri naturali La

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 Linguaggi e Complessità : Lezione 1 Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 1 Logica proposizionale Linguaggio matematico

Dettagli

Esercizi sulle radici

Esercizi sulle radici Esercizi sulle radici Semplificazione Per semplificare una radice utilizzando, quando necessario, i valori assoluti, dobbiamo ricordare che se una radice ha indice pari, il suo radicando (il numero che

Dettagli

Grafi e reti di flusso

Grafi e reti di flusso Grafi e reti di flusso Molti problemi di ottimizzazione sono caratterizzati da una struttura di grafo: in molti casi questa struttura emerge in modo naturale, in altri nasce dal particolare modo in cui

Dettagli

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, 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

Dettagli

Intersezione e somma di sottospazi vettoriali

Intersezione e somma di sottospazi vettoriali Capitolo 6 Intersezione e somma di sottospazi vettoriali 6.1 Introduzione Ricordiamo le definizioni di intersezione e somma di due sottospazi vettoriali. Anche in questo caso rimandiamo al testo di geometria

Dettagli

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test Espressioni logiche Espressioni Logiche e Istruzione di Test Fondamenti di Informatica 1 Massimo Di Nanni Gennaio, 2001 Espressioni logiche nelle Istruzioni di Test e di Iterazione Calcolo del massimo

Dettagli

Sviluppo di programmi

Sviluppo 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

Dettagli

Appunti di matematica per le Scienze Sociali Parte 1

Appunti di matematica per le Scienze Sociali Parte 1 Appunti di matematica per le Scienze Sociali Parte 1 1 Equazioni 1.1 Definizioni preliminari 1.1.1 Monomi Si definisce monomio ogni prodotto indicato di fattori qualsiasi, cioè uguali o diseguali, numerici

Dettagli

Architettura degli Elaboratori I Esercitazione 5 - Progettazione di Reti di Interconnessione fra Registri Roberto Navigli

Architettura degli Elaboratori I Esercitazione 5 - Progettazione di Reti di Interconnessione fra Registri Roberto Navigli Architettura degli Elaboratori I Esercitazione 5 - Progettazione di Reti di Interconnessione fra Registri Roberto Navigli 1 Reti di Interconnessione fra Registri In questa esercitazione vedremo i quattro

Dettagli

Riepilogo scomposizione polinomi

Riepilogo scomposizione polinomi Riepilogo scomposizione polinomi. Ci sono fattori comuni? Se sì, fai un raccoglimento totale. Esempio: ax ay a=a x y 2. Quanti sono i termini del polinomio? Due Somma di quadrati: non si scompone. Esempio:

Dettagli

Circonferenze del piano

Circonferenze del piano Circonferenze del piano 1 novembre 1 Circonferenze del piano 1.1 Definizione Una circonferenza è il luogo dei punti equidistanti da un punto fisso, detto centro. La distanza di un qualunque punto della

Dettagli

Lezione 39: la legge di Ohm e i circuiti elettrici

Lezione 39: la legge di Ohm e i circuiti elettrici Lezione 39 - pag.1 Lezione 39: la legge di Ohm e i circuiti elettrici 39.1. Il circuito elementare Nella scorsa lezione abbiamo rappresentato in modo più o meno realistico alcuni circuiti elettrici particolarmente

Dettagli

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) 1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano

Dettagli

Anno 2. Radicali algebrici e aritmetici: condizioni di esistenza

Anno 2. Radicali algebrici e aritmetici: condizioni di esistenza Anno 2 Radicali algebrici e aritmetici: condizioni di esistenza 1 Introduzione Perché studiare i radicali? In matematica ogni volta che facciamo un operazione dobbiamo anche vedere se è possibile tornare

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE INTRODUZIONE ALLE ISTRUZIONI ITERATIVE DISPENSA 03.01 03-01_Iterazioni_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative

Dettagli

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,

Dettagli

1 Funzioni reali di una variabile reale

1 Funzioni reali di una variabile reale 1 Funzioni reali di una variabile reale Qualche definizione e qualche esempio che risulteranno utili più avanti Durante tutto questo corso studieremo funzioni reali di una variabile reale, cioè Si ha f

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 2 Dimostrazione di tautologie Proof System pag. 1 Un Problema di Deduzione Logica [da un test di ingresso] Tre amici, Antonio, Bruno e Corrado, sono incerti se andare

Dettagli

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati Sommario - Progettazione di un database - Join - Valore NULL - Operatori aggregati Progettazione di un database - In un database c'è una marcata distinzione tra i valori in esso contenuti e le operazioni

Dettagli

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione

Dettagli

UNIVERSITÀ DEGLI STUDI LA SAPIENZA CORSO DI STUDI IN INFORMATICA ESERCITAZIONI AL CORSO DI LOGICA MATEMATICA LOGICA PROPOSIZIONALE

UNIVERSITÀ DEGLI STUDI LA SAPIENZA CORSO DI STUDI IN INFORMATICA ESERCITAZIONI AL CORSO DI LOGICA MATEMATICA LOGICA PROPOSIZIONALE UNIVERSITÀ DEGLI STUDI LA SAPIENZA CORSO DI STUDI IN INFORMATICA ESERCITAZIONI AL CORSO DI LOGICA MATEMATICA LOGICA PROPOSIZIONALE TAVOLE DI VERITÀ, COLETEZZA VERO-FUNZIONALE Esercizio 1. Calcola le tavole

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

Correttezza (prima parte)

Correttezza (prima parte) Fondamenti di informatica Oggetti e Java (prima parte) Capitolo 16 ottobre 2015 1 Contenuti Introduzione alla correttezza dei programmi specifica di un programma correttezza di un programma verifica di

Dettagli