Scaricare la presentazione
1
Ordini Parziali - Reticoli
2
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: " l1, l2, l3 Î L : l1£ l2 Ù l2£ l3 Þ l1£ l3 antisimmetrica: " l1, l2 Î L : l1£ l2 Ù l2£ l1 Þ l1= l2 Un insieme parzialmente ordinato (L, £) è un insieme L sul quale è definito un ordine parziale £. Tino Cortesi Tecniche di Analisi di Programmi
3
Tecniche di Analisi di Programmi
Esempio a b c d e f g 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
4
Tecniche di Analisi di Programmi
Esempio 6 L= N £ ={(0,1), (1,2), (2,3), (3,4), (4,5),…}T (L, £) è un insieme totalmente ordinato (infinito) 5 4 3 2 1 Tino Cortesi Tecniche di Analisi di Programmi
5
Tecniche di Analisi di Programmi
Esempio 9 8 7 L= N £ ={(n,m): $ k tale che m=n*k} (L, £) è un insieme parzialmente ordinato (infinito) 6 5 4 3 2 Tino Cortesi Tecniche di Analisi di Programmi
6
Tecniche di Analisi di Programmi
Esempio A partire dallo stesso insieme E={1,2,3,4,6,12} possono essere definiti diversi ordini parziali: 1 2 3 4 6 12 12 1 2 4 3 6 12 6 4 2 3 1 Ordine usuale Ordine indotto dalla divisibilità Numeri dispari minori dei pari Tino Cortesi Tecniche di Analisi di Programmi
7
Tecniche di Analisi di Programmi
Esempio Tutti i possibili insiemi parzialmente ordinati con tre elementi: Tino Cortesi Tecniche di Analisi di Programmi
8
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 (x2,y2) Û x1£P x2 Ù y1£T y2 Tino Cortesi Tecniche di Analisi di Programmi
9
Tecniche di Analisi di Programmi
Esempio N ´ N a £N ´ N c b c b £N ´ N c a (x1,y1) £N ´ N (x2,y2) Û x1£N x2 Ù y1£N y2 (N ´ N, £N ´ N) è un insieme parzialmente ordinato (infinito) Tino Cortesi Tecniche di Analisi di Programmi
10
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 Î P oppure x Î T} L’ordine parziale: x£ P e T y Û x,y Î P e x £P y oppure x,y Î t e x £t y Tino Cortesi Tecniche di Analisi di Programmi
11
Tecniche di Analisi di Programmi
Esempio P T (P e T, £P e T) Tino Cortesi Tecniche di Analisi di Programmi
12
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 Î P oppure x Î T} L’ordine parziale: x£ P t T y Û x,y Î P e x £P y Oppure x,y Î t e x £t y Oppure x Î P e y Î t . Tino Cortesi Tecniche di Analisi di Programmi
13
Tecniche di Analisi di Programmi
Esempio P T P t T Tino Cortesi Tecniche di Analisi di Programmi
14
Tecniche di Analisi di Programmi
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 l0 di Y che soddisfa la seguente proprietà: l’ è un upper bound di Y Þ l0 £ l’ Un greatest lower bound (glb) di Y è un lower bound l0 di Y che soddisfa la seguente proprietà: l’ è un lower bound di Y Þ l’ £ l0 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
15
Tecniche di Analisi di Programmi
Esempio N ´ N upper bounds di Y Y lub(Y) glb(Y) lower bounds di Y (x1,y1) £N ´ N (x2,y2) Û x1£N x2 Ù y1£N y2 Tino Cortesi Tecniche di Analisi di Programmi
16
Esempio ^ c d b a g j i h f e T lub({b,c})= ?
Gli upper bounds dell’insieme {b,c} sono {h,i,T} T i h e questo insieme non ha un minimo elemento: Il lub non c’è ! Tino Cortesi Tecniche di Analisi di Programmi
17
Esempio ^ lub({a,b})= ? c d b a g j i h f e T
Gli upper bounds dell’insieme {a,b} sono {T,h,i,f} i h f T e questo insieme ha un f come minimo elemento: lub({a,b})= f Tino Cortesi Tecniche di Analisi di Programmi
18
Tecniche di Analisi di Programmi
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. {a,b,d} è un down-set {b,c,d} è un up-set {a,b} è un up-set ma non un down-set c d b a Tino Cortesi Tecniche di Analisi di Programmi
19
Tecniche di Analisi di Programmi
Down-sets e up-sets In particolare, se Q è un qualsiasi sottoinsieme di P, definiamo iQ = {y Î P | (esiste x Î Q) y £ x } è un down-set hQ = {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
20
Tecniche di Analisi di Programmi
Down-sets e Up-sets i{b,d} = {a,b,d} h{c,d} = {b,c,d} ib = {a,d} ic = {d} hd = {b,c} ha = {b} hb = {b} b c a d Tino Cortesi Tecniche di Analisi di Programmi
21
Tecniche di Analisi di Programmi
Esempio Consideriamo l’insieme dei numeri razionali positivi Q. L’insieme S={q Î P | q2 £ 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
22
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} {a, c,d} c d b a {a,d} {c,d} {a} {d} Æ a Tino Cortesi Tecniche di Analisi di Programmi
23
Tecniche di Analisi di Programmi
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
24
Tecniche di Analisi di Programmi
Catene Dato un insieme parzialmente ordinato (L,£), un sottoinsieme Y di L è una catena se " l1, l2 Î Y : (l1£ l2) Ú (l2£ l1) 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
25
Tecniche di Analisi di Programmi
Esempio: catene c d b a g j i h f e T ^ c d b a g j i h f e T ^ Tino Cortesi Tecniche di Analisi di Programmi
26
Tecniche di Analisi di Programmi
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
27
Tecniche di Analisi di Programmi
Esempi S2 S1 L’insieme S1 è diretto L’insieme S2 non è diretto Tino Cortesi Tecniche di Analisi di Programmi
28
Tecniche di Analisi di Programmi
Esempio 2 3 4 1 -1 -2 -3 -4 ^ T F S L= Z È {T,^} " n Î Z : ^ £ n £ T S non è un insieme diretto: non esiste un elemento di S che appartiene all’insieme degli upper bounds di F Tino Cortesi Tecniche di Analisi di Programmi
29
Tecniche di Analisi di Programmi
Esempio S 2 3 4 1 -1 -2 -3 -4 ^ T F L= Z È {T,^} " n Î Z : ^ £ n £ T S è un insieme diretto: per ogni F finito esiste un elemento di S che appartiene all’insieme degli upper bounds di F Tino Cortesi Tecniche di Analisi di Programmi
30
Insiemi diretti e catene
b a g j i h f e T ^ Sia (P,£P) un insieme parzialmente ordinato. Ogni catena non vuota di P è un insieme diretto. Esercizio: dimostrarlo! 6 5 4 3 2 1 Tino Cortesi Tecniche di Analisi di Programmi
31
Tecniche di Analisi di Programmi
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
32
Tecniche di Analisi di Programmi
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
33
Tecniche di Analisi di Programmi
Esempio Rivediamo tutti i possibili insiemi ordinati con tre elementi: sono reticoli? SI NO NO NO NO Tino Cortesi Tecniche di Analisi di Programmi
34
Tecniche di Analisi di Programmi
Esempio a b c d e f g Y 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
35
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
36
Tecniche di Analisi di Programmi
Il reticolo O(P) Esempio {a,b,c,d} {a,b,d} {a, c,d} c d b a {a,d} {c,d} {a} {d} Æ Tino Cortesi Tecniche di Analisi di Programmi
37
Tecniche di Analisi di Programmi
Esercizi Costruire il reticolo O(P) quando P è il seguente ordine parziale: b c e a d Tino Cortesi Tecniche di Analisi di Programmi
38
Tecniche di Analisi di Programmi
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
39
Esempio E’ un CPO (c’è il bottom e ogni sottoinsieme diretto ha lub),
ma non è un reticolo Tino Cortesi Tecniche di Analisi di Programmi
40
Tecniche di Analisi di Programmi
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(Æ) bottom element T = glb(L) top element Ogni reticolo finito è un reticolo completo Ogni reticolo completo è un CPO Tino Cortesi Tecniche di Analisi di Programmi
41
Tecniche di Analisi di Programmi
Esempio {1,2,3} {1,2} {1,3} {2,3} {1} {2} {3} L= Ã({1,2,3}) £ = Í lub(Y) = ÈY glb(Y) = ÇY Æ Tino Cortesi Tecniche di Analisi di Programmi
42
Tecniche di Analisi di Programmi
Esempio {1,2,3} lub(Y) {1,2} {1,3} {2,3} Y {1} {2} {3} L= Ã({1,2,3}) £ = Í lub(Y) = ÈY glb(Y) = ÇY Æ glb(Y) Tino Cortesi Tecniche di Analisi di Programmi
43
Tecniche di Analisi di Programmi
Esempio T -4 -3 -2 -1 1 2 3 4 ^ L= Z È {T,^} " n Î Z : ^ £ n £ T Tino Cortesi Tecniche di Analisi di Programmi
44
Tecniche di Analisi di Programmi
Esempio L= Z+ £ ordine totale su Z+ lub = max glb = min E’ un reticolo, ma non completo: Ad es. l’insieme dei pari non ha lub 6 5 4 3 2 1 Tino Cortesi Tecniche di Analisi di Programmi
45
Tecniche di Analisi di Programmi
Esempio T L= Z+ È {T} £ ordine totale su Z+ È {T} lub = max glb = min E’ un reticolo completo 6 5 4 3 2 1 Tino Cortesi Tecniche di Analisi di Programmi
46
Tecniche di Analisi di Programmi
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 | x2 < 2} ha upper bounds ma non ha un least upper bound. Tino Cortesi Tecniche di Analisi di Programmi
47
Tecniche di Analisi di Programmi
Teorema: Se (L, £) è un insieme parzialmente ordinato, sono equivalenti: L è un reticolo completo ogni sottoinsieme di L ha un least upper bound 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
48
Tecniche di Analisi di Programmi
Esempio upper bounds di Z {1,2,3} glb(Y)= lub({lÎ L | " l’ Î Y : l £ l’}) Y {1,2} {1,3} {2,3} lub(Z) {1} {2} {3} Z= {lÎ L | " l’ Î Y : l £ l’} Æ Tino Cortesi Tecniche di Analisi di Programmi
49
Tecniche di Analisi di Programmi
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.