La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Punti Fissi. Tino CortesiTecniche di Analisi di Programmi 2 Mappe tra insiemi parz. ordinati Siano (P, P ) e (Q, Q ) due insiemi parzialmente ordinati.

Presentazioni simili


Presentazione sul tema: "Punti Fissi. Tino CortesiTecniche di Analisi di Programmi 2 Mappe tra insiemi parz. ordinati Siano (P, P ) e (Q, Q ) due insiemi parzialmente ordinati."— Transcript della presentazione:

1 Punti Fissi

2 Tino CortesiTecniche di Analisi di Programmi 2 Mappe tra insiemi parz. ordinati Siano (P, P ) e (Q, Q ) due insiemi parzialmente ordinati. Una funzione da P a Q si dice: monotona (preserva lordine) se p 1 P p 2 p 1 Q p 2 embedding se p 1 P p 2 p 1 Q p 2 isomorfismo se è un embedding suriettivo

3 Tino CortesiTecniche di Analisi di Programmi 3 Esempi 1 non è una funzione monotona 2 è una funzione monotona, ma non è un embedding: 2 b Q 2 c ma non è vero che b P c 1 a 1 d 1 b 1 c d a b c b a c d e 2 d 2 e 2 b 2 c 2 a

4 Tino CortesiTecniche di Analisi di Programmi 4 Esempi 3 è una funzione monotona, ma non è un embedding: 3 b Q 3 c ma non è vero che b P c 2 è un embedding, ma non è un isomorfismo. b a c d b a c d e 3 e 3 c 3 d 3 a 3 b 4 d 4 c 4 b 4 a

5 Tino CortesiTecniche di Analisi di Programmi 5 Isomorfismo a b b a c c d d e f ghi jj i g h fe

6 Tino CortesiTecniche di Analisi di Programmi 6 Monotona? Embedding? Isomorfismo? da ( Z, ) a ( Z, ), definita come segue: (x)=x+1 da ( (S), ) a, definita come segue: (U)=1 se U contiene almeno un elemento, ( )=0. da ( ( Z ), ) a ( ( Z ), ), definita come segue: (U)={1} se 1 U (U)={2} se 2 U e 1 non appartiene a U (U)= altrimenti 1 0

7 Tino CortesiTecniche di Analisi di Programmi 7 Teorema (Dedekind) Per ogni insieme parzialmente ordinato E esiste un embedding in un reticolo completo L tale che i lub ed i glb che esistono in E sono preservati in L. La dimostrazione generalizza il metodo d Dedekind per ottenere linsieme dei numeri reali a partire dai numeri razionali.

8 Tino CortesiTecniche di Analisi di Programmi 8 Catene Ascendenti e Discendenti Ricordiamo che una sequenza (l n ) n N di elementi di L è una catena ascendente se n m l n l m Una sequenza (l n ) n N converge se e solo se n 0 N : n N : n 0 n l n 0 l n Un insieme parzialmente ordinato (L, ) soddisfa la condizione sulle catene ascendenti (ACC) se e solo se ogni catena ascendente di L converge. Dualmente si definisce la condizione sulle catene discendenti DCC

9 Tino CortesiTecniche di Analisi di Programmi 9 Esempio Linsieme ordinato dei numeri pari non soddisfa la condizione sulle catene ascendenti Ma soddisfa la condizione sulle catene discendenti

10 Tino CortesiTecniche di Analisi di Programmi 10 Esempio Questo insieme ha un numero infinito di elementi Ha altezza finita Soddisfa la condizione sulle catene ascendenti e sulle catene discendenti...

11 Tino CortesiTecniche di Analisi di Programmi 11 Esempio... Questo insieme ha un numero infinito di elementi Ha altezza finita Soddisfa la condizione sulle catene ascendenti e sulle catene discendenti

12 Tino CortesiTecniche di Analisi di Programmi 12 Esempio... Questo insieme ha un numero infinito di elementi Non ha altezza finita NON soddisfa la condizione sulle catene ascendenti ACC Soddidfa la condizione sulle catene discendenti DCC

13 Tino CortesiTecniche di Analisi di Programmi 13 Reticoli e ACC Se P è un reticolo, ha un bottom element e soddisfa ACC, allora è un reticolo completo Dimostrazione Sia (P, P ) un reticolo che ha un bottom element e soddisfa ACC. Dimostriamo che per ogni sottoinsieme non vuoto X di P esiste un sottoinsieme finito F di X tale che lub(F)=lub(X). Consideriamo Y={lub(H) | H è un sottoinsieme non vuoto e finito di X} Poiché X è non vuoto, anche Y è non vuoto, ed essendo un sottoinsieme di P, che soddisfa ACC, ha un elemento massimale m.

14 Tino CortesiTecniche di Analisi di Programmi 14 Quindi m = lub(F) per un qualche sottoinsieme finito F X. Prendiamo ora x X. Abbiamo che lub(F {x}) Y e che m=lub(F) lub(F {x}) m, poiché m è massimale in Y. Quindi per la proprietà antisimmetrica, m=lub(F)=lub(F {x}). Questo implica in particolare che x m, per definizione di lub, e poiché questo vale per ogni x X, m è un upper bound di X. Consideriamo ora un altro upper bound u di X. Allora u è un upper bound anche di F, perché F X, e quindi m=lub(F) u. Questo prova che m è il least upper bound di X, ovvero che lub(X)=m=lub(F). Se P ha un elemento bottom e soddisfa ACC, lub(X) esiste per ogni sottoinsieme non vuoto X di P, quindi P è un reticolo completo. Si dimostra anche che Se P è un reticolo che non ha catene infinite, allora è completo

15 Tino CortesiTecniche di Analisi di Programmi 15 Continuità In Analisi Matematica, una funzione si dice continua se preserva i limiti. Sui posets possiamo esprimere una proprietà simile. Dati due ordini parziali (P, P ) e (Q, Q ), una funzione da P a Q si dice continua se per ogni insieme diretto S in P lub S lub{ (x) | x S } S (S) (P, P ) (Q, Q )

16 Tino CortesiTecniche di Analisi di Programmi 16 Continuità Se P e Q sono CPO, le proiezioni 1 : PxQ P e 2 : PxQ Q definite da: 1 (x,y)=x, 2 (x,y)=y sono relazioni continue Dimostrarlo per esercizio!

17 Tino CortesiTecniche di Analisi di Programmi 17 Continuità Non tutte le funzioni monotone sono continue. Ad esempio, : N N S) se S è finito, N altrimenti è monotona (se S 1 S 2 e S 2 è finito, anche S 1 è finito) ma non è continua: se si prende linsieme diretto D = {X N | X è finito} si ha: lub { ( X ) | X in D } = perché ogni X in D è finito (lub (D)) = N perché D è infinito

18 Tino CortesiTecniche di Analisi di Programmi 18 Punti Fissi Sia f una funzione f: (P, P ) (P, P ) su un insieme parzialmente ordinato P. Un elemento x di P si dice punto fisso di f se f(x)=x. Linsieme dei punti fissi di f è un sottoinsieme di L chiamato Fix(f): Fix(f) ={ l L | f(l)=l}

19 Tino CortesiTecniche di Analisi di Programmi 19 Esempio Fix(f)={b,c} a b c d f

20 Tino CortesiTecniche di Analisi di Programmi 20 Minimo e Massimo punto fisso Sia f una funzione f: (P, P ) (P, P ) su un insieme parzialmente ordinato P. Un elemento x di Fix(f) si dice minimo punto fisso di f, se per ogni y P, se y=f(y), allora x P y. Se il minimo punto fisso di una funzione esiste, è unico, e lo si denota con lfp(f). Un elemento x di Fix(f) si dice massimo punto fisso di f, se per ogni y P, se y=f(y), allora y P x. Se il massimo punto fisso di una funzione esiste, è unico, e lo si denota con gfp(f).

21 Tino CortesiTecniche di Analisi di Programmi 21 Esempio lfp(f)={c} gfp(f)={d} a b c d f

22 Tino CortesiTecniche di Analisi di Programmi 22 Esempio Consideriamo linsieme dei naturali positivi, e la funzione fact(k) definita da: fact(k) = 1 se k=0 fact(k) = k*fact(k-1) se k>0 Ad ogni funzione f dagli interi positivi agli interi positivi possiamo associare una nuova funzione f definita come segue: f(k) = 1 se k=0 f(k) = k*f(k-1) se k>0 In altre parole abbiamo una funzione F:( N 0 N 0 ) ( N 0 N 0 ) definita da: F(f)=f. fact è un punto fisso di questa funzione F. Infatti F(fact)=fact.

23 Tino CortesiTecniche di Analisi di Programmi 23 Esempio x n+1 = cos x n con valore iniziale x 1 = -1. La funzione converge a …, il punto dove il grafico della funzione cos interseca la retta y = x.

24 Tino CortesiTecniche di Analisi di Programmi 24 Punti fissi sui CPO Sia f una funzione monotona f: (P, P ) (P, P ) su un insieme completo parzialmente ordinato (CPO) P. Sia = n 0 f n ( ) Se Fix(f) allora = lfp(f) Teorema di Kleene Se f è continua allora il minimo punto fisso di f esiste ed è uguale ad.

25 Tino CortesiTecniche di Analisi di Programmi 25 Punti fissi sui CPO Fix(f) ={ l L | f(l)=l} lfp(f) = n 0 f n ( ) T f i ( )

26 Tino CortesiTecniche di Analisi di Programmi 26 Esempio Abbiamo visto prima che fact è punto fisso del funzionale F. Si può dimostrare che F è continua nel CPO delle funzioni N 0 N 0. Abbiamo che: F( )={(0,1)} F({(0,1)})= {(0,1),(1,1)} F({(0,1),(1,1)})={(0,1),(1,1),(2,2)} … Questa sequenza approssima sempre più fact, che infatti costituisce il least upper bound di essa.

27 Tino CortesiTecniche di Analisi di Programmi 27 Punti Fissi sui reticoli completi Sia f una funzione monotona f:L L su un reticolo completo L. Fix(f) è anchesso un reticolo completo: lfp(f) = glb(Fix(f)) Fix(f) gfp(f) = lub(Fix(f)) Fix(f) Teorema di Tarski: Sia L un reticolo completo. Se f:L L è una funzione monotona allora lfp(f) = glb{ l L | f(l) l } gfp(f) = lub{ l L | l f(l) }

28 Tino CortesiTecniche di Analisi di Programmi 28 Punti fissi sui reticoli completi Fix(f) ={ l L | f(l)=l} Red(f) ={ l L | f(l) P l} Ext(f) ={ l L | l P f(l)} lfp(f) = glb{ l L | f(l) l } gfp(f) = lub{ l L | l f(l) }

29 Tino CortesiTecniche di Analisi di Programmi 29 Dimostriamo che se L è un reticolo completo lub{x L | x f(x)} è un punto fisso di L (il greatest fix point). Sia H={x L | x f(x)}, e sia a=lub(H). Dimostriamo che a=f(a). Per ogni h H, h f(h), per definizione di H. E vale anche h a (perché a è un upper bound di H). Quindi h f(h) f(a): la prima relazione segue dal fatto che h H e la seconda dalla monotonia di f. Poiché h f(a) vale per ogni h H, f(a) è un upper bound dellinsieme H. E poiché a è il lub(H), ne segue che a f(a). Per dimostrare che a è un punto fisso, dobbiamo dimostrare che anche il viceversa vale, ovvero che f(a) a. Applichiamo f ad entrambi i termini dellespressione a f(a) che abbiamo dimostrato essere vera. Per monotonia abbiamo che f(a) f(f(a)). Ma allora f(a) H, e quindi f(a) lub(H) = a, e quindi f(a) a.

30 Tino CortesiTecniche di Analisi di Programmi 30 Esistenza di punti fissi nei CPO Teorema I Sia f: (P, P ) (P, P ) una funzione su un insieme completo parzialmente ordinato P tale che per ogni x in P: x P f(x). Allora f ha un punto fisso. Teorema II Sia f: (P, P ) (P, P ) una funzione monotona su un insieme completo parzialmente ordinato P. Allora f ha un punto fisso.

31 Tino CortesiTecniche di Analisi di Programmi 31 Punti Fissi Ci sono quindi tre risultati che garantiscono lesistenza di punti fissi: 1. Funzione continua su CPO 2. Funzione monotona su reticoli completi 3. Funzione monotona su CPO I primi due hanno ipotesi più forti e offrono una formula per calcolare il minimo punto fisso. Il terzo garantisce solo lesistenza di un punto fisso.

32 Tino CortesiTecniche di Analisi di Programmi 32 Widening Un operatore : (P, P ) (P, P ) si dice operatore di widening se e solo se: È un operatore di upper bound, ovvero l 1,l 2 P (l 1,l 2 ) Per ogni catena (l n ) n 0, la catena (l n ) n 0 = (l 0 =l 0, l 1 = (l 0,l 1 ),… ) converge dopo un numero finito di passi

33 Tino CortesiTecniche di Analisi di Programmi 33 Esempio Si consideri il reticolo completo Int = { } {[a,b] | a b & a Z {- }, b Z {+ }} dove lordinamento è linclusione tra intervalli. Sia K=[-k,k] con k un elemento fissato di Int Definiamo loperatore K : (Int,Int) Int [min(a,c),max(b,d)] se [min(a,c),max(b,d)] K K ([a,b], [c,d]) = [-, + ] altrimenti Se K=[-2,4]: [-2,4] è un operatore di widening Alla catena [0,0], [0,1], [0,2], [0,3], [0,4], [0,5], [0,6],… corrisponde la catena [0,0], [0,1], [0,2], [0,3], [0,4], [-, + ], [-, + ],…

34 Tino CortesiTecniche di Analisi di Programmi 34 Esempio Si consideri il reticolo completo Int = { } {[a,b] | a b & a Z {- }, b Z {+ }} dove lordinamento è linclusione tra intervalli. Sia K un elemento fissato di Int Definiamo loperatore K : (Int,Int) Int [min(a,c),max(b,d)] se [min(a,c),max(b,d)] K K ([a,b], [c,d]) = [-, + ] altrimenti Se K=[0, + ]: [0, + ] non è un operatore di widening Alla catena [0,0], [0,1], [0,2], [0,3], [0,4], [0,5], [0,6],… corrisponde la catena [0,0], [0,1], [0,2], [0,3], [0,4], [0,5], [0,6],… che non converge!

35 Tino CortesiTecniche di Analisi di Programmi 35 Widening e punti fissi lfp widening

36 Tino CortesiTecniche di Analisi di Programmi 36 Widening e punti fissi Sia f una funzione monotona f: (P, P ) (P, P ) su un reticolo completo, e dato un operatore di widening su (P, P ), possiamo calcolare la catena ascendente: se n=0 f n = f n-1 se n>0 e f(f n-1 ) P f n-1 f(f n-1 ) f n-1 altrimenti Questa catena ascendente converge in un numero finito di passi.

37 Tino CortesiTecniche di Analisi di Programmi 37 Widening Fix(f) ={ l L | f(l)=l} lfp(f) T f 2 f 1 f m = f m+1 = … …

38 Tino CortesiTecniche di Analisi di Programmi 38 A che serve tutto questo? Abbiamo detto che lapproccio allanalisi di programmi che consideriamo è basato sulla semantica Semantica = assegnare ad ogni costrutto linguistico il suo significato Ogni semantica di un programma può essere espressa come soluzione di unequazione di minimo punto fisso.

39 Tino CortesiTecniche di Analisi di Programmi 39 Sintassi e Semantica Ci sono modi diversi per definire la semantica di un programma scritto in un dato linguaggio di programmazione: Semantica Operazionale: la semantica di un costrutto linguistico viene espressa in termini dei passi di computazione che possono aver luogo durante lesecuzione del programma Semantica Assiomatica la semantica viene definita indirettamente attraverso assiomi e regole di una qualche logica Semantica Denotazionale fornisce modelli matematici ai linguaggi di programmazione: associa ad ogni costrutto linguistico del programma un elemento di una struttura matematica

40 Tino CortesiTecniche di Analisi di Programmi 40 Esercizio Per la seguente funzione f: N 0 N 0, costruisci un funzionale F:( N 0 N 0 ) ( N 0 N 0 ) i cui punti fissi soddisfino la specifica. Dimostra che F è monotona, e descrivi F( ), F(F( )), F(F(F( ))) e n 0 F n ( ) f(k) = 1 se k =1 (2k -1)+f(k-1)altrimenti

41 Tino CortesiTecniche di Analisi di Programmi 41 Esercizio Sia S il CPO di tutte le stringhe che si possono costruire sullalfabeto {0,1}. Data una stringa u ed una stringa v, denotiamo con uv la stringa ottenuta concatenando le due stringhe. Sia F:S S la funzione definita da F(u)=01u Qual è lunica soluzione dellequazione di punt fisso F(u)=u? Verificare che questa è proprio la soluzione che si ottiene prendendo la stringa vuota e costruendo n 0 F n ( )


Scaricare ppt "Punti Fissi. Tino CortesiTecniche di Analisi di Programmi 2 Mappe tra insiemi parz. ordinati Siano (P, P ) e (Q, Q ) due insiemi parzialmente ordinati."

Presentazioni simili


Annunci Google