    \begin{tikzpicture}[node distance=25mm, roundnode/.style={circle, draw=blue!80, fill=blue!5, very thick, minimum size=7mm},
    squaoraclenode/.style={rectangle, draw=oracle!80, fill=oracle!5, very thick, minimum size=7mm},
    arrow/.style = {thick,-stealth}
    ]
    \draw[ultra thick, rounded corners, dashed, draw=black!80, fill=black!5] (4.5cm, -2.2cm) rectangle (10.5cm, 2.5cm) {};
    \node[rectangle, draw=naive!80, fill=naive!5, very thick, minimum size=7mm, rounded corners=.03cm, align=center] (5) at (6.5cm, -0.6cm) {\bba\\($i > n_s)$};
    \node[squaoraclenode, rounded corners=.03cm] (6) [right of=5] {Environment};
    \node[rectangle, draw=meta!80, fill=meta!5, very thick, minimum size=7mm, rounded corners=.03cm, align=center] (52) at (6.5cm, 1.7cm) {Forced Exploration\\
    $(i \leq n_s)$};
    
    \draw[rectangle, draw=meta!80, fill=meta!5, very thick, minimum size=7mm, rounded corners=.03cm, align=center] (-0.5cm, 0.5cm) rectangle (2cm, 1.5cm) {};    
   \node at (0.75cm,1cm) (ml) {\large{\algoff}};
   

   
    \draw[ thick] (52) -- (5);
    \node (h) at (2.25cm, 2.6cm) {\large$\khat_{s-1}$};
    \draw[ultra thick] (0.75cm, 1.5cm) -- (0.75cm, 2.5cm) -- (1.7cm, 2.5cm);
    \draw[arrow, ultra thick] (2.8cm, 2.5cm) -- ++(1.1cm, 0) -- ++(0, -3.1cm) -- (5);
    \draw[arrow, ultra thick] (0.75cm, -0.25) -- (0.75cm, 0.5cm);
    \draw[arrow] (5.north)-- ++(0,0.5cm) -- ++(25mm,0) node[midway, above] {$\bx_{s,i}$} -- (6.north);
    \draw[arrow] (6.south)-- ++(0,-0.5cm) -- ++(-25mm,0) node[midway, below] {$f_s(\bx_{s,i}) + \epsilon_{s,i}$} -- (5.south);
    
    \draw[arrow, ultra thick] (7.5cm, -2.2cm)-- ++(0,-0.8cm) -- ++(-4.2cm,0);
    \draw[rounded corners, draw=oracle!80, fill=oracle!5, very thick] (2.3cm, -3.5cm) rectangle (3.3cm, -2.5cm) {};
    \node at (2.8cm, -3cm) {$\Dexp_{s}$};
    \draw[arrow, ultra thick] (2.3cm, -3cm) -- ++(-1.55cm, 0) -- ++(0, 1cm);
    
    \draw[rounded corners, draw=oracle!80, fill=oracle!5, very thick] (-1.6cm, -1.8cm) rectangle (-0.6cm, -0.5cm) {};
    \node at (-1.1cm, -1.15cm) {$\Dexp_1$};
    \node at (-0.45, -1.15cm) {\large ,};
    
    \draw[rounded corners, draw=oracle!80, fill=oracle!5, very thick] (-0.3 cm, -1.55cm) rectangle (0.7cm, -0.65cm) {};
    \node at (0.2cm, -1.15cm) {$\Dexp_2$};
    
    \node at (0.95, -1.15cm) {\large ,};
    \node at (1.45cm, -1.15cm)  {\large$\dots$};
   \node at (1.9, -1.15cm) {\large ,};
   
    \draw[rounded corners, draw=oracle!80, fill=oracle!5, very thick] (2.1cm, -1.45cm) rectangle (3.1cm, -0.75cm) {};
    \node at (2.6cm, -1.15cm) {$\Dexp_{s-1}$};
    
    \draw [ultra thick, decorate, decoration={calligraphic brace,amplitude=7pt}] (-1.7cm, -2cm) --(-1.7cm, -0.3cm) ; %(-2.5cm, 0cm) -- (3cm, 0cm);
    \draw [ultra thick, decorate, decoration={calligraphic brace,amplitude=7pt}] (3.2cm, -0.3cm) --(3.2cm, -2cm) ;

    
    \end{tikzpicture}