Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Véges értékű függvények

Hasonló előadás


Az előadások a következő témára: "Véges értékű függvények"— Előadás másolata:

1 Véges értékű függvények
Több értékű logika Jelölje Ek a {0,1,…,k-1} halmazt. Def: n változós k értékű függvény: az kEkn=Ek´Ek´... ´Ek Ek leképezés. Az összes k értékű függvény halmazát Pk-val jelöljük. A számítástechnikában használt a P2 elnevezése: Boole függvények. Tétel: |Pkn|=kkn. Értelmezési tartománya: |DPkn|=|Ek´Ek´... ´Ek|=kn. Egy adott függvény: Minden DPkn-beli elemhez rendelünk egy Ek-beli elemet. Ez |Ek||DPkn|= kkn -féleképpen tehető meg. Az n változós Boole függvények száma=|P2n|22n Def: Az n változós k értékű függvény xi változója fiktív, ha mindegy, hogy milyen értéket vesz fel f(x1,…,xi-1,0,xi-1,…, xn)=f(x1,…,xi-1,1,xi-1,…, xn)=…=f(x1,…,xi-1,k-1,xi-1,…, xn). A többi változó valódi.

2 Példa: Az egyváltozós Boole függvények száma=221=4.
x 0 x ~x A 0 és 1 függvény változója fiktív. x: identitásfüggvény, ~x: tagadásfüggvény A kétváltozós Boole függvények száma=222=16. xy f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f f0,f15: 0, ill. 1 konstans mindkét változója fiktív f1: konjunkció ÉS xy f3,f12: x, ill. y projekció (vetítés), másik változója fiktív f6: kizáró VAGY, mod 2, x+y f7: diszjunkció VAGY xvy f8: Pierce művelet (NOR) x¯y f9: ekvivalencia x=y f13: implikáció xy f14: Sheffer művelet (NAND) x|y

3 Tulajdonságok idempotencia 1: xx=x xvx=x x+x=0 kommutativitás
2: xy=yx xvy=yvx x+y=y+x 3: x(yz)=(xy)z xv(yvz)=(xvy)vz x+(y+z)=(x+y)+z 4:x(yvz)=(xy)v(xz) xv(yz)=(xvy)(xvz) x(y+z)=xy+xz 5: x0=0 xv0=x x+0=x 6: x1=x xv1=1 x+1=~x 7: x~x=0 xv~x=1 x+~x=1 8: ~(xy)=(~x)v(~y) ~(xvy)=(~x)v(~y) Biz: behelyettesítéssel (igazságtábla) HF Megjegyzés: prioritási sorrend: zárójelek, tagadás, konjunkciók, diszjunkciók és kizáró VAGY,implikációk és ekvivalenciák kommutativitás asszociativitás disztributivitás DeMorgan

4 Függvények megadása/függvényösszetételek
n változós függvény megadható - igazságtáblával (nagyméretű) - elemi függvényekból függvényösszetétellel Def: Ha F={fi(x1,…,xni)} függvények egy halmaza, akkor F feletti kifejezések alatt a következőket értjük: - F minden eleme F feletti kifejezés is - ha fi F egy eleme, fi pedig F feletti kifejezés vagy változó, akkor a fi(f1,…, fni) kifejezést F feletti kifejezésnek mondjuk - minden F feletti kifejezés a fentiek véges sokszori alkalmazásával áll elő

5 Teljesség Minden F feletti kifejezéshez hozzárendelhető egy függvény - az fi(x1,…,xni) kifejezéshez sajátmagát rendeljük hozzá - ha a f1,…, fn kifejezésekhez a g1,…gn függvényeket rendeltük, akkor az f(f1,…, fn) kifejezéshez tartozzon az f(g1,…gn) függvény Def: Ha F F feletti kifejezéshez az f függvényt rendeltük, akkor azt mondjuk, hogy F realizálja f-et. Ilyenkor azt is mondjuk, hogy f az F-beli függvények szuperpozíciója Def: Ha F k értékű függvények egy halmaza, akkor azt mondjuk hogy F teljes, ha Pk minden eleme, azaz minden k értékű függvény realizálható F elemeivel. Tétel: az F={ xy, xvy, ~x } Boole függvényhalmaz teljes. Biz: (a következő oldalon)

6 Általánosítva x1a1,…,xnan=1ha x1=a1,…, xn=an,
Biz: 1. Ha f(x1,…,xn)º0, akkor f(x1,…,xn)=xi~xi nyilvánvalóan teljesül. (Megjegyzés: Az igazságtábla 1-t tartalmazó sorait állítjuk elő. Vagyis olyan fveket adunk meg, amelyek értéke=1, ha a változókombináció az igazságtábla sora. 2. Vezessük be a köv jelölést (egyváltozós függvény): xa=~x ha a=0, x ha a=1, ahol x,aºÎ{0,1}. Világos, hogy xa=1 ha x=a. („a” az igazságtábla egy négyzete a=1. Ha f(x)=x akkor f(x)=1x=1. Ha f(x)=~x akkor f(x)=1x=0 Általánosítva x1a1,…,xnan=1ha x1=a1,…, xn=an, f(x1,…,xn)=f(a1,…,an)=1V x1a1,…,xnan Az igazságtábla egy sorának előállítása A teljes igazságtábla 1 értékű sorainak előállítása

7 A teljesség általánosítása
A Boole függvények általánosítása tetszőleges k értékű függvényekre: - max(x,y) a diszjunkció általánosítása - min(x,y) vagy xy mod k a konjunkció általánosítása - tagadást háromféleképpen is lehet: (x+1) mod k - Ii(x)=k-1, ha x=i; 0, ha x<>i - ji(x)=1, ha x=i, 0; ha x<>i Tétel: az Rk={0, 1,…,k-1,I0(x),…, Ik-1(x), max(x,y),min(x,y)} függvényhalmaz teljes Pk-ban Biz: nélkül… Logikai értékek ábrázolása számítógéppel

8 További teljes függvényhalmazok
Tétel: Ha az F={f1(x1,…,xn),…,fn(x1,…,xn)} teljes függvényhalmaz, akkor a G={g1(x1,…,xn),…,gn(x1,…,xn)} teljes ha a gi függvények előállíthatók fi-k szuperpozíciójaként. Biz: HF Következmény: pl, teljesek a köv. Boole függvényhalmazok: {xvy, ~x} {xy, ~x} {x|y} (NAND logika) {x¯y} (NOR logika) { xy, x+y, 1} teljes Biz: HF…

9 Boole függvények normál alakjai
Vegyük a {xvy, xy, ~x} függvényhalmazt teljes tetszőleges Boole függvény realizálható vele, sőt nem is csak egyféleképpen Példa: Ha F kifejezés az f függvényt realizálja, akkor a Fvx1~x1,…,Fvx2~x2v…vxn~xn kifejezések is. Def: Egy kifejezés bonyolultságán a benne előforduló változójelek számát értjük. Példa: az x1(x2vx2)vx3 bonyolultsága 4. Keressük egy f függvényt megvalósító F kifejezések közül a legkevésbé bonyolultat.

10 Legegyszerűbb kifejezés meghatározása
Legyen S(n,M) az n változós, és legfeljebb M bonyolultságú függvények halmaza S(n,M) véges, S(n,M)ÍP2M S(n,M) tartalmaz egy sor fiktív változós stb… felesleges függvényt is. Emiatt a bonyolultsága nagyobb, mint feltétlenül szükséges lenne… Adott változószámú fn függvény legegyszerűbb megvalósításának meghatározása a teljes kimerítés módszerével: 1. i=1 2. do while not fn=FÎS(n,i) 3. i=i+1 4. loop 5. Az eredmény: S(n,M) valamelyik (legkisebb bonyolultságú) eleme… Gond: S(n,M) elfogadható időn belül nem fut le… Vlsz nem is létezik ennél hatékonyabb algoritmus  az egyszerűség kritériumát gyengíteni kell Exhaustive enumeration

11 Zsegalkin polinomok Def: Az olyan E1+…+ En formájú kifejezéseket, ahol Ei vagy konstans, vagy x1ix2i…xmi szorzat, Zsegalkin polinomoknak nevezzük. Tétel: Minden Boole függvény kifejezhető Zsegalkin polinommal. Miért is? 1. { xy, x+y, 1} teljes 2. xx=x miatt az x1ix2i…xmi szorzat minden tényezője egymástól különbözhet. 3. Ei+Ei=Ei miatt a tagok is különböznek egymástól Hány n-vált. Zsegalkin polinom létezik? n db. változóból j-t kiválaszthatunk nCj=(n alatt j)=n!/(j!*(n-j)!)-képpen, ahol j=0,…,n. Hány n-vált. Zsegalkin polinom létezik? Az összes Zsegalkin polinom száma= j=0Σn(n alatt j)=2n Mivel minden Boole függvényhez tartozik egy Zsegalkin polinom, és a számossága megegyezik a Boole függvényekével Zsegalkin tétele: minden Boole függvényhez pontosan egy Zsegalkin polinom tartozik

12 Dualitás: Önduális függvények
Az f(x1,…,xn) függvény duálisán azt a f* függvényt értjük, amelyikre f*(x1,…,xn)=~f(~x1,…,~xn) Példák: 1. (~x)*=~(~~x)=~x 2. (x)*=~(~x)=x 3. (xy)*=~(~x~y)=xvy 4. (xvy)*=~(~xv~y)=xy 5. (x+y)*=~(~x+~y)=1+x+1+y+1=x+y+1 Tétel: Függvényösszetétel duálisa megegyezik az egyes duálisfüggvények összetételével. (f(g1,…gn))*=f*(g1*,…gn*) Biz: f*(g1*,…gn*)=~f(~g1*,…~gn*)= ~f(~~g1(~x11,…,~x1m1),…,~~gn(~xn1,…,~xnmn))= ~f(g1(~x11,…,~x1m1),…,gn(~xn1,…,~xnmn))= (f(g1,…gn))*

13 Monoton függvények Def: Azt mondjuk, hogy egy a=<a1,…,an> megelőzi a b =<a1,…,an> Boole n-est, ha ai<=bi minden 1<=n-re. Jelölése: a<=b. Példa: <0,0,0,0> <= <0,1,0,1> <= <0,1,1,1> Ellenpélda: <0,1,0,1> és <1,0,0,0> között sem a <=, sem a >= reláció nem áll fenn. A <= reláció tulajdonságai: 1. a<=a (reflexív) 2. Ha a<=b és b<=a, akkor a=b. 3. Ha a<=b és b<=g, akkor a<=g. (tranzitivitás) Tehát a <= reláció részleges rendezés a Bn felett.

14 Def: a<=b szomszédosak, ha legfeljebb 1 bitben térnek el egymástól.
Def: Ha van egy a1<=…<=ai<=…<=an sorozat, azt n elemű láncnak nevezzük. Tétel: Ha a<=b, akkor mindig létezik egy lánc, melynek hossza az a b-tól különböző bitjeinek a számával egyezik meg. Biz: HF. Nyilvánvaló Def: Azt mondjuk, hogy az f(x1,…,xn) monoton, ha bármely a=<a1,…,an> <= b=<b1,…,bn> esetén f(a)<=f(b). A monoton függvények halmazát M-mel jelöljük Példa: Az xy és az xvy függvények monotonak.

15 Tétel: Az n változós monoton függvények számossága: |M|=2
Tétel: Az n változós monoton függvények számossága: |M|=2**(n alatt n/2). Bizonyítás nélkül… Tétel: az M függvényhalmaz zárt. Biz: Ha f, g1,…,gn monoton függvények, és a<=b, akkor g1(a)<g1(b),…,gn(a)<gn(b). Viszont f(g1(a),…,g1(a))<=f(g1(b),…,g1(b))az f és a gi függvények összetételével képzett függvény is monoton lesz…

16 Lineáris függvények Korábban: minden Boole függvényt pontosan egy Zsegalkin polinom valósít meg. Def: Az f(x1,…,xn) Boole függvényt lineárisnak mondjuk, ha az őt megvalósító Zsegalkin polinom lineáris, azaz nincsenek benne többváltozós szorzatok. Jelölése: L. A lineáris polinomok felírási módja: a1x1+…+anxn, ahol aiÎ{0,1} Példa: 1. f(x,y)=x+y+1 lineáris 2. f(x,y,z)=xyz nem lineáris. Tétel: A L függvényosztály zárt. Biz: HF.

17 Tétel (dualitási elv): Legyen F Boole függvények vmilyen halmaza: F={f1(x1,…,xn1),f2(x1,…,xn2)}, és a duálisaik halmaza: G={f1*(x1,…,xn1), f2*(x1,…,xn2)}. Ekkor, ha egy F feletti F kifejezésben az f1,f2,… függvényjeleket kicseréljük az f1*,f2*,…duális függvényjelekre, akkor egy olyan G feletti y kifejezést kapunk, amely éppen a F által megvalósított függvény duálisa tartozik. Biz: Ha a F rangja=1, akkor nyilvánvaló. Tfh. minden l-1 rangú kifejezésre igaz, és legyen F l rangú. Ekkor F=fi(j1,j2,…jni). Cseréljük ki most az összes fi függvényjelet a fi* duálisára. fi*(j1*,j2*,…,jni*).

18 Ha ji rangja>0, akkor ji
Ha ji rangja>0, akkor ji* úgy származik ji-ből, hogy a benne szereplő fi* függvényjeleket kicseréljük fi*-ra. Az indukciós feltevés miatt, ha ji a gi függvényt valósította meg, akkor ji a gi*-ot. Ha ji rangja=0 (változó), akkor a ji által megvalósított gi (identitás) függvényre, gi*=gi, tehát ji* gi*-ot valósítja meg. Mindkét esetben: ha a F kifejezés a fi(g1,g2,…gni) függvényt valósítja meg, akkor a y-hez a fi*(g1*,g2*,…gni*) tartozik. …=(fi(g1,g2,…gni))* Példa: x(yvz) duálisa az xv(yz) függvény

19 (Ellentett paraméter n-eseken ellentett értéket vesznek fel)
Def: Az f(x1,…,xn) függvényt önduálisnak mondjuk, ha f*(x1,…,xn)=f(x1,…,xn). (Ellentett paraméter n-eseken ellentett értéket vesznek fel) Példa: az x identitásfüggvény és a ~x negáció önduális. Tétel: Az önduális függvények halmaza zárt. Biz: Legyenek egy fi(g1,g2,…gni) kifejezés fi és gni függvényei önduálisak. Ekkor: (fi(g1,g2,…gni))*= (fi* (g1*,g2*,…gni*))=fi(g1,g2,…gni) Állítás Az összetétel dualitása miatt Az öndualitás definíciója miatt

20 Diszjunktív normál alak
Def: a K=x1a1x2a2…xnan kifejezést, ahol aiÎ{0,1}, elemi konjunkciónak nevezzük. (magyarul: változók és negáltjaik konjunkciója) Def: Ki elemi konjunkciók diszjunkcióját diszjunktív normál alaknak nevezzük Egy f(x1,…,xn) Boole függvényt megvalósító di-no alakot akkor nevezünk minimálisnak, ha a bonyolultsága a függvény di-no alakjai közül a legkisebb. (legegyszerűbb). Def: n változós függvények olyan elemi konjunkcióit, amely minden változót tartalmaz, teljes konjunkciónak nevezzük. Azt a di-no alakot, amely csak teljes konjunkciókból áll, teljes di-no alaknak nevezzük.

21 Tétel: A teljes di-no alak (a konjunkciók és diszjunkciók kommutativitásán és asszociativitásán túl) egyértelmű Biz: HF. Diszjunktív normál alak használata: logikai áramkörök tervezésekor (ld. később)

22 Konjunktív normál alak
Def: a D=x1a1vx2a2v…vxnan kifejezést, ahol aiÎ{0,1}, elemi diszjunkciónak nevezzük. (magyarul: változók és negáltjaik diszjunkciója) Egy diszjunkció egy elemét literálnak nevezzük. Ha ai=0, akkor negatív, ha ai=1, akkor pozitív a literál. Def: Di elemi diszjunkciók konjunkcióját konjunktív normál alaknak nevezzük. A dualitás miatt minden hasonló, mint a di-no alaknál. Használata: főleg gépi tételbizonyító programoknál (pl. Prolog)

23 Klóz (clause) alak A ko-no alakból kapjuk meg az implikáció (következtetés) művelet definíciójának FK=~FvK alkalmazásával. Vagyis: x10x20...xn0 y11vy21v... vym1 Más jelöléssel: y1;y2;...;ym:- x1,x2,...,xn. Használata: főleg gépi tételbizonyító programoknál (pl. Prolog)

24 Feladatok Alakítsuk di-no alakra: Alakítsuk ko-no alakra:
A(BC) A(BA) Alakítsuk ko-no alakra: ~((AB)(~B~A)) (AvB)(AvBvC) Fejezzük ki a v,.,~ teljes fvrendszerben a köv.t f(a,b,c)=true  ha a paraméterek közül legalább kettő igaz g(a,b,c)=true  ha a paraméterek közül páratlan igaz h(a,b,c,d)=false  ha pontosan egy paraméter hamis

25 Kapuhálózatok Integrált áramkörökben használatos elemi (kapu-) áramkörök modelljei Egy Boole függvény megvalósításának egy módja Egy kapu egy f(x1,…,xn) Boole függvényt valósít megn db bemenettel és 1 db kimenettel. Kapuhálózatok: irányított, körmentes hálók, melynek csomópontjai a kapuk. Egy bemenetre legfeljebb 1 kimenet csatlakozhat Egy kimenetre azonban több bemenet is csatlakozhat Adott: elemi kapukészletből akárhány, de ebből csak véges számút építhetünk össze.

26 v . + ~ f(x1,x2,x3,…,xn) diszjunkció konjunkció kizáró vagy negáció Két elemből álló kapuhálózat. Bemenetei: x1, x2, x3. Kimenetei: x1vx2, (x1vx2)x3 . x3 v x1 x2

27 Tétel: A hozzárendelés egyértelmű
A kapuhálózat bemenetei: amelyekhez nem kapcsoltunk kimenetet. Kimenetei: az elemi kapuk kimeneteinek egy részhalmaza Tfh. E1,E2,…, En kapuk az f1(x1,…,xn1),…, fm(x1,…,xnm) függvényeket valósítják meg, és létezik egy H hálózat, amelyet a fenti elv alapján hoztunk létre. Ekkor a H hálózat megvalósít egy F={f1,…,fn} fölötti kifejezést a következőképpen: A hálózat bemeneteihez változókat rendelünk Ha egy Ei kapu bemenetein változók vannak, vagy az oda csatlakozó kimenethez már rendeltünk egy j függvényt, akkor a kapu kimenetéhez rendeljük az fi(j1,…,jn) Tétel: A hozzárendelés egyértelmű

28 Példa: Bináris egybites összeadó
cn zn xn. yn: összeadandók cn-1: carry, áthozat az előző bitről zn: eredmény cn: carry, átvitel a következő bitre HF: a VAGY kapuk helyett + kapukkal megvalósítani v + v . . . + cn-1 xn yn

29 Kapuhálózatok tervezése
Minden f(x1,…,xn) Boole függvényhez lehetséges kapuhálózatot tervezni. Kapuhálózatok tervezésének kaszkád módszere: kapuk={xy,xvy,~x} Alapelv: f(x1,…,xn)=xnf(x1,…,xn-1,1)v~xnf(x1,…, xn-1,0). Vagyis n változós fvek létrehozását visszavezetjük n-1 változósokra. Def: az f(x1,…,xn) részfüggvényeinek nevezzük azokat, amelyekben valamelyik xi-t (az utolsókat) konstanssal helyettesítjük. Jelöljük Bk(f)-fel azokat a részfüggvényeket, amelyekben az utolsó k változót konstansként rögzítettük. Nyilvánvalóan |Bk(f)|=2k

30 Kaszkádmódszer: 1. lépés
v . . ~ xn f(x1,…, xn-1,1) f(x1,…, xn-1,0) B1 elemei láthatók itt…

31 Kaszkádmódszer: Példa
Tervezzük meg kaszkádmódszerrel az x+y+z+u függvényt megvalósító hálózatot B0=x+y+z+u B1={x+y+z, x+y+z+1} B2={x+y, x+y+1} B3={x, x+1}


Letölteni ppt "Véges értékű függvények"

Hasonló előadás


Google Hirdetések