% The block diagram code is probably more verbose than necessary \begin{tikzpicture}[auto, node distance=2cm] \node[problem] (klika) {\problem{KLIKA}}; \node[solution, right of=klika] (r-klika) {T/N}; \node[left of=klika] (i-klika) {$G, n$}; \node[problem, below of=klika] (opk) {\problem{OPK}}; \node[solution, right of=opk] (r-opk) {T/N}; \node[left of=opk] (i-opk) {$G_1, a, b$}; \draw[->, alpha, left] (i-klika) -- node[right] {$f$} (i-opk); \draw[->] (klika) -- (r-klika); \draw[->] (opk) -- (r-opk); \draw[->] (i-klika) -- (klika); \draw[->] (i-opk) -- (opk); \draw[Implies-Implies, double distance=2pt] (r-klika) -- (r-opk); \end{tikzpicture}