Hi,
genau kenne ich die formalen Bestimmungen nicht, aber ich versuche es mal, zu interpretieren.
Der komische Ausdruck auf der rechten Seite besteht anscheinend aus ternären Operatoren, wie sie z.B. in C vorkommen.
Also z.B. (a>2) ? b = 1 : b = 3 ist äquivalent zu
Code:
if(a > 2) {
b = 1;
} else {
b = 3;
}
Jetzt wandeln wir den gesamten Ausdruck: (d?(b?(a?true: false): true): (c?(b?true: false): true)) in Pseudocode:
Code:
if d:
if b:
if a:
true
else:
false
true
else:
if c:
if b:
true
else:
false
else:
true
Auf die Shannon-Normalform komme ich, indem ich mir die Pfade anschaue, die zu True werden:
(D und B und A) oder (D und Nicht B) oder (Nicht D und C und B) oder (Nicht D und Nicht C). Die Klammern dienen nur der Übersicht.
Wenn ich das jetzt umsortiere zu
(A und B und D) oder (B und C und Nicht D) oder (D und Nicht B) oder (Nicht C und Nicht D), komme ich auf den angegebenen Term: a&b&d|b&c&!d|d&!b|!c&!d
Das Ganze hat keinen formalen Anspruch und zeigt nur, wie ich mir das hergeleitet habe. Ob das deinen Professoren so reicht, weiß ich nicht ;-)