Pergunta

Eu preciso de alguma ajuda com este Implicação booleana.

Alguém pode explicar como isso funciona em termos simples:

A implica B = B + A' (se A então B). Também equivalente a A >= B

Foi útil?

Solução

booleana implicação A implies B significa simplesmente "se A é verdadeiro, então B deve ser verdadeiro". Isto implica (trocadilhos) que se A não é verdadeiro, então B pode ser qualquer coisa. Assim:

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

Isto pode também ser lido como (not A) or B -. Ou seja, "ou A é falso, ou B deve ser verdadeiro"

Outras dicas

Aqui está como eu penso sobre isso:

if(A)
  return B;
else
  return True;

Se A é verdadeiro, então b é relevante e deve ser verificada, caso contrário, ignore B e retornar verdadeiro.

Eu acho que ver onde Serge está vindo, e eu vou tentar explicar a diferença. Isso é muito tempo para um comentário, então eu vou postá-lo como uma resposta.

Serge parece estar se aproximando isso de uma perspectiva de questionar se ou não a implicação aplica. Isso é um pouco como um cientista que tenta determinar a relação entre dois eventos. Considere a seguinte história:

visitas cientista A quatro países diferentes em quatro dias diferentes. Em cada país, ela quer determinar se a chuva implica que as pessoas vão usar guarda-chuvas. Ela gera a seguinte tabela verdade:

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

No exemplo acima, o cientista não conhece a relação entre chuva e guarda-chuvas e ela está tentando determinar o que é. Apenas em um dos dias em um dos países ela pode dizer definitivamente que implica não é a relação correta.

Da mesma forma, parece que Serge está tentando testar se A => B, e só é capaz de determiná-lo em um caso.

No entanto, quando estamos avaliando lógica booleana sabemos a relação antes do tempo, e quer testar se o relacionamento foi respeitado. Outra história:

A mãe diz ao filho: "Se você ficar sujo, tomar um banho" (sujo => banheira). Em quatro dias separados, quando a mãe chega em casa do trabalho, ela verifica se a regra foi seguida. Ela gera a seguinte tabela verdade:

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.

A mãe estabeleceu o frente regra de tempo. Ela sabe o que a relação entre a sujeira e os banhos são, e ela quer ter certeza de que a regra é seguida.

Quando trabalhamos com a lógica booleana, somos como a mãe: sabemos que os operadores antes do tempo, e nós queremos trabalhar com a declaração dessa forma. Talvez nós queremos transformar a declaração em uma forma diferente (como foi a pergunta original, ele ou ela queria saber se duas declarações são equivalentes). Na programação de computadores, muitas vezes quiser ligar um conjunto de variáveis ??para a declaração e ver se todo o avalia declaração à verdadeira ou falsa.

Não é uma questão de saber se implica aplica - não teria sido escrito lá se não deveria ser. tabelas de verdade não são sobre como determinar se a regra se aplica, eles são sobre como determinar se a regra foi respeitada.

Eu gosto de usar o exemplo: Se estiver chovendo, então está nublado

.
Raining => Cloudy

Ao contrário do que muitos iniciantes podem pensar, isso de forma alguma sugere que a chuva provoca nebulosidade, ou que a nebulosidade provoca chuva. ( EDIT: Isso significa somente que, no momento , ele não tanto chover e não nublado Veja minha recente postagem do blog sobre implicação material. aqui . Lá eu desenvolver, entre outras coisas, uma justificativa para a "definição" usual para o material implicação. O leitor vai exigir alguma familiaridade com métodos básicos de prova, por exemplo, prova direta e prova por contradição.)

~[Raining & ~Cloudy]

A julgar pelas tabelas de verdade, é possível inferir o valor de a => b apenas para a = 1 e b = 0. Neste caso, o valor de a => b é 0. Para o resto de valores (a, b), o valor de a => b é indefinido: ambos (a => b) = 0 ( "a não implica b ") e (a => b) = 1 (" a implica b ") são possíveis:

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 .

Para uma implicar b é necessário e suficiente que b = 1 sempre que a = 1, de modo que não há nenhuma contra-exemplo, quando a = 1 e b = 0. Para as linhas 1, 2 e 4 na tabela de verdade não se sabe se há contra-exemplo: essas linhas não contradizem a (a => b) = 1, mas eles também não provam (a => b) = 1 . Em contraste, a linha 3 imediatamente refuta (a => B) = 1 porque fornece um contra-exemplo quando a = 1 e b = 0. Eu acho que pode chocar alguns leitores com estas explicações, mas parece que há erros graves em algum lugar os princípios da lógica que são ensinados, e que é uma das razões para tais problemas como booleana satisfabilidade não sendo resolvido ainda.

A melhor contribuição sobre esta questão é dada por Serge Rogatch.

lógica booleana só se aplica quando o resultado de quantificação (ou avaliação) é verdadeira ou falsa e a relação entre proposições de lógica booleana é baseado neste fato.

Assim, deve existir uma relação ou conexão entre as proposições.

Na lógica de ordem superior, a relação não é apenas um caso de on / off, 1/0 ou + tensão / alta tensão, a avaliação de uma proposição formulada é mais complexa. Se não existe nenhuma relação entre as proposições formuladas, então implicação para as proposições formuladas não é equivalente a proposições lógica booleana.

Enquanto tabela verdade a implicação sempre produz resultados corretos para proposições binários, este não é o caso com proposições formuladas, que não podem ser relacionados de alguma forma em tudo.

~ A V B tabela verdade:

A B Resultado / Avaliação

1 1 1

1 0 0

0 1 1

0 0 1

Worded proposição A: A lua é feita de creme de leite
. Redigido proposição B: Amanhã eu vou ganhar na loteria.

A B Resultado / Avaliação

1? ?

Como você pode ver, neste caso, você não pode mesmo determinar o estado de B, que vai decidir o resultado. Isso faz sentido agora?

Nesta tabela verdade, proposição ~ A avalia sempre a 1, portanto, as duas últimas linhas não se aplicam. No entanto, as duas últimas linhas sempre se aplicam na lógica booleana.

http://thenewcalculus.weebly.com

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top