annotate minimum_bisection/presentation/tikzpictures.tex @ 168:cc6bb3ca79fb default tip

6/4 is not 2
author Markus Kaiser <markus.kaiser@in.tum.de>
date Fri, 28 Nov 2014 01:41:50 +0100
parents 46887cff614e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
125
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
1 \pgfdeclarelayer{background}
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
2 \pgfdeclarelayer{demand}
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
3 \pgfdeclarelayer{marked}
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
4 \pgfdeclarelayer{foreground}
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
5 \pgfsetlayers{background,demand,marked,main,foreground}
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
6
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
7 \tikzstyle{edge} = [thick]
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
8 \tikzstyle{marked edge} = [edge, line width=3pt, tumorange]
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
9 \tikzstyle{directed} = [arrows={-latex}, shorten >=1pt]
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
10 \tikzstyle{node on edge} = [fill=white, circle, inner sep=1pt, font=\footnotesize]
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
11
134
782316b52e1a fix displaystyle of fractions; choose randomly from [-1, 1]
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 130
diff changeset
12 \tikzstyle{flow graph} = [x=4em, y=4.5em]
125
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
13 \tikzstyle{flow node} = [circle, draw, thick, fill=tumblue!20, minimum size=6pt, inner sep=0pt]
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
14 \tikzstyle{flow edge} = [edge]
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
15 \tikzstyle{demand edge} = [edge, line width=2.5pt, arrows={-latex}, dotted, tumred!50]
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
16 \tikzstyle{tree edge} = [marked edge, tumgreen]
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
17 \tikzstyle{flow capacity} = [node on edge]
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
18 \tikzstyle{flow demand} = [node on edge, text=tumred]
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
19
129
1b2e38c66a67 dual conversion
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 128
diff changeset
20 \tikzstyle{highlight} = [draw=tumorange, very thick, rounded corners]
1b2e38c66a67 dual conversion
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 128
diff changeset
21
1b2e38c66a67 dual conversion
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 128
diff changeset
22 \newcommand{\tikzmark}[1]{\tikz[overlay,remember picture,baseline] \node [anchor=base] (#1) {};}
1b2e38c66a67 dual conversion
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 128
diff changeset
23
125
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
24 \newcommand{\flownodes}{%
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
25 \pgfmathsetseed{42}
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
26 \def\jiggliness{0.2}
134
782316b52e1a fix displaystyle of fractions; choose randomly from [-1, 1]
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 130
diff changeset
27 \def\jiggle{++ (rand * \jiggliness, rand * \jiggliness)}
125
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
28
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
29 \path[use as bounding box] (-4, 2.7) rectangle (3.5,6.15);
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
30
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
31 \foreach \pos/\name in {
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
32 % {(0,1)/a},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
33 {(-0.5,2.75)/b},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
34 {(0.5,3.25)/c},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
35 {(0.75,4)/d},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
36 {(-0.5,4.5)/e},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
37 {(-1.25,3.75)/f},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
38 {(1.5,4.75)/g},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
39 {(0,5.5)/h},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
40 {(2.5,5.5)/i},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
41 {(3.5,3.5)/j},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
42 {(2.25,4)/k},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
43 {(-2,6)/l},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
44 {(-2.5,5)/m},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
45 {(-4,5)/n}}
130
0924abe91f55 solve the dual problem
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 129
diff changeset
46 \draw \pos\jiggle node[flow node] (\name) {};
0924abe91f55 solve the dual problem
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 129
diff changeset
47 % \draw \pos\jiggle node[flow node, label={\name}, font=\footnotesize] (\name) {};
125
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
48 }
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
49 \newcommand{\flowedges}[1][]{%
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
50 \foreach \source/\dest in {
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
51 % {a/b}, {a/n}, {a/j},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
52 {n/b}, {b/j}, {f/b}, {c/b},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
53 {c/d}, {e/d}, {e/f}, {g/i},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
54 {h/e}, {h/i}, {i/j}, {k/j},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
55 {l/h}, {l/m}, {n/m},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
56 {c/k}, {k/i}, {g/d}, {m/e}, {n/l},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
57 {m/f}, {f/c}, {d/k}, {e/g}, {c/e}}
128
f753b74f0e72 do not use edge keyword
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 127
diff changeset
58 \draw[flow edge, #1] (\source) -- (\dest);
125
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
59 }
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
60 \newcommand{\flowcapacities}[1][]{%
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
61 \foreach \source/\dest/\capacity in {
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
62 % {a/b}, {a/n}, {a/j},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
63 {n/b/2}, {b/j/10}, {c/b/3}, {f/b/4},
127
c213b1f538ed captain! we have reached the primal program!
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 126
diff changeset
64 {c/d/4}, {e/d/2}, {e/f/4}, {g/i/2},
125
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
65 {h/e/1}, {h/i/2}, {i/j/6}, {k/j/4},
127
c213b1f538ed captain! we have reached the primal program!
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 126
diff changeset
66 {l/h/3}, {l/m/4}, {n/m/5},
125
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
67 {c/k/4}, {k/i/3}, {g/d/1}, {m/e/4}, {n/l/6},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
68 {m/f/1}, {f/c/2}, {d/k/4}, {e/g/1}, {c/e/5}}
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
69 \path (\source) -- node[flow capacity, #1]{\capacity} (\dest);
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
70 }
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
71 \newcommand{\flowdemands}{%
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
72 \begin{pgfonlayer}{demand}
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
73 \foreach \source/\dest/\demand/\pos/\bendage in {
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
74 {n/j/10/0.2/right},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
75 {h/j/8/0.2/left},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
76 {e/g/1/0.7/left},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
77 {n/h/12/0.7/left},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
78 {k/m/5/0.8/right}}
130
0924abe91f55 solve the dual problem
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 129
diff changeset
79 \draw[demand edge, bend \bendage=15] (\source) edge node[flow demand, pos=\pos]{\demand} (\dest);
125
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
80 \end{pgfonlayer}
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
81 }
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
82 \newcommand{\flowtreeedges}[1][]{%
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
83 \begin{pgfonlayer}{marked}
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
84 \foreach \source/ \dest in {
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
85 % {a/b},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
86 {c/b},
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
87 {c/d}, {e/d}, {e/f}, {g/i},
126
b948ace51db7 more frames on the way to the linear program
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 125
diff changeset
88 {m/e}, {d/k}, {i/j}, {k/j},
b948ace51db7 more frames on the way to the linear program
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 125
diff changeset
89 {h/i}, {l/m}, {n/m}}
130
0924abe91f55 solve the dual problem
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 129
diff changeset
90 \draw [tree edge, #1] (\source.center) -- (\dest.center);
125
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
91 \end{pgfonlayer}
2af28ac8a070 first few slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
92 }
126
b948ace51db7 more frames on the way to the linear program
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 125
diff changeset
93 \newcommand{\flowtreeedgestwo}[1][]{%
b948ace51db7 more frames on the way to the linear program
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 125
diff changeset
94 \begin{pgfonlayer}{marked}
b948ace51db7 more frames on the way to the linear program
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 125
diff changeset
95 \foreach \source/ \dest in {
b948ace51db7 more frames on the way to the linear program
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 125
diff changeset
96 {n/l}, {l/h}, {h/i}, {i/g}, {i/j},
b948ace51db7 more frames on the way to the linear program
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 125
diff changeset
97 {j/k}, {g/d}, {d/c}, {g/e}, {c/f},
b948ace51db7 more frames on the way to the linear program
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 125
diff changeset
98 {f/m}, {f/b}}
128
f753b74f0e72 do not use edge keyword
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 127
diff changeset
99 \draw[tree edge, #1] (\source.center) -- (\dest.center);
126
b948ace51db7 more frames on the way to the linear program
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 125
diff changeset
100 \end{pgfonlayer}
b948ace51db7 more frames on the way to the linear program
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 125
diff changeset
101 }