Applicazioni di strutture metriche su poseti / reticoli in teoria CS


17

Poiché il termine è sovraccarico, prima una breve definizione. Un poset è un set dotato di un ordine parziale . Dati due elementi , possiamo definire (join) come limite inferiore minimo in e allo stesso modo definire (meet) (join) come limite inferiore massimo.Xun',BXXyXXy

Un reticolo è un poset in cui due elementi hanno un incontro unico e un join unico.

Le griglie (in questa forma) si presentano nella teoria CS nella (brevemente) teoria della sottomodularità (con il reticolo del sottoinsieme) e del raggruppamento (il reticolo delle partizioni), così come nella teoria dei domini (che non capisco troppo bene) e statica analisi.

Ma sono interessato ad applicazioni che usano strutture metriche su reticoli. Un semplice esempio viene dal clustering, in cui qualsiasi funzione sottomodulare antimonotone (antimonotone significa che se ) induce una metrica f:XRXy,f(X)f(y)

d(x,y)=2f(xy)f(x)f(y)

Questa metrica è stata ampiamente utilizzata come modo per confrontare due diversi cluster di un set di dati.

Esistono altre applicazioni di reticoli che si occupano delle strutture metriche? Sono stato interessato alla teoria dei domini / all'applicazione dell'analisi statica, ma finora non ho visto alcun bisogno di metriche .

Risposte:


12

Innanzitutto, un commento. La tua domanda dipende da quanto geometricamente intendi significare la parola "metrica". È ragionevolmente comune usare l'ultrametrica in semantica e analisi statica, ma l'ultrametrica tende ad avere un'interpretazione combinatoria piuttosto che geometrica. (Questa è una variante dell'osservazione che la teoria dei domini ha il sapore di un uso combinatorio piuttosto che geometrico della topologia.)

Detto questo, ti darò un esempio di come questo si presenta nelle prove del programma. Innanzitutto, ricorda che in una prova del programma, vogliamo dimostrare che una formula che descrive un programma è valida. In generale, questa formula non deve necessariamente essere interpretata con i booleani, ma può essere disegnata dagli elementi di un reticolo di valori di verità. Quindi una vera formula è solo una che è uguale alla parte superiore del reticolo.

Inoltre, quando si specificano programmi molto autoreferenziali (ad esempio, programmi che fanno ampio uso di codici di auto-modifica) le questioni possono diventare molto difficili. In genere desideriamo fornire una specifica ricorsiva del programma, ma potrebbe non esserci una struttura induttiva ovvia su cui appendere la definizione. Per risolvere questo problema, è spesso utile dotare il reticolo del valore di verità con una struttura metrica aggiuntiva. Quindi, se puoi dimostrare che il predicato il cui punto fisso desiderato è strettamente contrattuale, puoi fare appello al teorema del punto fisso di Banach per concludere che il predicato ricorsivo che desideri è ben definito.

Il caso con cui ho più familiarità si chiama "indicizzazione dei passi". In questa impostazione, prendiamo il nostro reticolo di valori di verità come sottoinsiemi chiusi verso il basso di , i cui elementi possiamo liberamente interpretare come "le lunghezze delle sequenze di valutazione su cui la proprietà tiene". Le riunioni e le unioni sono intersezioni e unioni, come al solito, e poiché il reticolo è completo possiamo definire anche le implicazioni di Heyting. Il reticolo può anche essere dotato di un ultrametrico lasciando che la distanza tra due elementi reticolari sia , dove è l'elemento più piccolo in un insieme ma non nell'altro.Ω2 - n nN2nn

Quindi, la mappa della contrazione di Banach ci dice che un predicato contrattuale ha un punto fisso unico. Intuitivamente, ciò dice che se possiamo definire un predicato che detiene per n + 1 passaggi usando una versione che detiene per n passaggi, allora in realtà abbiamo una definizione inequivocabile di un predicato. Se poi mostriamo che il predicato è uguale a = N , allora sappiamo che il predicato vale sempre per il programma.p:ΩΩn+1n=N


ah interessante. In risposta alla tua domanda, tutto ciò che mi interessa è che la metrica sia proprio questa: soddisfa la disuguaglianza del triangolo. Quindi le ultrametriche vanno benissimo. Tuttavia, (e questo è il mio difetto nella domanda) mi sembra che l'uso della metrica qui sia strutturale, in modo da ottenere l'accesso a Banach. Non ti interessa la metrica in sé (e quindi cose come l'approssimazione della metrica o il suo calcolo sono irrilevanti). È giusto ?
Suresh Venkat,

4
Sì, non ci preoccupiamo molto della metrica. Questa è in realtà una fonte di disagio con i modelli metrici o indicizzati a passi: perché stiamo monitorando le informazioni che non ci interessano davvero? Mostrare che un modello era stabile sotto una classe di approssimazioni alla metrica (forse conservativa rispetto alla contrattilità) aumenterebbe effettivamente il conforto con esso.
Neel Krishnaswami,

9

In alternativa ai CPO più comunemente usati, Arnold e Nivat hanno esplorato gli spazi metrici (completi) come domini della semantica denotazionale [1]. Nella sua tesi Bonsangue [2] ha esplorato la dualità tra tale semantica denotazionale e semantica assiomatica. Lo cito qui perché fornisce un quadro complessivo molto completo.

[1]: A Arnold, M Nivat: interpretazioni metriche di alberi infiniti e semantica di programmi ricorsivi non deterministici. Theor. Comput. Sci. 11: 181-205 (1980).
[2]: MM Bonsangue Dualological Topological in Semantics volume 8 di ENTCS, Elsevier 1998.


Fantastico - non sapevo che questa tesi fosse online!
Neel Krishnaswami,

3
Faccio sapere a Marcello (Bonsangue) che si sta parlando. (Forse si unirà.)
Dave Clarke,

5

Eccone uno (per coincidenza, in cima alla mia coda di lettura):

Swarat Chaudhuri, Sumit Gulwani e Roberto Lublinerman. Analisi di continuità dei programmi. POPL 2010.

Gli autori forniscono una semantica denotazionale per un linguaggio imperativo con semplici cicli, interpretando le espressioni come funzioni dai valori in uno spazio metrico del prodotto sottostante. Il punto è determinare quali programmi rappresentano funzioni continue, anche in presenza di "if" e loop. Consentono persino di porre domande sulla continuità limitata a determinati input e output. (Questo è importante per analizzare l'algoritmo di Dijkstra, che è continuo nella sua lunghezza del percorso, ma non nel percorso effettivo.)

Non ho ancora visto nulla che richieda uno spazio metrico - sembra che avrebbe potuto essere fatto finora usando la topologia generale - ma sono solo a pagina 3. :)


1
ovviamente non c'è poset o reticolo qui, come nella risposta precedente. questo è quello che mi manca.
Suresh Venkat,

3

Mi scuso per l'aggiunta di un'altra risposta, ma questa non è correlata alla mia precedente sopra.

Uno spazio metrico che uso abitualmente per irritare (o educare?) Gli studenti di concorrenza è quello di tracce infinite. La topologia che induce è precisamente quella che Alpern e Schneider [1] hanno usato per caratterizzare proprietà di sicurezza e vivacità rispettivamente come limite chiuso e denso.

La distanza tra due tracce è minore se il loro prefisso comune è più lungo:

d:Σω×ΣωR0(σ,τ)2-cenare{ ioN | σ|io=τ|io }
σ|ioσio2-=0 .

A posteriori, mi rendo conto che questa risposta manca anche dell'ingrediente essenziale di una struttura reticolare o poset. Una tale struttura reticolare è tuttavia presente quando si sposta di un livello su ciò che chiamano Clarkson e Schneider iperproperties [2]. Al momento della stesura, tuttavia, non mi è chiaro come aumentare la metrica.

[1] B Alpern e FB Schneider. Definire la vivacità. IPL, 21 (4): 181–185, 1985.
[2] MR Clarkson e FB Schneider. Hyperproperties. CSF, p51-65, IEEE, 2008.


ΣK=1nK=n(n+1)/2

@HCH grazie, ho modificato il mio post di conseguenza e rimosso il clamore palese per i consigli di formattazione.
Kai,

Bella formula!
Hsien-Chih Chang 張顯 之
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.