\documentclass{article}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{xepersian}
\settextfont{Yas}
\setdigitfont{Yas}
\newenvironment{alteralgorithm}{}{}
\newcommand{\altercaption}[1]{\refstepcounter{algorithm}%
\noindent\hrule height .8pt
\smallskip\noindent
\textbf{الگوریتم \thealgorithm} #1
\hrule}

\renewcommand{\algorithmicrequire}{\textbf{ورودی:}}
\renewcommand{\algorithmicensure}{\textbf{خروجی:}}
\renewcommand{\algorithmicif}{\textbf{اگر}}
\renewcommand{\algorithmicthen}{\textbf{آن‌گاه}}
\renewcommand{\algorithmicfor}{\textbf{برای}}
\renewcommand{\algorithmicrepeat}{\textbf{تکرار کن}}
\renewcommand{\algorithmicuntil}{\textbf{تا اینکه}}
\renewcommand{\algorithmicprint}{\textbf{چاپ کن}}
\renewcommand{\algorithmicreturn}{\textbf{برگردان}}
\renewcommand{\algorithmictrue}{\textbf{درست}}
\renewcommand{\algorithmicfalse}{\textbf{غلط}}
\renewcommand{\algorithmicdo}{\textbf{انجام بده}}
\renewcommand{\algorithmicend}{\textbf{پایان}}

\title{شکستن الگوریتم }
\author{z}

\begin{document}


\begin{alteralgorithm}
\altercaption{قیمت‌گذاری اختیار آمریکایی با روش  رگرسیون بعد}
\begin{algorithmic}[1]
\REQUIRE $L$ = تعداد گام‌های زمانی، $N$ = تعداد مسیرهای شبیه‌سازی شده، $m$ = تعداد پایه‌ها برای رگرسیون،  $r$ = نرخ بهرهٔ بدون ریسک، $S$ = ماتریس مسیرهای شبیه‌سازی  شد.
%\vspace{0.5cm} 
\ENSURE $ٰV_0$ = تخمین قیمت اختیار.
%\vspace{0.5cm} 
\STATE قرار دهید  $V  = h_L(S(:,L))$.
\STATE  قرار دهید $Time$ = برداری که اندازه‌اش  برابر با $N$  و تمام  درایه‌هایش برابر با $L$ است.
\FOR {$i=1$ تا $L-1$}
\STATE قرار دهید $xdata$ =  ($i$  و مسیرهای با قیمت)$S$
\STATE قرار دهید $xdata1$ =  ($i+1$  و مسیرهای با قیمت)$S$\\
%\vspace{0.5cm} 
\hspace{1.75cm} {\bf{تشکیل ماتریس برای رگرسیون}}\\
\STATE قرار دهید $A(:,k) = \psi_k(xdata1)$ که $\psi_k$ پایه و $k=1,2,...,m$ \hspace{0.5cm} ماتریس رگرسیون بعد
\STATE قرار دهید $ydata$ = ارزش اختیار متناظر با $xdata$ در مرحلهٔ $i+1$\\
\STATE قرار دهید ضرایب رگرسیون = $\alpha$ = $(A^T A)^{-1} A~ydata$\\
%\vspace{0.5cm}
 \STATE قرار دهید $A(:,k) = \psi_k(xdata)$ که $\psi_k$ پایه و $k=1,2,...,m$ \\
\STATE قرار دهید $\hat c = A ~\alpha$ \hspace{1.75cm} تقریبی از ارزش عدم اجرا\\
\STATE قرار دهید $lx$ = طول بردار $xdata$\\
\hspace{1.75cm} {\bf{به روز کردن ارزش اختیار}}\\
\FOR {$j = 1$ تا $lx$ }
\IF{$\hat C_j \geq (h)_j(xdata_j)$ }
\STATE عدد متناظر با $xdata_j$ را در $ٰV$ و $Time$ با $\hat c_j$ و $i$ جایگزین کنید\\

\ENDIF
\ENDFOR \\ 
\ENDFOR\\
$V_0=\sum (d_{0,Time}V)/M$
\STATE $ H \leftarrow Upbarrier$ و $ \xi \leftarrow \frac{p \eta_1}{\eta_1 -1} + \frac{(1-p) \eta_2}{\eta_2 +1} -1 $ و $ dt \leftarrow \frac{T}{Nstep +1} $ و $ S(t_1) \leftarrow S_0 $
\FOR{$ i=1 $ تا $ NRepl $}
\STATE $ Njumps $ را یک متغیر تصادفی پواسن با پارامتر $ \lambda $ قرار بده
\IF{$ Njumps = 0 $}
\FOR{$ j=1 $ تا $ Nstep $}
\STATE $ Z^i_{t_{j+1}} \sim N(0,1) $
\STATE $ S_i(t_{j+1}) = S_i(t_j) \exp \lbrace (\mu - \frac{1}{2} \sigma^2 - \lambda \xi ) dt + \sigma \sqrt{dt} Z^i_{t_{j+1}} \rbrace $
\STATE شرایط رد و قبول را از الگوریتم () بررسی می‌کنیم
\ENDFOR
\ENDIF
\IF{$ Njump \neq 0 $}
\STATE $ Njump $ تا متغیر تصادفی یکنواخت به طور صعودی مرتب شده در $ [0,T] $ را تولید کن و در $ j\tau $ قرار بده
\STATE $ Njump $ تا متغیر تصادفی نمایی دوبل با پارامتر‌های $ \eta_1, \eta_2, p $ بساز و در $ Y $ قرار بده
\STATE $ V \leftarrow \exp(Y) $
\FOR{$ j=1 $ تا $ Nstep $}
\STATE $ ft $ را طول برداری در نظر بگیر که $ j\tau > jdt $ است
\IF{$ ft = 0 $}
\STATE $ Z^i_{t_{j+1}} \sim N(0,1) $
\STATE $ S_i(t_{j+1}) = S_i(t_j) \exp \lbrace (\mu - \frac{1}{2} \sigma^2 - \lambda \xi ) dt + \sigma \sqrt{dt} Z^i_{t_{j+1}} \rbrace $

\ENDIF
\ENDFOR

\ENDIF






\ENDFOR
\IF{$  S_i(t_{j+1}) $}
\STATE $ \tau_i \leftarrow t_{j+1} $
\STATE برو به $ i $
\ELSE 
\STATE $ u $ را متغیر تصادفی یکنواخت بین صفر ویک قرار بده
\STATE $ p_H $ را از فرمول () محاسبه کن
\IF{$ p_H >u $}
\STATE $ \tau_i \leftarrow t_{j+1} $
\STATE برو به $ i $
\ENDIF
\ENDIF

\end{algorithmic}
\end{alteralgorithm}
\section{مثال}
البته این الگوریتم تنها یک مثال است.
\end{document}