550 likes | 663 Views
Numerical Power Analysis. Anna Achilli Diego Bellantuono. Excursus. Introduzione alla NPA Classe di domini P(B,E) P(B,E) come reticolo completo: astrazione di Proprietà: ACC, Elementi Meet-Irriducible Combinazione con altri domini astratti
E N D
Numerical Power Analysis Anna Achilli Diego Bellantuono
Excursus • Introduzione alla NPA • Classe di domini P(B,E) • P(B,E) come reticolo completo: astrazione di • Proprietà: ACC, Elementi Meet-Irriducible • Combinazione con altri domini astratti • Calcolo della semantica astratta e concreta in esempi pratici • Il problema di Collatz e sua risoluzione tramite l’NPA • Programmi in linguaggio PCCP • Osservazioni conclusive.
Introduzione alla NPA • NPA è la Power Analysis di valori numerici interi o razionali. • La Power Analysis è un strumento importante per prevedere risultati statistici significativi in un determinato esperimento scientifico prima che l’esperimento sia effettuato • Come funziona la PA: • E’ necessario avere in mente una ipotesi alternativa a quella che si vuole dimostrare • Utilizzata in particolare assieme ai metodi statistici
Power Analisys: Esempio • Scopo: Effettuare un Sondaggio di Marketing • Sia π ( chiamato parametro di interesse )la porzione di persone favorevoli all’oggetto del sondaggio • E’ interrogato un campione casuale di persone. Sia Nquesto campione: • generalmente N sarà un valore molto piccolo rispetto alla popolazione in generale. Il calcolo delle persone interrogate è una statistica chiamata P. • Già prima di eseguire lo studio si sa che di una quantità chiamata errore di campionamento • La PA è utilizzata per rispondere a domande relative a velocità, semplicità, accuratezza ( dimensione del campione per minimizzare l’errore )
Alternative alla PA: Intervalli di confidenza • In alternativa alla PA, esiste un approccio basato su intervalli di confidenza. • se lo scopo è solo di illustrare i risultati è sufficiente questa tecnica, • se invece si vuole approfondire uno studio è più utile la PA
Scopo: Costruire domini astratti • Progettare domini astratti per l’analisi delle potenze numeriche • Questi domini • sono dimostrati corretti nel framework adjoint dell’interpretazione astratta • Il progettista di domini è facilitato a dimostrare la correttezza e l‘ottimalità dell’analisi • Altre proprietà rilevanti: • Possono avere infinite catene discendenti ma soddisfano l’ACC ( “Ascending Chain Condition” ) • Non sono permesse infinite catene ascendenti • Importante nell’analisi statica perché dimostra che non ci possono essere cicli infiniti nella semantica astratta • Domini visti come reticoli con elementi meet-irriducible
Analisi • Consideriamo la nostra analisi come la soluzione di un sistema di equazioni di punti fissi associate alla semantica concreta del programma • Ogni equazione è interpretata nel dominio astratto che restituisce una trasformazione approssimata dell’invarianza del programma in ogni suo punto • Perché questa analisi sia effettiva • La soluzione iterativa del sistema di equazioni approssimato deve terminare. • Condizione di terminazione raggiunta • Staticamente disegnando domini astratti senza catene ascendenti • Dinamicamente calcolando i punti fissi tramite operazioni di widening/narrowing per velocizzare la convergenza
Domini e proprietà • Questi domini sono ideati per scoprire proprietà del tipo: Esempio PROBLEMA DI COLLATZ: applicando la NPA a questo problema è possibile individuare automaticamente delle proprietà
Campi di applicazione Combinazione di domini • NPA è molto utile se combinata con altre tecniche di analisi di valori numerici • Analisi di Congruenza di Granger, Interval Analysis • La combinazione avviene tramite ad esempio • Prodotto ridotto • Studiato per superare le limitazioni del prodotto diretto ( è il dominio ottenuto dal prodotto cartesiano dei due domini astratti ) • Mancanza di precisione perché manca l’interazione tra le componenti • Prodotto cartesiano + riduzione ( processo che trasforma una GC una GI ) • Prodotto di Granger • Definisce due nuove operazioni sul prodotto cartesiano dei domini, che riducono rispettivamente ogni componente • Vantaggi • Costruzione di analisi più sofisticate • Riutilizzo di implementazioni esistenti
Campi di ApplicazioneProbabilistic Concurrent Constraint Program • NPA usata nell’analisi statica di linguaggi di programmazione probabilistica a scelta casuale • Posso usare NPA per approssimare la probabilità risultante in computazioni casuali • Caso studio: programmi in linguaggio PCCP
Il dominio delle potenze numeriche • Consideriamo tipi numerici standard: • Naturali, Interi, Razionali • Identifichiamo gli elementi utili alla nostra analisi come collezioni di insiemi ognuno dei quali contiene potenze numeriche di un particolare valore intero o razionale
Il dominio concreto • Le variabili assumono valore in Z o Q, quindi i possibili valori che assumono durante l’esecuzione del programma appartengono al è un reticolo booleano che rappresenta il dominio concreto dell’interpretazione • Un reticolo booleanoè un reticolo distributivo complementato
Classe di domini con X-Powers • Introduciamo la classe di domini che include tutte le X-Powers di valori interi o razionali • con la condizione che se allora • In consideriamo all’inizio solo insiemi di potenze di elementi atomici e poi assegnamo i risultati ottenuti alla stessa • Atomo esponenziale di A ( ) è il più piccolo elemento tale che con e e • a è atomico se allora con , , , • In particolare quando e lavoriamo solo con insiemi di potenze con valori maggiori di 1 e quindi possiamo estendere i risultati agli insiemi delle potenze di tutti i valori razionali
Domino delle potenze degli interi Dominio delle potenze degli interi
Analisi della Base • Introduciamo due domini astratti: con • formano RETICOLI COMPLETI: • è un RETICOLO • Definire lub e glb • è un reticolo COMPLETO • GI tra e • Consideriamo domini EXPONENTIAL-CLOSED • Proprietà: ACC e elementi MEET-IRRIDUCIBLE • è un’ASTRAZIONE DI • è una MOORE – FAMILY
Fase 1:dimostrazione RETICOLO • Individuiamo Least Upper Bound - lub (e Greatest Lower Bound - glb) • Sia tale che con • Consideriamo • Idea della dimostrazione: • Caso • Visto che allora • Quindi sappiamo che • Dimostriamo che è contenuto nell’insieme • con e
Fase 1: dimostrazione RETICOLO • In altri termini • Se , • Sappiamo che d è atomico ( = ) e • Quindi l’intersezione esiste • Per dimostrarlo considero tale che con • Ciò implica che e quindi • Ma al tempo stesso per le proprietà dell’intersezione e quindi • Possiamo concludere che cioè
Esempio 1: calcolo lub con B=Z • Consideriamo e • Troviamo il lub= • Calcoliamo il gcd per definire k e h • quindi • quindi • Allora e • Usando la notazione del teorema per il calcolo del lub • per cui • Lub =
Esempio 2: calcolo lub con B=Q e X={N,Z} • Consideriamo e • Calcoliamo k e h come gcd degli esponenti: • quindi • quindi • Calcoliamo il gcd tra k e h • m=gcd(4,6)=2 • Allora il lub è:
Domini Exponential-Closed • Finora abbiamo visto che è un reticolo ordinato per inclusione • Consideriamo ora un tipo particolare di dominio chiamato exponential-closed • Tale assunzione è imposta dalla caratterizzazione di E: consideriamo E come collezione di insiemi di interi o naturali • In particolare E può essere visto come una astrazione di Questa generalizzazione permette di analizzare le potenze combinando con altri domini astratti • ma pone un problema che può essere superato introducendo questo tipo di domini
Domini Exponential-Closed • Problema: • Dati • Dove una funzione è UCO se è estensiva, monotona e idempotente • Un UCO identifica un’inserzione di Galois • Se
Domini Exponential-Closed • Se C è un reticolo completo allora è una Moore-Family di C ( ) se • Un dominio exponential-closed assicura che l’astrazione dell’esponente in un dominio E sia una Moore-Family ( e quindi una astrazione del ) Una Moore-Family è un dominio exponential-closed se per ogni
E: dominio exponential-closed • Noi assumiamo che Visto che • I domini così costruiti (con E che soddisfa ACC) non possono avere infinite catene ascedenti ( ma le possono avere infinite discedeti )
Ascending Chain Condition (ACC) • Consideriamo un poset P: • P soddisfa ACC se per ogni • Diamo ora una caratterizzazione degli elementi meet-irriducible di P(B,E).
Elementi Meet-Irriducible • Sia C un reticolo con Mirr(C) è l’insieme degli elementi meet-irriducible in un reticolo C. • C è definito meet-generated dai suoi elementi meet-irriducible se e solo se C=M(Mirr(C)) • Sia A un insieme e allora X è meet-irriducible in
P(B,E): Reticolo Completo • Dimostriamo ora che P(B,E) con E dominio esponential-closed è un reticolo completo. • Per far ciò bisogna trovare una G.I. tra P(B,E) e il powerset di B
P(B,E): astrazione di • Finora abbiamo dimostrato che sono reticoli completi. • Osserviamo che è una astrazione di cioè che è una Moore-Family del • Una GI può essere caratterizzata nei termini di una Moore-Family (Ward):
Operazioni astratte • Dopo aver descritto P(B,E) consideriamo il linguaggio di programmazione con operazioni aritmetiche standard su N o Q e ne definiamo l’interpretazione astratta • Queste operazioni sono corrette e in particolare è un’operazione astratta che rappresenta una astrazione ottimale della corrispondente operazione concreta del
Domini infinitamente exponential-closed • I domini conosciuti nell’ambito della NPA di interi o razionali sono infinitamente exponential-closed • Quindi sono utilizzabili per approssimare le proprietà dell’insieme esponente • Dominio di congruenza di Granger: • Consente di analizzare potenze numeriche nella forma mZ+n con n,m Z • Dominio di intervalli di Cousot: • Utilizzato per analizzare la dimensione dell’insieme esponente in N o Z • Considereremo la restrizione a N:
C(Z), Int(Z), Int(N), P(Z,{N}) • Dominio per NPA: P(B,E) • Per analizzare le proprietà dell’insieme esponente di essere un power-set in P(Z,{N}) • C(Z), Int(Z), P(Z, {N}) uco(Z) e Int(N) uco(N) sono domini infinitamente exponential-closed • sono cioè nella forma kX∩hX=zW per infinite intersezioni • Consideriamo alcuni esempi di intersezioni e lub nei domini considerati per dimostrare che sono infinitamente exponential-closed
Esempio con E = Int(N) • Dati B=Z, E=Int(N) determiniamo l’intersezione: • Dove: e • Calcoliamo i valori di k e h: • quindi • quindi • Gli e-atomi di a e b sono uguali quindi l’intersezione esiste • Possiamo trovare l’intersezione come: • Dove: 6N=2N 3N, • Cioè c= e
Esempio con E = C(Z) • Dati B=Q e E=C(Z), • Trovare • Si noti che • Calcoliamo k e h: • quindi • quindi • Anche in questo caso i 2 e-atomi sono uguali perciò: • Perché = • Concludendo e ( [] /6)
Esempio con E = Int(Z) • Dati B=Q, E=Int(Z) • Troviamo • Consideriamo gli elementi nella forma • Quindi e • Gli e-atomi di a e b sono pari a 2 • Determiniamo il lub: • Perché
Programma per NPA con • Applichiamo i domini per le potenze numeriche all’analisi statica dei programmi tramite l’interpretazione astratta • Questo frammento di programma ci illustra l’analisi statica di potenze numeriche in
Semantica concreta e astratta • Semantica concreta S: con π che indica un determinato punto del programma e rappresenta uno stato concreto • Vogliamo calcolare la semantica concreta del programma P al punto • è l’estensione point-wise alle funzioni dell’insieme unione
Soluzione del sistema • Semantica astratta • È il minimo punto fisso dell’equazione: • Otteniamo la soluzione in 3 passi:
Il problema di Collatz • Si presta bene ad essere usato dalla NPA • si può esprimere come iterazione della seguente funzione
Il grafo di Collatz • I risultati delle iterazioni possono essere rappresentati con un grafo chiamato grafo di Collatz della funzione S(n)
P termina sempre con 1 • È facilmente osservabile che il risultato finale è sempre 1 • Esempio: partiamo da 7 E' dispari, quindi faccio 3x7+1=22.Pari, 22:2=11.Dispari, 11x3+1=34.Pari, 34:2=17.Dispari, 17x3+1=52.Pari, 26.Pari, 13.Dispari, 40.Pari, 20.Pari, 10.Pari, 5. Dispari, 16.Pari, 8.Pari, 4.Pari, 2.Pari, 1.Da questo punto in poi : 4,2,1,4,2,1,4,2,1.....
Formalizziamo • Ciò equivale a dire che è una tripla di Hoare valida, con: • c può essere ogni potenza di 2 • Cioè il programma P termina con n=1 ogni qual volta • Consideriamo le seguenti operazioni astratte:
Calcolo della semantica astratta • La semantica astratta per il programma P al punto • Quindi se con • Allora è un punto fisso dell’equazione
Analisi statica di PCCP casuali • La NPA dei razionali è adatta ad approssimare la probabilità dei programmi casuali • Gli oggetti astratti in si prestano ad approssimare le componenti di probabilità delle computazioni riguardanti scelte casuali • Inoltre il dominio può caratterizzare le proprietà degli esponenti della probabilità elaborata • Consideriamo l’operazione prodotto astratto con
Linguaggio PCCP • Per modellare questa situazione come un programma di analisi statica consideriamo una versione probabilistica del calcolo constraint concorrente (PCCP) • PCCP si basa sul paradigma ask-tellche fa riferimento alla nozione di bloking-ask • Un processo è sospeso quando lo store non comporta l’ask-constraint e rimane sospeso fino a quando ciò accade
Sintassi PCCP • Basata sulla nozione di constraint system C • Reticolo algebrico completo • C= insieme di constraint • = relazione d’implicazione che ordina C • = lub • True= bottom di C • False= top di C • Un programma PCCP chiamato P è un oggetto nella forma D.A • D= insieme di dichiarazioni di procedure nella forma p(x) • A= agente PCCP
Semantica PCCP • Semantica operazionale • Sistema di transizioni + probabilità (per ogni transizione) • Significato operazionale del costrutto scelta probabilistica • Controlla se i constranit ci sono implicati nello store • Normalizza le distribuzioni di probabilità considerando solo gli agenti abilitati • Ciò significa che abbiamo ridefinito le distribuzioni di probabilità solo con agenti aventi probabilità diversa da 0 e somma delle probabilità pari a 1 • Con =probabilità di transizione normalizzata • =somma su tutti gli agenti abilitati
Semantica: idea di base • Associare ad ogni agente una descrizione matematica del suo funzionamento computazionale • Spesso la computazione è influenzata dal funzionamento I/O • Ciò viene descritto da un insieme di constraint che rappresentano i possibili store finali dopo l’esecuzione di un agent • L’I/O è rappresentabile con la distribuzione di probabilità su un sistema constraint: • Cioè su un insieme di coppie (c,p) dove • c= risultato • p= probabilità della computazione risultante
Semantica e punti fissi • Semantica • Ottenuta tramite applicazione iterativa dell’operatore di punto fisso (sull’insieme dell’interpretazione) partendo dall’interpretazione iniziale che assegna ad ogni agente l’insieme {true} • Interpretazione: agenti → sottoinsieme di C (descrive i risultati della computazione agente) • Operatore di punto fisso • Con (per gli insiemi di constraint ) così definito:
Spazio vettoriale su C • Restrizione sintattica • Consideriamo PCCP libero da sincronizzazioni • Così ignoriamo gli aspetti relativi alla concorrenza che richiedono strutture più complicate • Distribuzione di probabilità • Rappresentata da vettori nello spazio vettoriale reale libero V(C) sul sistema constraint C • Spazio costruito come insieme di tutte le combinazioni lineari di constraint • O equivalentemente
Equazioni ricorsive su spazio vettoriale • Semantica di PCCP • Costruita definendo il significato degli agenti tramite un insieme di equazioni ricorsive su uno spazio vettoriale libero • Esempi • Agente stop può solo produrre uno store vuoto con probabilità pari a 1 • Agente tell aggiunge sempre c allo store con probabilità 1