Ambiguità e logica


17

Nella teoria degli automi (automi finiti, automi pushdown, ...) e nella complessità, esiste una nozione di "ambiguità". Un automa è ambiguo se c'è una parola con almeno due distinte prove accettanti. Una macchina è k- ambigua se per ogni parola w accettata dalla macchina ci sono al massimo k percorsi distinti per accettare w .wkwkw

Questa nozione è definita anche su grammatiche senza contesto: una grammatica è ambigua se esiste una parola che può essere derivata in due modi diversi.

È anche noto che molte lingue hanno una buona caratterizzazione logica su modelli finiti. (Se una lingua è regolare, esiste una formula monadica di secondo ordine ϕ sulle parole in modo tale che ogni parola w di L sia un modello di similar , analogamente NP se equivalente alle formule del secondo ordine in cui esistono quantificatori di ogni secondo ordine.)LϕwLϕ

Quindi, la mia domanda è ai margini dei due domini: c'è qualche risultato, o addirittura una definizione canonica, di "ambiguità" delle formule di una data logica?

Posso immaginare alcune definizioni:

  • non è ambiguo se esiste al massimo uno x tale che ϕ ( x ) è valido e che ϕ ( x ) non è ambiguo. xϕ(x)xϕ(x)ϕ(x)
  • sarebbe ambiguo se esiste un modello di ϕ 0 e ϕ 1 o se ϕ i è ambiguo. ϕ0ϕ1ϕ0ϕ1ϕi
  • Una formula SAT sarebbe non ambigua se esiste al massimo un'assegnazione corretta.

Quindi, mi chiedo se è una nozione ben nota, altrimenti potrebbe essere interessante provare a fare ricerche su questo argomento. Se la nozione è nota, qualcuno potrebbe darmi parole chiave che potrei usare per cercare informazioni sull'argomento (perché "ambiguità logica" fornisce molti risultati non correlati) o riferimenti a un libro / pdf / articolo?

Risposte:


11

Le regole in una grammatica e le regole di inferenza nella logica possono essere entrambe pensate come regole di produzione che ci danno "nuove cose" da "cose ​​conosciute". Proprio come ci possono essere molti modi per produrre (o analizzare) una parola rispetto a una grammatica, così possono esserci molti modi per produrre (o dimostrare) una formula logica. Questa analogia può essere ulteriormente approfondita. Ad esempio, alcuni sistemi logici ammettono forme normali di prove. Allo stesso modo, alcune grammatiche ammettono alberi di analisi canonici.

Quindi direi che i tuoi esempi dalla logica vanno nella direzione sbagliata. L'analogia corretta è

"parse tree": "word" = "proof": "formula logica"

In effetti, un tipo di grammatica sufficientemente generale sarà in grado di esprimere le regole di inferenza tipiche della logica, in modo che le parole grammaticalmente corrette siano precisamente le formule dimostrabili. In questo caso le alberi di analisi saranno effettivamente essere le prove.

Nella direzione opposta, se siamo disposti a pensare a regole di inferenza molto generali (che non hanno necessariamente un sapore logico tradizionale), allora ogni grammatica sarà espressibile come un sistema di assiomi (terminali) e regole di inferenza (produzioni). E ancora una volta vedremo che una prova è la stessa cosa di un albero di analisi.


Non ho davvero pensato alle prove. Sono più abituato alla teoria dei modelli (finita). Ci preoccupiamo di capire quali set sono modelli di una formula e quali set non lo sono. (Soprattutto, per una formula, qual è la complessità di scoprire se un set è un modello o no, e per una formula dimostrabile, quindi tautologie, la complessità è O (1) poiché ogni set è un modello). Ma grazie mille per la tua risposta.
Arthur MILCHIOR

2
Bene, per aggiungere analogia: la teoria dei modelli è alla logica ciò che la semantica è alle lingue. La teoria dei modelli assegna significato alle teorie logiche, mentre la semantica assegna significato alle lingue. A volte è meglio non mescolare mele e arance, anche se ci sei abituato.
Andrej Bauer,

7

Solo due osservazioni. Spero che aiutino.

Le definizioni standard di semantica di una logica e di verità seguono la presentazione di Tarski, procedendo per induzione sulla struttura della formula. Un'altra possibilità è quella di fornire una semantica basata sul gioco, come suggerito da Hintikka. Verità e soddisfacibilità sono tutte definite in termini di strategie in un gioco. Per le formule del primo ordine, si può dimostrare che una formula è vera secondo l'idea di Tarski se e solo se esiste una strategia vincente nel gioco Hintikka.

Verso la formalizzazione della tua domanda, ci si può chiedere se il gioco ammette più strategie. C'è anche l'interessante domanda se le strategie debbano essere deterministiche. Hintikka ha richiesto loro di essere deterministici. La prova che l'originale di Hintikka e la semantica di Tarski sono equivalenti richiede l'Assioma della scelta. Si può anche formalizzare la verità in termini di giochi con strategie non deterministiche con minori complicazioni.

Il tuo esempio di teoria del linguaggio ha portato alla mente determinismo, relazioni di simulazione e accettazione del linguaggio. Una relazione di simulazione tra automi implica l'inclusione della lingua tra le loro lingue sebbene il contrario non sia vero. Per gli automi deterministici le due nozioni coincidono. Ci si può chiedere se è possibile estendere le relazioni di simulazione in modo "fluido" per catturare l'equivalenza del linguaggio per gli automi non deterministici. Kousha Etessami ha un bellissimo documento che mostra come farlo usando k-simulazioni ( Una gerarchia di simulazioni calcolabili a tempo polinomiale per automi). Intuitivamente, la 'k' riflette il grado di non determinismo che la relazione di simulazione può catturare. Quando "k" è uguale al livello di non determinismo nell'automa, la simulazione e l'equivalenza del linguaggio coincidono. Quel documento fornisce anche una caratterizzazione logica delle simulazioni k in termini di logica modale poliadica e un frammento variabile limitato della logica del primo ordine. Ottieni inclusione della lingua, determinismo, giochi, logica modale e logica del primo ordine, tutto in un unico pacchetto.


4

Questo è iniziato come un commento sotto la risposta di Andrej Bauer, ma è diventato troppo grande.

Credo una definizione evidente dell'ambiguità da un punto di vista Finite Modello teoria sarebbe: ambiguous(ϕ)M1,M2|M1ϕM2ϕM1ψM2ψ

In parole, esistono modelli distinti della tua grammatica codificati come una formula che può essere distinta da una formula ψ , forse una sotto-formula di ϕ .ϕψϕ

Puoi collegarlo alla risposta di Andrej sulle prove attraverso la complessità descrittiva. La combinazione dell'esistenza di una codifica di un particolare modello più la sua accettazione da parte di una TM appropriata come modello di una data formula È una prova che gli assiomi e le inferenze (e quindi una grammatica equivalente) codificata in quella formula sono coerenti.

Per renderlo pienamente compatibile con la risposta di Andrej, dovresti dire che il modello è "generato" dalla formula che funge da filtro sullo spazio di tutti i possibili modelli finiti (o qualcosa del genere), con la codifica e l'azione del filtro sul modello di input come "prova". Le prove distinte testimoniano quindi l'ambiguità.

Questo potrebbe non essere un sentimento popolare, ma tendo a pensare alla teoria dei modelli finiti e alla teoria delle prove come la stessa cosa vista da diverse angolazioni. ;-)


"Della tua grammatica codificata una formula ", ti chiedo scusa, non capisco. Intendi "come formula". Per quanto ne so, puoi sempre distinguere due diversi modelli finiti. φ
Arthur MILCHIOR

Sì, avrebbe dovuto essere "come una formula". L'ho risolto. Per quanto riguarda la distinzione dei modelli finiti, l'altra situazione è che esiste un solo modello finito accettato per la tua lingua (possibilmente fino a qualche nozione di isomorfismo). Questo è l'opposto dell'ambiguità.
Marc Hamann

Immagino che sarebbe davvero "ambiguità". Non ci ho pensato in questo modo. Soprattutto perché per quanto riguarda la lingua questo non sarebbe davvero interessante. Ma da un punto di vista logico se ha senso
Arthur MILCHIOR

Non sono sicuro che la parte linguistica debba essere noiosa. Ho più idee a riguardo, ma penso che ci porterebbe oltre lo scopo di questo forum. ;-)
Marc Hamann

0

Non sono sicuro della domanda applicata a CS, ma prova a cercare il termine vaghezza e logica. Nella filosofia della logica, l'ambiguità è generalmente distinta dalla vaghezza (vedi qui per esempio), e penso che ciò che cerchi sia vaghezza (poiché la vaghezza è definita come termini in cui ci sono casi limite). Il libro principale in quest'area è Vagueness di Timothy Williamson (ma vedi anche la bibliografia sul sito di Stanford sopra).


1
La ringrazio per la risposta. Ma come dici tu, non vedo davvero la relazione con l'informatica. Soprattutto, un universo è o non è un modello di una formula, non c'è davvero alcuna vaghezza qui. Invece, rispetto agli automi, l'ambiguità è qualcosa che è ben definito, e ci sono algoritmi noti per decidere se un automa è ambiguo, ambiguo o non ambiguo. (solo per una specie di automa)
Arthur MILCHIOR

Hai perfettamente ragione, probabilmente non avrei dovuto saltare su questa domanda e restare in agguato. Sono solo un noob presso CS (per terminare i miei studi universitari in logica / filosofia della scienza e matematica pura). Comunque grazie per l'informazione.
DanielC,

0

Sono (anche) d'accordo con Anrej.

Penso che la complessità descrittiva sia una caratterizzazione senza calcolo (che la rende interessante a modo suo) e quindi gli esempi di ambiguità computazionale dalla teoria dei linguaggi formali (automi / grammatiche / ...) che hai dato sembrano essere in un dominio abbastanza diverso . Nella complessità descrittiva i linguaggi corrispondono a classi di complessità e le query (in una lingua) corrispondono a problemi computazionali (non algoritmi). Non esiste un modo previsto per controllare / calcolare una query AFAIK, quindi se non si cerca ambiguità computazionale IMHO quegli esempi sono fuorvianti.


Kaveh, non sono sicuro di essere d'accordo sul fatto che la caratterizzazione senza calcoli della complessità descrittiva sia corretta al 100%. I dettagli computazionali sono molto importanti per comprendere come una particolare logica acquisisce una classe di complessità. Il vantaggio è che, dopo aver fatto le prove e aver capito come funziona, puoi mettere da parte il calcolo e concentrarti sui dettagli logici usando metodi logici standard.
Marc Hamann,

Stessa osservazione a Mark. La complessità descrittiva è anche nota come teoria del database, un vocabolario che costituisce una struttura di un database e modelli della teoria che rappresentano il contenuto del database. Quindi è felice che possiamo calcolare e capire se un database rispetta una formula.
Arthur MILCHIOR

AC0FO

1
@Kaveh, sto facendo un punto leggermente sottile, ma penso che sia importante, dal momento che sembra essere spesso frainteso (ad esempio da tentativi falliti P = NP?). C'è un, piuttosto algoritmo a forza bruta base che sottende la corrispondenza di un linguaggio logico e una classe complessità. Lavorare con la logica ti consente di non dover pensare ai dettagli di questo algoritmo ogni secondo, ma la bellezza e il genio delle prove di Fagin, Immerman, Vardi e altri sta proprio nel descrivere questi algoritmi. Le persone che le perdono completamente di solito finiscono nei guai.
Marc Hamann,

1
@Kaveh, penso che ci capiamo e condividiamo il nostro rispetto per il campo. La "forza bruta" non è stata intesa come una leggera caratteristica degli algoritmi sottostanti, ma sta solo chiarendo che stiamo parlando di qualcosa di leggermente più astratto di quello che qualcuno che, ad esempio, fa un lavoro di ottimizzazione algoritmica potrebbe pensare come un algoritmo.
Marc Hamann,
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.