% The block diagram code is probably more verbose than necessary \begin{tikzpicture}[auto, node distance=2cm] \node[problem] (sp) {\problem{SP}}; \node[solution, right of=sp] (r-sp) {T/N}; \node[left of=sp] (i-sp) {$A, n$}; \node[problem, below of=sp] (por) {\problem{POR}}; \node[solution, right of=por] (r-por) {T/N}; \node[left of=por] (i-por) {$W, sz, d$}; \draw[->, alpha, left] (i-sp) -- node[right] {$f$} (i-por); \draw[->] (sp) -- (r-sp); \draw[->] (por) -- (r-por); \draw[->] (i-sp) -- (sp); \draw[->] (i-por) -- (por); \draw[Implies-Implies, double distance=2pt] (r-sp) -- (r-por); \end{tikzpicture}