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 Jelölje E k a {0,1,…,k-1} halmazt. Def: n változós k értékű függvény: az k E k n  E k  E k   E k  E k leképezés. Az összes.

Hasonló előadás


Az előadások a következő témára: "Véges értékű függvények Jelölje E k a {0,1,…,k-1} halmazt. Def: n változós k értékű függvény: az k E k n  E k  E k   E k  E k leképezés. Az összes."— Előadás másolata:

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

2 Példa: Az egyváltozós Boole függvények száma=2 2 1 =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=2 2 2 =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 1: xx=xxvx=xx+x=0 2: xy=yxxvy=yvxx+y=y+x 3: x(yz)=(xy)zxv(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=0xv0=xx+0=x 6: x1=xxv1=1x+1=~x 7: x~x=0xv~x=1x+~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 DeMorgan idempotencia kommutativitás asszociativitás disztributivitás

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={f i (x 1,…,x ni )} 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 f i F egy eleme,  i pedig F feletti kifejezés vagy változó, akkor a f i (  1,…,  ni ) 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 f i (x 1,…,x ni ) kifejezéshez sajátmagát rendeljük hozzá - ha a  1,…,  n kifejezésekhez a g 1,…g n függvényeket rendeltük, akkor az f(  1,…,  n ) kifejezéshez tartozzon az f(g 1,…g n ) függvény Def: Ha  F feletti  kifejezéshez az f függvényt rendeltük, akkor azt mondjuk, hogy  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 P k 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 Biz: 1. Ha f(x 1,…,x n )  0, akkor f(x 1,…,x n )=x i ~x i 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): x a =~x ha a=0, x ha a=1, ahol x,a  {0,1}. Világos, hogy x a =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 x 1 a1,…,x n an =1  ha x 1 =a 1,…, x n =a n,  f(x 1,…,x n )= f(a1,…,an)=1 V x 1 a1,…,x n an 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 - I i (x)=k-1, ha x=i; 0, ha x<>i - j i (x)=1, ha x=i, 0; ha x<>i Tétel: az R k ={0, 1,…,k-1,I 0 (x),…, I k-1 (x), max(x,y),min(x,y)} függvényhalmaz teljes P k -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={f 1 (x 1,…,x n ),…,f n (x 1,…,x n )} teljes függvényhalmaz, akkor a G={g 1 (x 1,…,x n ),…,g n (x 1,…,x n )} teljes  ha a g i függvények előállíthatók f i -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  kifejezés az f függvényt realizálja, akkor a  vx 1 ~x 1,…,  vx 2 ~x 2 v…vx n ~x n 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 x 1 (x 2 vx 2 )vx 3 bonyolultsága 4. Keressük egy f függvényt megvalósító  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)  P 2 M 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ú f n 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 f n =  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 E 1 +…+ E n formájú kifejezéseket, ahol E i vagy konstans, vagy x 1i x 2i… x mi 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 x 1i x 2i… x mi szorzat minden tényezője egymástól különbözhet. 3. E i +E i =E i 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 n C j =(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)=2 n 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(x 1,…,x n ) függvény duálisán azt a f* függvényt értjük, amelyikre f*(x 1,…,x n )=~f(~x 1,…,~x n ) 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(g 1,…g n ))*=f*(g 1 *,…g n *) Biz: f*(g 1 *,…g n *)=~f(~g 1 *,…~g n *)= ~f(~~g 1 (~x 11,…,~x 1m1 ),…,~~g n (~x n1,…,~x nmn ))= ~f(g 1 (~x 11,…,~x 1m1 ),…,g n (~x n1,…,~x nmn ))= (f(g 1,…g n ))*

13 Monoton függvények Def: Azt mondjuk, hogy egy  = megelőzi a  = Boole n-est, ha a i <=b i minden 1<=n-re. Jelölése: . Példa: Ellenpélda: és között sem a = reláció nem áll fenn. A <= reláció tulajdonságai: 1.  <=  (reflexív) 2. Ha  <=  és  <=  akkor  = . 3. Ha  <=  és  <=  akkor  = . (tranzitivitás) Tehát a <= reláció részleges rendezés a B n felett.

14 Def:  <=  szomszédosak, ha legfeljebb 1 bitben térnek el egymástól. Def: Ha van egy  1 <=…<=  i <=…<=  n sorozat, azt n elemű láncnak nevezzük. Tétel: Ha  <=  akkor mindig létezik egy lánc, melynek hossza az   tól különböző bitjeinek a számával egyezik meg. Biz: HF. Nyilvánvaló Def: Azt mondjuk, hogy az f(x 1,…,x n ) monoton, ha bármely  = esetén f(  )<=f(  ). 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**(n alatt n/2). Bizonyítás nélkül… Tétel: az M függvényhalmaz zárt. Biz: Ha f, g 1,…,g n monoton függvények, és  <= , akkor g 1 (  )

16 Lineáris függvények Korábban: minden Boole függvényt pontosan egy Zsegalkin polinom valósít meg. Def: Az f(x 1,…,x n ) 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: a 1 x 1 +…+a n x n, ahol a i  {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={f 1 (x 1,…,x n1 ),f 2 (x 1,…,x n2 )}, és a duálisaik halmaza: G={f 1 *(x 1,…,x n1 ), f 2 *(x 1,…,x n2 )}. Ekkor, ha egy F feletti  kifejezésben az f 1,f 2,… függvényjeleket kicseréljük az f 1 *,f 2 *,…duális függvényjelekre, akkor egy olyan G feletti  kifejezést kapunk, amely éppen a  által megvalósított függvény duálisa tartozik. Biz: Ha a  rangja=1, akkor nyilvánvaló. Tfh. minden l-1 rangú kifejezésre igaz, és legyen  l rangú. Ekkor  =f i (  1,  2,…  ni ). Cseréljük ki most az összes f i függvényjelet a f i * duálisára. f i *(  1 *,  2 *,…,  ni *).

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

19 Def: Az f(x 1,…,x n ) függvényt önduálisnak mondjuk, ha f*(x 1,…,x n )=f(x 1,…,x n ). (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 f i (g 1,g 2,…g ni ) kifejezés f i és g ni függvényei önduálisak. Ekkor: (f i (g 1,g 2,…g ni ))*= (f i * (g 1 *,g 2 *,…g ni *))=f i (g 1,g 2,…g ni )  Á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=x 1 a1 x 2 a2 …x n an kifejezést, ahol a i  {0,1}, elemi konjunkciónak nevezzük. (magyarul: változók és negáltjaik konjunkciója) Def: K i elemi konjunkciók diszjunkcióját diszjunktív normál alaknak nevezzük Egy f(x 1,…,x n ) 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=x 1 a1 vx 2 a2 v…vx n an kifejezést, ahol a i  {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 a i =0, akkor negatív, ha a i =1, akkor pozitív a literál. Def: D i 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: x 1 0 x x n 0  y 1 1 vy 2 1 v... vy m 1 Más jelöléssel: y 1 ;y 2 ;...;y m :- x 1,x 2,...,x n. Használata: főleg gépi tételbizonyító programoknál (pl. Prolog)

24 Feladatok Alakítsuk di-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(x 1,…,x n ) 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 f(x 1,x 2,x 3,…,x n ) v.+~ konjunkciódiszjunkciókizáró vagynegáció v. x1x2 x3 Két elemből álló kapuhálózat. Bemenetei: x1, x2, x3. Kimenetei: x1vx2, (x1vx2)x3

27 A kapuhálózat bemenetei: amelyekhez nem kapcsoltunk kimenetet. Kimenetei: az elemi kapuk kimeneteinek egy részhalmaza Tfh. E 1,E 2,…, E n kapuk az f 1 (x 1,…,x n1 ),…, f m (x 1,…,x nm ) 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={f 1,…,f n } fölötti kifejezést a következőképpen: –A hálózat bemeneteihez változókat rendelünk –Ha egy E i kapu bemenetein változók vannak, vagy az oda csatlakozó kimenethez már rendeltünk egy  függvényt, akkor a kapu kimenetéhez rendeljük az f i (  1,…,  n ) Tétel: A hozzárendelés egyértelmű

28 Példa: Bináris egybites összeadó + +. v ynyn znzn c n-1 xnxn.. v cncn x n. y n : összeadandók c n-1 : carry, áthozat az előző bitről z n : eredmény c n : carry, átvitel a következő bitre HF: a VAGY kapuk helyett + kapukkal megvalósítani

29 Kapuhálózatok tervezése Minden f(x 1,…,x n ) 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(x 1,…,x n )=x n f(x 1,…,x n-1,1)v~x n f(x 1,…, x n-1,0). Vagyis n változós fvek létrehozását visszavezetjük n-1 változósokra. Def: az f(x 1,…,x n ) részfüggvényeinek nevezzük azokat, amelyekben valamelyik x i -t (az utolsókat) konstanssal helyettesítjük. Jelöljük B k (f)-fel azokat a részfüggvényeket, amelyekben az utolsó k változót konstansként rögzítettük. Nyilvánvalóan |B k (f)|=2 k

30 Kaszkádmódszer: 1. lépés v.. ~ xnxn f(x 1,…, x n-1,1)f(x 1,…, x n-1,0)B 1 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 B 0 =x+y+z+u B 1 ={x+y+z, x+y+z+1} B 2 ={x+y, x+y+1} B 3 ={x, x+1}


Letölteni ppt "Véges értékű függvények Jelölje E k a {0,1,…,k-1} halmazt. Def: n változós k értékű függvény: az k E k n  E k  E k   E k  E k leképezés. Az összes."

Hasonló előadás


Google Hirdetések