Logikai függvények osztályai A függvényosztály a függvények egy halmaza. A logikai fügvények egy osztálya logikai függvények valamely halmaza. Megadható felsorolással, vagy a tulajdonságainak leírásával. F={f1, f2, f3,.. fm} Pl. F={x1+x2, x1x2} Függvényosztály lezártja [F] Az F függvényosztály lezártja [F], az eredeti F, plusz a belőle tetszőleges véges számú egymásba helyettesítéssel létrehozható függvények halmaza.
1
Példa egymásba helyettesítésre az előbbi F={x1+x2, x1x2} esetére: Először x1+x2 függvénybe x1 helyére x1x2őt, x2 helyébe x3x4-et helyettesítve kapjuk: (x1x2)+(x3x4) ez az [F] egyik eleme. Ebbe x4 helyébe x2+x5-öt helyettesítve kapjuk: (x1x2)+x3(x2+x5) Ez is [F] egy eleme stb.
2
Zárt függvényosztály Egy függvényosztály zárt, ha [F]=F vagyis a lezártja önmaga, tehát tetszőleges egymásba helyettesítéssel nem kapunk az F-ben nem szereplő függvényt, vagyis a lezárás nem vezet ki az eredeti halmazból. Tétel: Zárt függvényosztály lezártja önmaga. [[F]]=[F] Triviálisan belátható. Tétel: Zárt függvényosztályok metszete is zárt. Zárt függvényosztályok F, G, metsztük FG. FG-beli f-be FG-beli g-t helyettesítve FG beli függvényt kapunk. Bázis F bázisa [F]-nek, ha teszőleges f ∈ F-re [F-f] !=[F] Vagyis F-ből bármely elemét elhagyva, a maradék lezártja nem [F].
3
Funkcionálisan teljes függvényrendszer F funkcionálisan teljes függvényrendszere A-nak, ha [F]=A. Ezt úgy is mondják, hogy F kifeszíti A-t. Pl: F={0, /x,} funkcionálisan teljes függvényrendszere G={0, 1, /x}-nek. Itt F egyben bázisa is G-nek. Pl: Legyen A a Boole függvények (összes logikai függvények) halmaza. F={x1x2, x1+x2, /x} F funkcionálisan teljes fügvényrendszere Anak, hiszen ÉS, VAGY és INVERTÁLÁS segítségével minden logikai függvény előállítható. F nem bázisa A-nak, mivel F-ből akár a VAGY, akár az ÉS függvény elhagyható, mégis előállítható az összes logikai függvény. {x1+x2, /x} bázisa A-nak és {x1x2, /x} is az.
4
Funkcionálisan majdnem teljes függvényrendszer F funkcionálisan majdnem teljes függvényrendszere az A zárt fügvényosztálynak, ha [F]!=A de tetszőleges f !∈ F-re igaz, hogy [F+f]=A. Vagyis F nem feszíti ki A-t, de F+f igen. A Boole függvények osztályára nézve majdnem teljes függvényosztályok (MTFO) A Boole fügvények osztályát tekintve 5 majdnem teljes függvényosztály létezik: • 0-át megtartó függvények, • 1-et megtartó függvények, • monoton függvények, • önduális függvények, • lineáris függvények Mind az 5 MTFO zárt. Egy logikai függvény egyszerre több MTFO-ba is tartozhat. 5
0-át megtartó függvények osztálya: T0 A 0-át megtartó függvények azok a függvények, melyekre f(0,0,0..0)=0. Vagyis amelyekbe minden változó helyébe 0-át behelyettesítve 0-át adnak. A T0 zárt. Két 0-t megtartó függvényt egymásba helyettesítve f(0,0,..g(0,0,..0),..0)=0 szintén 0-át megtartó függvényt kapunk, hiszen g(0,0,..0)=0. T0 majdnem teljes. T0 elemei pl. x1x2, x1 EXOR x2. Egy tetszőleges f !∈T0-ra f(0,0,0…0) =1, így az 1 konstans előállítható. 1 EXOR x= /x, így az invertálás is előállítható. Az {x1x2, /x} pedig az összes Boole függvény egyik bázisa. Az összes logikai függvények fele a T0-hoz tarozik. (Az igazság táblában egyetlen rubrika kötelezően 0, a többi tetszőleges) T0 elemei pl. 1, x1x2, x1+x2 6
1-et megtartó függvények osztálya: T1 1-et megtartó függvények azok a függvények, melyekre f(1,1,1..1)=1 Zárt és majdnem teljes a Boole függvényekre nézve. Az összes logikai függvények fele a T1-hoz tartozik, bizonyítás, mint T0-nál. T1 elemei pl. 1, x1x2, x1+x2
7
Monoton függvények osztálya: M A monoton függvények osztályába tartoznak azok a függvények, melyekre igaz, ha a függvény tetszőleges számú változóját 0-ról 1-re változtatjuk, akkor a függvény értéke nem csökkenhet. Jelöljük α-val és β-val a változók egy kombinációját f(α)<=f(β) ha α<=β vagyis β komponensei nem kisebbek α komponenseinél. Vagyis pl. ha f ∈ M, és f(1,0,1,1,0)=1, akkor f(1,1,1,0,1)=1, f(1,0,1,1,1)=1 f(1,1,1,1,1)=1 Egymásba helyettesítésnél a behelyettesített függvény értéke is csak nőhet ha α<=β, így az egész monoton marad, vagyis zárt. Monoton függvénnyel nem valósítható meg az invertálás.
8
Ha egy függvény nem monoton, akkor megcsinálható vele az inverter. f(x1x2..xi=0..xn)=1, és (f(x1x2..xi=1..xn)=0. Monoton függvény x1x2. {x1x2, /x} az összes Boole függvényt kifeszíti. Ha egy függvény legegyszerűbb alakja nem tartalmaz negálást, akkor monoton.
Önduális függvényekosztálya: S Az önduális függvények önmaguk duálisai. (Egy f függvény duálisa f*, a belőle a változók és az egész függvény negálásával kapott függvény, f*(α)=/f(/α).) Önduális függvényre f(α)=/f(/α). Az S függvényosztály zárt és majdnem teljes (nem bizonyítjuk).
9
Önduális függvény igazságtáblájának egyik fele tetszőlegesen kitölthető, de a másik fele ebből már adódik, mivel ha a változók egy kombinációjához rögzítem a függvény értékét, akkor a változókat negálva kapott kombinációhoz ennek a negáltját kell rendelni. Ebből adódóan az igazságtábla két fele egymás tükörképének negáltja lesz: F ABC α 0 000 α0 0 001 α1 1 010 α2 0 011 α3 100 /α3 1 101 /α2 0 110 /α1 1 111 /α0 1 Az n változós önduális függvények száma:
2
n −1
Mivel szabadon.
2
2 n −1
féle kombináció tölthető ki 10
Önduális függvények pl. x, /x, x1x2+x1x3+x2x3, x1⊕x2⊕x3⊕ Nem önduális x1⊕x2! Az önduális függvények igazságtáblájában megegyezik a 0-ák és az 1-esek száma. (De attól, hogy ez teljesül, még nem biztos, hogy egy függvény önduális. Pl. Nem önduális x1⊕x2, pedig a 0-ák és 1-ek száma egyező.) Lineáris függvények osztálya: L Ergy f függvény lineáris, ha tetszőleges x1,x2,…xi-1,xi+1,..xn és valódi (nem kiegyszerűsíthető) xi változó esetén f(x1,x2,…xi,..xn)=/f(x1,x2,…/xi,..xn). Vagyis f tetszőleges egyetlen valódi bemeneti változóját megváltoztatva, a függvény kimenete is megváltozik, de a definíció szerint a 0 és 1 konstansok is ide tartoznak.
11
Lineáris függvények osztálya az F=[1, x1⊕x2], vagyis az EXOR függvénnyel és az 1 konstanssal generálható zárt függvényosztály. Ez a két függvény egyben bázisa is L-nek. A lineáris függvények tehát az EXOR kapcsolattal és 1 konstanssal generálhatók. Ezek közé tartozik az EKVIVALENCIA függvény is, mely az EXOR negáltja. Lineáris függvények pl. 0, 1, x, /x, x1⊕x2, x1 EKV x2 Az EXOR függvény akkor ad 1-et, ha páratlan számú 1-es van a bemenetén. Az EKV. függvény akkor ad 1-et, ha páros számú 1-es van a bemenetén.
12
A lineáris függvényeknek a Karnaugh táblája sakktábla szerű elrendezést mutat:
f 1 = x1 ⊕ x 2 ⊕ x3 ⊕ x 4 f 2 = x1 EKV x 2 EKV x3 EKV x 4 f 3 = x1 ⊕ x3 ⊕ x 4 f 4 = x1 ⊕ x3 f1
f2 1
1
1
1
1
1
1
1
1
1
X2
1
1
f3
1 1
X1 X4
1 X2 1
X3
X4
f4
1
1
1
1
1
1
1
1
1
1
1
1
X2 X1 X4
X3
1
1
1
1
X1 X3
X2 X1 X4
X3
A legegyszerűbb, felesleges változókat nem tartalmazó alak mindig sakktábla jellegű (pl. f1, f2). 13
A lineáris függvények igazságtáblájában - a konstans függvényeket kivéve - a 0-ák és 1ek száma azonos. Példák: Mely függvényosztályok részei az alábbi függvények? f1 1 1
1
1
1
1
B A C
D 0-át megtartó, mert f(0,0,0,0)=0, T0 1-et megtartó mert f(1,1,1,1)=1 T1 f legegyszerűbb alakja: f=AD+ABC+BCD nem tartalmaz invertálást, így f monoton:f nem önduális és nem lineáris, mivel az 1esek és 0-ák száma különbözik, s ez mindkettőre kizáró ok. 14
f2 1
1
1
1 1
1
1
1
(T1, L) B A D
C
f3
(T0, T1, S)
1 1 1
B
1
A C
f4=C./D + A./D + /B./D + /A./B.C
15
(S)