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ì.

Σi3A′AB′BCA′B′ABC utilizza il fatto che è possibile effettuare l'aggiunta scansionando da destra a sinistra mantenendo solo una singola cifra di carry as state.

A′∩B′∩CAB


È 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.