Domanda

Ho bisogno di aiuto con questa implicazione booleana.

Qualcuno può spiegare come funziona in termini semplici:

A implica B = B + A ' (se A quindi B). Equivale anche a A > = B

È stato utile?

Soluzione

Implicazione booleana A implica B significa semplicemente " se A è vera, allora B deve essere vera " ;. Ciò implica (inteso il gioco di parole) che se A non è vero, allora B può essere qualsiasi cosa. Così:

False implies False -> True
False implies True  -> True
True  implies False -> False
True  implies True  -> True

Questo può anche essere letto come (non A) o B - vale a dire " o A è falso o B deve essere vero " ;.

Altri suggerimenti

Ecco come ci penso:

if(A)
  return B;
else
  return True;

se A è vero, allora b è rilevante e deve essere verificato, altrimenti ignora B e restituisce vero.

Penso di vedere da dove viene Serge e cercherò di spiegare la differenza. È troppo lungo per un commento, quindi lo posterò come risposta.

Serge sembra avvicinarsi a questo dal punto di vista della questione se si applichi o meno l'implicazione. È un po 'come uno scienziato che cerca di determinare la relazione tra due eventi. Considera la seguente storia:

  

Uno scienziato visita quattro paesi diversi in quattro giorni diversi. In ogni paese vuole determinare se la pioggia implica che le persone useranno gli ombrelli. Genera la seguente tabella di verità:

Did it rain?  Did people      Does rain => umbrellas?  Comment
              use umbrellas?  
No            No              ??                       It didn't rain, so I didn't get to observe
No            Yes             ??                       People were shielding themselves from the hot sun; I don't know what they would do in the rain
Yes           No              No                       Perhaps the local government banned umbrellas and nobody can use them. There is definitely no implication here.
Yes           Yes             ??                       Perhaps these people use umbrellas no matter what weather it is

In quanto sopra, la scienziata non conosce la relazione tra pioggia e ombrelli e sta cercando di determinare di cosa si tratta. Solo in uno dei giorni in uno dei paesi può affermare definitivamente che la relazione non implica la relazione corretta.

Allo stesso modo, sembra che Serge stia cercando di verificare se A = > B, ed è in grado di determinarlo solo in un caso.

Tuttavia, quando stiamo valutando la logica booleana, conosciamo la relazione in anticipo e vogliamo verificare se la relazione è stata rispettata. Un'altra storia:

  

Una madre dice a suo figlio, "se ti sporchi, fai un bagno " (Sporco = > bagno). In quattro giorni separati, quando la madre torna a casa dal lavoro, controlla se la regola è stata seguita. Genera la seguente tabella di verità:

Get dirty?   Take a bath?   Follow rule?   Comment
No           No             Yes            Son didn't get dirty, so didn't need to take a bath. Give him a cookie.
No           Yes            Yes            Son didn't need to take a bath, but wanted to anyway. Extra clean! Give him a cookie.
Yes          No             No             Son didn't follow the rule. No cookie and no TV tonight.
Yes          Yes            Yes            He took a bath to clean up after getting dirty. Give him a cookie.

La madre ha stabilito la regola in anticipo. Sa qual è il rapporto tra sporcizia e bagni e vuole assicurarsi che la regola sia seguita.

Quando lavoriamo con la logica booleana, siamo come la madre: conosciamo gli operatori in anticipo e vogliamo lavorare con l'affermazione in quella forma. Forse vogliamo trasformare l'affermazione in una forma diversa (come era la domanda originale, voleva sapere se due affermazioni sono equivalenti). Nella programmazione informatica spesso vogliamo inserire un insieme di variabili nell'istruzione e vedere se l'intera istruzione viene valutata vera o falsa.

Non si tratta di sapere se si applica il sottinteso - non sarebbe stato scritto lì se non fosse così. Le tabelle di verità non riguardano la determinazione dell'applicabilità di una regola, ma la determinazione dell'adesione a una regola.

Mi piace usare l'esempio: se piove, allora è nuvoloso.

Raining => Cloudy

Contrariamente a quanto molti principianti potrebbero pensare, ciò non suggerisce in alcun modo che la pioggia causi nuvolosità o che la nuvolosità causi pioggia. ( MODIFICA: Significa solo che, al momento , non è sia piovoso che non nuvoloso. Vedi il mio recente post sul blog sull'implicazione materiale qui . Qui sviluppo, tra le altre cose, una logica per la consueta "definizione" per implicazioni materiali. Il lettore richiederà una certa familiarità con i metodi di base della prova, ad esempio prova diretta e prova per contraddizione.)

~[Raining & ~Cloudy]

A giudicare dalle tabelle di verità, è possibile inferire il valore di a = > b solo per a = 1 eb = 0. In questo caso il valore di a = > b è 0. Per il resto dei valori (a, b), il valore di a = > b non è definito: entrambi (a = > b) = 0 (" a non implica b ") e (a = > b) = 1 (" a implica b ") sono possibili:

a b a=>b comment
0 0  ?   it is not possible to infer whether a implies b because a=0
0 1  ?   --"--
1 0  0   b is 0 when a is 1, so it is possible to conclude
         that a does not imply b
1 1  ?   whether a implies b is undefined because it is not known
         whether b can be 0 when a=1 .

Per a implicare b è necessario e sufficiente che b = 1 sempre quando a = 1, in modo che non vi sia controesempio quando a = 1 e b = 0. Per le righe 1, 2 e 4 nella tabella della verità non è noto se vi sia un controesempio: queste righe non sono in contraddizione con (a = > b) = 1, ma non dimostrano (a = > b) = 1 Al contrario, la riga 3 confuta immediatamente (a = > b) = 1 perché fornisce un controesempio quando a = 1 e b = 0. Immagino di poter scioccare alcuni lettori con queste spiegazioni, ma sembra che ci siano gravi errori da qualche parte nelle basi della logica che ci viene insegnato, e questo è uno dei motivi per cui problemi come la soddisfazione booleana non sono stati ancora risolti.

Il miglior contributo a questa domanda è dato da Serge Rogatch.

La logica booleana si applica solo quando il risultato della quantificazione (o della valutazione) è vero o falso e la relazione tra proposizioni della logica booleana si basa su questo fatto.

Quindi deve esistere una relazione o una connessione tra le proposizioni.

Nella logica di ordine superiore, la relazione non è solo un caso di accensione / spegnimento, 1/0 o + tensione / tensione, la valutazione di una proposizione formulata è più complessa. Se non esiste alcuna relazione tra le proposizioni formulate, l'implicazione per le proposizioni formulate non equivale alle proposizioni logiche booleane.

Mentre la tabella della verità delle implicazioni produce sempre risultati corretti per le proposizioni binarie, questo non è il caso delle proposizioni formulate che potrebbero non essere affatto correlate.

~ Tabella di verità A V B:

A B Risultato / Valutazione

1 1 1

1 0 0

0 1 1

0 0 1

Proposta formulata A: La luna è fatta di panna acida.
Proposta formulata B: domani vincerò il lotto.

A B Risultato / Valutazione

1? ?

Come puoi vedere, in questo caso, non puoi nemmeno determinare lo stato di B che deciderà il risultato. Ha senso adesso?

In questa tabella di verità, proposizione ~ A valuta sempre 1, quindi le ultime due righe non si applicano. Tuttavia, le ultime due righe si applicano sempre nella logica booleana.

http://thenewcalculus.weebly.com

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top