Data una lingua , definire l'insieme di lunghezze di L come l'insieme di lunghezze di parole in L : L S ( L ) = { | u | ∣ u ∈ L }
Quali insiemi di numeri interi possono essere l'insieme di lunghezze di una lingua normale?
Data una lingua , definire l'insieme di lunghezze di L come l'insieme di lunghezze di parole in L : L S ( L ) = { | u | ∣ u ∈ L }
Quali insiemi di numeri interi possono essere l'insieme di lunghezze di una lingua normale?
Risposte:
In primo luogo, un'osservazione non cruciale ma conveniente: l'insieme di insiemi di numeri interi che sono per una lingua regolare su un alfabeto non vuoto non dipende dalla scelta dell'alfabeto. Per vederlo, considera un automa finito che riconosce ; le lunghezze delle parole che sono in 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 e ottenere una lingua normale con la stessa lunghezza impostata sull'alfabeto . Al contrario, se è 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: . Tali lingue sono chiamate lingue unarie.
Let sia un linguaggio regolare, e prendere in considerazione un automa a stati finiti deterministico (DFA) che riconosce . L'insieme di lunghezze di parole di è 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 a seguendo l'ordine dell'elenco; se è circolare, numera gli stati da a seguendo la testa dell'elenco e da a lungo il ciclo.
Sia l'insieme degli indici degli stati di accettazione fino a , e l'insieme degli indici degli stati di accettazione da a . Poi
Viceversa, sia sia due numeri interi e e siano due insiemi finiti di numeri interi tali che e . Quindi l'insieme è un linguaggio regolare: è il linguaggio riconosciuto dal DFA sopra descritto. Un'espressione regolare che descrive questo linguaggio è .
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 che eleviamo a una funzione ) è periodico. Periodico sopra un certo valore significa che la funzione è limitata a può essere prolungato in una funzione periodica.
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 { ε } ).
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 2 , rispettivamente. È (quasi) facile vederlo
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.
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.
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 ∈ L
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
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; il 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.