comparison notes/tex/basics.tex @ 17:099613ee2f37

fourth slides and sheet
author Markus Kaiser <markus.kaiser@in.tum.de>
date Tue, 12 Nov 2013 00:34:55 +0100
parents b83150706135
children 8408cf61d46b
comparison
equal deleted inserted replaced
16:b83150706135 17:099613ee2f37
789 \item Eine gültige Formel nennt man \structure{Tautologie} 789 \item Eine gültige Formel nennt man \structure{Tautologie}
790 \end{itemize} 790 \end{itemize}
791 791
792 \end{frame} 792 \end{frame}
793 } 793 }
794
795 \defineUnit{aussagenlogikaequivalenzen}{%
796 {
797 \newcommand{\true}{1}
798 \newcommand{\false}{0}
799 \newcommand{\spc}{\hspace{3em}}
800 \newcommand{\F}{F}
801 \newcommand{\G}{G}
802 \newcommand{\K}{H}
803
804 \begin{frame}
805 \frametitle{Äquivalenzregeln}
806 \setbeamercovered{dynamic}
807
808 \begin{description}[Triviale Kontradiktion\quad]
809 \item[Identität] $\F \wedge \true \equiv \F \spc \F \vee \false \equiv \F$
810 \item[Dominanz] $\F \vee \true \equiv \true \spc \F \wedge \false \equiv \F$
811 \item[Idempotenz] $\F \vee \F \equiv \F \spc \F \wedge \F \equiv \F$
812 \item[Doppelte Negation] $\neg \neg \F \equiv \F$
813 \item[Triviale Tautologie] $\F \vee \neg \F \equiv \true$
814 \item[Triviale Kontradiktion] $\F \wedge \neg \F \equiv \false$
815 \bigskip
816 \item[Kommutativität] $\F \vee \G \equiv \G \vee \F$\\
817 $\F \wedge \G \equiv \G \wedge \F$
818 \item[Assoziativität] $(\F \vee \G) \vee \K \equiv \F \vee (\G \vee \K)$\\
819 $(\F \wedge \G) \wedge \K \equiv \F \wedge (\G \wedge \K)$
820 \item[Distributivität] $\F \vee (\G \wedge \K) \equiv (\F \vee \G) \wedge (\F \vee \K)$\\
821 $\F \wedge (\G \vee \K) \equiv (\F \wedge \G) \vee (\F \wedge \K)$
822 \item[De Morgan] $\neg(\F \wedge \G) \equiv \neg \F \vee \neg \G$\\
823 $\neg(\F \vee \G) \equiv \neg\F \wedge \neg\G$
824 \bigskip
825 \item[Implikation] $\F \rightarrow \G \equiv \neg \F \vee \G$
826 \item[Bikonditional] $\F \leftrightarrow \G \equiv (\F \rightarrow \G) \wedge (\G \rightarrow \F)$
827 \end{description}
828 \end{frame}
829
830 %\begin{frame}
831 %\frametitle{Äquivalenzregeln}
832 %\setbeamercovered{dynamic}
833
834 %\vspace{-2em}
835 %\begin{align}
836 %\F \wedge \true &\equiv \F \spc \F \vee \false \equiv \F \tag{\structure{Identität}}\\
837 %\F \vee \true &\equiv \true \spc \F \wedge \false \equiv \F \tag{\structure{Dominanz}}\\
838 %\F \vee \F &\equiv \F \spc \F \wedge \F \equiv \F \tag{\structure{Idempotenz}}\\
839 %\neg \neg \F &\equiv \F \tag{\structure{Doppelte Negation}}\\
840 %\F \vee \neg \F &\equiv \true \tag{\structure{Triviale Tautologie}}\\
841 %\F \wedge \neg \F &\equiv \false \tag{\structure{Triviale Kontradiktion}}\\
842 %\bigskip
843 %\F \vee \G &\equiv \G \vee \F \tag{\structure{Kommutativität}}\\
844 %\F \wedge \G &\equiv \G \wedge \F\\
845 %(\F \vee \G) \vee \K &\equiv \F \vee (\G \vee \K) \tag{\structure{Assoziativität}}\\
846 %(\F \wedge \G) \wedge \K &\equiv \F \wedge (\G \wedge \K)\\
847 %\F \vee (\G \wedge \K) &\equiv (\F \vee \G) \wedge (\F \vee \K) \tag{\structure{Distributivität}}\\
848 %\F \wedge (\G \vee \K) &\equiv (\F \wedge \G) \vee (\F \wedge \K)\\
849 %\neg(\F \wedge \G) &\equiv \neg \F \vee \neg \G \tag{\structure{De Morgan}}\\
850 %\neg(\F \vee \G) &\equiv \neg\F \wedge \neg\G\\
851 %\bigskip
852 %\F \rightarrow \G &\equiv \neg \F \vee \G \tag{\structure{Implikation}}\\
853 %\F \leftrightarrow \G &\equiv (\F \rightarrow \G) \wedge (\G \rightarrow \F) \tag{\structure{Bikonditional}}\\
854 %\end{align}
855 %\end{frame}
856 }
857 }
858
859 \defineUnit{aussagenlogiknormalformen}{%
860 \begin{frame}[c]
861 \frametitle{Literale und Klauseln}
862 \setbeamercovered{dynamic}
863
864 \begin{definition}[Literal]
865 Ein \structure{Literal} ist eine Variable $v \in V$ oder die Negation $\neg v$ einer Variable.
866 \end{definition}
867
868 \begin{definition}[Klausel]
869 Eine \structure{Klausel} verknüpft mehrere Literale mit einem assoziativen Operator.
870 \end{definition}
871
872 \vfill
873
874 \begin{example}[]
875 Seien $a, \neg b, c$ Literale. Dann sind
876 \begin{itemize}
877 \item $a \wedge \neg b \wedge c$
878 \item $a \vee \neg b \vee c$
879 \end{itemize}
880 Klauseln.
881 \end{example}
882 \end{frame}
883
884 {
885 \newcommand{\klausel}[2]{\underbracket{(##2)}_{\text{##1-Klausel}}}
886 \begin{frame}
887 \frametitle{DNF}
888 \setbeamercovered{dynamic}
889
890 \begin{definition}[Disjunktive Normalform]
891 Eine \structure{DNF-Klausel} ist eine Konjunktion von Literalen $L_i$.\\
892 Eine Formel $F$, ist in \structure{Disjunktiver Normalform}, wenn sie eine Disjunktion von DNF-Klauseln ist.
893 \[ F \defeq \bigvee \bigwedge_i L_i \]
894 \end{definition}
895 \begin{itemize}
896 \item Ausnahme: $\textrm{false}$ ist auch in DNF
897 \end{itemize}
898
899 \begin{example}[]
900 $F$ ist in DNF.
901 \[ F \defeq \klausel{DNF}{a \structure{\wedge} b \structure{\wedge} \neg c} \alert{\vee} \klausel{DNF}{\neg b \structure{\wedge} c} \alert{\vee} \klausel{DNF}{\neg a \structure{\wedge} b \structure{\wedge} \neg c} \]
902 \end{example}
903 \end{frame}
904
905 \begin{frame}
906 \frametitle{KNF}
907 \setbeamercovered{dynamic}
908
909 \begin{definition}[Konjunktive Normalform]
910 Eine \structure{KNF-Klausel} ist eine Disjunktion von Literalen $L_i$.\\
911 Eine Formel $F$, ist in \structure{Konjunktiver Normalform}, wenn sie eine Konjunktion von KNF-Klauseln ist.
912 \[ F \defeq \bigwedge \bigvee_i L_i \]
913 \end{definition}
914 \begin{itemize}
915 \item Ausnahme: $\textrm{true}$ ist auch in KNF
916 \end{itemize}
917
918 \begin{example}[]
919 $F$ ist in KNF.
920 \[ F \defeq \klausel{KNF}{\neg a \alert{\vee} b} \structure{\wedge} \klausel{KNF}{\neg b \alert{\vee} c} \structure{\wedge} \klausel{KNF}{a \alert{\vee} b \alert{\vee} \neg c} \]
921 \end{example}
922 \end{frame}
923 }
924
925 \begin{frame}
926 \frametitle{Konstruktion der NF}
927 \setbeamercovered{dynamic}
928
929 \begin{itemize}
930 \item \structure{Jede} nicht-triviale Formel ist in DNF und KNF umwandelbar
931 \item Durch Äquivalenzumformungen berechenbar (exponentiell groß!)
932 \item Oder: Konstruktion mit Wahrheitstabellen
933 \end{itemize}
934
935 \vfill
936
937 \begin{block}{Normalformen aus Wahrheitstabellen}
938 Gegeben eine Formel $F$ und ihre Wahrheitstabelle
939 \begin{itemize}
940 \item DNF
941 \begin{enumerate}
942 \item Betrachte Zeilen mit Eintrag \structure{$1$}
943 \item Bilde \structure{Konjunktion} aus der \structure{Belegung}
944 \item Bilde \structure{Disjunktion} aller erhaltenen Klauseln
945 \end{enumerate}
946 \bigskip
947 \item KNF
948 \begin{enumerate}
949 \item Betrachte Zeilen mit Eintrag \alert{$0$}
950 \item Bilde \alert{Disjunktion} aus der \alert{Negation} der Belegung
951 \item Bilde \alert{Konjunktion} aller erhaltenen Klauseln
952 \end{enumerate}
953 \end{itemize}
954 \end{block}
955 \end{frame}
956
957 {
958 \newcommand{\klausel}[4]{(##2 a ##1 ##3 b ##1 ##4 c)}
959 \begin{frame}
960 \frametitle{Konstruktion der NF}
961 \setbeamercovered{dynamic}
962
963 \begin{example}[]
964 Gegeben eine Formel $F$ mit folgender Semantik
965 \begin{center}
966 \begin{tabu} to .4\textwidth {ccc|[1.2pt]c}
967 a & b & c & $F$ \\ \tabucline[1.2pt]{-}
968 0 & 0 & 0 & 0 \\
969 0 & 0 & 1 & 0 \\
970 0 & 1 & 0 & 0 \\
971 0 & 1 & 1 & 1 \\
972 1 & 0 & 0 & 1 \\
973 1 & 0 & 1 & 1 \\
974 1 & 1 & 0 & 1 \\
975 1 & 1 & 1 & 0
976 \end{tabu}
977 \end{center}
978 $F$ dargestellt in
979 \begin{itemize}
980 \item DNF $\hfill\klausel{\wedge}{\neg}{}{} \vee (a \wedge \neg b) \vee \klausel{\wedge}{}{}{\neg}\hfill$
981 \medskip
982 \item KNF $\hfill(a \vee b) \wedge \klausel{\vee}{\neg}{}{\neg} \wedge \klausel{\vee}{\neg}{\neg}{\neg}\hfill$
983 \end{itemize}
984 \end{example}
985 \end{frame}
986
987 \begin{frame}
988 \frametitle{Mengendarstellung der KNF}
989 \setbeamercovered{dynamic}
990
991 \begin{block}{Mengendarstellung der KNF}
992 Eine Formel $F = \bigwedge \bigvee L_i$ in \structure{KNF} kann in einer \structure{Mengendarstellung} repräsentiert werden.
993 \begin{itemize}
994 \item Klauseln werden durch Mengen von Literalen dargestellt
995 \[\left\{ a, \neg b, c \right\} \text{ steht für } (a \vee \neg b \vee c)\]
996 \item KNF-Formeln sind Mengen von Klauseln
997 \[ \left\{ \left\{ \neg a \right\}, \left\{ a, \neg b, c \right\} \right\} \text{ steht für } \neg a \wedge (a \vee \neg b \vee c) \]
998 \item $\emptyset$ steht für \textrm{true}, $\left\{ \emptyset \right\}$ für \textrm{false}
999 \end{itemize}
1000 \end{block}
1001 \begin{example}[]
1002 Gegeben $F \defeq (a \vee b) \wedge \klausel{\vee}{\neg}{}{\neg} \wedge \klausel{\vee}{\neg}{\neg}{\neg}$ in KNF.
1003 \[ \left\{ \left\{ a, b \right\}, \left\{ \neg a, b, \neg c \right\}, \left\{ \neg a, \neg b, \neg c \right\} \right\}\]
1004 \end{example}
1005 \end{frame}
1006 }
1007 }
1008
1009 \defineUnit{DPLL}{%
1010 \begin{frame}
1011 \frametitle{KNF aus Syntaxbaum}
1012 \setbeamercovered{dynamic}
1013
1014 \begin{block}{Idee}
1015 Erzeuge die KNF aus dem Syntaxbaum
1016 \begin{enumerate}
1017 \item<1-> Weise jedem \structure{inneren Knoten} eine Variable zu
1018 \item<1,3-> Variablen sind \structure{abhängig} von ihren Kindern
1019 \item<1,4-> Berechne \structure{kleine} KNFs und führe diese \structure{zusammen}
1020 \end{enumerate}
1021 \end{block}
1022 \begin{columns}[T]
1023 \begin{column}{.7\textwidth}
1024 % FIXME: onlys around A_\vee needed for "correct" fadein
1025 \begin{align}
1026 (x \wedge y) \vee z
1027 \uncover<3->{\equiv &\hphantom{{}\wedge {}}\only<3->{A_\vee}\\
1028 &\structure{\wedge (A_\vee \leftrightarrow A_\wedge \vee z)}\\
1029 &\alert{\wedge (A_\wedge \leftrightarrow x \wedge y)}\\}
1030 \uncover<4->{\equiv &\hphantom{{}\wedge {}}\only<4->{A_\vee}\\
1031 &\structure{\wedge (A_\vee \vee \neg A_\wedge) \wedge (A_\vee \vee \neg z)}\\
1032 &\qquad\structure{\wedge (\neg A_\vee \vee A_\wedge \vee z)}\\
1033 &\alert{\wedge (\neg A_\wedge \vee x) \wedge (\neg A_\wedge \vee y)} \\
1034 &\qquad\alert{\wedge(A_\wedge \vee \neg x \vee \neg y)}}
1035 \end{align}
1036 \end{column}
1037 \begin{column}{.3\textwidth}
1038 \begin{tikzpicture}[grow=down, level distance = 33]
1039 \tikzstyle{op} = [pretty]
1040 \tikzstyle{var} = [pretty, rectangle]
1041 \tikzstyle{edge from parent} = [edge]
1042
1043 \tikzstyle{level 1} = [sibling distance = 50]
1044 \tikzstyle{level 2} = [sibling distance = 30]
1045 \node at (0, 0) {};
1046 \node[op] at (0, -1) {\alt<1>{$\vee$}{$A_\vee$}}
1047 child {
1048 node[op] {\alt<1>{$\wedge$}{$A_\wedge$}}
1049 edge from parent
1050 child {
1051 node[var] {$x$}
1052 edge from parent
1053 }
1054 child {
1055 node[var] {$y$}
1056 edge from parent
1057 }
1058 }
1059 child {
1060 node[var] {$z$}
1061 };
1062 \end{tikzpicture}
1063 \end{column}
1064 \end{columns}
1065 \end{frame}
1066
1067 \begin{frame}
1068 \frametitle{DPLL}
1069 \setbeamercovered{dynamic}
1070
1071 \begin{definition}[DPLL-Belegung]
1072 Sei $F$ eine Formel in KNF und $p$ eine Variable von $F$.\\
1073 Dann bezeichnet \structure{$F[p\backslash\mathrm{true}]$} die Formel, die entsteht, wenn jedes Vorkommnis von $p$ in F durch $\mathrm{true}$ ersetzt und vereinfacht wird.
1074 \end{definition}
1075
1076 \begin{block}{DPLL}
1077 Gegeben eine Formel $F$ in KNF
1078 \begin{itemize}
1079 \item Wenn $F = \mathrm{true}$ dann antworte \enquote{erfüllbar}
1080 \item Wenn $F = \mathrm{false}$ dann antworte \enquote{unerfüllbar}
1081 \item Sonst
1082 \begin{enumerate}
1083 \item Wähle eine Variable $p$ in $F$
1084 \item Prüfe ob $F[p\backslash\mathrm{true}]$ oder $F[p\backslash\mathrm{false}]$ erfüllbar
1085 \end{enumerate}
1086 \end{itemize}
1087 \end{block}
1088 \begin{itemize}
1089 \item Schlaue Wahl der Variable beschleunigt Ausführung
1090 \item Wähle Variablen die einzeln stehen (\structure{One-Literal-Rule})
1091 \end{itemize}
1092 \end{frame}
1093 }