informatyka:podstawy-dzialania-komputera:zamiania_tabeli_prawdy_na_wyrazenie_boolowskie

2 Zamiana tabeli prawdy na wyrażenie boola

Strona w budowie!

Mamy opisaną funckję boola za pomocą tabeli prawdy.

Będziemy dążyć do stworzenia wyrażenia boola na podstawie tej tabelki. Po co nam taka umiejętność?

Jest to niezbędne przy projektowaniu komputera i wszystkich urządzeń elektrycznych. Wiemy, co chcemy zrobić, ale musimy to zbudować z podstawowych operacji takich jak and or i not.

x y z output
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 0

Skupiamy się tylko na wierszach tabeli, które zwracają 1.

Piszemy dla nich wyrażenie które poprostu pasuje.

Dla wiersza pierwszego może to być

( NOT ( X ) AND NOT ( Y ) AND NOT( Z ) )

Szukamy kolejnego wiersza który zwraca jeden. jest to wiersz 3

znowu piszemy wyrażenie tak, aby dla podanych argumentów x = 0 y = 1 z = 0 otrzymać w wyniku 1

( NOT( X ) AND Y AND NOT( Z ) )

następnym wierszem który zwraca nam 1 jest wiersz 5

aby dla argumentów x = 1, y = 0, z = 0 otrzymać 1, piszemy:

(X AND NOT ( Y ) AND NOT( Z ))

Chcemy zbudować jedno wyrażenie, które zwróci nam dokładnie wartość 1 we wszystkich wierszach które powinny zwrócić 1, a 0 w reszcie.

Jest to bardzo proste, poprostu wykonujemy operacje OR na wszystkich wyrażeniach, które napisaliśmy

( NOT ( X ) AND NOT ( Y ) AND NOT( Z ) ) OR ( NOT( X ) AND Y AND NOT( Z ) ) OR (X AND NOT ( Y ) AND NOT( Z ))

Mamy jedno wyrażenie, które reprezentuję te tabelkę. Zwraca jedynkę tylko w 3 przypadkach. W innych zwraca 0. Możesz sobie podstawić wartości z tabeli powyżej, aby sprawdzić czy to prawda.

Oczywiście mając te wyrażenie, możemy zmieniać jego format, próbować je upraszczać itp. Nie będziemy tego robić. Niektóre mogą być prostsze lub dłuższe. Ma to znaczenie w wydajności kiedy zaczynamy to implementować w “elektornice” . Jak skrócić wyrażenia, aby były jak najbardziej wydajne dla elektroniki? Nie jest to łatwe dla człowieka, ani nie istnieją żadne algorytmy, które mogą to zrobić dość wydajnie. jest to Problem NP-trudny (https://pl.wikipedia.org/wiki/Problem_NP-trudny)

Powyższe wyrażenie rozwiązane przez https://www.boolean-algebra.com/ z wytłumaczeniem kroków. Polecam stronę.

Wychodzi nam, że wyrażenie może być uproszczone do (NOT(z) AND NOT(Y)) OR (NOT(Z) AND NOT(X))

  • informatyka/podstawy-dzialania-komputera/zamiania_tabeli_prawdy_na_wyrazenie_boolowskie.txt
  • Last modified: 2024/04/07 00:34
  • by kawcix