Created
November 5, 2024 16:19
-
-
Save JakWai01/a6d28e79f6e11106e7021888e3c0be9a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| \documentclass{article} | |
| \usepackage{tikz} | |
| \usetikzlibrary{positioning, arrows.meta} | |
| \begin{document} | |
| \begin{figure} | |
| \centering | |
| \begin{tikzpicture}[auto, node distance=1.5cm,>=Stealth] | |
| % Define node styles | |
| \tikzstyle{node} = [circle, draw, minimum size=8mm] | |
| \tikzstyle{source} = [circle, draw, minimum size=8mm, fill=black!20] | |
| \tikzstyle{sink} = [circle, draw, minimum size=8mm, fill=black!20] | |
| \tikzstyle{edge} = [->, thick] | |
| % Nodes | |
| \node[source] (source) at (-3, -3.75) {source}; | |
| \node[node, right=3cm of source, yshift=9.00cm] (A1) {A1}; | |
| \node[node, below of=A1] (A2) {A2}; | |
| \node[node, below of=A2] (A3) {A3}; | |
| \node[node, below of=A3] (A4) {A4}; | |
| \node[node, below of=A4] (A5) {A5}; | |
| \node[node, below of=A5] (A6) {A6}; | |
| \node[node, below of=A6] (B1) {B1}; | |
| \node[node, below of=B1] (B2) {B2}; | |
| \node[node, below of=B2] (B3) {B3}; | |
| \node[node, below of=B3] (B4) {B4}; | |
| \node[node, below of=B4] (C1) {C1}; | |
| \node[node, below of=C1] (C2) {C2}; | |
| \node[node, below of=C2] (C3) {C3}; | |
| \node[node, right=4cm of A1, yshift=-5.5cm] (F1) {F1}; | |
| \node[node, below of=F1] (F2) {F2}; | |
| \node[node, below of=F2] (F3) {F3}; | |
| \node[node, below of=F3] (F4) {F4}; | |
| \node[node, below of=F4] (F5) {F5}; | |
| \node[node, below of=F5] (F6) {F6}; | |
| \node[sink, right=3cm of F3, yshift=-0.25cm] (sink) {sink}; | |
| % Source edges | |
| \foreach \i in {A1, A2, A3, A4, A5, A6, B1, B2, B3, B4, C1, C2, C3} | |
| \draw[edge] (source) -- (\i); | |
| % Edges between left and right nodes with weights | |
| \draw[edge, blue] (A1) -- node[above] {7} (F1); | |
| \draw[edge, blue] (A2) -- node[above] {7} (F2); | |
| \draw[edge, blue] (A3) -- node[above] {7} (F3); | |
| \draw[edge, blue] (A4) -- node[above] {7} (F4); | |
| \draw[edge, blue] (A5) -- node[above] {7} (F5); | |
| \draw[edge, blue] (A6) -- node[above] {7} (F6); | |
| \draw[edge, red] (B1) -- node[above right] {8} (F1); | |
| \draw[edge, red] (B2) -- node[above right] {8} (F2); | |
| \draw[edge, red] (B3) -- node[above] {8} (F4); | |
| \draw[edge, red] (B4) -- node[above] {8} (F6); | |
| \draw[edge, green] (C1) -- node[above right] {5} (F1); | |
| \draw[edge, green] (C1) -- node[above right] {5} (F2); | |
| \draw[edge, green] (C2) -- node[above] {10} (F3); | |
| \draw[edge, green] (C3) -- node[above] {10} (F5); | |
| % Right-side edges to sink | |
| \foreach \i/\w in {F1/20, F2/20, F3/17, F4/15, F5/17, F6/15} | |
| \draw[edge] (\i) -- node[above] {\w} (sink); | |
| \end{tikzpicture} | |
| \caption{Network flow graph} | |
| \end{figure} | |
| \begin{figure} | |
| \begin{tikzpicture} | |
| % Define spacing and length variables | |
| \def\lineLength{12} % Length of each line | |
| \def\tickSpacing{0.1} % Spacing between ticks | |
| % Adjust y-coordinates for larger spacing | |
| \def\lineAShift{5} % y-coordinate of line A | |
| \def\lineBShift{2.5} % y-coordinate of line B | |
| \def\lineCShift{0} % y-coordinate of line C | |
| % Draw line A | |
| \node[left] at (0, \lineAShift) {}; | |
| \draw[->] (0, \lineAShift) -- ++(\lineLength, 0); | |
| \foreach \x in {0,...,11} % Add tick marks along the line | |
| \draw (\x, \lineAShift - 0.2) -- ++(0, 0.4); | |
| % Frame 1 | |
| \draw[fill=blue!20, draw=blue] (0, \lineAShift) rectangle (0.7, \lineAShift + 0.5); | |
| \node at (0.35, \lineAShift + 0.2) {$A_1$}; | |
| \node at (0.35, \lineAShift + 1) {7}; | |
| \draw[fill=red!20, draw=red] (0.7, \lineAShift) rectangle (1.5, \lineAShift + 0.5); | |
| \node at (1.1, \lineAShift + 0.2) {$B_1$}; | |
| \node at (1.1, \lineAShift + 1) {8}; | |
| \draw[fill=green!20, draw=green] (1.5, \lineAShift) rectangle (2, \lineAShift + 0.5); | |
| \node at (1.75, \lineAShift + 0.2) {$C_1$}; | |
| \node at (1.75, \lineAShift + 1) {5}; | |
| % Frame 2 | |
| \draw[fill=blue!20, draw=blue] (2, \lineAShift) rectangle (2.7, \lineAShift + 0.5); | |
| \node at (2.35, \lineAShift + 0.2) {$A_2$}; | |
| \node at (2.35, \lineAShift + 1) {7}; | |
| \draw[fill=green!20, draw=green] (2.7, \lineAShift) rectangle (3.3, \lineAShift + 0.5); | |
| \node at (3.0, \lineAShift + 0.2) {$C_1$}; | |
| \node at (3.0, \lineAShift + 1) {5}; | |
| \draw[fill=red!20, draw=red] (3.3, \lineAShift) rectangle (4, \lineAShift + 0.5); | |
| \node at (3.65, \lineAShift + 0.2) {$B_2$}; | |
| \node at (3.65, \lineAShift + 1) {8}; | |
| % Frame 3 | |
| \draw[fill=blue!20, draw=blue] (4, \lineAShift) rectangle (4.7, \lineAShift + 0.5); | |
| \node at (4.35, \lineAShift + 0.2) {$A_3$}; | |
| \node at (4.35, \lineAShift + 1) {7}; | |
| \draw[fill=green!20, draw=green] (4.7, \lineAShift) rectangle (5.7, \lineAShift + 0.5); | |
| \node at (5.2, \lineAShift + 0.2) {$C_2$}; | |
| \node at (5.2, \lineAShift + 1) {10}; | |
| % Frame 4 | |
| \draw[fill=blue!20, draw=blue] (6, \lineAShift) rectangle (6.7, \lineAShift + 0.5); | |
| \node at (6.35, \lineAShift + 0.2) {$A_4$}; | |
| \node at (6.35, \lineAShift + 1) {7}; | |
| \draw[fill=red!20, draw=red] (6.7, \lineAShift) rectangle (7.5, \lineAShift + 0.5); | |
| \node at (7.1, \lineAShift + 0.2) {$B_3$}; | |
| \node at (7.1, \lineAShift + 1) {8}; | |
| % Frame 5 | |
| \draw[fill=blue!20, draw=blue] (8, \lineAShift) rectangle (8.7, \lineAShift + 0.5); | |
| \node at (8.35, \lineAShift + 0.2) {$A_5$}; | |
| \node at (8.35, \lineAShift + 1) {7}; | |
| \draw[fill=green!20, draw=green] (8.7, \lineAShift) rectangle (9.7, \lineAShift + 0.5); | |
| \node at (9.2, \lineAShift + 0.2) {$C_3$}; | |
| \node at (9.2, \lineAShift + 1) {10}; | |
| % Frame 6 | |
| \draw[fill=blue!20, draw=blue] (10, \lineAShift) rectangle (10.7, \lineAShift + 0.5); | |
| \node at (10.35, \lineAShift + 0.2) {$A_6$}; | |
| \node at (10.35, \lineAShift + 1) {7}; | |
| \draw[fill=red!20, draw=red] (10.7, \lineAShift) rectangle (11.5, \lineAShift + 0.5); | |
| \node at (11.1, \lineAShift + 0.2) {$B_4$}; | |
| \node at (11.1, \lineAShift + 1) {8}; | |
| % Arrows under timesteps on line A | |
| \node[below] at (0, \lineAShift - 0.2) {0}; | |
| \node[below] at (2, \lineAShift - 0.2) {20}; | |
| \node[below] at (4, \lineAShift - 0.2) {40}; | |
| \node[below] at (6, \lineAShift - 0.2) {60}; | |
| \node[below] at (8, \lineAShift - 0.2) {80}; | |
| \node[below] at (10, \lineAShift - 0.2) {100}; | |
| \end{tikzpicture} | |
| \caption{Frame-based Schedule} | |
| \end{figure} | |
| \end{document} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment