Il mio problema è già stato risolto, quindi devo solo leggere i riferimenti giusti?
La teoria della famiglia di lingue astratta è rilevante. Ad esempio, i morfismi definiti dai trasduttori a stati finiti portano alla famiglia dei coni . Il breve discorso di Eilenberg sull'ICM del 1970 spiega bene questo quadro, vedi anche il capitolo 11 "Proprietà di chiusura delle famiglie di lingue" da Introduzione alla teoria, lingue e computazione degli automi (1a edizione) di J. Hopcroft e J. Ullman del 1979. Tuttavia , solo le lingue non deterministiche rientrano in questo quadro 1 . Alla fine, il libro Teoria dei codici di J. Berstel e D. Perrin del 1985 mi ha aiutato a trovare soluzioni ragionevoli per il mio problema. Codici e automidi J. Berstel, D. Perrin e C. Reutenauer del 2009 è un'importante revisione di questo libro con una copertura molto più ampia.
Questa linea di ragionamento ha qualche possibilità di "risolvere" il mio problema? Il mio problema in sé ha un senso, o è fuorviante come ...?
L'ipotesi che esista una categoria corretta per modellare gli isomorfismi tra le lingue per "formalizzare il concetto di problema" è sbagliata. Esistono molte categorie diverse che possono essere interessanti nel contesto dei linguaggi formali.
Qui ci sono tre categorie interessanti relative a riduzioni multiple, che saranno chiamate totale , parziale e relazionale . Gli oggetti delle categorie sono coppie di un alfabeto finito Σ e una lingua L ⊂ Σ ∗ di parole sopra Σ . Per il totale , i morfismi tra l'oggetto sorgente ( Σ , L ) e l'oggetto target ( Σ ′ , L ′ ) sono funzioni totali f( Σ , L )ΣL⊂Σ∗Σ(Σ,L)(Σ′,L′) con L = f - 1 ( L ′ ) . Perparziale, i morfismi sono funzioni parziali f : Σ ∗ → Σ ′ ∗ con L = f - 1 ( L ′ ) , dove due funzioni parziali f , g sono considerate uguali (come morfismi) se f ( x ) = g ( x )f:Σ∗→Σ′∗L=f−1(L′)f:Σ∗→Σ′∗L=f−1(L′)fgf( x ) = g(x)per tutti . Per quanto riguarda le relazioni , i morfismi sono relazioni R ⊂ Σ ∗ × Σ ′ ∗ con L = R - 1 ( L ′ ) , e due morfismi qualsiasi tra la stessa fonte e destinazione sono considerati uguali. L'insieme delle funzioni o relazioni consentite può essere limitato a vari "traduttori" semplici per ottenere categorie con isomorfismi interessanti.x∈LR⊂Σ∗×Σ′∗L=R−1(L′)
- Gli omomorfismi monoidi da a Σ ′ ∗ danno una categoria totale di base . Gli isomorfismi di questa categoria sono fondamentalmente solo le biiezioni tra Σ e Σ ′ . Qualsiasi famiglia ragionevole di lingue dovrebbe rispettare meglio questi isomorfismi, vale a dire essere chiusi sotto omomorfismi inversi.Σ∗Σ′∗ΣΣ′
- Le funzioni parziali definite dai traduttori di Turing di spazio-log deterministici danno una categoria parziale abbastanza naturale . È in grado di eseguire molte trasformazioni sintattiche banali (come applicare le leggi di De Morgan per spostare le negazioni sugli atomi), include il morfismo definito dai trasduttori 1 a stati finiti funzionali e può anche ordinare. Tuttavia non identificherà due lingue completamente non correlate come isomorfe, poiché l'uguaglianza della composizione di due morfismi con un morfismo identitario è un requisito molto più forte della semplice esistenza di riduzioni multiple in entrambe le direzioni.
- Le relazioni definite dai traduttori di macchine di Turing spazio-log non deterministici danno un'interessante categoria relazionale . SAT è isomorfo a HORNSAT in questa categoria, ma è una questione aperta se TAUTOLOGIA o qualsiasi altro problema co-NP completo sia isomorfo a HORNSAT.
Due lingue e L ′ sopra gli alfabeti Σ = { a , b } e Σ ′ = { c , d } (dove a , b , c e d sono lettere distinte) non possono mai essere uguali, anche se descrivono "esattamente" il stesso problema." Ma dovrebbero essere isomorfi, se davvero descrivono "esattamente" lo stesso "problema".LL′Σ={a,b}Σ′={c,d}abcd
La categoria totale di base sopra descritta risolve questo problema.
Il problema diventa più interessante se "esattamente lo stesso" è sostituito da "quasi lo stesso per scopi più pratici": Sia una lingua sopra Σ = { U , C , A , G } e sia L ′ la lingua sopra Σ ′ = { 0 , 1 } ottenuto da L con la sostituzione U → 00 , C → 01 , A → 10 e G → 11LΣ={U,C,A,G}L′Σ′={0,1}LU→00C→01A→10G→11. Si noti che in qualsiasi categoria totale , e L ′ non sono isomorfi per L = Σ ∗ . Lo stesso sarebbe vero per le categorie parziali , se la parte "dove due funzioni parziali f , g sono considerate uguali (come morfismi) se f ( x ) = g ( x ) per tutte le x ∈ L " fosse omessa dalla definizione.LL′L=Σ∗fgf(x)=g(x)x∈L
La categoria parziale abbastanza naturale sopra descritta è sufficiente per rendere isomorfi e L ′ . Sarebbe bello avere una categoria più semplice (cioè più restrittiva) che li rende isomorfi. Le seguenti categorie (successivamente più restrittive) mi sembrano ragionevoli:LL′
- Le funzioni parziali realizzate da trasduttori di stato finito non ambigui 2 in cui l'unico stato accettante è lo stato iniziale. Gli isomorfismi di questa categoria parziale sono (un sottoinsieme delle) biiezioni tra codici di lunghezza variabile riconoscibili .
- Le funzioni parziali realizzate da trasduttori di stato finito deterministici in cui l'unico stato accettante è lo stato iniziale. Gli isomorfismi di questa categoria parziale sono (un sottoinsieme delle) biiezioni tra codici prefissi .
- Le funzioni parziali realizzate simultaneamente da un trasduttore deterministico sia in avanti che indietro in cui l'unico stato accettante è lo stato iniziale. Gli isomorfismi di questa categoria parziale sono (un sottoinsieme delle) biiezioni tra codici bifix .
- Potrebbero anche avere senso ulteriori restrizioni delle funzioni parziali in modo tale che gli isomorfismi siano (un sottoinsieme delle) biiezioni tra codici a blocchi .
Si possono usare le lingue nella teoria della complessità per formalizzare il concetto di "problema".
Prima ancora di conoscere la teoria delle categorie, mi chiedevo se esistessero modi "più fedeli" per formalizzare il concetto di "problema". Dopo aver acquisito familiarità con la teoria delle categorie, a volte ho cercato di trovare possibili soluzioni, ma ho sempre rinunciato rapidamente al primo ostacolo (perché nessuno si preoccupa comunque). So che Yuri Gurevich ha risolto alcune domande correlate, ma le sue soluzioni sono praticamente applicabili, mentre cercavo qualcosa di più bello e astratto, indipendente dall'applicabilità pratica.
La maggior parte del mio tempo libero nelle ultime tre settimane è andato finalmente a fare progressi su questo problema. Molto spesso il tempo è stato dedicato alla ricerca di fastidiosi problemi nelle possibili soluzioni che avevo in mente. La sensazione di fare progressi è nata dalla lettura di libri e articoli (vecchi) e dall'apprendimento di molti concetti e fatti di base sui trasduttori e sugli insiemi razionali. Alla fine ho appreso le nozioni di un prefisso e di un codice bifix (precedentemente codice biprefix nel libro di Berstel), che mi ha permesso di trovare le ragionevoli 3 categorie sopra descritte.
Potrebbe essere difficile apprezzare quelle categorie (legate al codice), senza aver visto alcuni problemi delle categorie più ovvie. Un problema generale è che la chiusura sotto composizione può rendere difficile definire una classe di funzioni parziali ben limitata. Un altro problema è legato al fatto che l'aggiunta di una (o la moltiplicazione per una costante) è una "funzione facile da calcolare" se le cifre del numero sono indicate in ordine di fascia bassa, ma non se le cifre sono indicate in grande ordine endiano.
O(n)O(1)
2
Un trasduttore di stato finito non ambiguo è un trasduttore di stato finito non deterministico con al massimo un percorso di accettazione per ciascun ingresso. Realizza una funzione parziale, quindi è anche un trasduttore allo stato finito funzionale. È determinabile se un determinato trasduttore allo stato finito non è ambiguo.
R⊂Σ∗×Σ′∗L=R−1(L′)−R−1(Σ′∗−L′)e ogni due morfismi tra la stessa fonte e lo stesso target sono considerati uguali.