Le lingue regolari sono chiuse in aggiunta?


10

In particolare ciò che intendo per aggiunta è, definiamo di essere l'alfabeto { 0 , 1 , 2 , . . . , i } . Attribuite linguaggi regolari A e B sotto qualche alfabeto Σ i , sguardo A × B .Σi{0,1,2,...,i}ABΣiA×B

Per ogni coppia ordinata , definire la "somma" di questo coppia ordinata come una + b , dove un e b sono numeri nella base i. Gli 0 iniziali vengono ignorati, quindi 0 è davanti a ogni stringa accettata. Ciò implica che ϵ è definito come 0.(a,b)A×Ba+bab0ϵ

La lingua è l'insieme di stringhe che rappresentano tutte queste possibili somme.A+B

Finora so:

  • Questo è vero in unario ( ).Σ1
  • Questo è vero per qualsiasi lingua normale finita e B , perché qualsiasi lingua finita è regolare e A + B è finita.ABA+B
  • La lingua = { s | s è un multiplo di n nella base b } sotto Σ b è regolare per qualsiasi b > = 1 . Ciò significa che è possibile aggiungere anche qualsiasi lingua del modulo C n , come C i + C j = C i + j , che è anche regolare. Tuttavia ci sono lingue come D = { s | s inizia e termina con 1} che non soddisfa questi criteri, quindi questo non descrive tutte le lingue normali.Cn{|}Σbb>=1CnCi+Cj=Ci+jD{|

2
Non è vero che se A è regolare nella base 2, è anche regolare nella base 3, considera, ad esempio, i poteri di 2.
domotorp

Capisco, hai ragione. Ho modificato la domanda di conseguenza. Stavo cercando di dimostrarlo, e sembrava vero, e poi ho capito male cosa fosse un omomorfismo e ho pensato che fosse vero. Ma non è, mi dispiace per quello. Se una lingua è regolare in base b ^ a per alcuni a> 1, è comunque regolare in qualsiasi altra base b ^ (ac) per ogni 1 <= c <a. (ad esempio, se una lingua è regolare nella base 8, è anche regolare nella base 4 e 2, semplicemente simulando la base-8 dfa).
Phylliida,

"Ciò implica che ϵ è definito come 0". Non capisco cosa significhi. Se 0 e ϵ sono uguali, è possibile rimuovere tutti gli 0 e l'interpretazione numerica non funziona più.
babou

Il punto è semplicemente che se una stringa vuota ϵ si trova in una coppia ordinata, aggiunge 0 all'altra stringa. Inoltre, per qualsiasi stringa fornita con 0 iniziali possono essere rimossi. Ciò significa che 000101 è uguale a 101, ad esempio. Questo è quello che volevo dire, se un ε si presenta in una stringa di per sé , di quello che è equivalente in valore rispetto ad una somma come 0 o 00, o 000 da soli . Se quelle stringhe si trovano all'interno di un'altra stringa, tutte le scommesse sono disattivate e questa sostituzione non è più valida.
Phylliida,

Risposte:


14

Sì.

Σi3AABBCABABC utilizza il fatto che è possibile effettuare l'aggiunta scansionando da destra a sinistra mantenendo solo una singola cifra di carry as state.

ABCAB


È davvero fantastico. Non mi ero reso conto che potresti usare quelle pile in quel modo. Grazie!
Phylliida,

È vero che questo è un po 'incerto perché in questo caso contiene solo somme di stringhe della stessa dimensione, tuttavia, poiché possiamo "simulare" somme di stringhe di dimensioni diverse aggiungendo zero a sinistra ed è semplice modificare un dfa in un altro dfa che riconosce 0 * di fronte a tutte le stringhe accettanti (una volta costruita la somma dfa per riconoscere C con omomorfismo).
Phylliida,

Suppongo che la chiave più grande sia che A e B debbano essere "tecnicamente modificati" allo stesso modo per essere 0 * A e 0 * B, e una volta che lo facciamo è sufficiente, per ogni coppia di aeb, trovare il somma di 0 * a + 0 * b st entrambi i valori hanno abbastanza 0 iniziali per corrispondere alle dimensioni, quindi il risultato può essere rimosso di 0 se necessario poiché C viene modificato allo stesso modo. Era implicito o c'è un modo più semplice di vedere quello che mi manca?
Phylliida,

Sì, ci sono alcuni aspetti tecnici relativi all'imbottitura, ma non cambiano davvero le idee di base, quindi le ho omesse.
David Eppstein,

Fantastico, ha senso.
Phylliida,

9

ABMAMBabMAMBMAMB

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.