• LaTeX实战经验:如何写算法


    LaTeX中实现算法的呈现主要有两种方式:

    • 使用宏包algorithm2e, 这个宏包有很多可选项进行设定。
    • 使用宏包algorithm 与 algorithmic

    使用宏包algorithm2e

    usepackage[linesnumbered,boxed,ruled,commentsnumbered]{algorithm2e}%%算法包,注意设置所需可选项

     

    例子:

    IncMargin{1em} % 使得行号不向外突出

    egin{algorithm}

        SetAlgoNoLine % 不要算法中的竖线

        SetKwInOut{Input}{ extbf{输入}}SetKwInOut{Output}{ extbf{输出}} % 替换关键词

        Input{

            \

            The observed user-item pair set $S$;\

            The feature matrix of items $F$;\

            The content features entities $A := {A^u,A^v}$;\}

        Output{

            \

            $Theta   := {Y^u,Y^v}$;\

            $W := {W^u,W^v}$;\}

        BlankLine

        initialize the model parameter $Theta$ and $W$ with uniform $left(-sqrt{6}/{k},sqrt{6}/{k} ight)$; % 分号 ; 区分一行结束

        standarized $Theta$;

        Initialize the popularity of categories $ ho$ randomly;

        Repeat

            { ext{convergence}}

            {Draw a triple $left(m,i,j ight)$ with 算法 ef{al2};

                For {each latent vector $ heta in Theta$}{

                    $ heta leftarrow heta - etafrac{partial L}{partial heta}$

                }

                For {each $W^e in W$}{

                    Update $W^e$ with the rule defined in Eq. ef{equ:W};

                }  

            }

        caption{Learning paramters for BPRlabel{al3}}

    end{algorithm}

    DecMargin{1em}

    使用宏包algorithmalgorithmic

    usepackage{algorithm, algorithmic}

    egin{algorithm}

             enewcommand{algorithmicrequire}{ extbf{Input:}}

             enewcommand{algorithmicensure}{ extbf{Output:}}

             caption{Bayesian Personalized Ranking Based Latent Feature Embedding Model}

             label{alg:1}

             egin{algorithmic}[1]

                       REQUIRE latent dimension $K$, $G$, target predicate $p$

                       ENSURE $U^{p}$, $V^{p}$, $b^{p}$

                       STATE Given target predicate $p$ and entire knowledge graph $G$, construct its bipartite subgraph, $G_{p}$

                       STATE $m$ = number of subject entities in $G_{p}$

                       STATE $n$ = number of object entities in $G_{p}$

                       STATE Generate a set of training samples $D_{p} = {(s_p, o^{+}_{p}, o^{-}_{p})}$ using uniform sampling technique

                       STATE Initialize $U^{p}$ as size $m imes K$ matrix with $0$ mean and standard deviation $0.1$

                       STATE Initialize $V^{p}$ as size $n imes K$ matrix with $0$ mean and stardard deviation $0.1$

                       STATE Initialize $b^{p}$ as size $n imes 1$ column vector with $0$ mean and stardard deviation $0.1$

                       FORALL{$(s_p, o^{+}_{p}, o^{-}_{p}) in D_{p}$}

                       STATE Update $U_{s}^{p}$ based on Equation~ ef{eq:sgd1}

                       STATE Update $V_{o^{+}}^{p}$ based on Equation~ ef{eq:sgd2}

                       STATE Update $V_{o^{-}}^{p}$ based on Equation~ ef{eq:sgd3}

                       STATE Update $b_{o^{+}}^{p}$ based on Equation~ ef{eq:sgd4}

                       STATE Update $b_{o^{-}}^{p}$ based on Equation~ ef{eq:sgd5}

                       ENDFOR

                       STATE extbf{return} $U^{p}$, $V^{p}$, $b^{p}$

             end{algorithmic} 

    end{algorithm}

    重新定义require和ensure命令对应的关键字(此处将默认的Require/Ensure自定义为Input/Output)

    enewcommand{algorithmicrequire}{ extbf{Input:}} 
    enewcommand{algorithmicensure}{ extbf{Output:}}

  • 相关阅读:
    .net 使用 swagger 操作
    oracle 基础
    关于webapi跨域问题的一些坑坑
    sqlHelper
    微博数据接入开发
    mvc后台上传
    sql server 报错处理
    asp.net 微信开发(二)
    收集一些关于OI/ACM的奇怪的东西……
    LeetCode 229 Majority Element II
  • 原文地址:https://www.cnblogs.com/USTBlxq/p/6509969.html
Copyright © 2020-2023  润新知