Quali sono le possibili serie di lunghezze di parole in una lingua normale?


Risposte:


14

In primo luogo, un'osservazione non cruciale ma conveniente: l'insieme S di insiemi di numeri interi che sono LS(L) per una lingua regolare L su un alfabeto non vuoto UN non dipende dalla scelta dell'alfabeto. Per vederlo, considera un automa finito che riconosce L ; le lunghezze delle parole che sono in L sono le lunghezze dei percorsi sull'automa visti come un grafico senza etichetta dallo stato iniziale a qualsiasi stato di accettazione. In particolare, puoi rietichettare ogni freccia in un' e ottenere una lingua normale con la stessa lunghezza impostata sull'alfabeto {un'} . Al contrario, seL è una lingua normale su un alfabeto a un elemento, può essere banalmente iniettata in un alfabeto più grande e il risultato è ancora una lingua normale.

Pertanto stiamo cercando le possibili lunghezze per le parole su un alfabeto singleton. Su un alfabeto singleton, la lingua è la lunghezza impostata in unario: LS(L)={nN|un'nL} . Tali lingue sono chiamate lingue unarie.

Let L sia un linguaggio regolare, e prendere in considerazione un automa a stati finiti deterministico (DFA) che riconosce L . L'insieme di lunghezze di parole di L è l'insieme di lunghezze di percorsi nel DFA visto come un grafico diretto che inizia nello stato iniziale e termina in uno degli stati di accettazione. Un DFA su un alfabeto a un elemento è piuttosto mansueto (gli NFA sarebbero più selvaggi): è un elenco finito o un elenco circolare. Se l'elenco è finito, numerare gli stati da 0 a h seguendo l'ordine dell'elenco; se è circolare, numera gli stati da 0 a h seguendo la testa dell'elenco e da h a h+r lungo il ciclo.

automi a forma di elenco

Sia F l'insieme degli indici degli stati di accettazione fino a h , e sol l'insieme degli indici degli stati di accettazione da h a h+r . Poi

LS(L)=F{Kr+X|Xsol,KN}

Viceversa, sia h sia r due numeri interi e F e sol siano due insiemi finiti di numeri interi tali che XF,Xh e Xsol,hXh+r . Quindi l'insieme LF,G,r={akr+xxG,kN}è un linguaggio regolare: è il linguaggio riconosciuto dal DFA sopra descritto. Un'espressione regolare che descrive questo linguaggio èaFaG(ar) .

Per riassumere in inglese, le serie di lunghezze delle lingue regolari sono le serie di numeri interi che sono periodici¹ al di sopra di un determinato valore .

¹ Per aggrapparsi a una nozione consolidata , periodico significa la funzione caratteristica dell'insieme (che è una funzione N{false,true} che eleviamo a una funzione Z{false,true} ) è periodico. Periodico sopra un certo valore significa che la funzione è limitata a [h,+[ può essere prolungato in una funzione periodica.


La tua osservazione sull'irrilevanza dell'alfabeto suggerisce che il teorema di Parikh può essere applicato. In particolare, mostri che LS (L) = LS (L ') dove in L' tutte le lettere sono compresse in un singolo alfabeto. Ma LS (L ') è la mappatura Parikh della lingua L, che è nota per essere semilineare per qualsiasi lingua regolare.
Suresh,

Bel approccio! 1) Penso che il primo paragrafo possa essere sostituito notando che le lingue normali sono chiuse contro gli omomorfismi delle stringhe. 2) Per chiarezza, dovresti considerare di dare la seconda parte di come { h + k r + ( x - h ) } , modulo off-by-one-errori. 3) Cos'è un insieme "periodico" di numeri interi? LS(L){h+kr+(xh)}
Raffaello

1
@Suresh, Raphael (1): Preferisco dichiarare la prova in modo elementare, né omomorfismi né mappature Parikh sono stati menzionati nella mia classe CS 102.
Gilles 'SO- smetti di essere malvagio' il

@Raphael (2) Il punto in cui inizi a indicizzare non ha importanza, potrei rimuovere la condizione h G , poiché F può assorbire quanti piccoli elementi vogliamo. (3) Un insieme periodico sopra un determinato valore è un insieme che può essere inserito nel modulo visualizzato sopra. GhGF
Gilles 'SO- smetti di essere malvagio' il

5

Qualsiasi sottoinsieme finito può essere l'insieme di lunghezze di una lingua normale L , poiché puoi prendere un alfabeto unario { 0 } e definire L come { 0 1 , , 0 n } (questo include la lingua vuota e { ε } ).{1,,n}NL{0}L{01,,0n}{ε}

Ora per gli infiniti set. Darò una breve analisi, anche se la risposta finale potrebbe non essere abbastanza esplicita. Non elaborerò se non me lo chiedi, perché penso che sia intuitivo e perché non ho molto tempo ora.

Sia espressioni regolari che generano le lingue L 1 e L 2r1,r2L1L2 , rispettivamente. È (quasi) facile vederlo

  • .LS(L(r1+r2))=LS(L1L2)=LS(L1)LS(L2)
  • . Questo è indicato con L S ( L 1 ) + L S ( LLS(L(r1r2))=LS(L1L2)={1+2:1LS(L1),2LS(L2)} .LS(L1)+LS(L2)
  • LS(L(r1))={0}n1{i=1nio:(1,...,n)(LS(L1))n}.

Pertanto, i possibili insiemi di numeri interi che possono essere l'insieme di lunghezze di una lingua regolare sono quelli che sono sottoinsiemi finiti di o che possono essere costruiti prendendo sottoinsiemi finiti S 1 , S 2 di N e usando le formule precedenti numero di volte.NS1,S2N

Qui, stiamo usando che le lingue regolari sono costruite, per definizione, applicando le regole per costruire un'espressione regolare un numero finito di volte. Nota che possiamo iniziare con qualsiasi sottoinsieme finito di , anche se nelle espressioni regolari iniziamo con parole di lunghezza 0 e 1 solo come caso base. Ciò è facilmente giustificato dal fatto che tutte le parole (finite) sono concatenazioni (finite) dei simboli dell'alfabeto.N


Non vedo alcuna risposta finale. (Avevi intenzione di finire la tua risposta in seguito?) Speravo in una semplice descrizione dei possibili set e in una connessione con gli automi.
Gilles 'SO- smetti di essere malvagio' il

La risposta finale è lì: "Quindi, i possibili insiemi di numeri interi ...". Questa è davvero una descrizione semplice, sebbene connessa con espressioni regolari, non automi.
Janoma

C'è una descrizione più semplice che non implica la presa di un punto fisso. Forse questa domanda non è così elementare come pensavo!
Gilles 'SO-smetti di essere malvagio' il

Non penso che tu possa evitare l'ultima regola, dal momento che è l'operatore stella quello che può produrre infiniti insiemi di lunghezza, così come produce infiniti linguaggi.
Janoma

@Gilles Quindi vuoi una forma chiusa del più piccolo punto fisso della soluzione induttiva fornita da Janoma?
Raffaello

2

Secondo il lemma di pompaggio per le lingue regolari, esiste una tale che una stringa x di lunghezza almeno uguale a n può essere scritta nella seguente forma: x = u v w Dove sono valide le tre condizioni seguenti: | u v | < n | v | > 0 u v k w LnXn

X=uvw
|uv|<n
|v|>0
uvKwL

Questo ci dà un test per gli insiemi: un insieme non può essere l'insieme di lunghezze di un linguaggio regolare a meno che tutti i suoi elementi possano essere espressi come un insieme arbitrario di numeri interi non maggiori di un fisso nmv

{un'+Bn|nN}S
un',BNSN ).

EDIT: un po 'più di discussione. Certamente tutti gli insiemi finiti di numeri interi sono insiemi di lunghezze. Inoltre, l'unione di due serie di lunghezze deve essere anche una serie di lunghezze, come deve essere il complemento di qualsiasi serie di lunghezze (quindi intersezione, quindi differenza). La ragione di ciò è che le lingue normali sono chiuse in queste operazioni. Pertanto, la risposta che do sopra è (possibilmente) incompleta; in realtà, qualsiasi unione di tali insiemi è anche l'insieme di lunghezze di un linguaggio regolare (nota che ho abbandonato richiedendo intersezione, complemento, differenza, ecc., poiché questi sono coperti dal fatto che le lingue regolari sono chiuse sotto queste proprietà, come discusso in EDIT3; penso che solo l'unione sia effettivamente necessaria, anche se le altre hanno ragione, il che potrebbe non essere il caso).

EDIT2: ancora più discussioni. La risposta che do è sostanzialmente dove finiresti se prendessi la risposta di Janoma un po 'più avanti; ilBnun' viene dalla concatenazione e la discussione su unione, intersezione, differenza e complemento deriva dal + delle espressioni regolari (così come altre proprietà di chiusura dei linguaggi regolari) provabile a partire dagli automi) .

EDIT3: Alla luce del commento di Janoma, dimentichiamo le proprietà di chiusura degli insiemi di lunghezze linguistiche di cui parlerò nel primo EDIT. Poiché le lingue normali hanno queste proprietà di chiusura e poiché ogni lingua normale ha un DFA, ne consegue che il lemma di pompaggio per le lingue regolari si applica a tutti i sindacati, intersezioni, complementi e differenze delle lingue normali, e lo lasceremo a quello ; non c'è nemmeno bisogno di prendere in considerazione nessuno di questi, tranne l'unione, che penso ancora possa essere necessaria per rendere corretto il mio originale (modificato, grazie all'input di Gilles). Quindi, la mia risposta finale è questa: quello che dico nella versione originale, oltre alla chiusura dei set di lunghezze di lingua rispetto al set di unione.


1
{un'+Bn|un',B,nN}SN

1
L=L(un'*)Σ={un',B}LNL¯N+

@Gilles Ma l'insieme di tutti i numeri naturali è un insieme di lunghezze valido, giusto? Non sto generando tutti i sottoinsiemi di numeri naturali, giusto? Sono d'accordo che sarebbe problematico. Modifica: oh aspetta, capisco cosa stai dicendo. Sì hai ragione. Risolverà quando tornerà al computer.
Patrick87

@Janoma Ottimo punto, dovrò considerare come ciò potrebbe cambiare l'insieme di cose che sto definendo ...
Patrick87
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.