Il non determinismo viene considerato nella specifica dei sistemi essenzialmente per:
Astrazione:
può essere utilizzato come un mezzo per astrarre dettagli del sistema da specificare ritenuti non rilevanti al livello di dettaglio considerato.
Ad esempio:
Succintezza:
il non-determinismo se permesso nelle macchine a stati finiti consente di ottenere specifiche più compatte.
Il non-determinismo non influenza la capacità espressiva delle FSM.
Esempio di astrazione:
Inserimento/estrazione di richieste in due code gestite con liste a scorrimento.
L’astrazione è opportuna se non è di interesse lo studio delle prestazioni della struttura di memorizzazione e ci si concentra solo sulla funzionalità dell’immissione e dell’estrazione.
Esempio di astrazione:
Analisi del flusso di controllo.
L’astrazione è opportuna se non è di interesse valutare il flusso del controllo in dipendenza dal contenuto della variabile x.
(Ad esempio, se interessa vedere quali sono gli stati di controllo raggiungibili nell’ipotesi che sia valori maggiori sia minori di 5 possano essere associati a x).
Gli automi non-deterministici sono più succinti degli automi deterministici.
Per poter affermare che la classe degli automi non-deterministici è più succinta
di quella degli automi deterministici, occorre verificare che:
(Esempio: nelle diapositive successive)
Osservazione: il concetto di succintezza introdotto ha carattere quantitativo (la differenza di succintezza implica una differenza di taglia esponenziale nel caso peggiore).
Linguaggio L con parole sull’alfabeto aventi la forma
parole tali che qualche simbolo che occorre in
occorre anche in .
Automa deterministico:
Definizione automa deterministico
Intuitivamente (sarebbe necessaria una prova formale), non è possibile costruire un automa deterministico con un numero di stati di cardinalità inferiore all’insieme delle parti .
La taglia esponenziale dipende dal problema e non dalla particolare soluzione adottata.
Idea: il non-determinismo è usato per ‘ipotizzare’ il simbolo che verrà ripetuto nella prima e seconda parte della stringa prima dell’inizio della computazione:
Se un simbolo viene replicato esiste una ipotesi iniziale corretta che soddisfa i controlli (ne basta una).
La costruzione ha dimensione polinomiale sull’alfabeto ed è dunque più succinta della costruzione deterministica.
Definizione automa non-deterministico
Il numero degli stati è lineare nella dimensione dell’alfabeto.
Gli automi regolari sono determinizzabili: per ogni automa non-deterministico è possibile trovare un automa deterministico che accetta lo stesso linguaggio.
(Si noti il criterio di equivalenza, la bisimulazione sarebbe un criterio troppo forte perché distingue rispetto alle scelte deterministiche).
Sia l’automa regolare A (non-deterministico)
un automa deterministico equivalente è
Idea: L’automa determinizzato simula l’esecuzione simultanea di tutti comportamenti legati a scelte non-deterministiche alternative.
Stato: Insieme di stati raggiungibili mediante transizioni che rappresentano una scelta non deterministica;
Transizione: Simultanea esecuzione di transizioni che rappresentano una scelta non deterministica;
Stato finale: L’insieme degli stati raggiunti simultaneamente deve contenere almeno uno stato finale dell’automa non-deterministico
(nel caso non deterministico per l’accettazione basta che esista un comportamento di accettazione).
Taglia dell’automa determinizzato:
Può coinvolgere un numero esponenziale di stati e transizioni nella taglia dell’automa non-deterministico.
1. Introduzione ai metodi formali di specifica
2. Semantica dei formalismi di specifica
3. Astrazione e Bisimulazione debole
4. FSM: Macchine a Stati Finiti
5. FSM: Non-determinismo e succintezza
7. FSM e Parallelismo – seconda parte
8. FSM e Parallelismo – terza parte
9. Promela
10. Specifica e verifica in SPIN
11. Proprietà di liveness in SPIN
12. Specifica di proprietà in Logica Temporale Lineare
13. Comportamenti infiniti: Automi di Büchi
14. Model checking di LTL basato su automi
15. Specifica di sistemi real time: Automi Temporizzati
16. Proprietà degli Automi Temporizzati
17. Problemi di decisione negli Automi Temporizzati
18. Il sistema di verifica UPPAAL