From 03756e0131da7969b1fb347e31e55be43078c614 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 7 Sep 2013 15:04:33 +0200 Subject: [PATCH] DPLL --- source-code/Pseudocode/DPLL/DPLL.png | Bin 0 -> 58522 bytes source-code/Pseudocode/DPLL/DPLL.tex | 57 ++++++++++++++++++++++++++ source-code/Pseudocode/DPLL/Makefile | 36 ++++++++++++++++ source-code/Pseudocode/DPLL/Readme.md | 3 ++ 4 files changed, 96 insertions(+) create mode 100644 source-code/Pseudocode/DPLL/DPLL.png create mode 100644 source-code/Pseudocode/DPLL/DPLL.tex create mode 100644 source-code/Pseudocode/DPLL/Makefile create mode 100644 source-code/Pseudocode/DPLL/Readme.md diff --git a/source-code/Pseudocode/DPLL/DPLL.png b/source-code/Pseudocode/DPLL/DPLL.png new file mode 100644 index 0000000000000000000000000000000000000000..94c855187507f617b218826db1d6e1c31d8c3488 GIT binary patch literal 58522 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 literal 0 HcmV?d00001 diff --git a/source-code/Pseudocode/DPLL/DPLL.tex b/source-code/Pseudocode/DPLL/DPLL.tex new file mode 100644 index 0000000..02eb0a0 --- /dev/null +++ b/source-code/Pseudocode/DPLL/DPLL.tex @@ -0,0 +1,57 @@ +\documentclass{article} +\usepackage[pdftex,active,tightpage]{preview} +\setlength\PreviewBorder{2mm} + +\usepackage[utf8]{inputenc} % this is needed for umlauts +\usepackage[ngerman]{babel} % this is needed for umlauts +\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf +\usepackage{amssymb,amsmath,amsfonts} % nice math rendering +\usepackage{braket} % needed for \Set +\usepackage{algorithm,algpseudocode} + +\algnewcommand\True{\textbf{true}\space} +\algnewcommand\False{\textbf{false}\space} +\algnewcommand{\LineComment}[1]{\State \(\triangleright\) #1} +\begin{document} +\begin{preview} + \begin{algorithm}[H] + \begin{algorithmic} + \Require Klauselmenge $K$, Symbolmenge $S$, (partielles) Modell $M$ + + \Procedure{DPLL}{$K$, $S$, $M$} + \If{Alle Klauseln sind wahr in $M$} + \State \Return \texttt{true} + \EndIf + + \If{Eine Klausel ist falsch in $M$} + \State \Return \texttt{false} + \EndIf + \\ + + \State $P, Wert \gets \Call{FindeEinheitsklausel}{K, S, M}$ + \If{$P$ existiert} + \State $M \gets \Call{SetzePInModell}{P, Wert, M}$ + \State \Return $\Call{DPLL}{k, S \setminus \Set{P}, M}$ + \EndIf + \\ + + \LineComment{Ein reines Literal ist eines, das in jeder Klausel} + \LineComment{immer wahr bzw. immer falsch ist} + \State $P, Wert \gets \Call{FindeReinesLiteral}{K, M}$ + \If{$P$ existiert} + \State $m \gets \Call{SetzePInModell}{P, Wert, M}$ + \State \Return $\Call{DPLL}{K, S \setminus \Set{P}, M}$ + \EndIf + \\ + + \State $P \gets S.pop()$ \Comment{Symbolmenge schrumpft} + \State $M_1 \gets \Call{SetzePInModell}{P, \texttt{true}, M}$ + \State $M_2 \gets \Call{SetzePInModell}{P, \texttt{false}, M}$ + \State \Return $\Call{DPLL}{K, S, M_1} \lor \Call{DPLL}{K, S, M_2}$ + \EndProcedure + \end{algorithmic} + \caption{DPLL-Verfahren} + \label{alg:dpll} + \end{algorithm} +\end{preview} +\end{document} diff --git a/source-code/Pseudocode/DPLL/Makefile b/source-code/Pseudocode/DPLL/Makefile new file mode 100644 index 0000000..2f5c137 --- /dev/null +++ b/source-code/Pseudocode/DPLL/Makefile @@ -0,0 +1,36 @@ +SOURCE = DPLL +DELAY = 80 +DENSITY = 300 +WIDTH = 500 + +make: + pdflatex $(SOURCE).tex -output-format=pdf + pdflatex $(SOURCE).tex -output-format=pdf + make clean + +clean: + rm -rf $(TARGET) *.class *.html *.log *.aux *.data *.gnuplot + +gif: + pdfcrop $(SOURCE).pdf + convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif + make clean + +png: + make + make svg + inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png + +transparentGif: + convert $(SOURCE).pdf -transparent white result.gif + make clean + +svg: + make + #inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg + pdf2svg $(SOURCE).pdf $(SOURCE).svg + # Necessary, as pdf2svg does not always create valid svgs: + inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg + rsvg-convert -a -w $(WIDTH) -f svg $(SOURCE).svg -o $(SOURCE)2.svg + inkscape $(SOURCE)2.svg --export-plain-svg=$(SOURCE).svg + rm $(SOURCE)2.svg diff --git a/source-code/Pseudocode/DPLL/Readme.md b/source-code/Pseudocode/DPLL/Readme.md new file mode 100644 index 0000000..d65363d --- /dev/null +++ b/source-code/Pseudocode/DPLL/Readme.md @@ -0,0 +1,3 @@ +Compiled example +---------------- +![Example](DPLL.png)