UNIFICAZIONE E PATTERN MATCHING

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIFICAZIONE E PATTERN MATCHING"

Transcript

1 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. Tali termini individuano, dunque, il procedimento attraverso cui si confrontano 2 o più strutture (nel nostro caso fbf della logica del prim ordine), per scoprire le loro somiglianze o differenze. Tale operazione rappresenta per il calcolo simbolico quello che l addizione e la moltiplicazione sono per il calcolo numerico: è stato valutato che in molti sistemi di produzione essa assorbe il 90% del tempo di calcolo complessivo. Ciò in virtù del fatto che il confronto di descrizioni è alla base di operazioni più complesse (quali la risoluzione e la ricerca) che a loro volta sono sfruttate da un ampio spettro di tecniche (ad es., la programmazione logica e l elaborazione del linguaggio naturale) sulle quali poggiano svariate branche dell IA (sistemi esperti, sistemi di apprendimento, ecc.). Gli odierni computer della V generazione, dedicati all IA, sono macchine per eseguire linguaggi di programmazione logica, in cui la CPU è un algoritmo di unificazione (in HW o in SW), la cui velocità è calcolata in KLIPS: (Kilo) Logical Inferences Per Second 1

2 Dati due termini, s e t, il problema dell unificazione consiste nel capire se esistono dei termini che possono essere sostituiti alle variabili che compaiono in s ed in t, in modo che i termini così ottenuti siano identici. Una sostituzione σ è una funzione che ad ogni variabile associa un termine. Si denota con σ = {(t j /x i )} oppure σ = {x i t j }, con x i variabili e t j temini. L applicazione di una sostituzione σ ad un termine o fbf t (denotata con σ(t) oppure tσ oppure t.σ) consiste nell applicare la sostituzione a tutte le variabili che compaiono in t. N.B.: Non si può sostituire una variabile con un termine in cui compare la variabile stessa, perché porterebbe a termini infiniti. Il controllo che ciò non accada è detto occur-in check. Esempio. (Sostituzione ammessa) Sia t = f(g(a,b),x,y) un termine del linguaggio e σ = {g(a)/x, c/y, y/z} una sostituzione. Si ha: σ(t) = f(g(a,b),g(a),c). 2

3 Date due sostituzioni δ e σ, la sostituzione composta da δ e σ (denotata con σ δ) è la sostituzione ottenuta da applicando σ agli elementi di δ e aggiungendo il risultato a δ: (σ δ)(t) = σ(δ(t)) La composizione di sostituzioni è associativa: ma (in generale) non commutativa: ((σ δ) τ) = (σ (δ τ)) (σ δ) (δ σ) Definizione. Due termini, s e t, si dicono unificabili se esiste una sostituzione σ tale che σ (s) = σ (t) In tal caso, σ è detto unificatore, e σ(s) (= σ(t) ) unificazione, di s e t. Dati due termini s e t, il loro unificatore può non essere unico. Esempio. I termini s = f(g(y,b),x) e t = f(x,g(a,b)) sono unificabili. Infatti σ = {g(a,b)/x, a/y} è un unificatore di s e t, in quanto: σ (s) = f(g(a,b),g(a,b)) = σ(t) Anche s = f(x,g(y)) e t = f(x,g(b)) sono unificabili. Infatti sia σ = {b/y} che δ = {a/x, b/y} sono unificatori di s e t. 3

4 Si vede subito che esistono molti altri unificatori di s e t. Sorge, pertanto, la necessità di stabilire un criterio per scegliere uno fra i vari unificatori possibili. Definizione. Dati due termini s e t, un loro unificatore σ si dice che è il loro unificatore più generale (MGU, Most General Unifier) se, per ogni altro loro unificatore δ, esiste una sostituzione τ tale che δ = τ σ. In altre parole, δ è un istanza di σ; intuitivamente, si può dire che l unificatore più generale è il più semplice fra tutti quelli dei termini dati. Proprietà. Il problema dell unificazione è decidibile nelle Teorie del I ordine; Nelle teorie del prim ordine, il MGU di due termini, se esiste, è unico. L unicità viene meno in presenza di teorie contenenti simboli di funzione commutativi e/o associativi. In particolare, la commutatività assicura la finitezza degli MGU, mentre la sola associatività porta all esistenza di infiniti MGU in almeno un caso. 4

5 Poiché le fbf possono essere rappresentate come termini, può essere usata per esse la stessa definizione di unificazione data in precedenza. In particolare: Due atomi si unificano se hanno uguali predicato ed arietà ed esiste un unica sostituzione che unifica ciascun termine del primo col corrispondente termine del secondo. Se il predicato è commutativo, è sufficiente che ciascun termine del primo unifichi con il corrispondente termine di una permutazione dei termini del secondo. Due letterali si unificano se sono entrambi positivi o entrambi negativi ed i corrispondenti atomi si unificano. Due congiunti di letterali si unificano se hanno lo stesso numero di elementi ed esiste un unica sostituzione che unifica ciascun elemento del primo col corrispondente elemento di una permutazione del secondo. Due fbf in forma normale disgiuntiva si unificano se hanno lo stesso numero di elementi ed esiste un unica sostituzione che unifica ciascun elemento della prima col corrispondente elemento di una permutazione della seconda. Le permutazioni sono considerate a causa delle proprietà associativa e commutativa di cui godono la congiunzione e la disgiunzione. 5

6 N.B.: L unificabilità di insiemi, a differenza di quella di congiunti di letterali, consente che un elemento di uno dei due congiunti unifichi con più elementi dell altro congiunto. Spesso si vuole non solo sapere se esiste un unificatore, ma anche trovarlo esplicitamente. E, inoltre, molto sentito il problema di stabilire la complessità computazionale dell unificazione e di determinare gli algoritmi di soluzione più efficienti. Le prime esperienze con i sistemi automatici per la deduzione rivelarono chiaramente che il calcolo dell unificazione è il cuore della maggior parte dei sistemi che effettuano deduzioni. La stretta relazione tra deduzione logica e computazione è tale per cui la logica gioca un ruolo nell informatica analogo a quello dell analisi in fisica. La logica dei predicati è un linguaggio di programmazione (Kowalski). Algoritmo di unificazione (Robinson, 1971). L algoritmo di unificazione consiste di una funzione ricorsiva (unifica) che ha in ingresso due termini (t1 e t2) e, rispettandone la struttura, unifica i loro argomenti ad uno ad uno, restituendo una variabile booleana (unifiable) che dice se i due termini sono unificabili e, in caso affermativo, l unificatore dei due termini (σ). 6

7 Essa poggia su due routine: una funzione booleana (occur) che dati una variabile ed un termine dice se la variabile è presente nel termine, ed una procedura (componi) che fa la composizione di due sostituzioni. function unifica (t1,t2) (unificabile: boolean, σ: sostituzione); if t1 o t2 è una variabile then sia x la variabile; sia t l altro termine; if x = t then (unificabile, σ) := (true, ); else if occur(x,t) then unificabile := false; else (unificabile,s) := (true,{t/x}) end else sia t1 = f(x1,,xn)e t2 = g(y1,,ym); if f g or m n then unificabile := false else k := 0; unificabile := true; σ := nil; while k<m and unificabile do k := k + 1; (unificabile, ρ) := unifica(σ (xk), σ (yk)); if unificabile then σ := componi (ρ, σ) end end end; return (unificabile, σ) end. Per molte applicazioni pratiche, l unificazione è un concetto troppo generale. Un importante variante è rappresentata dal Pattern matching (o, semplicemente, Matching), in cui è lecito effettuare sostituzioni solo in 7

8 una delle due strutture. Nella sua forma più semplice, le strutture, anche dette forme (patterns), vengono confrontate per stabilire se sono uguali (e il matching è visto come funzione booleana). Si dice che esiste un matching fra due termini, s e t, se esiste una sostituzione µ tale che µ(s) =t oppure µ(t) = s In tal caso, µ è detto matcher, e µ (s) (risp. µ (t) ) matching, di s e t. Spesso, inoltre, poiché le nostre operazioni di matching non sono di solito simmetriche, si è interessati ad una definizione più debole di quella data. Cioè, di solito si ha un modello che si vuole porre in corrispondenza con un fatto specifico. Si dice che il modello corrisponde (matches) ad un fatto se la formula che descrive il modello si unifica con qualche sottocongiunzione delle formule del fatto. Esempio. Fatto: forma(c1,rettangolo) forma(c2,cerchio) forma(c3,cerchio) grandezza(c1,media) grandezza(c2,piccola) grandezza(c3,piccola). 8

9 Modello: x y z forma(x,rettangolo) forma(y,cerchio) forma(z,cerchio). In questo caso si vede che il modello, tramite la sostituzione{c1/x, c2/y, c3/z}, diventa un sottoinsieme del fatto dato, che quindi gli corrisponde. 9

Corso di Laurea in INFORMATICA

Corso di Laurea in INFORMATICA Corso di Laurea in INFORMATICA INTELLIGENZA ARTIFICIALE (CdL di II Livello) MODULO Unificazione e Pattern Matching Dipartimento di Informatica - Università di Bari In Intelligenza Artificiale (A.I.), la

Dettagli

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

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

Dettagli

Forme normali, clausole e Calcolo con regola di Risoluzione

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

Dettagli

Intelligenza Artificiale I

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

Dettagli

Monomi L insieme dei monomi

Monomi L insieme dei monomi Monomi 10 10.1 L insieme dei monomi Definizione 10.1. Un espressione letterale in cui numeri e lettere sono legati dalla sola moltiplicazione si chiama monomio. Esempio 10.1. L espressione nelle due variabili

Dettagli

Introduzione alla logica matematica

Introduzione alla logica matematica Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 p.1/29 Introduzione alla logica matematica Silvana Badaloni Paolo Bison Fondamenti di Informatica 1 A.A. 2004/05 Università di

Dettagli

Elementi di Informatica

Elementi di Informatica Elementi di Informatica Capitolo 6 Iterazione Prof. Mauro Gaspari: mauro.gaspari@unibo.it Assegnamenti multipli bruce = 5 print bruce, bruce = 7 print bruce Assegnamento e uguaglianza E' importante distinguere

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

Intelligenza Artificiale. Logica proposizionale: calcolo automatico

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

Dettagli

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

View-based query answering

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

Dettagli

Informatica/ 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 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

Dettagli

e Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità

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

Dettagli

Intelligenza Artificiale. Logica proposizionale: calcolo simbolico

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

Dettagli

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

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

Dettagli

Risoluzione di un problema

Risoluzione di un problema Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito

Dettagli

Verifica di programmi

Verifica di programmi Verifica di programmi Informalmente, un programma è corretto se l output prodotto è quello atteso rispetto all input. La correttezza dei programmi può essere espressa mediante formule per la correttezza

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

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

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

Dettagli

Dispensa su. Funzioni Booleane. Jianyi Lin Università degli Studi di Milano

Dispensa su. Funzioni Booleane. Jianyi Lin Università degli Studi di Milano Dispensa su Funzioni Booleane Jianyi Lin Università degli Studi di Milano jianyi.lin@unimi.it 18 novembre 2011 1 Operazioni booleane In questa sezione introduciamo il concetto di funzione booleana e accenniamo

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

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 02/07/2015/ Foglio delle domande /VERSIONE 1 Matricola Cognome Nome

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 02/07/2015/ Foglio delle domande /VERSIONE 1 Matricola Cognome Nome Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 02/07/2015/ Foglio delle domande /VERSIONE 1 Matricola Cognome Nome 1) Il termine informatica viene dalla fusione delle seguenti parole a) informazione

Dettagli

Operatori di relazione

Operatori 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

Dettagli

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

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

Dettagli

Intelligenza Artificiale I

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

Dettagli

Fondamenti di Informatica

Fondamenti 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

Dettagli

Architetture data-flow

Architetture data-flow Architetture data-flow Le architetture che abbiamo visto finora sono dette architetture control flow. Ciò sta ad indicare che il flusso dell elaborazione è dettato dall ordine con cui le varie istruzioni

Dettagli

In questo esempio, il tipo a -> a indica che la funzione fn x => x è polimorfa, ed è dunque corretto applicarla ad argomenti di tipo diverso:

In questo esempio, il tipo a -> a indica che la funzione fn x => x è polimorfa, ed è dunque corretto applicarla ad argomenti di tipo diverso: 1 Polimorfismo in ML In ML i termini di cui si compone un programma possono non contenere alcuna informazione sui tipi. Ad esempio, sono legali in ML tanto il termine fn x : int => x quanto fn x => x.

Dettagli

Logica Proposizionale

Logica Proposizionale Intelligenza rtificiale I Logica Proposizionale Introduzione Marco Piastra Intelligenza rtificiale I -.. 28-29 29 Introduzione al corso ] lgebre di Boole Definizione Una collezione di oggetti X su cui

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 12 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Tripla di Hoare soddisfatta A. Corradini e F.Levi Dip.to Informatica Logica per la Programmazione a.a.

Dettagli

Che cos è un insieme? Come si individua un insieme? 1. Scrivendone esplicitamente gli elementi: C = {2, 4, 6, 8, 10,...}.

Che cos è un insieme? Come si individua un insieme? 1. Scrivendone esplicitamente gli elementi: C = {2, 4, 6, 8, 10,...}. Teoria degli insiemi Che cos è un insieme? Come si individua un insieme? 1. Scrivendone esplicitamente gli elementi: A = {a, b, c} B = {1, 2} C = {2, 4, 6, 8, 10,...}. 2. Enunciando una proprietà che è

Dettagli

Problemi decisionali. Esempi

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

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 Linguaggi e Complessità : Lezione 3 Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 3 1 Clausole I letterali sono simboli proposizionali

Dettagli

Problemi decidibili, semidecidibili, indecidibili

Problemi decidibili, semidecidibili, indecidibili Problemi decidibili, semidecidibili, indecidibili (Paragrafo 3.5 delle dispense) Il problema di determinare se una formula A della logica proposizionale sia valida o no può essere risolto mediante un procedimento

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

Intelligenza Artificiale I

Intelligenza Artificiale I Intelligenza rtificiale I Logica formale Primi elementi Marco Piastra Logica formale - Primi elementi - Sottoinsiemi e operatori Sottoinsiemi U Insieme di riferimento (insieme sostegno) {,, C, } Collezione

Dettagli

Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela

Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Fondamenti di Informatica 2 Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Fondamenti di Informatica 2: Logica Indice degli argomenti Introduzione: Motivazioni, Prove,

Dettagli

Programmazione Matematica: VII La scomposizione di Dantzig Wolfe

Programmazione Matematica: VII La scomposizione di Dantzig Wolfe Programmazione Matematica: VII La scomposizione di Dantzig Wolfe Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev..0 Maggio 2004 Scomposizione di problemi Accade spesso che un problema

Dettagli

MATRICI E SISTEMI LINEARI

MATRICI E SISTEMI LINEARI MATRICI E SISTEMI LINEARI - PARTE I - Felice Iavernaro Dipartimento di Matematica Università di Bari 27 Febbraio 2006 Felice Iavernaro (Univ. Bari) Matrici e Sistemi lineari 27/02/2006 1 / 1 Definizione

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello AN - 1995 Linguaggi di alto livello AN - 1995 Evoluzione dei

Dettagli

= < < < < < Matematica 1

= < < < < < Matematica  1 NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato

Dettagli

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara Sistemi lineari Lorenzo Pareschi Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara http://utenti.unife.it/lorenzo.pareschi/ lorenzo.pareschi@unife.it Lorenzo Pareschi (Univ. Ferrara)

Dettagli

Analisi Sintattica. Maria Rita Di Berardini. Universitá di Camerino Ruolo del parser

Analisi Sintattica. Maria Rita Di Berardini. Universitá di Camerino Ruolo del parser Ruolo del parser Analisi 1 1 Dipartimento di Matematica e Informatica Universitá di Camerino mariarita.diberardini@unicam.it Ruolo del parser Ruolo dell analisi sintattica Ruolo del parser Metodologie

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Seconda prova in itinere. Logica e Algebra. 10 luglio Esercizio 1 Si considerino le seguenti formule della logica del primo ordine:

Seconda prova in itinere. Logica e Algebra. 10 luglio Esercizio 1 Si considerino le seguenti formule della logica del primo ordine: Seconda prova in itinere Logica e Algebra luglio 5 Esercizio Si considerino le seguenti formule della logica del primo ordine: a) x y A x, aa y, a A f x, y, b) z A f x, z, b c) x y A x, aa y, a A f x,

Dettagli

Fondamenti dell informatica

Fondamenti dell informatica Fondamenti dell informatica Funzioni ricorsive e linguaggi funzionali Rosario Culmone rosario.culmone@unicam.it 16/4/2008 UNICAM - p. 1/21 Funzioni ricorsive Metodo di definizione di algoritmi introdotto

Dettagli

Note per la Lezione 6 Ugo Vaccaro

Note per la Lezione 6 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,

Dettagli

M.P. Cavaliere ELEMENTI DI MATEMATICA E LOGICA MATEMATICA DISCRETA STRUTTURE ALGEBRICHE

M.P. Cavaliere ELEMENTI DI MATEMATICA E LOGICA MATEMATICA DISCRETA STRUTTURE ALGEBRICHE M.P. Cavaliere ELEMENTI DI MATEMATICA E LOGICA MATEMATICA DISCRETA STRUTTURE ALGEBRICHE Operazioni in un insieme Sia A un insieme non vuoto; una funzione f : A A A si dice operazione binaria (o semplicemente

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (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

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 2 I tipi di dato Prerequisiti Concetto di relazione e funzione Concetto di insieme numerico Operatori aritmetici Operatori relazionali 2 Introduzione Abbiamo visto che un

Dettagli

Definizione: Due monomi si dicono simili se hanno la stessa parte letterale.

Definizione: Due monomi si dicono simili se hanno la stessa parte letterale. CALCOLO LETTERALE Definizione: Data una formula si dicono variabili le lettere alle quali può essere sostituito qualsiasi valore numerico; i numeri si dicono, invece, costanti. Nella formula per il calcolo

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti 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

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Si descrive un algoritmo cercando di sintetizzare il più possibile la sua sequenza di passi; Non si utilizza un linguaggio di programmazione specifico, ma è meglio utilizzare

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Dati Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Dati: Conclusioni >> Sommario Sommario Ricapitolazione Alcune

Dettagli

Esecuzione condizionale ed espressioni logiche

Esecuzione condizionale ed espressioni logiche Esecuzione condizionale ed espressioni logiche Informatica@SEFA 08/09 - Lezione 6 Massimo Lauria http://massimolauria.net/courses/infosefa08/ Venerdì, 5 Ottobre 08 Ripartiamo

Dettagli

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet Algoritmi e Strutture di Dati I 2 Problemi Un problema specifica in termini generali una relazione che intercorrere

Dettagli

Tali quantità o caratteristiche essenziali di un fenomeno possono essere qualitative o quantitative e vengono dette variabili.

Tali quantità o caratteristiche essenziali di un fenomeno possono essere qualitative o quantitative e vengono dette variabili. OBIETTIVO DELLA RICERCA SCIENTIFICA MODELLO DEL FENOMENO NATURALE stabilire se esistono relazioni tra le quantità che si ritengono essenziali per la descrizione di un fenomeno. è una costruzione ideale

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

Linguaggi. Claudio Sacerdoti Coen 04/03/ : La struttura dei numeri naturali. Universitá di Bologna

Linguaggi. Claudio Sacerdoti Coen 04/03/ : La struttura dei numeri naturali. Universitá di Bologna Linguaggi 8: Universitá di Bologna 04/03/2011 Outline 1 I numeri naturali Wikipedia: L espressione numeri naturali spesso viene usata sia per la sequenza di numeri interi positivi

Dettagli

come segue: data una collezione C di elementi e una un elemento che verifica la proprietà P

come segue: data una collezione C di elementi e una un elemento che verifica la proprietà P Problemi di Ricerca Carla Binucci e Walter Didimo Il problema della Ricerca In generale, il Problema della Ricerca è definito come segue: data una collezione C di elementi e una proprietà P, determinare

Dettagli

Esercizi di Logica Matematica

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

Dettagli

LOGICA e INSIEMISTICA

LOGICA e INSIEMISTICA LOGICA e INSIEMISTICA Prof. Enrico Terrone A. S: 2008/09 Definizioni La logica è una parte speciale della matematica che si occupa, anziché dei numeri, delle proposizioni. Una proposizione è una frase

Dettagli

Controllo del flusso di esecuzione di un programma

Controllo del flusso di esecuzione di un programma Controllo del flusso di esecuzione di un programma I programmi sono eseguiti sequenzialmente, istruzione dopo istruzione, ma in alcuni casi il flusso di esecuzione può scegliere vie alternative o ripetersi

Dettagli

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29 Macchine di Turing Francesco Paoli Istituzioni di logica, 2016-17 Francesco Paoli (Istituzioni di logica, 2016-17) Macchine di Turing 1 / 29 Alan M. Turing (1912-1954) Francesco Paoli (Istituzioni di logica,

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili

Dettagli

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

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

Dettagli

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

Espressioni. Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica!

Espressioni. Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica! Espressioni Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica! Valutazione automatica di expr aritmetiche = obiettivo primario dei primi LP

Dettagli

Intelligenza Artificiale I

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

Dettagli

Silvia Rossi. Cenni sulla complessità. Informatica. Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Programmazione I

Silvia Rossi. Cenni sulla complessità. Informatica. Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Programmazione I Silvia Rossi Cenni sulla complessità 23 Lezione n. Parole chiave: Corso di Laurea: Informatica Insegnamento: Programmazione I Email Docente: srossi@na.infn.it A.A. 2009-2010 Abbiamo visto che dato un problema

Dettagli

Logica Matematica: tipiche domande da esame

Logica Matematica: tipiche domande da esame Logica Matematica: tipiche domande da esame A. Berarducci Versione del 7 Gen. 2018 1. Si dimostri che ogni formula proposizionale può essere messa in forma normale disgiuntiva e in forma normale disgiuntiva.

Dettagli

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Esempi di Testi di esame Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del corso

Dettagli

Esercitazioni per il corso di Logica Matematica

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

Dettagli

Teoria della Calcolabilità!

Teoria della Calcolabilità! Teoria della Calcolabilità Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo. L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici

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

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) : PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:

Dettagli

Sommario 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. 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

Dettagli

AL220 - Gruppi, Anelli e Campi

AL220 - Gruppi, Anelli e Campi AL220 - Gruppi, Anelli e Campi Prof. Stefania Gabelli - a.a. 2013-2014 Settimana 1 - Traccia delle Lezioni Funzioni tra insiemi Ricordiamo che una funzione o applicazione di insiemi f : A B è una corrispondenza

Dettagli

Partizioni intere. =! i# P. Es: Dato {38, 17, 52, 61, 21, 88, 25} possiamo rispondere positivamente al quesito poiché

Partizioni intere. =! i# P. Es: Dato {38, 17, 52, 61, 21, 88, 25} possiamo rispondere positivamente al quesito poiché Partizioni intere PARTIZIONAMENTO: Dato un insieme di n interi non negativi rappresentati in binario, trovare un sottoinsieme P! {1,2,..., n } tale che! i"p a i =! i# P a i Es: Dato {38, 17, 52, 61, 21,

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 13 Sistema di Dimostrazioni per le Triple di Hoare Comando Vuoto, Assegnamento, Sequenza, Condizionale pag. 1 Tripla di Hoare Soddisfatta: richiamo Data una Tripla

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Abbiamo visto È conveniente definire una macchina astratta C Lo stato della macchina ci

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

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di

Dettagli

PARTE IV FUNZIONI RICORSIVE E LINGUAGGI FUNZIONALI

PARTE IV FUNZIONI RICORSIVE E LINGUAGGI FUNZIONALI PARTE IV FUNZIONI RICORSIVE E LINGUAGGI FUNZIONALI Funzioni ricorsive Accenno al lambda-calcolo Formalismo di Mc Carthy e linguaggi funzionali 1 4.1 FUNZIONI RICORSIVE Tra gli approcci sviluppati negli

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO 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 C Fortran Modula-2 Cobol Basic Pascal

Dettagli

Programma del Corso di Matematica Discreta (Elementi) lettere P-Z anno accademico 2004/2005

Programma del Corso di Matematica Discreta (Elementi) lettere P-Z anno accademico 2004/2005 Programma del Corso di Matematica Discreta (Elementi) lettere P-Z anno accademico 2004/2005 27 gennaio 2005 1. Logica 2. Insiemi e Funzioni 3. Numeri naturali 4. Numeri interi 5. Relazioni 6. Classi di

Dettagli

Esercitazione 2 SAT. 11 Novembre Denizione del problema SAT

Esercitazione 2 SAT. 11 Novembre Denizione del problema SAT Esercitazione 2 SAT Corso di Fondamenti di Informatica II BIAR2 (Ing. Informatica e Automatica) e BSIR2 (Ing. dei Sistemi) A.A. 2010/2011 11 Novembre 2010 Sommario Scopo della esercitazione è quello di

Dettagli

Verifica parte IIB. Rif. Ghezzi et al

Verifica parte IIB. Rif. Ghezzi et al Verifica parte IIB Rif. Ghezzi et al. 6.3.4.1 Sommario Test In piccolo White box Black box Condizioni di confine Problema dell' Oracolo In grande Test di modulo Test di integrazione Test di Sistema Test

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

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

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

Dettagli

alla categoria di automi a minor potenza riconoscitiva possibile. }, dove k è un parametro.

alla categoria di automi a minor potenza riconoscitiva possibile. }, dove k è un parametro. Algoritmi e Prin Appello del 2 Settembre 20 Informatica 2 ore e 30 minuti. Chi deve sostenere solo il modulo di Informatica teorica deve svolgere gli Esercizi 1 e 2 in 1 ora e minuti. Chi deve sostenere

Dettagli

CORSO DI LAUREA IN INGEGNERIA EDILE/ARCHITETTURA b) Dal testo sappiamo già che si tratta di un isometria. Rappresentando i punti si vede che sia

CORSO DI LAUREA IN INGEGNERIA EDILE/ARCHITETTURA b) Dal testo sappiamo già che si tratta di un isometria. Rappresentando i punti si vede che sia CORSO DI LAUREA IN INGEGNERIA EDILE/ARCHITETTURA FOGLIO DI ESERCIZI GEOMETRIA 008/09 Esercizio.. Dati i punti i O0, 0), A, ), B, ), determinare l isometria fx, y) = x, y ) tale che fo) = O, fa) = A, fb)

Dettagli