# Example: Coloring diagrams - linear relaxation

Published 2014-03-09 | Author: Henri Menke

TikZ is used for reproducing a diagram by Lê Nguyên Hoang seen: on http://www.science4all.org/le-nguyen-hoang/integer-programming/

The code was written by Henri Menke and published on TeX.SE.

Do you have a question regarding this example, TikZ or LaTeX in general? Just ask in the LaTeX Forum.
Oder frag auf Deutsch auf TeXwelt.de. En français: TeXnique.fr.

% Coloring diagrams - linear relaxation
% Author: Henri Menke
\documentclass[tikz, border=10pt]{standalone}
\usetikzlibrary{shapes}
\begin{document}
\begin{tikzpicture}[
every path/.style = {},
every node/.append style = {font=\sffamily}
]
\begin{scope}
(-0.5,-0.5) rectangle (0,6.5);
\node[rotate=90, above] at (0,3) {Non-Negative Gold};
(-0.5,-0.5) rectangle (8.5,0);
\node[below] at (4,0) {Non-Negative Bills};
\shade[left color=red, bottom color=red, right color=white, opacity=0.5]
(-0.5,5.5) -- (8.5,3) -- (8.5,6.5) -- (-0.5,6.5) -- cycle;
\path (-0.5,5.5) -- node[pos=0.23, sloped, above] {Volume Constraint}
(8.5,3);
(2.5,6.5) -- (8.5,6.5) -- (8.5,0) -- (5,0) -- cycle;
\path (5,0) -- node[pos=0.3, sloped, above] {Weight Constraint} (2.5,6.5);
\node[text width=7em, align=center] at (2,2)
{Feasible Region of the Linear Relaxation};
\draw[->] (-0.5,0) -- (8.5,0) node[below] {Gold bars};
\draw[->] (0,-0.5) -- (0,6.5) node[above] {Bill stacks};
\node[rotate=-45, above, text width=9em, align=center] at (7.25,5.25)
{Level Curves of the Objective Function};
\path[clip] (-0.5,-0.5) rectangle (8.5,6.5);
\foreach \i in {0.5,3,...,13} {
\draw[help lines] (-0.5,\i) -- +(-45:15);
}
\end{scope}
\draw[very thick, ->] (9,3.25) -- node[above, text width=4cm, align=center]
\begin{scope}[shift={(14,0)}]
(-0.5,-0.5) rectangle (0,6.5);
(-0.5,-0.5) rectangle (8.5,0);
\shade[left color=red, bottom color=red, right color=white, opacity=0.5]
(-0.5,5.5) -- (8.5,3) -- (8.5,6.5) -- (-0.5,6.5) -- cycle;
(2.5,6.5) -- (8.5,6.5) -- (8.5,0) -- (5,0) -- cycle;
\draw[->] (-0.5,0) -- (8.5,0) node[below] {Gold bars};
\draw[->] (0,-0.5) -- (0,6.5) node[above] {Bill stacks};
\foreach \i in {0,1,...,6.5} {
\draw[help lines] (-0.5,\i) -- (8.5,\i);
}
\foreach \i in {2,4,...,8.5} {
\draw[help lines] (\i,6.5) -- (\i,-0.5);
}
\foreach \i in {0,1,...,5} {
\node[draw,cross out,label={left:\i}] at (0,\i) {};
}
\foreach \i in {0,1,...,4} {
\node[draw,cross out] at (2,\i) {};
}
\foreach \i in {0,1,...,2} {
\node[draw,cross out] at (4,\i) {};
}
\foreach \i in {0,2,...,6} {
\node[below] at (\i,0) {\pgfmathparse{int(\i/2)}\pgfmathresult};
}
\node[very thick, draw=black, fill=white, rectangle, rounded corners,
text width=8em, align=center] at (6,5)
{Feasible solutions of the integer program are the crosses};
\end{scope}
\end{tikzpicture}
\end{document}