Automa di Büchi

Da testwiki.
Vai alla navigazione Vai alla ricerca
Automa di Büchi non deterministico che riconosce parole infinite contenenti un numero finito di a.

In informatica teorica, un automa di Büchi è un ω-automa o automa finito che opera su parole di lunghezza infinita, con una particolare condizione di accettazione: una traccia ha successo se e solo se passa un numero infinito di volte per almeno uno stato accettante. Questo tipo di automa viene comunemente utilizzato per il model checking.

Questo tipo di automa è stato definito dal matematico Julius Richard Büchi[1].

Definizione

Un automa di Büchi su un alfabeto Σ è un ω-automa 𝒜=(Q,,I,T), dove

  • Q è un insieme finito di stati;
  • Q×Σ×Q è l'insieme delle transizioni;
  • IQ è l'insieme degli stati iniziali;
  • TQ è un insieme di stati finali o terminali o accettanti.

Spesso si assume che l'insieme degli stati iniziali sia composto da un singolo elemento. Una transizione f=(p,a,q) è composta da uno stato di partenza p, un'etichetta a e uno stato di arrivo q. Un calcolo c (detto anche un percorso o una traccia) è una serie infinita di transizioni consecutive:

c=(p0,a1,p1)(p1,a2,p2)

Per c, lo stato iniziale è p0, la sua etichetta è la parola infinita a1a2an. Il calcolo ha esito positivo e la parola viene accettata (o riconosciuta dall'automa) se passa infinitamente spesso attraverso uno stato terminale.

Un automa è detto deterministico se soddisfa le due condizioni seguenti:

  • possiede un solo stato iniziale;
  • per ogni stato q e per ogni lettera a, c'è al massimo una transizione che parte da q e recante l'etichetta a.

Esempi

Esempio 1

Automa di Büchi che riconosce le parole infinite che includono infinite sequenze di a.

L'automa di Büchi 𝒜=({q0,q1},,q0,q1) su un alfabeto {a,b} il cui insieme di transizioni è visualizzato nella figura a sinistra.

La parola infinita bbbb non è accettata perché l'unica traccia corrispondente è q0q0q0 e l'unico stato che appare un numero infinito di volte è q0, il quale non è accettante. D'altra parte, la parola aaaa è accettata perché vi corrisponde la traccia q0q1q1, e q1 vi appare un numero infinito di volte ed è uno stato accettante. Più in generale, l'automa accetta le parole infinite sull'alfabeto di due lettere a e b, che contengono solo un numero finito di lettere a, vale a dire l'espressione regolare b*a(a*b+a)ω.

Automa di Büchi che riconosce le parole infinite in cui ogni occorrenza b è preceduta da un numero pari diverso da zero di a .

Esempio 2

Un altro esempio è l'automa di Büchi deterministico nella figura a destra; l'automa ha tre stati: q0, q1 e q2. Questo automa riconosce le parole infinite in cui ogni occorrenza di b è preceduta da un numero pari non nullo di occorrenze di a. Il calcolo su una parola del linguaggio accettato si avvia nello stato iniziale q0 e legge un numero pari di a (diverso da zero perché la prima a determina la transizione in q1). Se viene letto un numero dispari di a, l'automa si trova nello stato q1, altrimenti nello stato q2 (che è accettante e quindi deve riproporsi un numero infinito di volte nella traccia). La transizione in b porta dallo q2 allo stato q0 e la sequenza ricomincia.

Gli automi di Büchi deterministici sono strettamente meno espressivi degli automi di Büchi non deterministici[2][3]. In altri termini, vi sono dei linguaggi riconosciuti da automi di Büchi non deterministici che non possono essere riconosciuti dagli automi di Büchi deterministici.

Linguaggi riconosciuti

Gli insiemi di parole infinite riconosciute dagli automi di Büchi corrispondono ai linguaggi ω-regolari, cioè gli insiemi della forma

1mUiViω

dove gli Ui e Vi sono linguaggi regolari e i Vi non contengono la parola vuota. Questi linguaggi sono anche chiamati la ω-chiusura di Kleene dei linguaggi regolari[4].

Per ottenere la formula generica per le espressioni regolari riconosciute da un automa di Büchi, si procede come segue. Dato un automa di Büchi, sia W(p,q) l'insieme delle parole finite riconosciute avente p come stato iniziale e q come stato finale, ossia tutte le parole rappresentate dalle etichette su una traccia da p a q. Questi linguaggi finiti sono regolari. Una parola infinita x è accettata se esiste un calcolo che passa un numero infinito di volte da uno stato terminale. Sia q questo stato terminale attraverso il quale la traccia passa un numero infinito di volte. Questo equivale a dire

xW(q0,q)W(q,q)ω

per uno stato iniziale q0. Prendendo gli insiemi su tutti gli stati iniziali e terminali, si ottiene la formula data[4]. Per dimostrare che, reciprocamente, tutti i linguaggi ω-regolari sono riconosciuti dagli automi di Büchi, si usano le operazioni di chiusura[5].

La descrizione dei linguaggi ω-regolari riconosciuti mostra che il problema della parola è decidibile per gli automi di Büchi, poiché è sufficiente verificare se almeno uno dei linguaggi regolari dati da W(q0,q)W(q,q) non è vuoto.

Proprietà di chiusura

I linguaggi riconosciuti dagli automi di Büchi sono chiusi per una serie di operazioni.

  • Unione: Siano 𝒜=(QA,A,IA,TA) e =(QB,B,IB,TB) due automi che rispettivamente riconoscono i linguaggi LA e LB. Un automa che riconosce l'unione LALB si ottiene unendo i due automi. Assumendo che gli insiemi di stati QA e QB siano disgiunti: l'automa 𝒞=(QAQB,AB,IAIB,TATB) riconosce l'unione LALB.
  • ω-chiusura: Per ogni linguaggio regolare L che non contiene la stringa vuota, l'ω-linguaggio Lω viene riconosciuto da un automa di Büchi. Sia 𝒜=(Q,,i,T) un automa a stati finiti che riconosce L. Se ha un solo stato iniziale i e nessuna transizione (ossia, l'automa più semplice che è possibile costruire). Si possono aggiungere ad 𝒜 le transizioni (q,a,i) per ogni transizione (q,a,t) di con tT. L'automa di Büchi così costruito, con un solo stato iniziale che è anche terminale, riconosce Lω.
  • Concatenazione: Per ogni linguaggio regolare L ed ogni ω-linguaggio M riconosciuto da un automa di Büchi, il prodotto dei due linguaggi LM è un ω-linguaggio riconosciuto da un automa di Büchi.

Le tre proprietà precedenti dimostrano che ogni ω-linguaggio regolare è riconoscibile da un automa di Büchi.

  • Intersezione: Siano 𝒜=(QA,A,IA,TA) e =(QB,B,IB,TB) due automi che rispettivamente riconoscono i linguaggi LA e LB. Un automa che riconosce l'intersezione LALB è costruito come segue:
𝒞={QA×QB×{0,1,2},QA×Qb×{0},,T}

dove le transizioni di copiano quelle in 𝒜 e per i primi due componenti e cambiano il terzo componente da 0 a 1 quando uno stato di TA compare nel primo componente, da 1 a 2 quando uno stato di TB appare nel secondo componente e torna a 0 immediatamente dopo. In un calcolo, un 2 appare infinitamente spesso come terza componente se e solo se uno stato di TA e uno stato di TB appaiono infinitamente spesso nella prima e nella seconda componente. Quindi, scegliendo come stati terminali quelli in 𝒯=QA×Qb×{2} otteniamo un automa di Büchi con il comportamento desiderato.

I linguaggi riconosciuti dagli automi di Büchi sono chiusi rispetto alla complementazione. Richard Büchi ne ha dato una dimostrazione nel 1962[1]. In seguito, sono state date altre costruzioni dell'automa riconoscente il linguaggio complementare di un ω-linguaggio[6][7][8][9].

Collegamento con altri automi

Gli automi di Büchi sono equivalenti agli automi di Muller, agli automi di Rabin, agli automi di Streett o automi di parità. Tuttavia, differiscono nella loro concisione. Ad esempio, gli automi di Büchi sono esponenzialmente più concisi degli automi di Rabin nel senso seguente: esiste una famiglia di linguaggi (Ln)n=2 sull'alfabeto {0, 1, #}, riconoscibile da automi di Büchi non deterministici di dimensione O(n), ma ogni automa di Rabin non deterministico che riconosca lo stesso linguaggio deve essere di dimensione almeno n![10].

Gli automi di Büchi non deterministici rappresentano esattamente le proprietà della logica monadica del secondo ordine con un successore (S1S), chiamate anche "proprietà ω-regolari". La logica S1S è strettamente più espressiva della logica temporale lineare.

Automi co-Büchi

Esiste una condizione duale per l'accettazione degli automi di Büchi: questi sono gli automi co-Büchi. La condizione di accettazione diventa: una traccia (o calcolo o percorso infinito) ha successo se e solo se uno stato che appare un numero finto di volte è uno stato accettante[11].

Algoritmica

Logica temporale lineare e model checking

Gli automi di Buchi vengono utilizzati nel model checking in cui sorgono quesiti sulle proprietà degli algoritmi. Ad esempio, sapere se il linguaggio accettato da un automa di Büchi non deterministico è vuoto è una proprietà che viene decisa in tempo lineare[12]. Una formula di logica temporale lineare (LTL) può essere riconosciuta da un automa di Büchi, ma la sua dimensione sarà esponenziale nella dimensione della formula LTL[13]. Questa trasformazione può essere usata per:

  • Decidere il problema di soddisfacibilità di LTL. Questo problema è PSPACE-completo.
  • Fare verifiche con il model checking. Per questo si costruisce l'automa di Büchi equivalente alla formula LTL e si fa il prodotto con il sistema da verificare. Il prodotto è un automa di Büchi e la verifica consiste nel testare se il linguaggio accettato è vuoto.
Trasformazione di un automa di Büchi generalizzato in un automa di Büchi classico.

La trasformazione di una formula LTL in un automa di Büchi viene solitamente presentata con un passo intermedio, chiamato automa di Büchi generalizzato, per il quale la condizione di accettazione è più generale. Un automa di Büchi generalizzato è come un automa di Büchi, tranne per il fatto che l'insieme degli stati terminali TQ è sostituito da un insieme finito {T1,,Tk} con TiQ. La condizione di accettazione diventa la seguente: una traccia ha successo se e solo se per ogni i essa passa un numero infinito di volte per almeno uno stato accettante di Ti.

L'esempio verifica sulle parole dell'alfabeto { , cr1, cr2} la proprietà φ che occorre "infinitamente spesso nella sezione critica 1, e infinitamente spesso nella sezione critica 2". La lettera corrisponde ad una sezione non critica, cr1 corrisponde alla sezione critica 1 e cr2 alla sezione critica 2. TQ è uguale a {{q 1 }, {q 2 }}: un'esecuzione accettante deve passare infinitamente spesso per q1 e infinitamente spesso per q2. Questo corrisponde a quanto descritto dalla proprietà φ.

Come primo passo, la formula LTL viene trasformata in un automa di Büchi generalizzato (l'idea è che gli stati dell'automa siano i sottoinsiemi massimi di sotto-formule della formula LTL). Ad esempio, per la proprietà φ scritta in LTL con GFcr1GFcr2 (sempre in futuro cr1 e sempre in futuro cr2), l'automa generalizzato è dato dall'automa in alto nella figura. Questo automa si trasforma in un normale automa di Büchi facendo una copia dell'automa generalizzato per ogni sottoinsieme Ti. Nell'esempio a lato, viene copiato due volte: la prima copia corrisponde a {q 1 } e la seconda a {q 2 }. Una volta che si incontra q 1, si passa alla seconda copia. Una volta che q 2 è soddisfatto, si torna alla prima copia. L'automa ottenuto è un classico automa di Büchi e la condizione di accettazione è di passare un'infinità di volte per q 1 o per q 2'. Per costruzione, questa condizione equivale a passare un'infinità di volte in q 1 e un'infinità di volte in q 2 nell'automa generalizzato.

Esistono algoritmi efficaci per costruire un automa di Büchi equivalente da una formula LTL[14].

S1S e WS1S

Richard Büchi[1] ha mostrato che c'è equivalenza, per ogni linguaggio infinito L, tra:

  • L è definibile da una proprietà S1S (logica monadica del secondo ordine con un successore);
  • L è definibile da una proprietà WS1S (logica monadica di secondo ordine con un successore, detta "debole" (weak), ovvero che la quantificazione del secondo ordine porta su insiemi finiti);
  • L è riconoscibile da un automa di Büchi.

Le equivalenze sono effettive: una formula S1S si trasforma in un automa di Büchi. Pertanto, la logica S1S (e WS1S) è decidibile. La logica S1S è di complessità non elementare[15].

Note

Bibliografia

Altri progetti

Template:Interprogetto

Template:Portale