\begin{tikzpicture}[
  flowchart,
  specific/.style={dashed},
  node distance=1em
  ]
  \node(selection)[process]{Selection};
  \node(expansion)[process, below=of selection]{Expansion};
  \node(simulation)[process, below=of expansion]{Simulation};
  \node(edummy)[below=of simulation]{};
  \node(evaluation)[process, right=of edummy, xshift=5em,thick,fill=red!30]{Find
    defender's strategy\\ and get defender's reward};
  \node(backpropagation)[process, below=of edummy]{Backpropagate\\
    defender's reward};

  \node(start)[above=of selection,yshift=2em]{};
  \draw[transition] (start)--(selection);

  \draw[transition] (selection) -- (expansion);
  \draw[transition] (expansion) -- (simulation);
  \draw[transition] (simulation) -| (evaluation) node[pos=0.25,auto]
  {\small Attacker's strategy};
  \draw[transition] (evaluation) |- (backpropagation)
  node[pos=0.75,auto]{\small Defender's reward};
  \draw[transition] (backpropagation) -- ++(0, -2em) -- ++(-8em, 0)
  |- (selection);
  \draw[gray,dashed,->] (simulation) -- (backpropagation);

  \node[fit=(selection)(backpropagation),
  label={[draw]111:MCTS/UCT},draw,inner sep=1.5em]{};

  \node(bestresult)[process,below=of evaluation, yshift=-2em]{Update
    best\\ defender's strategy};

  \draw[dataflow] (evaluation) -- (bestresult);

  \node(return)[process,below=of backpropagation,yshift=-1em]{Return
    best\\ defender's strategy};
  \draw[transition] (backpropagation) -- (return);
  \draw[dataflow] (bestresult) |- (return);
\end{tikzpicture}

%%% Local Variables:
%%% mode: latex
%%% ispell-local-dictionary: "en_US"
%%% TeX-master: "new-method"
%%% End:
