\section{Karnaugh-Diagramme} \subsection{Einführung und Regeln} Karnaugh Diagramme werden zur Vereinfachung von logischen Gleichungen verwendet. Wir haben zwar in Kapitel \ref{sec:verein} und \ref{sec:morgan} eine Methode gelernt, logische Gleichungen zu vereinfachen. Die Karnaugh Diagramme sind eine andere Methode, welche in manchen Fällen schneller ist. \begin{center} \begin{tikzpicture} \matrix (kv) [ matrix of nodes, nodes in empty cells, column sep=-\pgflinewidth, row sep=-\pgflinewidth, nodes = { rectangle, draw = black, text width = 5mm, text height = 5mm, align = center } ]{ $0$ & $1$ & $X$ & \\ & & & \\ & $\textcolor{blue}{1}$ & & \\ & & & \\ }; \path[draw, decorate, decoration=brace] (kv-1-1.north west) -- (kv-1-2.north east) node [midway, above] {$\bar{A}$}; \path[draw, decorate, decoration=brace] (kv-1-3.north west) -- (kv-1-4.north east) node [midway, above] {$A$}; \path[draw, decorate, decoration=brace] (kv-2-1.south west) -- (kv-1-1.north west) node [midway, left] {$\bar{C}$}; \path[draw, decorate, decoration=brace] (kv-4-1.south west) -- (kv-3-1.north west) node [midway, left] {$C$}; \path[draw, decorate, decoration=brace] (kv-2-4.north east) -- (kv-3-4.south east) node [midway, right] {$D$}; \path[draw, decorate, decoration=brace] (kv-1-4.north east) -- (kv-1-4.south east) node [midway, right] {$\bar{D}$}; \path[draw, decorate, decoration=brace] (kv-4-4.north east) -- (kv-4-4.south east) node [midway, right] {$\bar{D}$}; \path[draw, decorate, decoration=brace] (kv-4-3.south east) -- (kv-4-2.south west) node [midway, below] {$B$}; \path[draw, decorate, decoration=brace] (kv-4-1.south east) -- (kv-4-1.south west) node [midway, below] {$\bar{B}$}; \path[draw, decorate, decoration=brace] (kv-4-4.south east) -- (kv-4-4.south west) node [midway, below] {$\bar{B}$}; \end{tikzpicture} \end{center} Karnaugh Diagramme können für logische Gleichungen mit mehreren Eingangsvariablen gebildet werden. Grundsätzlich gilt für $n$ Eingangsvariablen hat das Karnaugh Diagram $2 ^n$ Felder. Jedes Feld im Karnaugh Diagramm ist für ein Minterm oder ein Maxterm gedacht. Dabei gilt wie bei der Wahrheitstablle wenn die Ausgangsvariable 1 ist handelt es sich um ein Minterm. Ist die Ausgangsvariable 0, so ist es ein Maxterm. \\ Das interessante an Karnaugh Diagrammen ist, dass man mit den Min- bzw. Maxtermen "Päckchen" bilden kann. Päckchen können wie folgt gebildet werden. \begin{enumerate} \item Päckchen haben eine Grösse von $2 ^{n}$ \item Die Päckchen bestehen entweder nur aus Min- bzw. Maxtermen. \item Es soll immer das grösstmögliche Päckchen gebildet werden. \item Päckchen können sich schneiden. \end{enumerate} Durch das Bilden von Päckchen können neue Min- bzw. Maxterme gebildet werden, da in Päckchen Variablen in ihrer negierten und nicht negierten Form vorkommen. Diese gleichen sich aus und verschwinden. \nt{ Karnaugh Diagramme bestehend aus mehreren Eingangsvariablen können "eigenartige" Päckchen haben. \begin{minipage}{0.5\linewidth} \includegraphics[width=\textwidth]{fig/Fig_6.png} \cite{Luisier2024} \end{minipage} \begin{minipage}{0.5\linewidth} \includegraphics[width=\textwidth]{fig/Fig_7.png} \cite{Luisier2024} \end{minipage} } \nt{ Karnaugh Diagramme können unendlich viele Eingangsvariablen haben, jedoch beschränken wir uns auf maximal fünf Eingangsvariablen, da Karnaugh Diagramme mit mehr als fünf Eingangsvariablen unübersichtlich wird. } Um das Karnaugh Diagramm mit einer Wahrheitstablle auszufüllen, gibt es eine bestimmte Vorgehensweise. \begin{minipage}{0.5\linewidth} \begin{center} \begin{tikzpicture} \matrix (kv) [ matrix of nodes, nodes in empty cells, column sep=-\pgflinewidth, row sep=-\pgflinewidth, nodes = { rectangle, draw = black, text width = 5mm, text height = 5mm, align = center, text = gray } ]{ \node[kvbinhead] {}; & \node[kvbinhead] {00}; & \node[kvbinhead] {01}; & \node[kvbinhead] {11}; & \node[kvbinhead] {10}; \\ \node[kvbinhead] {00}; & & & & \\ \node[kvbinhead] {01}; & & & & \\ \node[kvbinhead] {11}; & & & & \\ \node[kvbinhead] {10}; & & & & \\ }; \node[] at ($(kv-1-1.north east) + (-6mm, +2mm)$) {AB}; \node[] at ($(kv-1-1.south west) + (-1mm, +5mm)$) {CD}; \draw[] ($(kv-1-1.north west) + (-3mm, 3mm)$) -- ($(kv-1-1.south east) + (-3.5mm, 3.5mm)$); \begin{pgfonlayer}{tl3} \draw[thick, blue, ->, > = stealth] (kv-2-2.center) -- (kv-3-2.center) to[out = 180, in = 180] (kv-5-2.center) -- (kv-4-2.center); \draw[thick, blue, ->, > = stealth] (kv-2-3.center) -- (kv-3-3.center) to[out = 180, in = 180] (kv-5-3.center) -- (kv-4-3.center); \draw[thick, blue, ->, > = stealth] (kv-2-5.center) -- (kv-3-5.center) to[out = 180, in = 180] (kv-5-5.center) -- (kv-4-5.center); \draw[thick, blue, ->, > = stealth] (kv-2-4.center) -- (kv-3-4.center) to[out = 180, in = 180] (kv-5-4.center) -- (kv-4-4.center); \end{pgfonlayer} \begin{pgfonlayer}{tl2} \draw[thick, darkgreen, ->, > = stealth] (kv-4-2.center) -- (kv-2-3.center); \draw[thick, red, ->, > = stealth] (kv-4-3.center) -- (kv-2-5.center); \draw[thick, darkgreen, ->, > = stealth] (kv-4-5.center) -- (kv-2-4.center); \end{pgfonlayer} \end{tikzpicture} \end{center} \end{minipage} \begin{minipage}{0.5\linewidth} \begin{center} \begin{tikzpicture} \matrix (kv) [ matrix of nodes, nodes in empty cells, column sep=-\pgflinewidth, row sep=-\pgflinewidth, nodes = { rectangle, draw = black, text width = 5mm, text height = 5mm, align = center, text = gray } ]{ \node[kvbinhead] {}; & \node[kvbinhead] {00}; & \node[kvbinhead] {01}; & \node[kvbinhead] {11}; & \node[kvbinhead] {10}; \\ \node[kvbinhead] {00}; & & & & \\ \node[kvbinhead] {01}; & & & & \\ \node[kvbinhead] {11}; & & & & \\ \node[kvbinhead] {10}; & & & & \\ }; \node[] at ($(kv-1-1.north east) + (-6mm, +2mm)$) {CD}; \node[] at ($(kv-1-1.south west) + (-1mm, +5mm)$) {AB}; \draw[] ($(kv-1-1.north west) + (-3mm, 3mm)$) -- ($(kv-1-1.south east) + (-3.5mm, 3.5mm)$); \begin{pgfonlayer}{tl3} \draw[thick, blue, ->, > = stealth] (kv-2-2.center) -- (kv-2-3.center) to[out = 90, in = 90] (kv-2-5.center) -- (kv-2-4.center); \draw[thick, blue, ->, > = stealth] (kv-3-2.center) -- (kv-3-3.center) to[out = 90, in = 90] (kv-3-5.center) -- (kv-3-4.center); \draw[thick, blue, ->, > = stealth] (kv-5-2.center) -- (kv-5-3.center) to[out = 90, in = 90] (kv-5-5.center) -- (kv-5-4.center); \draw[thick, blue, ->, > = stealth] (kv-4-2.center) -- (kv-4-3.center) to[out = 90, in = 90] (kv-4-5.center) -- (kv-4-4.center); \end{pgfonlayer} \begin{pgfonlayer}{tl2} \draw[thick, darkgreen, ->, > = stealth] (kv-2-4.center) -- (kv-3-2.center); \draw[thick, red, ->, > = stealth] (kv-3-4.center) -- (kv-5-2.center); \draw[thick, darkgreen, ->, > = stealth] (kv-5-4.center) -- (kv-4-2.center); \end{pgfonlayer} \end{tikzpicture} \end{center} \end{minipage}