La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Punti Fissi.

Presentazioni simili


Presentazione sul tema: "Punti Fissi."— Transcript della presentazione:

1 Punti Fissi

2 Mappe tra insiemi parz. ordinati
Siano (P,£P) e (Q,£Q) due insiemi parzialmente ordinati. Una funzione j da P a Q si dice: monotona (preserva l’ordine) se p1 £P p2 Þ j(p1) £Q j(p2) embedding se p1 £P p2 Û j(p1) £Q j(p2) isomorfismo se è un embedding suriettivo Tino Cortesi Tecniche di Analisi di Programmi

3 Tecniche di Analisi di Programmi
Esempi b d j1(a) j1 non è una funzione monotona j2 è una funzione monotona, ma non è un embedding:j2(b)£Qj2(c) ma non è vero che b£Pc j1(d) a c j1(b)=j1(c) a c d e j2(d)=j2(e) j2(b)=j2(c) b j2(a) Tino Cortesi Tecniche di Analisi di Programmi

4 Tecniche di Analisi di Programmi
Esempi a c d e j3(e) j3 è una funzione monotona, ma non è un embedding:j3(b)£Qj3(c) ma non è vero che b£Pc j2 è un embedding, ma non è un isomorfismo. j3(c)=j3(d) b j3(a)=j3(b) j4(d) d j4(c) b c j4(b) j4(a) a Tino Cortesi Tecniche di Analisi di Programmi

5 Tecniche di Analisi di Programmi
Isomorfismo j j’ i g h g’ i’ h’ f d’ d e’ f’ e b b’ a a’ c c’ Tino Cortesi Tecniche di Analisi di Programmi

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

7 Tecniche di Analisi di Programmi
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 l’insieme dei numeri reali a partire dai numeri razionali. Tino Cortesi Tecniche di Analisi di Programmi

8 Catene Ascendenti e Discendenti
Ricordiamo che una sequenza (ln)nÎN di elementi di L è una catena ascendente se n £ m Þ ln£ lm Una sequenza (ln)nÎN converge se e solo se $ n0ÎN : " nÎN : n0 £ n Þ ln0 = ln 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 Tino Cortesi Tecniche di Analisi di Programmi

9 Tecniche di Analisi di Programmi
Esempio L’insieme ordinato dei numeri pari non soddisfa la condizione sulle catene ascendenti Ma soddisfa la condizione sulle catene discendenti 12 10 8 6 4 2 Tino Cortesi Tecniche di Analisi di Programmi

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

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

12 Tecniche di Analisi di Programmi
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 . . . . . . . . . Tino Cortesi Tecniche di Analisi di Programmi

13 Tecniche di Analisi di Programmi
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. Tino Cortesi Tecniche di Analisi di Programmi

14 Tecniche di Analisi di Programmi
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. T Si dimostra anche che Se P è un reticolo che non ha catene infinite, allora è completo Tino Cortesi Tecniche di Analisi di Programmi

15 Tecniche di Analisi di Programmi
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 j da P a Q si dice continua se per ogni insieme diretto S in P j(lub(S)) = lub{ j(x) | xÎS } (P,£P) j (Q,£Q) S j(S) Tino Cortesi Tecniche di Analisi di Programmi

16 Tecniche di Analisi di Programmi
Continuità Se P e Q sono CPO, le proiezioni p1: PxQ ® P e p2: PxQ ® Q definite da: p1(x,y)=x, p2(x,y)=y sono relazioni continue Dimostrarlo per esercizio! Tino Cortesi Tecniche di Analisi di Programmi

17 Tecniche di Analisi di Programmi
Continuità Non tutte le funzioni monotone sono continue. Ad esempio, j :Ã(N) ® Ã(N) j(S) = Æ se S è finito, N altrimenti è monotona (se S1 Í S2 e S2 è finito, anche S1 è finito) ma non è continua: se si prende l’insieme diretto D = {X Í N | X è finito} si ha: lub {j (X) | X in D} = Æ perché ogni X in D è finito j (lub (D)) = N perché D è infinito Tino Cortesi Tecniche di Analisi di Programmi

18 Tecniche di Analisi di Programmi
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. L’insieme dei punti fissi di f è un sottoinsieme di L chiamato Fix(f): Fix(f) ={ l Î L | f(l)=l} Tino Cortesi Tecniche di Analisi di Programmi

19 Tecniche di Analisi di Programmi
Esempio f d c Fix(f)={b,c} b a Tino Cortesi Tecniche 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£Py. 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£Px. Se il massimo punto fisso di una funzione esiste, è unico, e lo si denota con gfp(f). Tino Cortesi Tecniche di Analisi di Programmi

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

22 Tecniche di Analisi di Programmi
Esempio Consideriamo l’insieme dei naturali positivi, e la funzione fact(k) definita da: fact(k) = 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) = se k=0 f’(k) = k*f(k-1) se k>0 In altre parole abbiamo una funzione F:(N0 ® N0) ® (N0 ® N0) definita da: F(f)=f’. fact è un punto fisso di questa funzione F. Infatti F(fact)=fact. Tino Cortesi Tecniche di Analisi di Programmi

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

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

25 Tecniche di Analisi di Programmi
Punti fissi sui CPO T Fix(f) ={ l Î L | f(l)=l} lfp(f) = n³0 fn(^) f i(^) ^ Tino Cortesi Tecniche di Analisi di Programmi

26 Tecniche di Analisi di Programmi
Esempio Abbiamo visto prima che fact è punto fisso del funzionale F. Si può dimostrare che F è continua nel CPO delle funzioni N0 ® N0. 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. Tino Cortesi Tecniche 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) è anch’esso 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) } Tino Cortesi Tecniche di Analisi di Programmi

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

29 Tecniche di Analisi di Programmi
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 dell’insieme 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 dell’espressione 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. Tino Cortesi Tecniche 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. Tino Cortesi Tecniche di Analisi di Programmi

31 Tecniche di Analisi di Programmi
Punti Fissi Ci sono quindi tre risultati che garantiscono l’esistenza di punti fissi: Funzione continua su CPO Funzione monotona su reticoli completi 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 l’esistenza di un punto fisso. Tino Cortesi Tecniche di Analisi di Programmi

32 Tecniche di Analisi di Programmi
Widening Un operatore Ñ: (P,£P) ® (P,£P) si dice operatore di widening se e solo se: È un operatore di upper bound, ovvero l1,l2 £P Ñ(l1,l2) Per ogni catena (ln)n³0, la catena (lnÑ )n³0 = (l0’=l0, l1’=Ñ(l’0,l1),… ) converge dopo un numero finito di passi Tino Cortesi Tecniche di Analisi di Programmi

33 Tecniche di Analisi di Programmi
Esempio Si consideri il reticolo completo Int = {^} È {[a,b] | a £ b & aÎZÈ {-¥}, bÎZÈ {+¥}} dove l’ordinamento è l’inclusione tra intervalli. Sia K=[-k,k] con k un elemento fissato di Int Definiamo l’operatore WK: (Int,Int) ® Int [min(a,c),max(b,d)] se [min(a,c),max(b,d)] Í K WK([a,b], [c,d]) = [-¥, +¥] altrimenti Se K=[-2,4]: W[-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], [-¥, +¥], [-¥, +¥],… Tino Cortesi Tecniche di Analisi di Programmi

34 Tecniche di Analisi di Programmi
Esempio Si consideri il reticolo completo Int = {^} È {[a,b] | a £ b & aÎZÈ {-¥}, bÎZÈ {+¥}} dove l’ordinamento è l’inclusione tra intervalli. Sia K un elemento fissato di Int Definiamo l’operatore WK: (Int,Int) ® Int [min(a,c),max(b,d)] se [min(a,c),max(b,d)] Í K WK([a,b], [c,d]) = [-¥, +¥] altrimenti Se K=[0, +¥]: W[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! Tino Cortesi Tecniche di Analisi di Programmi

35 Tecniche di Analisi di Programmi
Widening e punti fissi widening lfp Tino Cortesi Tecniche di Analisi di Programmi

36 Tecniche di Analisi di Programmi
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= 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. Tino Cortesi Tecniche di Analisi di Programmi

37 Tecniche di Analisi di Programmi
Widening T f mÑ = f m+1Ñ = … Fix(f) ={ l Î L | f(l)=l} lfp(f) f 2Ñ f 1Ñ ^ Tino Cortesi Tecniche di Analisi di Programmi

38 A che serve tutto questo?
Abbiamo detto che l’approccio all’analisi 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 un’equazione di minimo punto fisso. Tino Cortesi Tecniche di Analisi di Programmi

39 Tecniche di Analisi di Programmi
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 l’esecuzione 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 Tino Cortesi Tecniche di Analisi di Programmi

40 Tecniche di Analisi di Programmi
Esercizio Per la seguente funzione f: N0 ® N0, costruisci un funzionale F:(N0 ® N0) ® (N0 ® N0) 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) = se k =1 (2k -1)+f(k-1) altrimenti Tino Cortesi Tecniche di Analisi di Programmi

41 Tecniche di Analisi di Programmi
Esercizio Sia S il CPO di tutte le stringhe che si possono costruire sull’alfabeto {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 è l’unica soluzione dell’equazione di punt fisso F(u)=u? Verificare che questa è proprio la soluzione che si ottiene prendendo la stringa vuota Æ, e costruendo n³0F n(Æ) Tino Cortesi Tecniche di Analisi di Programmi


Scaricare ppt "Punti Fissi."

Presentazioni simili


Annunci Google