Monotónní a Lineární Funkce 1. Relace předcházení a to Uvažujme dva vektory hodnot proměnných α = α,, 1 αn ( ) a β = ( β β ) 1,, n x,, 1 xn. Říkáme, že vekto r hodnot α předchází vektor hodnot β (značíme α β ) právě tehdy, když pro jednotlivé hodnoty platí α,, 1 β1 αn βn. Danou relaci nazýváme relace předcházení. vektor Například vektor hodnot α = ( 0,1,0,1) β = (1,1, 0,1) zároveň platí předchází, protože pro jednotlivé hodnoty α1 = 0 1 = β1, α2 = 1 1 = β2, α3 = 0 0 = β3, α4 = 1 1= β4. 1,0 jsou v relaci Oproti tomu například vektory ( 0,1 ) a ( ) předcházení nesrovnatelné. Relace předcházení je vzhledem k množině všech n- rozměrných vektorů hodnot proměnných ( x,, 1 xn ) částečným uspořádáním.
2. T řída monotónních funkcí S pomocí relace předcházení můžeme specifikovat vybranou množinu logických funkcí. f x1,, xn P2 nazveme monotónní, jestliže pro každé dva vektory hodnot proměnných α, β takových, že α β, pro funkční f α f β. Množinu všech Logickou funkci ( ) hodnoty funkce f platí ( ) ( ) monotónních funkcí nazýváme třída monotónních funkcí a značíme M. Mezi monotónní funkce patří například logické funkce 0,1, x, x1 x2, x1 x2. Monotónnost jde opět ověřit s pomocí tabulky pravdivostních hodnot dané funkce. Ukažme si postup na funkci x x. 1 2 x 1 2 x x1 x2 0 0 0 0 1 0 1 0 0 1 1 1 Nejdříve si vytvoříme tabulku pravdivostních hodnot funkce. Existují dvě posloupnosti vektorů hodnot v relaci předcházení: ( 0,0) ( 0,1) ( 1,1) ( 0,0) ( 1,0 ) ( 1,1). a Pro dané posloupnosti vektorů hodnot srovnáme jejich funkční hodnoty. Platí f ( 0,0) = 0 f ( 0,1) = 0 f ( 1,1) = 1 a f ( 0,0) = 0 f ( 1,0 ) = 0 f ( 1,1) = 1. Vidíme, že funkce je monotónní.
Věta 3.4.6 Třída všech monotónních funkcí je funkcionálně uzavřená. Důkaz. M je evidentní. Musíme tedy dokázat ještě To, že [ M ] opačnou inkluzi. Vezměme libovolnou funkci F [ M ], potom musí existovat monotónní funkce f, f1,, fm M tak, že F x,, x = f f x,, x,, f x,, x. ( n ) ( ) ( ) ( ) 1 n 1 1 n m 1 Poznamenejme, že obecně funkce F, f, f1,, fm nemusí být funkcemi stejného počtu proměnných, za n však můžeme vzít maximální počet proměnných v jedné z funkcí a do ostatních přidat fiktivní proměnné, aniž by se hodnoty funkce změnily. Nechť α = ( α,, 1 αn ) a ( ) vektory hodnot proměnných ( x x ) i= 1,, m platí fi,,, β = β1 βn α β, jsou,, 1 n. Pro každé M a tudíž fi( α ) fi( β ). Pak ( f1( α ),, fm( α) ) f1( β),, fm( β ) ( ) a protože funkce f je také monotónní, platí ( 1( α ),, m( α) ) 1( β),, m( β ) ( ) f f f f f f. cbd. a tedy F( α ) F( β )
Vektory α = α α α α α β = β β β β β (,,,,,, ), (,,,,,, ) 1 i 1 i i+ 1 n 1 i 1 i i+ 1 n budeme nazývat sousední podle i-té souřadnice, jestliže αi βi a pro každé j i, j = 1,, n platí α j = β j. Příklad. Vezměme vektory α = ( 1, 0,1) jsou sousední podle první souřadnice. a β = ( 0,0,1). Tyto vektory Věta 3.4.7 (lemma o nemonotónní funkci) Nechť logická funkce f ( x,, 1 xn ) nepatří do třídy monotónních funkcí. Potom dosazením funkcí 0, 1, x za její proměnné lze získat nemonotónní funkci x. Důkaz. Důkaz této věty se skládá ze dvou částí. V první části dok ážeme tvrzení, že exis tují dva sousední vektory hodnot α, β takové, že vektor α předchází vektor β a zároveň f α > f β. platí ( ) ( ) Z předpokladu věty, funkce f nepatří do třídy monotónních (1) (1) funkcí, potom musí existovat dva vektory α, β takové, (1) (1) že zároveň platí α β a ( (1) ) ( (1) f α > f β ). Jsou-li (1) (1) vektory α, β sousední, potom je tvrzení dokázáno.
Pokud ne, potom se musí lišit v určitém konečném počtu t hodnot proměnných, přičemž dané proměnné nabývají ve (1) vektoru (1) α hodnoty 0 a ve vektoru β hodnoty 1. Potom (2) ( t) musí existovat t-1 vektorů α,, α, takových, že (1) (2) ( t ) (1) α α α β a každé dva po sobě jdoucí vektory této posloupnosti jsou sousední. (1) (1) Díky tomu, že pro vektory α, β platí ( (1) ) ( (1) f α > f β ), musí v této posloupnosti existovat dvojice sousedních vektoru, označme je α, β, pro kterou f α > f β Tím je první část dokázána. platí ( ) ( ). Nyní vezmeme dva sousední vektory α, β. Nechť se liší v i-té souřadnici. Můžeme tedy psát α = α α α α β = α α α α (,,,0,,, ), (,,,1,,, ) 1 i 1 i+ 1 n 1 i 1 i+ 1 n Vytvořme funkci ( ) ( α,, α,, α,, α ). Φ =. x f 1 i 1 x i+ 1 n Ukážeme, že tato funkce je námi hledaná nemonotónní funkce x. Dosadíme za proměnnou x hodnoty 0 a 1. Φ 0 = f α a to je jistě z našeho předpokladu ostře větší ( ) ( )
než Φ ( 1) = f ( β ) právě tehdy, když ( 0). Ovšem nerovnost ( ) ( Φ =1 a zároveň ( 1) 0 však vlastnost pro hodnoty funkce x. Φ 0 >Φ 1) platí Φ =. Toto je cbd. Příklad. Uvažujme funkci ( ) f x, x = ( x x ). Nejdříve 1 2 1 2 musíme ukázat, že tato funkce není monotónní. Vezměme α = 1, 0 β = 0,0. Tyto vektory jsou například vektory ( ) a ( ) sousední podle první souřadnice. Platí, že vektor (0,0) předchází vektoru (1,0) a f ( 0,0) = 1 > 0 = f ( 1,0 ), tedy funkce není monotónní. Φ = =. Dosazením hodnot 0 a 1 za proměnnou x ověříme, že funkce Φ ( x) = x. Opravdu, Φ ( 0) = ( 0 0) = 1 a Φ = =0. Nyní definujme funkci ( x) f ( x,0) ( x 0) () 1 ( 1 0)
3. Třída lineárních logických funkcí Lineární logickou funkci nazveme každou funkci ve tvaru (,, ) =,,,, { 0,1} f x1 xn c0 c1x1 cnxn c0 c1 c n tedy funkci, jejíž Žegalkinův polynom obsahuje pouze lineární členy. Tuto množinu funkcí nazýváme třída lineárních logických funkcí a značíme L. Tato třída je funkcionálně uzavřená. Věta 3.4.8 (lemma o nelineární funkci) Nechť logická funkce f ( x,, 1 xn ) nepatří do třídy lineárních funkcí. Potom dosazením funkcí 0,1, x a x za její proměnné a případně negováním funkce f, můžeme vyjádřit nelineární funkci logického součinu dvou proměnných. Důkaz. Funkce f nepatří do třídy lineárních funkcí. Potom Žegalkinův polynom funkce f musí obsahovat alespoň jeden nelineární člen, bez újmy na obecnosti předpokládejme, že je to člen xx 1 2. Potom vytkneme-li postupně ze všech možných členů polynomu logický součin xx 1 2, z možných zbylých proměnnou x1 a x2 potom polynom funkce f můžeme upravit do tvaru
(1,2) (1) ( 1,, n) = 1 2 ( 3,, n) 1 ( 3,, n) (2) (0) (,, ) (,, ) f x x x x f x x x f x x x f x x f x x 2 3 n 3 (1,2) (1) (2) (0) přičemž f, f, f, f jsou logické funkce n-2 proměnných x, 3, xn, které vznikly po řadě vytknutím (1,2) jednotlivých členů xx 1 2, x1, x 2a platí f ( x,, 3 xn ) 0 (v opačném případě bychom popřeli náš předpoklad, že funkce f obsahuje lineární člen xx - "vypadl" by nám). Potom musí existovat (n-2)-tice hodnot α 3, α tak, že ( ) n 1 2, n (1,2) f α,, 3 α n = 1. Můžeme tedy vytvořit funkci dvou proměnných ( ) ( ) Φ x1, x2 = f x1, x2, α3,, αn = x1x2 ax1 bx2 c, kde abc,, { 0,1}. Z této funkce vytvoříme další funkci dvou proměnných (, ) (, ) Ψ x x =Φ x b x a ab c 1 2 1 2 a ukážeme si, že je naši hledanou nelineární funkcí, která je ekvivalentní logickému součinu v našem případě xx 1 2.
Ψ ( x1, x2) =Φ( x1 b, x2 a) ab c= ( )( ) ( ) ( ) x b x a a x b b x a c ab c= 1 2 1 2 x x ax bx ab ax ab bx ab c ab c = 1 2 1 2 1 2 xx 1 2. cbd. Příklad. f x1 x2 x3 = x1 xxx 1 2 3 xx 2 3 1. Tato funkce již je ve tvaru Žegalkinova polynomu a na první pohled je patrné, že není lineární protože obsahuje dva nelineární členy a to xxx 1 2 3a xx 2 3. (Pokud by funkce nebyla ve tvaru Žegalkinova polynomu, musí se nejdříve do tohoto tvaru převést.) Můžeme tedy z této funkce vytvořit funkci logického součinu. Možností máme několik, buď xx 1 2nebo xx 1 3 a nebo xx 2 3. Zvolme dvojčlen xx 1 2. Potom funkci můžeme vytýkáním upravit Vezměme funkci (,, ) ( ) f x, x, x = x x x x x x 1= 1 2 3 1 1 2 3 2 3 () xx ( x) x 1 x ( x) 1 1 2 3 1 2 3 a tedy f (1,2) ( x ) (1) ( ) (2) ( ) (0) 3 = x3, f x3 = 1, f x3 = x3, f ( x3) = 1. (1,2) Funkce f je různá od hodnoty nula pro proměnnou
α 3 = 1. Dosaďme tedy do funkce f za proměnnou hodnotu α =, čímž vytvoříme funkci 3 1 x 3 (, ) (,, α ) (,,1) Φ x x = f x x = f x x = x x x x 1. 1 2 1 2 3 1 2 1 2 1 2 Konkrétní hodnoty konstant a, b, c jsou a= b= c= 1. Nyní z této funkce vytvoříme další funkci dvou proměnných (, ) (, ) Ψ x x =Φ x b x a ab c 1 2 1 2 a ukážeme, že je ekvivalentní funkci ( x1, x2) ( x1 1, x2 1) 1 1 1 ( x )( x ) ( x ) ( x ) Ψ =Φ = 1 2 1 2 xx 1 2. Konkrétně tedy 1 1 1 1 1 1 1 1 1 1= xx 1 2 1x1 1x2 1 1 1x1 1 1 1x2 1 1 1 1 1 1= xx x x x x 1 1 1 1 1 1 = xx. 1 2 1 1 2 2 1 2 V případě, že zvolíme jiný nelineární člen, například xx 2 3, je postup analogický. ( ) ( ) ( f x, x, x = x xxx xx 1= xx x 1 x 1) 1 2 3 1 1 2 3 2 3 2 3 1 1 a tedy (2,3) (2) (3) (0) f ( x1) = x1 1, f ( x1) = 0, f ( x1) = 0, f ( x1) = x1 1 (2,3). Funkce f je různá od hodnoty nula pro proměnnou α 1 = 0. Dosaďme tedy do funkce f za proměnnou x 1 hodnotu 0, čímž vytvoříme funkci
( ) Φ x, x = x x 1. 2 3 2 3 Konkrétní hodnoty konstant a, b, c jsou a= b= 0, c= 1. Nyní z této funkce vytvoříme funkci ( x x ) ( x x ) Ψ, =Φ 0, 0 0 0 1 2 3 2 3 a ukážeme, že je to funkce xx 2 3: ( ) Ψ x, x = xx 1 1= xx. 2 3 2 3 2 3
4. Třídy T, T, S, M, L jsou vzájemně různé 0 1 Podotkněme, že uvedené funkcionálně uzavřené třídy T0, T1, S, M, L jsou po dvou navzájem různé, což lze vidět z následující tabulky. Vezměme tři nejjednodušší elementární funkce 0, 1 a x. Následující tabulka ukazuje zastoupení těchto funkcí v jednotlivých třídách (znaménko + znamená, že funkce do třídy patří, - funkce do třídy nepatří). T 0 T 1 S M L 0 + - - + + 1 - + - + + x - - + - + Díky tomu, že ani v jedné z tříd nejsou funkce zastoupeny stejně, můžeme tvrdit, že třídy jsou vzájemně různé.