Logikai műveletek
A Boole-algebra a matematikának egy speciális részterülete. Elnevezését George Boole után kapta, aki a 19. század közepén megjelent művében először foglalkozott ezzel a tudományterülettel. Az algebrához hasonlóan értékek között végzett műveletek leírásával foglalkozik, de a számok helyett igazságértékeket, a matematikai műveletek helyett pedig logikai műveleteket használ.
Első ránézésre ugyan elvontnak tűnik, mégis sokszor használjuk a hétköznapokban is anélkül, hogy észrevennénk. Ráadásul a számítógépek működésének az alapját adja, mivel könnyen átültethető a kettes számrendszerre.
Igazságértékek
A Boole-algebra egyik különlegessége, hogy számok helyett igazságértékekkel dolgozik. Ez jelentősen leegyszerűsíti a dolgunkat, mivel számokból végtelen sok van, igazságértékekből viszont csak kettő. Egy logikai kifejezés (eldöntendő kérdés) igazságértéke csak igaz vagy hamis lehet.
De mi az a logikai kifejezés? Minden olyan állítás, amelyről egyértelműen eldönthető, hogy igaz vagy hamis. Öt nagyobb, mint három. (I) Az ember emlős. (I) A Föld lapos. (H) Ezeket a kifejezéseket az egyszerűség kedvéért betűkkel szoktuk jelölni. Hasonlóan ahhoz, ahogy a matematikában is használjuk a változókat.
Hogy kapcsolódik ez a számítógépekhez? Az igazságértékeket könnyű számokká alakítani. Megegyezés szerint a 0 jelenti a hamis értéket, az összes többi szám pedig az igaz értéket. Ez viszont így elég bonyolult lenne, ezért az egyszerűség kedvéért az 1-et szoktuk használni az igaz párjaként. Ha viszont csak 0 és 1 áll rendelkezésre, akkor máris kettes számrendszerben vagyunk.
Műveletek
A Boole-algebra tehát logikai kifejezések igazságértékeivel végez műveleteket. Ezekből a műveletekből összesen 20 van, de mi csak azt a négyet tekintjük át, amit a hétköznapokban is használunk a számítógéppel végzett munka során. A definíciók mellett mindegyik műveletnél részletezzük a matematikai alapműveletekkel és halmazműveletekkel való kapcsolatot.
Nem (¬)
A | ¬A | ¬¬A |
---|---|---|
I | H | I |
H | I | H |
A nem művelet a logikai kifejezés igazságértékét az ellentettjére cseréli. Ha A = I, akkor ¬A = H, és fordítva. A dupla tagadás viszont visszaállítja a kifejezés eredeti igazságértékét, vagyis ¬¬A = ¬(¬A) = A
A halmazműveletek közül megfelelője a komplementer. A̅ azoknak az elemeknek a halmaza, amik az A halmaznak nem elemei.
És (∧)
A | B | A ∧ B |
---|---|---|
I | I | I |
I | H | H |
H | I | H |
H | H | H |
Az és művelet eredménye csak akkor lesz igaz, ha mindkét logikai kifejezés igazságértéke igaz. Ha bármelyik kifejezés hamis, akkor az eredmény is hamis lesz.
A halmazműveletek közül megfelelője a metszet. A ∩ B azoknak az elemeknek a halmaza, amik az A és a B halmaznak is az elemei.
Az algebrai műveletek közül megfelelője a szorzás. Betűk helyett számokkal kifejezve látszik, hogy 1 * 1 = 1, 1 * 0 = 0, 0 * 1 = 0 és 0 * 0 = 0.
Vagy (∨)
A | B | A ∨ B |
---|---|---|
I | I | I |
I | H | I |
H | I | I |
H | H | H |
A vagy művelet eredménye akkor lesz igaz, ha legalább az egyik logikai kifejezés igazságértéke igaz. Az eredmény csak akkor lesz hamis, ha mindkét kifejezés hamis.
A halmazműveletek közül megfelelője az unió. A ∪ B azoknak az elemeknek a halmaza, amik vagy az A vagy a B vagy mindkét halmaz elemei.
Az algebrai műveletek közül megfelelője az összeadás. Betűk helyett számokkal kifejezve látszik, hogy 1 + 1 = 10*, 1 + 0 = 1, 0 + 1 = 1 és 0 + 0 = 0.
Kizáró vagy (⊕)
A | B | A ⊕ B |
---|---|---|
I | I | H |
I | H | I |
H | I | I |
H | H | H |
A kizáró vagy művelet eredménye akkor lesz igaz, ha pontosan az egyik logikai kifejezés igazságértéke igaz. Az eredmény akkor is hamis, ha mindkét kifejezés igaz. Erre azért van szükség, mert a beszélt nyelvben a "vagy" szó sokszor nem engedi meg az egyenlőséget. Pl.: alma vagy körte, kisebb vagy nagyobb, egyik vagy másik.
A halmazműveletek közül megfelelője a szimmetrikus különbség, vagyis a halmazok különbségeinek uniója. (A / B) ∪ (B / A) azoknak az elemeknek a halmaza, amik vagy csak az A vagy csak a B halmaznak az elemei.
Az algebrai műveletek közül megfelelője szintén az összeadás. Azzal a különbséggel, hogy az összegnek csak az utolsó számjegyét nézzük, ami 1 + 1 esetén 0, tehát hamis.
Műveleti sorrend
Egy-egy logikai műveltet már el tudunk végezni, de mi a helyzet akkor, ha több áll egymás után? Ebben az esetben ugyanazokat a szabályokat kell alkalmazni, mint a matematikában.
- Az és, vagy és kizáró vagy műveletek egyenrangúak. Ezeket balról jobbra haladva kell végrehajtani.
- A nem művelet erősebb, mint a másik három, ezért előbb kell elvégezni.
- A zárójelek természetesen felülírják a műveletek sorrendjét és rangját is. Ebben az esetben belülről kifelé kell haladni.
1. példa
Legyen három logikai kifejezésünk a következő igazságértékekkel: A = I, B = I, C = H. Nézzük az alábbi műveletsort: A ∨ ¬B ∧ C
- Helyettesítsük be az igazságértékeket a változók helyére!
- Mivel a nem művelet a magasabb rangú, ezért először azt végezzük el.
- A másik két művelet egyenrangú, ezért balról jobbra haladva a vagy művelet következik.
- Végül az és művelet, hogy megkapjuk a műveletsor végeredményét.
2. példa
A következő példánk legyen egy bonyolultabb műveletsor, de ugyanazokkal a változókkal: ¬(A ∨ (B ∧ C))
- Helyettesítsük be az igazságértékeket a változók helyére!
- A zárójelek miatt belülről kifelé haladunk, ezért először az és műveletet hajtjuk végre.
- Bár a nem műveletet magasabb rangú, a zárójel miatt mégis a vagy műveletet végezzük el.
- Végül elvégezzük a nem műveletet, hogy megkapjuk a műveletsor végeredményét.