A MetaPost solution using the boxes package, included in a LuaLaTeX program to make it easier to typeset.
The differents nodes are linked thanks to this link macro:
def link(suffix a, b) =
drawarrow a.c -- b.c cutbefore bpath a cutafter bpath b
enddef;
As its syntax suggests, it deletes the parts of the line before the boundary of the first node and after the boundary of the second, before drawing the actual arrow.
\documentclass[border=2mm]{standalone}
\usepackage{luamplib}
\mplibtextextlabel{enable}
\everymplib{input boxes;
def link(suffix a, b) =
drawarrow a.c -- b.c cutbefore bpath a cutafter bpath b
enddef;
beginfig(1);}
\everyendmplib{endfig;}
\begin{document}
\begin{mplibcode}
u := 1.75cm;
boxit.fv("$F(V)$"); fv.c = origin;
boxit.fw("$F(W)$"); fw.c = (2u, 0);
boxit.fpu1("$F'(U_1)$"); fpu1.c = (-u, u);
boxit.fpu2("$F'(U_2)$"); fpu2.c = (u, 2u);
boxit.fpu3("$F'(U_3)$"); fpu3.c = (3u, u);
drawunboxed(fv, fw, fpu1, fpu2, fpu3);
forsuffixes a = fv, fw, fpu3, fpu2: link(fpu1, a); endfor
forsuffixes a = fv, fw, fpu3: link(fpu2, a); endfor
link(fv, fw); link(fpu3, fv); link(fpu3, fw);
\end{mplibcode}
\end{document}
Output:

\mor(0,0)(2,0)[200,200]{}or alike.200are the number of DC-units which should be shortened. One value stands for 'at beginning' and the second one for 'at start'. – LaRiFaRi Jun 23 '15 at 23:20