Ordini Parziali Reticoli Tino Cortesi Tecniche di Analisi

  • Slides: 49
Download presentation
Ordini Parziali - Reticoli Tino Cortesi Tecniche di Analisi di Programmi

Ordini Parziali - Reticoli Tino Cortesi Tecniche di Analisi di Programmi

Insiemi parzialmente ordinati Nell’analisi di programmi ordini parziali e reticoli giocano un ruolo importantissimo

Insiemi parzialmente ordinati Nell’analisi di programmi ordini parziali e reticoli giocano un ruolo importantissimo Dato un insieme L, un ordine parziale su L è una relazione £: L ´ L ® {vero, falso} che gode delle proprietà: riflessiva: "lÎL : l £l transitiva: " l 1 , l 2 , l 3 Î L : l 1 £ l 2 Ù l 2 £ l 3 Þ l 1 £ l 3 antisimmetrica: " l 1 , l 2 Î L : l 1 £ l 2 Ù l 2 £ l 1 Þ l 1 = l 2 Un insieme parzialmente ordinato (L, £) è un insieme L sul quale è definito un ordine parziale £. Tino Cortesi Tecniche di Analisi di Programmi 2

Esempio g c d e a f b L= {a, b, c, d, e,

Esempio g c d e a f b L= {a, b, c, d, e, f, g} £ ={(a, c), (a, e), (b, d), (b, f), (c, g), (d, g), (e, g), (f, g)} T (L, £) è un insieme parzialmente ordinato (finito) Tino Cortesi Tecniche di Analisi di Programmi 3

Esempio N 6 L= 5 £ ={(0, 1), (1, 2), (2, 3), (3, 4),

Esempio N 6 L= 5 £ ={(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), …}T 4 3 2 (L, £) è un insieme totalmente ordinato (infinito) 1 0 Tino Cortesi Tecniche di Analisi di Programmi 4

Esempio 9 8 7 6 5 4 3 2 Tino Cortesi L= N £

Esempio 9 8 7 6 5 4 3 2 Tino Cortesi L= N £ ={(n, m): $ k tale che m=n*k} (L, £) è un insieme parzialmente ordinato (infinito) Tecniche di Analisi di Programmi 5

Esempio A partire dallo stesso insieme E={1, 2, 3, 4, 6, 12} possono essere

Esempio A partire dallo stesso insieme E={1, 2, 3, 4, 6, 12} possono essere definiti diversi ordini parziali: 12 12 6 4 3 2 12 6 6 4 3 2 1 1 Ordine usuale Tino Cortesi 4 2 3 1 Ordine indotto dalla divisibilità Tecniche di Analisi di Programmi Numeri dispari minori dei pari 6

Esempio Tutti i possibili insiemi parzialmente ordinati con tre elementi: Tino Cortesi Tecniche di

Esempio Tutti i possibili insiemi parzialmente ordinati con tre elementi: Tino Cortesi Tecniche di Analisi di Programmi 7

Composizione di ordini parziali Prodotto cartesiano Dati due ordini parziali (P, £p ) ed

Composizione di ordini parziali Prodotto cartesiano Dati due ordini parziali (P, £p ) ed (T, £t ), il prodotto cartesiano (P ´ T, £P ´ T) ha come elementi le coppie in {(p, t)) | p Î P, t Î T} L’ordine parziale: (x, y) £P ´ T (x 2, y 2) Û x 1£P x 2 Ù y 1£T y 2 Tino Cortesi Tecniche di Analisi di Programmi 8

Esempio N´N b c a £N ´ N c b £N ´ N c

Esempio N´N b c a £N ´ N c b £N ´ N c a (x 1, y 1) £N ´ N (x 2, y 2) Û x 1£N x 2 Ù y 1£N y 2 (N ´ N, £N ´ N) è un insieme parzialmente ordinato (infinito) Tino Cortesi Tecniche di Analisi di Programmi 9

Composizione di ordini parziali Unione disgiunta Dati due ordini parziali (P, £p ) ed

Composizione di ordini parziali Unione disgiunta Dati due ordini parziali (P, £p ) ed (T, £t ), l’unione disgiunta (P e T, £P e T) ha come elementi {x | x L’ordine parziale: x£ P e T y Û x, y ÎP Î P oppure x Î T} e x £P y oppure x, y Î t e x £t y Tino Cortesi Tecniche di Analisi di Programmi 10

Esempio P Tino Cortesi T (P e T, £P e T) Tecniche di Analisi

Esempio P Tino Cortesi T (P e T, £P e T) Tecniche di Analisi di Programmi 11

Composizione di ordini parziali Somma lineare Dati due ordini parziali (P, £p ) ed

Composizione di ordini parziali Somma lineare Dati due ordini parziali (P, £p ) ed (T, £t ), la somma lineare (P t T, £P e T) ha come elementi {x | x L’ordine parziale: x£ P t T y Û x, y Oppure Tino Cortesi ÎP Î P oppure x Î T} e x £P y x, y Î t e x £t y xÎP eyÎt. Tecniche di Analisi di Programmi 12

Esempio P Tino Cortesi Pt T Tecniche di Analisi di Programmi T 13

Esempio P Tino Cortesi Pt T Tecniche di Analisi di Programmi T 13

lub e glb Dato un insieme parzialmente ordinato (L, £), un insieme Y di

lub e glb Dato un insieme parzialmente ordinato (L, £), un insieme Y di L ha un elemento l come upper bound se " l’ Î Y : l’ £ l un insieme Y di L ha un elemento l come lower bound se " l’ Î Y : l £ l’ Un least upper bound (lub) di Y è un upper bound l 0 di Y che soddisfa la seguente proprietà: l’ è un upper bound di Y Þ l 0 £ l’ Un greatest lower bound (glb) di Y è un lower bound l 0 di Y che soddisfa la seguente proprietà: l’ è un lower bound di Y Þ l’ £ l 0 Se un sottoinsieme Y di L ha un least upper bound, questo è unico (per la proprietà antisimmetrica dell’ordine parziale £) Tino Cortesi Tecniche di Analisi di Programmi 14

Esempio N´N upper bounds di Y Y lub(Y) glb(Y) lower bounds di Y (x

Esempio N´N upper bounds di Y Y lub(Y) glb(Y) lower bounds di Y (x 1, y 1) £N ´ N (x 2, y 2) Û x 1£N x 2 Ù y 1£N y 2 Tino Cortesi Tecniche di Analisi di Programmi 15

Esempio T lub({b, c})= ? h i e f g a b c ^

Esempio T lub({b, c})= ? h i e f g a b c ^ j Gli upper bounds dell’insieme {b, c} sono {h, i, T} T d h i e questo insieme non ha un minimo elemento: Il lub non c’è ! Tino Cortesi Tecniche di Analisi di Programmi 16

Esempio lub({a, b})= ? T Gli upper bounds dell’insieme {a, b} sono {T, h,

Esempio lub({a, b})= ? T Gli upper bounds dell’insieme {a, b} sono {T, h, i, f} h i e f g a b c T j h i d f ^ e questo insieme ha un f come minimo elemento: lub({a, b})= f Tino Cortesi Tecniche di Analisi di Programmi 17

Down-sets e Up-sets Dato un insieme parzialmente ordinato P, Un sottoinsieme D di P

Down-sets e Up-sets Dato un insieme parzialmente ordinato P, Un sottoinsieme D di P è un down-set se per ogni x Î D, e per ogni y Î P, se y £ x allora y Î D. Un sottoinsieme D di P è un up-set se per ogni x Î D, e per ogni y Î P, se x £ y allora y Î D. Tino Cortesi b c a d {a, b, d} è un down-set {b, c, d} è un up-set {a, b} è un up-set ma non un down-set Tecniche di Analisi di Programmi 18

Down-sets e up-sets In particolare, se Q è un qualsiasi sottoinsieme di P, definiamo

Down-sets e up-sets In particolare, se Q è un qualsiasi sottoinsieme di P, definiamo i. Q = {y Î P | (esiste x Î Q) y £ x } è un down-set h. Q = {y Î P | (esiste x Î Q) x £ y } up-set Se x è un qualsiasi elemento di P, definiamo ix = {y Î P | y £ x } hy = {y Î P | x £ y } In questo caso si chiamano down-sets e up-sets principali Tino Cortesi Tecniche di Analisi di Programmi 19

Down-sets e Up-sets i{b, d} = {a, b, d} h{c, d} = {b, c,

Down-sets e Up-sets i{b, d} = {a, b, d} h{c, d} = {b, c, d} b a Tino Cortesi c d ib = {a, d} ic = {d} hd = {b, c} ha = {b} hb = {b} Tecniche di Analisi di Programmi 20

Esempio Consideriamo l’insieme dei numeri razionali positivi Q. L’insieme S={q Î P | q

Esempio Consideriamo l’insieme dei numeri razionali positivi Q. L’insieme S={q Î P | q 2 £ 2 } è un insieme chiuso verso il basso (down-set) che non è principale. Infatti non esiste nessun numero razionale q tale che S= iq. Tino Cortesi Tecniche di Analisi di Programmi 21

L’ordine parziale dei down-sets di P Dato un insieme parzialmente ordinato P, la famiglia

L’ordine parziale dei down-sets di P Dato un insieme parzialmente ordinato P, la famiglia O(P) di tutti i down-sets di P è un insieme parzialmente ordinato. {a, b, c, d} {a, b, d} b c a d {a, d} {a} {c, d} {d} Æ a Tino Cortesi {a, c, d} Tecniche di Analisi di Programmi 22

Lemma Sia P un ordine parziale e x, y due suoi elementi. Sono equivalenti:

Lemma Sia P un ordine parziale e x, y due suoi elementi. Sono equivalenti: x£y ix Í iy " Q Î O(P). y Î Q _ x Î Q Esercizio: dimostrarlo! Tino Cortesi Tecniche di Analisi di Programmi 23

Catene Dato un insieme parzialmente ordinato (L, £), un sottoinsieme Y di L è

Catene Dato un insieme parzialmente ordinato (L, £), un sottoinsieme Y di L è una catena se " l 1, l 2 Î Y : (l 1£ l 2) Ú (l 2£ l 1) ovvero una catena è un sottoinsieme di L totalmente ordinato. Un insieme parzialmente ordinato (L, £) ha altezza finita se e solo se tutte le catene di L sono finite Una sequenza (ln)nÎN di elementi di L è una catena ascendente se n £ m Þ ln £ lm Tino Cortesi Tecniche di Analisi di Programmi 24

Esempio: catene T h i e f g a b c T j d

Esempio: catene T h i e f g a b c T j d h i e f g a b c ^ Tino Cortesi j d ^ Tecniche di Analisi di Programmi 25

Insiemi Diretti Sia (P, £P) un insieme parzialmente ordinato. Un sottoinsieme S di P

Insiemi Diretti Sia (P, £P) un insieme parzialmente ordinato. Un sottoinsieme S di P si dice diretto se per ogni sottoinsieme finito F di S esiste un elemento di S che appartiene all’insieme degli upper bounds di F. Tino Cortesi Tecniche di Analisi di Programmi 26

Esempi S 2 S 1 L’insieme S 1 è diretto Tino Cortesi L’insieme S

Esempi S 2 S 1 L’insieme S 1 è diretto Tino Cortesi L’insieme S 2 non è diretto Tecniche di Analisi di Programmi 27

Esempio T F -4 -3 -2 -1 0 1 2 3 S 4 ^

Esempio T F -4 -3 -2 -1 0 1 2 3 S 4 ^ L= Z È {T, ^} "nÎ Z : ^£ n £T Tino Cortesi S non è un insieme diretto: non esiste un elemento di S che appartiene all’insieme degli upper bounds di F Tecniche di Analisi di Programmi 28

Esempio S T F -4 -3 -2 -1 0 1 2 3 4 ^

Esempio S T F -4 -3 -2 -1 0 1 2 3 4 ^ L= Z È {T, ^} "nÎ Z : ^£ n £T Tino Cortesi S è un insieme diretto: per ogni F finito esiste un elemento di S che appartiene all’insieme degli upper bounds di F Tecniche di Analisi di Programmi 29

Insiemi diretti e catene T Sia (P, £P) un insieme parzialmente ordinato. Ogni catena

Insiemi diretti e catene T Sia (P, £P) un insieme parzialmente ordinato. Ogni catena non vuota di P è un insieme diretto. Esercizio: dimostrarlo! h i e f g a b c 6 j 5 4 3 2 d 1 0 ^ Tino Cortesi Tecniche di Analisi di Programmi 30

Insiemi diretti In (Ã(N), Í) l’insieme S={X Í N | X è finito} è

Insiemi diretti In (Ã(N), Í) l’insieme S={X Í N | X è finito} è diretto? Dim: Sia F Í S, F finito. Devo dimostrare che esiste un upper bound di F che appartiene a S. Prendo come upper bound di F l’unione degli insiemi in F. L’unione finita di insiemi finiti è finita (la cardinalità è al più la somma delle cardinalità degli insiemi), e quindi appartiene a S. In (Ã(N), Í) l’insieme S={X Í N | N-X è finito} è diretto? Tino Cortesi Tecniche di Analisi di Programmi 31

Reticoli Un reticolo è un insieme parzialmente ordinato (L, £) tale che per ogni

Reticoli Un reticolo è un insieme parzialmente ordinato (L, £) tale che per ogni coppia di elementi di L esiste il least upper bound ed il greatest lower bound. Se L è un insieme parzialmente ordinato non vuoto, e x£y, allora lub({x, y}) = y glb({x, y}) = x. Per dimostrare che L è un reticolo basterà quindi verificare che per ogni coppia di elementi incomparabili esistano sia lub che glb. Tino Cortesi Tecniche di Analisi di Programmi 32

Esempio Rivediamo tutti i possibili insiemi ordinati con tre elementi: sono reticoli? SI Tino

Esempio Rivediamo tutti i possibili insiemi ordinati con tre elementi: sono reticoli? SI Tino Cortesi NO NO Tecniche di Analisi di Programmi NO NO 33

Esempio g Y c d e a f b L= {a, b, c, d,

Esempio g Y c d e a f b L= {a, b, c, d, e, f, g} £ ={(a, c), (a, e), (b, d), (b, f), (c, g), (d, g), (e, g), (f, g)} T (L, £) non è un reticolo: sia a che b sono lower bounds di Y, ma a e b sono incomparabili Tino Cortesi Tecniche di Analisi di Programmi 34

Il reticolo dei down-sets Se P è un insieme ordinato e A e B

Il reticolo dei down-sets Se P è un insieme ordinato e A e B sono due down-sets di P, allora: A È B è un down-set A Ç B è un down-set L’insieme O(P) dei down-sets di P è un reticolo: lub(A, B)= A È B e glb(A, B)= A Ç B. Il bottom del reticolo O(P) è l’insieme vuoto Il top del reticolo O(P) è l’insieme P Tino Cortesi Tecniche di Analisi di Programmi 35

Il reticolo O(P) Esempio {a, b, c, d} {a, b, d} b c a

Il reticolo O(P) Esempio {a, b, c, d} {a, b, d} b c a d {a, c, d} {a} {c, d} {d} Æ Tino Cortesi Tecniche di Analisi di Programmi 36

Esercizi Costruire il reticolo O(P) quando P è il seguente ordine parziale: b c

Esercizi Costruire il reticolo O(P) quando P è il seguente ordine parziale: b c a d e Costruire il reticolo O(P) quando P è il seguente ordine parziale: Tino Cortesi Tecniche di Analisi di Programmi 37

CPO Un insieme parzialmente ordinato (P, £P) si dice CPO (insieme completo parzialmente ordinato)

CPO Un insieme parzialmente ordinato (P, £P) si dice CPO (insieme completo parzialmente ordinato) se: Esiste un elemento minimo (bottom) Per ogni sottoinsieme diretto S di P esiste lub(S). Tino Cortesi Tecniche di Analisi di Programmi 38

Esempio E’ un CPO (c’è il bottom e ogni sottoinsieme diretto ha lub), ma

Esempio E’ un CPO (c’è il bottom e ogni sottoinsieme diretto ha lub), ma non è un reticolo Tino Cortesi Tecniche di Analisi di Programmi 39

Reticoli completi Un reticolo completo è un insieme parzialmente ordinato (L, £) tale che

Reticoli completi Un reticolo completo è un insieme parzialmente ordinato (L, £) tale che tutti i sottoinsiemi di L hanno least upper bound e greatest lower bound. Se (L, £) è un reticolo completo, si denotano: ^ = lub(Æ) T = glb(L) bottom element top element Ogni reticolo finito è un reticolo completo Ogni reticolo completo è un CPO Tino Cortesi Tecniche di Analisi di Programmi 40

Esempio {1, 2, 3} L= Ã({1, 2, 3}) {1, 2} {1, 3} {2, 3}

Esempio {1, 2, 3} L= Ã({1, 2, 3}) {1, 2} {1, 3} {2, 3} {1} {2} {3} £=Í lub(Y) = ÈY glb(Y) = ÇY Tino Cortesi Æ Tecniche di Analisi di Programmi 41

Esempio {1, 2, 3} lub(Y) {1, 2} {1, 3} {2, 3} Y {1} L=

Esempio {1, 2, 3} lub(Y) {1, 2} {1, 3} {2, 3} Y {1} L= {3} Ã({1, 2, 3}) £=Í lub(Y) = ÈY glb(Y) = ÇY Tino Cortesi {2} Æ glb(Y) Tecniche di Analisi di Programmi 42

Esempio T -4 -3 L= Z È {T, ^} -2 -1 0 1 2

Esempio T -4 -3 L= Z È {T, ^} -2 -1 0 1 2 3 4 ^ "nÎ Z : ^£ n £T Tino Cortesi Tecniche di Analisi di Programmi 43

Esempio L= Z+ £ ordine totale su Z+ lub = max glb = min

Esempio L= Z+ £ ordine totale su Z+ lub = max glb = min 5 4 3 2 E’ un reticolo, ma non completo: Ad es. l’insieme dei pari non ha lub Tino Cortesi 6 Tecniche di Analisi di Programmi 1 0 44

Esempio T Tino Cortesi L= Z+ È {T} 6 £ ordine totale su Z+

Esempio T Tino Cortesi L= Z+ È {T} 6 £ ordine totale su Z+ È {T} 5 lub = max glb = min 4 E’ un reticolo completo 1 0 3 2 Tecniche di Analisi di Programmi 45

Esempi L=R (numeri reali) con £ ordine totale (R, £ ) non è un

Esempi L=R (numeri reali) con £ ordine totale (R, £ ) non è un reticolo completo: ad esempio {x Î R | x > 2} non ha lub Per ogni x<y in R, ([x, y], £ ) è un reticolo completo L=Q (numeri razionali) con £ ordine totale (Q, £ ) non è un reticolo completo E non basta aggiungere un top ed un bottom per ottenere la completezza: l’insieme {x Î Q | x 2 < 2} ha upper bounds ma non ha un least upper bound. Tino Cortesi Tecniche di Analisi di Programmi 46

Teorema: Se (L, £) è un insieme parzialmente ordinato, sono equivalenti: 1. L è

Teorema: Se (L, £) è un insieme parzialmente ordinato, sono equivalenti: 1. L è un reticolo completo 2. ogni sottoinsieme di L ha un least upper bound 3. ogni sottoinsieme di L ha un greatest lower bound Dimostrazione: 1 Þ 2 e 1 Þ 3 seguono immediatamente dalla definizione Per mostrare che 2 Þ 1, basta definire per ogni Y Í L glb(Y) = lub({lÎ L | " l’ Î Y : l £ l’}) Tutti gli elementi dell’insieme a destra sono lower bounds dell’insieme Y. Quindi lub({. . . }) definisce un lower bound di Y. Poiché tutti i lower bound di Y appartengono all’insieme a destra, lub({. . . }) definisce il greatest lower bound di Y. Tino Cortesi Tecniche di Analisi di Programmi 47

Esempio {1, 2, 3} glb(Y)= lub({lÎ L | " l’ Î Y : l

Esempio {1, 2, 3} glb(Y)= lub({lÎ L | " l’ Î Y : l £ l’}) Y lub(Z) {1, 2} {1, 3} {2, 3} {1} {2} {3} Z= {lÎ L | " l’ Î Y : l £ l’} Tino Cortesi upper bounds di Z Tecniche di Analisi di Programmi Æ 48

Esempio Si consideri l’insieme dei numeri interi non negativi, ordinati per divisione: n £d

Esempio Si consideri l’insieme dei numeri interi non negativi, ordinati per divisione: n £d m se $ h tale che m=n*h Ricordiamo che k è il massimo comun divisore di due interi se: k divide sia n che m (e quindi k £d n e k £d m) Se j divide sia m che n, allora j divide k (cioè j £d k per tutti i lower-bounds j di {m, n}. Allora il massimo comun divisore di m ed n è proprio il greatest lower bound di m ed n (e dualmente, il minimo comune multiplo è il least upper bound). Si può dimostrare che è un reticolo completo. Tino Cortesi Tecniche di Analisi di Programmi 49