Difference between revisions of "ApCoCoA-1:Examples Tutorial De Logic"
(New page: ---- Weiter geht's im Kapitel . ---- Logik) |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | == Etwas Aussagen-Logik == | ||
+ | |||
+ | |||
+ | In der Logik ist man auf der Suche nach Wahrheitswerten von Formeln. Logische Formel können entweder "wahr" (Wahrheitswert 1) oder "falsch" (Wahrheitswert 0) sein. Die Suche nach den Wahrheitswerten einer Formel verwandeln wir, wie schon bei der Suche nach den Lösungen eines linearen Gleichungssystems (siehe Kapitel [[ApCoCoA:Examples_Tutorial_De_Equation|Lineare Gleichungssysteme]]), in die Suche nach Nullstellen. Dies bedeute für uns, dass wir die logischen Formeln in Polynome über dem Körper <math>\mathbb{F}_2</math>, welcher nur aus den Elementen 0 und 1 besteht, übersetzen müssen. | ||
+ | |||
+ | Zuallererst müssen wir festlegen, wie wir Texte in aussagenlogische Formeln übersetzen. Dafür brauchen wir zunächst mal Abkürzungen (hier <math>A</math> und <math>B</math>), welche für eine Aussage stehen, die entweder wahr oder falsch sein kann. | ||
+ | <center>[[Image:Logik_1.png]]</center> | ||
+ | Diese Übersetzungen haben dann, abhängig von den Wahrheitswerten von <math>A</math> und <math>B</math>, die folgenden Wahrheitswerte. | ||
+ | <center>[[Image:Logik_2.png]]</center> | ||
+ | |||
+ | Diese logischen Formeln übersetzen wir jetzt in Polynome über <math>\mathbb{F}_2</math>, so dass die Belegung "Wahrheitswert 1" in die "Nullstelle 1" übersetzt wird. | ||
+ | <center>[[Image:Logik_3.png]]</center> | ||
+ | So gilt z.B. <math>ab+a=0</math> für die folgenden Kombinationen von <math>a</math> und <math>b</math>: <math>a,b=0</math>, <math>a=0,b=1</math> und <math>a,b=1</math>. Dies sind genau die gleichen Werte, bei denen <math>A\Rightarrow B</math> den Wahrheitswert 1 hat (<math>A,B=0</math>, <math>A=0,B=1</math> und <math>A,B=1</math>). | ||
+ | |||
+ | Die ganze Sache funktioniert natürlich nur dann, wenn man für <math>A</math> und <math>B</math> nicht nur Elementarereignisse einsetzen kann, sondern auch schon erzeugte logische Formeln/Polynome. Die Übersetzungsregeln ändern sich nur geringfügig, vorausgesetzt wir haben bereits mit den obigen Regeln die Formeln <math>F</math> und <math>G</math> in die Polynome <math>f</math> und <math>g</math> übersetzt. | ||
+ | <center>[[Image:Logik_4.png]]</center> | ||
+ | Setzen wir für <math>f</math> die Übersetzung von <math>A</math>, also <math>a+1</math>, und für <math>g</math> die Übersetzung von <math>B</math>, also <math>b+1</math>, ein, so erhalten wir über <math>\mathbb{F}_2</math> die obige Tabelle zurück. Hierbei ist zu beachten, dass im Polynomring <math>\mathbb{F}_2\left[x,y\right]</math> <math>1+1=0</math> gilt, also gilt auch <math>2f=0</math> unabhängig von <math>f</math>. | ||
+ | |||
+ | |||
+ | |||
+ | == Beispiel == | ||
+ | |||
+ | |||
+ | In einer Firma werden zur Zeit die drei Projekte <math>A</math>, <math>B</math> und <math>C</math> bearbeitet. | ||
+ | Um herauszufinden, welche Projekte bis zum Ende der Woche abgeschlossen werden, befragt der Chef der Firma | ||
+ | die jeweiligen Projektleiter und erhält folgende Angaben: | ||
+ | |||
+ | 1) Es können nicht alle Projekte fertiggestellt werden. | ||
+ | |||
+ | 2) Um Projekt <math>B</math> fertigstellen zu können, muss Projekt <math>A</math> fertiggestellt sein. | ||
+ | |||
+ | 3) Es wird auf jeden Fall Projekt <math>B</math> oder Projekt <math>C</math> fertiggestellt. | ||
+ | |||
+ | 4) Projekt <math>C</math> kann nur fertiggestellt werden, wenn Projekt <math>B</math> fertiggestellt ist. | ||
+ | |||
+ | Bestimmen Sie diejenigen Projekte, die bis zum Ende der Woche fertiggestellt werden. | ||
+ | |||
+ | |||
+ | |||
+ | == Lösung mit CoCoA == | ||
+ | |||
+ | |||
+ | '''Festlegung der Abkürzungen:''' | ||
+ | |||
+ | <center> | ||
+ | <math>A</math> = "Projekt <math>A</math> wird bis Ende der Woche fertig" = <math>a+1</math>, | ||
+ | |||
+ | <math>B</math> = "Projekt <math>B</math> wird bis Ende der Woche fertig" = <math>b+1</math>, | ||
+ | |||
+ | <math>C</math> = "Projekt <math>C</math> wird bis Ende der Woche fertig" = <math>c+1</math>. | ||
+ | </center> | ||
+ | |||
+ | |||
+ | '''Übersetzung der Aussagen:''' | ||
+ | |||
+ | "''Es können nicht alle Projekte fertiggestellt werden''": | ||
+ | <center><math>F_1 := \neg\left(A\wedge B\wedge C\right)</math>.</center> | ||
+ | Zuerst übersetzten wir <math>\left(A\wedge B\right)</math> mittels der ersten Tabelle zu <math>ab+1=:f</math> und <math>C</math> zu | ||
+ | <math>c+1=:g</math>, damit wird dann (siehe zweite Tabelle) <math>\left(\left(A\wedge B\right)\wedge C\right)</math> zu | ||
+ | <math>\left(ab+1\right)\left(c+1\right)+\left(ab+1\right)+\left(c+1\right)= abc + 1</math>. Jetzt fehlt nur noch das | ||
+ | <math>\neg</math> in der Übersetzung, also lautet das zugehölrige Polynom | ||
+ | <center><math>f_1=abc</math>.</center> | ||
+ | |||
+ | "''Um Projekt <math>B</math> fertigstellen zu können, muss Projekt <math>A</math> fertiggestellt sein''": | ||
+ | <center><math>F_2 := \left(B\Rightarrow A\right)</math>,</center> | ||
+ | mit dem zugehörigen Polynom | ||
+ | <center><math>f_2=ba+b</math>.</center> | ||
+ | |||
+ | "''Es wird auf jeden Fall Projekt <math>B</math> oder Projekt <math>C</math> fertiggestellt''": | ||
+ | <center><math>F_3 := \left(B\vee C\right)</math>,</center> | ||
+ | das zugehörige Polynom lautet | ||
+ | <center><math>f_3=bc+b+c+1</math>.</center> | ||
+ | |||
+ | "''Projekt <math>C</math> kann nur fertiggestellt werden, wenn Projekt <math>B</math> fertiggestellt ist''": | ||
+ | <center><math>F_4 := \left(C\Rightarrow B\right)</math>,</center> | ||
+ | und | ||
+ | <center><math>f_4=cb+c</math>.</center> | ||
+ | |||
+ | |||
+ | '''CoCoA''' | ||
+ | |||
+ | Zuerst müssen wir in {\CoCoA} den passenden Ring eingeben | ||
+ | <center><tt>Use S::=Z/(2)[a,b,c];</tt></center> | ||
+ | Dann brauchen wir noch das Körperideal, welches die Nullstellen auf <math>0</math> und <math>1</math> festlegt | ||
+ | <center><tt>K:=Ideal(a^2+a, b^2+b, c^2+c);</tt></center> | ||
+ | Als nächstes geben wir die übersetzten Polynome ein | ||
+ | <center><tt>I:=Ideal(abc, ba+b, bc+b+c+1, cb+c) + K;</tt></center> | ||
+ | und erhalten mittels | ||
+ | <center><tt>ReducedGBasis(I);</tt></center> | ||
+ | die Antwort | ||
+ | <center><tt>[b+1, a+1, c].</tt></center> | ||
+ | |||
+ | |||
+ | '''Antwort:''' | ||
+ | |||
+ | Also müssen der Wahrheitswert von <math>A</math>, die Nullstelle von <math>a+1</math>, und der Wahrheitswert | ||
+ | von <math>B</math>, die Nullstelle von <math>b+1</math>, <math>1</math> sein und der Wahrheitswert von <math>C</math>, die Nullstelle | ||
+ | von <math>c</math>, <math>0</math>. Also werden die Projekte <math>A</math> und <math>B</math> bis Ende der Woche fertig. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
Line 4: | Line 107: | ||
---- | ---- | ||
− | Weiter geht's im Kapitel . | + | Weiter geht's im Kapitel [[ApCoCoA:Ap_Tutorial_De_Example|Ein rundes Beispiel]]. |
---- | ---- |
Latest revision as of 10:11, 18 July 2008
Etwas Aussagen-Logik
In der Logik ist man auf der Suche nach Wahrheitswerten von Formeln. Logische Formel können entweder "wahr" (Wahrheitswert 1) oder "falsch" (Wahrheitswert 0) sein. Die Suche nach den Wahrheitswerten einer Formel verwandeln wir, wie schon bei der Suche nach den Lösungen eines linearen Gleichungssystems (siehe Kapitel Lineare Gleichungssysteme), in die Suche nach Nullstellen. Dies bedeute für uns, dass wir die logischen Formeln in Polynome über dem Körper , welcher nur aus den Elementen 0 und 1 besteht, übersetzen müssen.
Zuallererst müssen wir festlegen, wie wir Texte in aussagenlogische Formeln übersetzen. Dafür brauchen wir zunächst mal Abkürzungen (hier und ), welche für eine Aussage stehen, die entweder wahr oder falsch sein kann.
Diese Übersetzungen haben dann, abhängig von den Wahrheitswerten von und , die folgenden Wahrheitswerte.
Diese logischen Formeln übersetzen wir jetzt in Polynome über , so dass die Belegung "Wahrheitswert 1" in die "Nullstelle 1" übersetzt wird.
So gilt z.B. für die folgenden Kombinationen von und : , und . Dies sind genau die gleichen Werte, bei denen den Wahrheitswert 1 hat (, und ).
Die ganze Sache funktioniert natürlich nur dann, wenn man für und nicht nur Elementarereignisse einsetzen kann, sondern auch schon erzeugte logische Formeln/Polynome. Die Übersetzungsregeln ändern sich nur geringfügig, vorausgesetzt wir haben bereits mit den obigen Regeln die Formeln und in die Polynome und übersetzt.
Setzen wir für die Übersetzung von , also , und für die Übersetzung von , also , ein, so erhalten wir über die obige Tabelle zurück. Hierbei ist zu beachten, dass im Polynomring gilt, also gilt auch unabhängig von .
Beispiel
In einer Firma werden zur Zeit die drei Projekte , und bearbeitet. Um herauszufinden, welche Projekte bis zum Ende der Woche abgeschlossen werden, befragt der Chef der Firma die jeweiligen Projektleiter und erhält folgende Angaben:
1) Es können nicht alle Projekte fertiggestellt werden.
2) Um Projekt fertigstellen zu können, muss Projekt fertiggestellt sein.
3) Es wird auf jeden Fall Projekt oder Projekt fertiggestellt.
4) Projekt kann nur fertiggestellt werden, wenn Projekt fertiggestellt ist.
Bestimmen Sie diejenigen Projekte, die bis zum Ende der Woche fertiggestellt werden.
Lösung mit CoCoA
Festlegung der Abkürzungen:
= "Projekt wird bis Ende der Woche fertig" = ,
= "Projekt wird bis Ende der Woche fertig" = ,
= "Projekt wird bis Ende der Woche fertig" = .
Übersetzung der Aussagen:
"Es können nicht alle Projekte fertiggestellt werden":
Zuerst übersetzten wir mittels der ersten Tabelle zu und zu , damit wird dann (siehe zweite Tabelle) zu . Jetzt fehlt nur noch das in der Übersetzung, also lautet das zugehölrige Polynom
"Um Projekt fertigstellen zu können, muss Projekt fertiggestellt sein":
mit dem zugehörigen Polynom
"Es wird auf jeden Fall Projekt oder Projekt fertiggestellt":
das zugehörige Polynom lautet
"Projekt kann nur fertiggestellt werden, wenn Projekt fertiggestellt ist":
und
CoCoA
Zuerst müssen wir in {\CoCoA} den passenden Ring eingeben
Dann brauchen wir noch das Körperideal, welches die Nullstellen auf und festlegt
Als nächstes geben wir die übersetzten Polynome ein
und erhalten mittels
die Antwort
Antwort:
Also müssen der Wahrheitswert von , die Nullstelle von , und der Wahrheitswert von , die Nullstelle von , sein und der Wahrheitswert von , die Nullstelle von , . Also werden die Projekte und bis Ende der Woche fertig.
Weiter geht's im Kapitel Ein rundes Beispiel.