FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Formale Informatik

Entwicklungssatz von Shannon

Entwicklungssatz von Shannon 2004-04-15 03:30
mkleine
Hallo,

kann mir jemand in verständlichen Worten den Entwicklungssatz
von Shannon erläutern? Wofür wird er insbesondere angewandt?

Vielen Dank für Hinweise!
Matthias Kleine

Re: Entwicklungssatz von Shannon 2004-04-15 08:17
Slater
sprichst du von DKR oder wie?
das wäre nett zu erwähnen,

und meinst du dort die Rückgewinnung von s(t) im Abtasttheorem?
bevor ich was ganz anderes erzähle ;)

obwohl, soviel gibts da ja auch nicht zu sagen:

man hat eine Folge von Abtastwerten s(nT),
die nimmt man sich heran, rechnet und bastelt ne Weile,
und dann kommt wieder das Ausgangssignal s(t) wie vor der Abtastung raus

und zwar indem man eine Summe aus versetzten si-Funktionen benutzt
mit Amplituden abhängig von den Abtastwerten s(nT),


wofür braucht man den?
um das Ursprungssignal zurückzugewinnen


edit
ach mist, das ist ja im Grundstudiumsforum, da war das wohl falsch? ;)

Re: Entwicklungssatz von Shannon 2004-04-15 12:50
mkleine
Hallo Slater,

eins voraus: Ich studiere nicht an der Uni Hamburg, sondern
an der Fernuni Hagen. Mein Bruder, der an der Uni Hamburg
studiert, hat mir den Tipp gegeben, mal in dieses Forum
reinzuschauen, was ich nun hiermit zum ersten Mal mache.

Was du schreibst, könnte in die richtige Richtung gehen,
allerdings kann ich mit den Begriffen Abtastwerte etc.
nicht allzu viel anfangen.

Wir behandeln den Entwicklungssatz von Shannon (ich dachte
die Bezeichnung wäre allgemein gebräuchlich, scheint aber
nicht der Fall zu sein) im Rahmen der Booleschen Algebra.
Die allgemeine Schreibweise lautet

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)

Ausdrücke der Art A OR B formt man dann in der Art
A OR B = A OR !AB um.

Der formale Teil ist mir soweit klar, aber die Anwendung
ist mir schleierhaft, da hier ja nicht vereinfacht,
sondern eher verkompliziert wird (es wird wohl irgendwas
"entwickelt", aber ich verstehe nicht _was_ und worauf
es hinausläuft).

Grüße
Matthias Kleine

Re: Entwicklungssatz von Shannon 2004-04-15 16:58
Slater
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