statt
F(X_1, …,X_i,…, X_n) =
X_i AND F(X_1,…,X_i-1,1,X_i+1,…,X_n) OR
!X_i AND F(X_1,…,X_i-1,1,X_i+1,…,X_n)
meinst du wohl
F(X_1, …,X_i,…, X_n) =
X_i AND F(X_1,…,X_i-1,1,X_i+1,…,X_n) OR
!X_i AND F(X_1,…,X_i-1,0,X_i+1,…,X_n)
soso, na vielleicht weiss das hier jemand,
ich könnte da auch nur spekulieren
interessant ist zum Beispiel die Entwicklung einer unbekannten Funktion
man hat f gegeben und weiss für beliebige X1,X2,X3,X4 was da nun raus kommt,
X1 = 1, X2 = 0, X3 = 1, X4 = 1 -> f = 0
usw. für alle Werte kann man sich das ausrechnen lassen,
das ist ja schön zu wissen, allerdings könnte f = X1 sein oder
f = X1 v X2 v X3 v X4
oder was völlig anderes,
dies möchte man gerne genau herausfinden (zum Beispiel zum Reduzieren, Normalform, …),
bei so einer Funktion mit 4 Variablen könnte man das eventuell von Hand rausfinden,
bei 35 Variablen wird es allerdings schwer..,
ein Computer mit diesen Algorithmus rechnet das ruck zuck aus
(wenn er eine lange Tabelle mit allen Werten hat),
-> toll!
oder man hat eine zu komplizierte Funktion
(benutzt NOR, Implikation usw., obwohl man nur UND,ODER, NICHT zur Verfügung hat)
-> es lässt sich eine Funktion mit den einfachen Junktoren entwickeln,
da ist ja nun wirklich auch keine große Kunst in dem Satz,
das ist eine einfache grundlegende Umformungsregel,
die musste einfach nur mal aufgeschrieben werden ;)
schon wenn man X -> Y in !X v Y umwandelt
könnte man ja diesen grundlegenden Satz benutzen
X -> Y
= (X ^ 1 -> Y) v (!X ^ 0 -> Y)
= (X ^ ((Y ^ 1 -> 1) v (!Y ^ 1 -> 0)) v (!X ^ ((Y ^ 0 -> 1) v (!Y ^ 0 -> 0)))
= (X ^ (Y v 0)) v (!X ^ (Y v !Y))
= (X ^ Y) v !X
= (X v !X) ^ (Y v !X)
= Y v !X