Logische Ausdrücke vereinfachen
-
Hallo zusammen,
ich arbeite gerade mit logischen Ausdrücken. Mir fällt das Vereinfachen noch etwas schwer, aber eigentlich gelten ja alle Gesetze wie das Distributiv-, Kommutativ- und Assoziativgesetz.
Ich hatte folgenden Ausdruck, den ich durch Substitution vereinfach habe. Geht das auch einfacher? Ohne Substiution mit "normalem Ausmultiplizieren"? Wie geht das?
\begin{math}(A \wedge
\begin{math}C \vee (A \wedge\vee (A \vee B)\end{math}
\begin{math} C = A \vee B \end{math}= (C \vee A) \wedge (C \vee
= ((A \vee
\vee A) \wedge ((A \vee
\vee
= (A \vee
\wedge (A \vee
= A \vee B\end{math}
Vielen Dank!
lg, freakC++
-
Klar geht das, nur fehlt dir noch das Absorbtionsgesetz \begin{math}(A \wedge
\vee A = A\end{math}
-
Diese Gesetz kenn ich.
Aber wie soll das gehen. Wenn ich nach der Mathematik mit Plus und Mal gehe.
Könnt ihr mir das zeigen. Ich kriege das nur mit der umständlichen Substitution hin.
Vielen Dank
lg, freakC++
-
Zb so
\begin{math}(A \wedge
\vee (A \vee
= ((A \wedge
\vee A) \vee B = A \vee B\end{math}
-
mmh...und wie kommst Du auf diese Klammerung? Das kann ich nicht nachvollziehen.
Vielen Dank
lg, freakC++
-
freakC++ schrieb:
Diese Gesetz kenn ich.
Aber wie soll das gehen. Wenn ich nach der Mathematik mit Plus und Mal gehe.
boolesche Logik folgt ein wenig anderen Gesetzen als die Arithmetik - in den "normalen" Zahlenbereichen gilt das Absorptionsgesetz nicht.
mmh...und wie kommst Du auf diese Klammerung? Das kann ich nicht nachvollziehen.
Anwendung des Assoziativgesetzes für
v
-
CStoll schrieb:
Anwendung des Assoziativgesetzes für
v
Oh! Stimmt. Jetzt sehe ich es. Ich muss lernen, sowas auch im Voraus zu sehen. Ich habe hier noch einen logischen Term, den ich mit vielen Substiutionen vereinfachen konnte. Das Ergebnis verwirrt mich jedoch und ich schätze, dass sich ein Fehler eingeschlichen hat. Außerdem muss das doch bestimmt irgendwie auch einfacher gehen. Könnt ihr da auch mal drüber schauen? Danke
\begin{math} \overline {(A \wedge
\vee \bar A} \vee B \end{math}
\begin{math} C = A \wedge B\end{math}
\begin{math} \overline {C \vee \bar A} \vee B = \bar C \wedge A \vee B = (\overline {A \wedge B)} \wedge A \vee B = (\bar A \vee \bar
\wedge A \vee B\end{math}
\begin{math} D = A \vee B\end{math}
\begin{math} (\bar A \vee \bar
\wedge D = (D \wedge \bar A) \vee (D \wedge \bar
= ((A \vee
\wedge \bar A) \vee ((A \vee
\wedge \bar
\end{math}
\begin{math} = ((A \wedge \bar A) \vee (B \wedge \bar A)) \vee ((A \wedge \bar
\vee (B \wedge \bar B)) = (B \wedge \bar A) \vee (A \wedge \bar
\end{math}
\begin{math} E = A \wedge \bar B\end{math}
\begin{math} (B \wedge \bar A) \vee E = (E \vee
\wedge (E \vee \bar A) = ((A \wedge
\wedge \bar
\wedge ((A \wedge \bar
\vee \bar A) = 0 \wedge A \wedge \bar B\end{math}
Und jetzt? Der Term ist so nicht weiter lösbar. Was mache ich falsch? Und wie kann ich das einfacher ohne diese ganzen Substitutionen machen? Den Trick bei der letzten Aufgabe mit dem Absorbtions- und Assoziativgesetz sehe ich hier nicht. Bitte helft mir, auch wenn der Ausdruck etwas länger ist
lg, freakC++
-
Sagt dir DeMorgan etwas?
\begin{math} \overline {(A \wedge
\vee \bar A} \vee B \end{math}
\begin{math} (\overline {(A \wedge B)} \wedge A) \vee B \end{math}
\begin{math} ((\bar A \vee \bar\wedge A) \vee B \end{math}
Distributivgesetz
\begin{math} ((\bar A \wedge A) \vee (\bar B \wedge A)) \vee B \end{math}
Komplementärgesetz
\begin{math} 0 \vee (\bar B \wedge A) \vee B \end{math}
Neutrales Element
\begin{math} (\bar B \wedge A) \vee B \end{math}
nochmals Distributivgesetz
\begin{math} (\bar B \vee\wedge (A \vee
\end{math}
und ein weiteres Mal Komplementärgesetz und neutrales Element
\begin{math} (A \vee\end{math}
(ich bin mir allerdings auch nicht sicher, warum du etwas anderes herausbekommen hast)
-
freakC++ schrieb:
CStoll schrieb:
Anwendung des Assoziativgesetzes für
v
Oh! Stimmt. Jetzt sehe ich es. Ich muss lernen, sowas auch im Voraus zu sehen. Ich habe hier noch einen logischen Term, den ich mit vielen Substiutionen vereinfachen konnte. Das Ergebnis verwirrt mich jedoch und ich schätze, dass sich ein Fehler eingeschlichen hat. Außerdem muss das doch bestimmt irgendwie auch einfacher gehen. Könnt ihr da auch mal drüber schauen? Danke
\begin{math} \overline {(A \wedge
\vee \bar A} \vee B \end{math}
\begin{math} C = A \wedge B\end{math}
\begin{math} \overline {C \vee \bar A} \vee B = \bar C \wedge A \vee B = (\overline {A \wedge B)} \wedge A \vee B = (\bar A \vee \bar
\wedge A \vee B\end{math}
\begin{math} D = A \vee B\end{math}
\begin{math} (\bar A \vee \bar
\wedge D = (D \wedge \bar A) \vee (D \wedge \bar
= ((A \vee
\wedge \bar A) \vee ((A \vee
\wedge \bar
\end{math}
\begin{math} = ((A \wedge \bar A) \vee (B \wedge \bar A)) \vee ((A \wedge \bar
\vee (B \wedge \bar B)) = (B \wedge \bar A) \vee (A \wedge \bar
\end{math}
\begin{math} E = A \wedge \bar B\end{math}
\begin{math} (B \wedge \bar A) \vee E = (E \vee
\wedge (E \vee \bar A) = ((A \wedge
\wedge \bar
\wedge ((A \wedge \bar
\vee \bar A) = 0 \wedge A \wedge \bar B\end{math}
Und jetzt? Der Term ist so nicht weiter lösbar. Was mache ich falsch? Und wie kann ich das einfacher ohne diese ganzen Substitutionen machen? Den Trick bei der letzten Aufgabe mit dem Absorbtions- und Assoziativgesetz sehe ich hier nicht. Bitte helft mir, auch wenn der Ausdruck etwas länger ist
lg, freakC++
Bei der Einführung von D haste umgeklammert. Darf das?
-
CStoll schrieb:
Sagt dir DeMorgan etwas?
Ja durchaus! Ich weiß nur nie, ob ich das auch hier anweden kann, weil ich unsicher bin, ob man das auf mehrere Faktoren anwenden kann. Daher substituiere ich auch immer wie blöde, damit ja kein Fehler reinkommt. Leider ohne Erfolg.
Danke für deine Lösung.
volkard schrieb:
Bei der Einführung von D haste umgeklammert. Darf das?
Eigentlich muss ich das sogar tun, denn ich ersetze einen Buchstaben durch einen ganzen Ausddruck. Liegt da wirklich mein Fehler? Das kann ich mir nicht vorstellen.
Könnt ihr mir helfen, meinen Fehler in meiner Version zu finden, weil eigentlich müsste ja auch mein umständlicher Weg funktionieren.
Vielen Dank
lg, freakC++
-
Der Unterschied zu meiner und CStolls Version tritt hier auf.
CStoll:
\begin{math} (\overline {(A \wedge B)} \wedge A) \vee B \end{math}Ich:
\begin{math} \overline {(A \wedge B)} \wedge A \vee B \end{math}
Es hat tatsächlich etwas mit Klammerung zu tun. Warum kann ich das denn nicht so machen, wie ich es geschrieben habe?
Danke
-
Das Assoziativgesetz gilt nur bei gleichen Operatoren und afaik ist keine RAngfolge zwischen den logischen Operatoren definiert - d.h. der Ausdruck \begin{math} A \vee B \wedge C \end{math} ist nicht klar definiert, deshalb solltest du dort Klammern setzen, umd den Unterschied zwischen \begin{math} (A \vee
\wedge C \end{math} und \begin{math} A \vee (B \wedge C) \end{math} kenntlich zu machen.
-
Ich muss mich selbst korrigieren. Ich denke, Du has recht, weil die Stellung der Klammerung egal ist: Es kommt immer etwas anderes raus. Das ist ein Unterschied zu "normaler Algebra".
\begin{math} A \vee B \wedge C \end{math}
\begin{math} (A \vee
\wedge C = (A \wedge C) \vee (B \wedge C) \neq A \vee B \wedge C \end{math}
\begin{math} A \vee (B \wedge C) = (A \vee C) \wedge (B \vee C) \neq A \vee B \wedge C \end{math}
Eine Klammerung verändert den Ausdruck also immer. Deswegen ist er nicht eindeutig bestimmt. Könnte man ihn von links nach rechts lesen, dann könnte ich auch Klammern setzten und da kommt wie man oben sieht etwas anderes raus.
Viele Grüße
freakC++
-
freakC++ schrieb:
CStoll schrieb:
der Ausdruck \begin{math} A \vee B \wedge C \end{math} ist nicht klar definiert
Das glaube ich nach ein paar Überlegungen jetzt nicht mehr. Ich schätzhe mal, dass man wie üblich von links nach rechts liest und ggf. Klammern setzen kann, um dem Ausdruck eine andere Bedeutung zu verleihen.
Eigentlich ist es üblicher "und" stärker binden zu lassen, weil "und" im Prinzip eine binäre Multiplikation ist.
-
Dann könnte ich um den UND - Audruck auch Klammern setzen. Das würde aber den ganzen Term verändern, wie man bei meinem letzten Post sieht.
-
Jester schrieb:
Eigentlich ist es üblicher "und" stärker binden zu lassen, weil "und" im Prinzip eine binäre Multiplikation ist.
Punkt für dich - aber es ist besser Klammern zu setzen als sich durch die fehlenden Klammern verwirren zu lassen
@freak: In der booleschen Algebra gelten mitunter andere Regeln als beim Rechnen mit gewöhnlichen Zahlen.
-
CStoll schrieb:
aber es ist besser Klammern zu setzen als sich durch die fehlenden Klammern verwirren zu lassen
sehe ich genauso. Das einzige worauf ich mich wirklich einlassen würde, wäre die "und"s ganz wegzulassen und es dadurch wirklich wie ne Multiplikation zu schreiben, dann ist es imo relativ klar. Ansonsten denke ich, dass man mit klammern besser fährt.
@freakC++: es geht ja nicht darum, dass du nach belieben umklammern darfst, sondern darum wie so ein ausdruck zu lesen ist, wenn die klammern fehlen. Offensichtlich kommen je nach Konvention, die man verwendet unterschiedliche Dinge raus, also ist es wichtig sich auf eine Konvention zu einigen. Keine davon ist aber per se falsch. Du hast vorgeschlagen wie "normal auch" einfach von links nach rechts zu klammern. Mein Einwand war nun, dass du "2+3*5" ja auch nicht von rechts klammerst, sondern eben die Multiplikation stärker bindet, also die Klammern dorthin gehören... und bei "und" ist es eben ähnlich. Trotzdem kann man sich natürlich auch auf eine andere Konvention einigen und damit leben.
-
CStoll schrieb:
aber es ist besser Klammern zu setzen als sich durch die fehlenden Klammern verwirren zu lassen
Aber das geht doch gar nicht. Ich könnte bei 2+3*5 auch 2+(3*5) schreiben. Es wäre dasselbe. Wenn ich aber jetzt beim boolschen Ausdruck Klammern setze, dann kommt automatisch etwas anderes raus, wie ich ja gezeigt habe.
Übersehe ich da was?
-
freakC++ schrieb:
Aber das geht doch gar nicht. Ich könnte bei 2+3*5 auch 2+(3*5) schreiben. Es wäre dasselbe.
und wenn du (2+3)*5 schriebst?
-
freakC++ schrieb:
CStoll schrieb:
aber es ist besser Klammern zu setzen als sich durch die fehlenden Klammern verwirren zu lassen
Aber das geht doch gar nicht. Ich könnte bei 2+3*5 auch 2+(3*5) schreiben. Es wäre dasselbe. Wenn ich aber jetzt beim boolschen Ausdruck Klammern setze, dann kommt automatisch etwas anderes raus, wie ich ja gezeigt habe.
Übersehe ich da was?
Ja - eine definierte Rangfolge hat den selben Effekt wie Klammern, deshalb sind bei diesem "Beweis" das ≠ nicht
freakC++ schrieb:
\begin{math} A \vee (B \wedge C) = (A \vee C) \wedge (B \vee C) \neq A \vee B \wedge C \end{math}
die Ausdrücke sind äquivalent, auch wenn sie nicht so aussehen.
(die Operationen in einem Verbund sind gleichberechtigt, in einem Ring nicht)