Concetti Fondamentali di Automi Finiti e Linguaggi Regolari

Classificato in Informatica

Scritto il in italiano con una dimensione di 3,52 KB

Definizioni Fondamentali

Automa Finito Non Deterministico (AFN)

Un insieme di stati e gruppi di transizioni da stato a stato, che accettano input su simboli tratti da un alfabeto.

Linguaggio

È un insieme di parole (stringhe) di lunghezza finita, formato da un alfabeto finito.

Espressione Regolare (Regular Expression)

È un modo per rappresentare i linguaggi regolari usando caratteri alfabetici che definiscono il linguaggio.

Operazioni su Stringhe e Linguaggi

Concatenazione

L'operazione di concatenazione è la combinazione di due stringhe o sequenze di caratteri.

Esempi di Concatenazione:

  • 'z' concatenato a '132' = "Z132"
  • '456' concatenato a 'AB' = "456AB"
  • 'Z' concatenato a 'A' = "ZA"

Alfabeto

È un insieme finito e ordinato di simboli (grafemi) utilizzati per rappresentare un linguaggio. Serve come sistema di comunicazione e, in matematica, è definito come un insieme finito e ordinato di simboli.

Stringa (Catena)

Una stringa (o parola) è una sequenza ordinata di lunghezza arbitraria (ma finita) di elementi appartenenti a un alfabeto definito.

Chiusura di Kleene (Kleene Star)

Se $A$ è un linguaggio su un alfabeto, la chiusura di Kleene è definita come segue:

$$A^* = \bigcup_{n=0}^{\infty} A^n$$

Ciò significa che il carattere può apparire in una stringa 0, 1, o infinite volte.

Chiusura Positiva

È definita come segue:

$$A^+ = \bigcup_{n=1}^{\infty} A^n$$

Ciò indica che il carattere deve apparire almeno una volta.

Esempio:

Ad esempio: "ho la +" genera: hi, Hoola, hooola...

Automi e Grammatiche

Macchina a Stati Finiti (Automa)

L'automa a stati finiti è un modello matematico di un sistema con ingressi e uscite discreti.

Definizione di Linguaggio e Grammatica

Il linguaggio generato dalla grammatica $G$ è:

$$L(G) = \{x \mid x \text{ è } (w, z)^n \text{ per } n \text{ da } 1 \text{ a infinito}\}$$

Regole di Produzione Iniziali:

| -> Sono:
X | - sequenza>
Stream | - Wyz>
Stream | - sequenza Wyz>

Componenti della Grammatica $G$:

  • $G = (V, N, V_0, \mid \rightarrow)$
  • $V = \text{Sole}$ (Simboli Terminali)
  • $S = \{w, z\}$ (Alfabeto)
  • $N = \{V_0, \text{sequenze}\}$ (Simboli Non Terminali)
  • $V_0 = V_0$ (Simbolo Iniziale)

Esempio di Grammatica per Numeri Decimali

(Nota: La sequenza LG = (950, .85,830.20,0, .79,1.5 ...) sembra essere un esempio di output o una lista di valori non correlata alla grammatica sottostante.)

Regole di Produzione:

V0 -> numero decimale
Numero decimale -> Unsigned
Numero decimale -> Frazione decimale
Numero decimale -> Decimale senza segno
Frazione decimale -> Unsigned
Unsigned -> Cifra
Unsigned -> Cifra Unsigned
Cifre -> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Componenti della Grammatica $G$:

  • $G = (V, N, V_0, \rightarrow)$
  • $V = \text{Simboli Terminali}$ (Vuoto nell'originale)
  • $S = \{0, 1, 2, 3, 4, 5, 6, 7, 8, 9\}$ (Alfabeto/Simboli Terminali)
  • $N = \{V_0, \text{numero decimale, decimale, senza segno, cifra}\}$ (Simboli Non Terminali)
  • $V_0 = V_0$ (Simbolo Iniziale)

Voci correlate: