Chiusura con il quoziente giusto con una lingua fissa


13

Mi piacerebbe molto il tuo aiuto per quanto segue:

Per ogni fisso L2devo decidere se esiste una chiusura con i seguenti operatori:

  1. Ar(L)={xyL2:xyL}

  2. Al(L)={xyL:xyL2} .

Le opzioni pertinenti sono:

  1. Le lingue regolari sono chiuse in Al resp. Ar , per qualsiasi lingua L2

  2. Per alcune lingue L2 , le lingue normali sono chiuse in Al resp. Ar , e per alcune lingue L2 , le lingue normali non sono chiuse in Al resp. Ar .

Ho creduto che la risposta per (1) dovesse essere (2), perché quando ricevo una parola in wL e w=xy posso costruire un automa in grado di indovinare dove x gira verso , ma poi deve verificare che appartiene a e se non sarà regolare, come lo farebbe? La risposta è (1).y L 2yyL2

Cosa devo fare per analizzare correttamente quegli operatori e determinare se le lingue normali sono chiuse sotto di loro o no?


Che cos'è ? Vuoi dire ' non sono chiusi' nella seconda parte di (b)? Che cos'è L ? AL
Alex ten Brink,

Non hai ancora definito ? L
Gopi,

@Gopi è una lingua di input. Un ( ) è un operatore di lingue in entrambi i casi. LA()
Lucas Cook,

@Gopi: è un parametro di A , L 2 è fisso. LAL2
Raffaello

Oup mio male, come non ho visto questo oO.
Gopi,

Risposte:


11

Per rispondere a queste domande, dobbiamo consentire qualsiasi . Quindi pensiamo che L 2 sia un linguaggio molto complesso (diciamo, un linguaggio indecidibile).L2L2


Partiamo dalla domanda facile: (domanda parte 2). Prendi L 2 come indecidibile e L = { ε } . Che succede?Al(L)L2L={ε}

(morale: controlla sempre gli "estremi": svuota , L = { ε } e L = Σ ...)LL={ε}L=Σ


Ora per . Questa è un'ottima domanda (di solito domanda bonus in Final / Homeworks). Infatti, linguaggi regolari sono chiusi in una r per qualsiasi lingua L 2 . Anche indecidibile L 2 . Bene, vero?ArArL2L2

Quindi, come possiamo costruire un automa per se non ci sono macchine che accettano L 2 ?Ar(L)L2

Arriva la magia del "pensiero astratto", cioè della prova esistenziale . Se qualcuno ci fornisce possiamo usare queste informazioni per mostrare che esiste un automa per risolvere A ( L ) . Adesso i dettagli.L2A(L)

Partiamo dall'automa di (la chiamata è D F A L ). Supponiamo che dopo l'elaborazione x finiamo in uno stato q . Dobbiamo accettare se esiste y L 2 tale che se continuiamo da q lavorazione y finiremo in uno stato finale D F A L . Non esiste una macchina in grado di dirci se y è in L 2 , ma possiamo fare q uno stato finale di D F A A LLDFALxqyL2qyDFALyL2qDFAALse la condizione di cui sopra vale, ad esempio, se esiste qualche tale che se si comincia a q e processo y si finisce in uno stato finale D F A L .yL2qyDFAL

quindi per costruire esaminiamo ciascuno degli stati di D F A L e rendiamo ogni stato q uno stato accettante se possiamo prendere qualche y L 2 e questo y ci condurrà da q a uno stato accettante di D F A L .DFAALDFALqyL2yqDFAL

Quindi ok, è infinito e potremmo non avere un computer per elencare tutte le parole in L 2 , ma tutto questo non ha importanza ... l'automa sopra è ben definito, anche se non riesco a disegnarlo a te stato per stato. Magia.L2L2


Sembra che tu abbia pubblicato una risposta al problema stesso allo stesso tempo. :]
Lucas Cook,

beh .. la mia risposta contiene spoiler .. forse dovrei mettere un avviso spoiler, quindi si può iniziare con la tua risposta e se questo non è abbastanza - quindi ottenere i dettagli ..
Ran G.

Caspita, risposta meravigliosa, molto utile. Grazie mille Ran!
Jozef,

7

Non sono sicuro che tu stia cercando una risposta al problema o no, quindi non lo fornisco direttamente. (Posso se lo vuoi, però.)

Hai chiesto:

Cosa devo fare per analizzare correttamente quegli operatori e determinare se le lingue normali sono chiuse sotto di loro o no?

Il tuo approccio iniziale è positivo. Come per tutte le domande teoriche "aperte", dovresti avere un'idea intuitiva del fatto che sia vero o no. Di solito questo è provando esempi (sia comuni che marginali) o studiando casi speciali (ad esempio cosa succede se è regolare? Senza contesto?). Per questo problema, è necessario sviluppare alcune ipotesi sulla possibilità di creare un automa / regex per gli operatori o meno. Dopo di che:L2

  • Se si pensa che è possibile, è necessario essere in grado di costruire questo automa / regex per qualsiasi normale lingua di input .L
  • Se ritieni di non poterlo trovare, in genere troverai le lingue di esempio e L 2 in modo tale che A x non sia chiusa.LL2Ax

(e se un approccio non funziona, puoi sempre provare l'altro.)


Per il problema stesso:

Entrambi sono l'operatore quoziente giusto. (Credo che il quoziente di sinistra implichi lasciare il postfisso invece del prefisso.) La differenza tra i due è che mentre A r ( L ) = L / L 2 , dove L 2 è fissato in entrambi i casi.Al(L)=L2/LAr(L)=L/L2L2

Hai qualche intuizione su , quindi ecco qualcosa a cui pensare per A l : A l fornisce una versione modificata di L 2 . Poiché L 2 potrebbe essere non regolare, è possibile che A 1 lasci L 2 invariato? In tal caso, A l non è regolare in quel caso. Altrimenti, dovremo sostenere che A l rende L 2 regolare in tutti i casi.ArAlAlL2L2AlL2AlAl L2

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.