1 Un po’ di ripasso di algebra §necessaria per discutere la semantica denotazionale l e da riprendere quando parleremo di interpretazione astratta §reticoli.

Slides:



Advertisements
Presentazioni simili
Punti Fissi.
Advertisements

Master Bioinformatica 2002: Grafi Problema: cammini minimi da tutti i vertici a tutti i vertici Dato un grafo pesato G =(V,E,w), trovare un cammino minimo.
                      Insertion-Sort
LE SUCCESSIONI Si consideri la seguente sequenza di numeri:
Ricorsione Procedure e funzioni ricorsive. Definizioni Un oggetto si dice ricorsivo se è definito totalmente o parzialmente in termini di sé stesso La.
Procedure e funzioni ricorsive
Linguaggi di programmazione
Algebra parziale con predicati
INSIEMI INSIEME= gruppo di oggetti di tipo qualsiasi detti elementi dell’insieme. Un insieme è definito quando viene dato un criterio non ambiguo che.
Lez. 41 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Programmazione.
QUICKSORT … un breve ripasso!
Grandezze omogenee Le lunghezze. La lunghezza è lente che il segmento ha in comune con tutti i segmenti ad esso congruenti. Parliamo di uguaglianza tra.
Ordini Parziali - Reticoli
General Framework. Tino CortesiTecniche di Analisi di Programmi 2 Framework Nonostante le differenze tra le analisi viste finora (Reaching Definitions,
Interpretazione Astratta
Semantica Denotazionale
Tino CortesiTecniche di Analisi di Programmi 1 Ricorsione Aggiungiamo funzioni ricorsive (in una sola variabile, per semplicità). La funzione semantica.
Semantiche dei linguaggi di programmazione
Semantica Denotazionale
Ordini Parziali - Reticoli
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Continuità delle funzioni. Funzione continua in un punto Sia y=f(x) una funzione definita in un intervallo, aperto o chiuso, e sia x 0 un punto interno.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Il problema del dizionario
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
DERIVATE PARZIALI PRIME
CORSO DI PROGRAMMAZIONE II Introduzione alla ricorsione
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
Algoritmi e Strutture Dati (Mod. B)
Il calcolo del fattoriale
Algoritmi di ordinamento
Modelli simulativi per le Scienze Cognitive
Semantica di Tarski.
mosaic manipola oggetti primitivi (ruota e unisci) regole:
Corso di Matematica Discreta cont. 2
DEFINIZIONE DI NUOVE FUNZIONI & STRATEGIE DI COMPOSIZIONE La capacità di definire nuove funzioni permette: di definire nuove operazioni di introdurre variabili.
LAPPROCCIO FUNZIONALE Obiettivo: esprimere la soluzione di un problema sotto forma di funzione. Quali funzioni primitive? Quali meccanismi di combinazione?
Relazioni binarie.
Radix-Sort(A,d) // A[i] = cd...c2c1
Lordinamento di tre numeri interi. acquisisci a,b,c (a > b) AND (a > c)(b > a) AND (b > c) (c > a) AND (c > b) Scrivi c,b,aScrivi b,c,aScrivi c,a,bScrivi.
1 Un esempio con iteratore: le liste ordinate di interi.
Calcolo letterale.
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
“o piccolo” Siano f e g entrambi infiniti o infinitesimi per
“o piccolo” Siano f e g entrambi infiniti o infinitesimi per
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
Nucleo di Java: Struttura e Semantica Espressioni Assegnamento Controllo di sequenza Dichiarazioni.
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
Semantica dinamica Vogliamo definire una funzione che associ ad ogni termine corretto del mio linguaggio di programmazione un valore. Questa associazione.
public class volume { public static void main (String[] args) { final double bott_vol =2.0; final double latt_vol = 0.355; int bott_num = 4; int latt_num.
Elementi di semantica denotazionale ed operazionale
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Informatica 4 La ricorsione. Definizione di ricorsione Ricorsione è la proprietà di quei programmi che, all’interno delle istruzioni che li compongono,
7/16/20151 Haskell: Tipi basici e Definizioni n Tipi Atomici (scalari) n Valori e Identificatori n Overloading n Definizioni e Layout n Definizioni ricorsive:
Complessità Computazionale
ADT 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 24 Introduzione ai.
Definizione Si dice che la variabile z è una funzione reale di due variabili x e y, nell’insieme piano D, quando esiste una legge di natura qualsiasi che.
La frazione come numero razionale assoluto
1 VARIABILI CASUALI. 2 definizione Una variabile casuale è una variabile che assume determinati valori in modo casuale (non deterministico). Esempi l’esito.
Interpretazione Astratta
Transcript della presentazione:

1 Un po’ di ripasso di algebra §necessaria per discutere la semantica denotazionale l e da riprendere quando parleremo di interpretazione astratta §reticoli §operatori su reticoli §punti fissi e teoremi relativi §calcolare un punto fisso

2 Ordinamento parziale §una relazione binaria su un insieme S è un ordinamento parziale, se gode delle proprietà riflessiva, antisimmetrica e transitiva  (S,  ), con  ordinamento parziale su S X  S, a  S §a è un limite superiore (upper bound) di X, se  x  X, x  a §a è un limite inferiore (lower bound) di X, se  x  X, a  x §a è il minimo limite superiore (least upper bound) di X, se § a è un limite superiore di X §  b limite superiore di X, a  b §a è il massimo limite inferiore (greatest lower bound) di X, se § a è un limite inferiore di X §  b limite inferiore di X, b  a §il minimo limite superiore ed il massimo limite inferiore, se esistono, sono unici e si indicano con lub(X) e glb(X)

3 Reticolo completo  un insieme parzialmente ordinato (S,  ) è un reticolo completo se  X  S esistono lub(X) e glb(X)  denota lub(S) (massimo del reticolo)   denota glb(S) (minimo del reticolo)  X  S è un diretto se ogni sottoinsieme finito di X ha un limite superiore in X

4 Operatori su reticoli completi: monotonicità e continuità  una funzione sul reticolo completo (S,  )  : S  S (operatore su S)   è monotono se  (x)   (y), quando x  y   è continuo se  (lub(X))  lub {  (x): x  X},  X diretto di S  se  è continuo, è anche monotono

5 Minimo punto fisso  (S,  ) reticolo completo  : S  S operatore su S  a  S è il minimo punto fisso (least fixpoint, lfp) di  se a è un punto fisso di , cioè  (a) = a  b punto fisso di , a  b

6 Il teorema di Tarski  se (S,  ) è un reticolo completo e  : S  S è un operatore monotono su S, allora  ha un minimo punto fisso lfp(  ) e lfp(  ) = glb { x:  (x) = x }  il teorema ci dice che lfp(  ) esiste ed è il massimo limite inferiore dell’insieme dei punti fissi di  §per ottenerne una caratterizzazione costruttiva abbiamo bisogno di ipotesi più forti e dobbiamo ricorrere alle potenze ordinali

7 Le potenze ordinali §i numeri ordinali (rappresentati come insiemi, ciascuno contiene tutti i precedenti) §ordinali finiti: 0   §ordinali transfiniti:   , se   (S,  ) reticolo completo,  operatore monotono su S  0 =   (n+1) =  (  n)  = lub {  n | n <  }  (  ) =  (  (  -1))

8 Il teorema di Kleene  se (S,  ) è un reticolo completo e  : S  S è un operatore continuo su S, allora lfp(  ) =   se l’operatore  è continuo il suo minimo punto fisso lfp(  ) =  lub {  n | n <  } può essere calcolato come il lub dell’insieme di tutte le iterazioni finite di , a partire dall’elemento minimo del reticolo  naturalmente non si può calcolare effettivamente perché sono necessarie  iterazioni

9 Minimo punto fisso: a che serve? §per dare un significato alle definizioni ricorsive l in particolare, a funzioni parziali definite ricorsivamente §vediamo un semplice esempio l definizione ricorsiva di una funzione parziale (il solito fattoriale) da interi a interi fact = x. if x=0 then 1 else x * fact (x-1)

10 Esempio di lfp: i reticoli fact = x. if x=0 then 1 else x * fact (x-1) Zil reticolo completo ( Z,  ) degli interi FZ Zil reticolo completo ( F,  f ) delle funzioni parziali da Z a Z Zf 1  f f 2 se  x  Z, f 1 (x)  f 2 (x)  f  è la funzione che restituisce sempre   f è la funzione che restituisce sempre  012  

11 Esempio di lfp: il funzionale fact = x. if x=0 then 1 else x * fact (x-1) la definizione ricorsiva va intesa come F definizione di un operatore  fact (continuo) su F  (funzionale)  fact = f. x. if x=0 then 1 else x * f (x-1) di cui la funzione definita fact è il minimo punto fisso fact = lfp(  fact ) lfp(  fact ) può essere “calcolato”, in accordo con il teorema di Kleene

12 Esempio : un po’ di “calcolo”  fact = f. x. if x=0 then 1 else x * f (x-1) fact = lfp(  fact )  fact  0 =  f  fact  1 =  fact (  fact  0) =  fact (  f ) = x. if x=0 then 1 else   fact  2 =  fact (  fact  1) = x. if x=0 then 1 else x * (if x-1=0 then 1 else  )  fact  3 = x. if x=0 then 1 else x * (if x-1=0 then 1 else  (x-1) * (if x-2=0 then 1 else  ))