Search code examples
optimizationlatextikz

Tikz: Multiobjective optimization


I am trying to create the following graph:

mutiobjective optimization

I am trying with this code, but I am not able to create those regions.

\begin{tikzpicture}
\draw [fill=black!15] plot  %
coordinates {(3.7,0.35) (3.7,3.25) (0.75,0.35)};
\draw [fill=black!30] plot  %
coordinates {(2.75,0.9) (2.75,3.5) (0.75,0.9)};
\draw[->] (0,0) -- (5,0) node[anchor=north] {$C$};
\draw   (1,0.9) node[anchor=north] {$(C_o,R_r)$}
    (2.75,2.75) node[anchor=west] {$(C_r,R_o)$}
    (3.7,0.35) node[anchor=west] {$(C_i,R_i)$};
\draw[->] (0,0) -- (0,4) node[anchor=east] {$R$};
\draw[thick,->] (3.7,0.35) -- (1,0.9);
\draw[thick,->] (3.7,0.35) -- (2.75,2.75);
\draw [gray] (2.75,2.75) arc [radius=1.52, start angle=111.6, end angle= 
168.49];
\end{tikzpicture}

Can anyone help me?

Thank you very much in advance,

Julio


Solution

  • Just a raw sketch:

    \documentclass[tikz,border=2mm]{standalone}
    
    \begin{document}
    
    \begin{tikzpicture}
    \draw[->] (-1,0) -- (5,0) node[anchor=north] {$C$};
    \draw[->] (0,-1) -- (0,4) node[anchor=east] {$R$};
    \fill [gray!15] plot coordinates {(3.7,0.35) (3.2,3.2) (0.5,0.8)};
    \fill [gray!15] plot [smooth cycle] coordinates {(2.7,1.35) (3.2,3.2) (1.5,2.6) (0.5,0.8)};
    \fill [gray!30] plot [smooth cycle] coordinates {(3.4,0.65) (2.7,2.9) (2,2.6) (1.2,1.75) (1,0.9)};
    \filldraw (3.7,0.35) circle (1.5pt);
    \filldraw (2.75,2.75) circle (1.5pt);
    \filldraw (1,0.9) circle (1.5pt);
    \draw  (1,0.9) node[anchor=north] {$(C_o,R_r)$}
    (2.75,2.75) node[anchor=west] {$(C_r,R_o)$}
    (3.7,0.35) node[anchor=west] {$(C_i,R_i)$};
    \draw[thick,->] (3.7,0.35) -- (1,0.9);
    \draw[thick,->] (3.7,0.35) -- (2.75,2.75);
    \draw[dashed] (1,0.9) arc [radius=2.2, start angle=171.6, end angle=101];
    \end{tikzpicture}
    
    \end{document}
    

    where I used \fill [gray!30] for the darker region and two \fill [gray!15] for the lighter one (two, to better sketch both straight and curve edges).

    The three points (1,0.9), (3.7,0.35) and (2.75,2.75) are from your code, the other ones should be more carefully sketched on paper before typing the code.