Perché F. Wagner considera "NON (AI_LARGER_THAN_8.1)" ambiguo?

4

Nel suo articolo su Ambienti virtuali (una parte del suo metodo di specifica VFSM) Ferdinand Wagner descrive alcuni nuovi modi di pensare a Boolean Algebra come strumento di progettazione software. Su pagina 4 di questo articolo PDF , quando si descrivono gli operatori nel suo sistema, egli dice questo:

Control statements need Boolean values. Hence, the names must be used to produce Boolean results. To achieve this we want to combine them together using Boolean operators. There is nothing wrong with usage of AND and OR operators with their Boolean meaning. For instance, we may write:

DI_ON OR AI_LARGER_THAN_8.1 AND TIMER_OVER

to express the control situation: digital input is on or analog input is larger than 8.1 and timer is over.

We cannot use the NOT operator, because the result of the Boolean negation makes sense only for true Boolean values. The result of, for instance,

NOT (AI_LARGER_THAN_8.1)

would be ambiguous.

Se "AI_LARGER_THAN_8.1" è accettabile, perché dovrebbe considerare "NOT (AI_LARGER_THAN_8.1)" ambiguo?

    
posta oosterwal 18.02.2011 - 20:45
fonte

2 risposte

7

C'è un errore in questo documento. Wagner afferma che si tratta di algebra booleana, ma include anche "SCONOSCIUTO" come valore insieme a VERO e FALSO. Pertanto, questo non è in realtà algebra booleana ma un sistema trinario della sua stessa creazione.

In particolare, non definisce NOT rispetto a questo sistema trinario. Questo è un classico trucchetto nei sistemi trinari. A differenza di un sistema binario, NON TRUE non è necessariamente uguale a FALSE, né NON FALSO necessariamente uguale a TRUE.

    
risposta data 18.02.2011 - 21:35
fonte
0

Penso che la risposta sia nella pagina 203 del libro "Software di modellazione con macchine a stati finiti: un approccio pratico". Dice:

"se definiamo solo un valore di controllo per l'oggetto DI usando il valore LOW o HIGH, la voce mancante in VI è ambigua - può significare il valore di controllo non usato o sconosciuto e non possiamo usare l'assenza di un valore di controllo per la formulazione delle condizioni (una regola della nostra algebra della logica positiva) ".

Quindi l'operatore NOT potrebbe essere ben definito ma non è auspicabile nel modello VFSM.

Modifica

In un certo senso il set VI, menzionato in questo articolo, è una base di conoscenza costituita da letterali positivi. Una transizione a un nuovo stato viene eseguita se VI comporta una condizione data. L'assenza di un nome da VI non implica che la condizione corrispondente sia falsa (l'ipotesi del mondo aperto). Quindi, un letterale negativo non può mai essere una conseguenza logica di un insieme di letterali positivi o, più in generale, di una base di conoscenza di una clausola definita. Per concludere, la condizione NON (AI_LARGER_THAN_8.1) non porta mai alla transizione, quindi non viene utilizzata affatto.

    
risposta data 10.11.2016 - 09:26
fonte

Leggi altre domande sui tag