精华内容
下载资源
问答
  • MDP

    2020-11-27 05:35:31
    <div><p>I finally finished coding the Markov Decision Process (MDP) class. There are a couple of issues to discuss. 1. An <code>MDP</code> instance can be created in two ways, in which the transition ...
  • mdp

    2019-06-25 17:05:00
    import copy def print_nice(U): print for i in range(N): for j in range(M): if U[i][j]>=0: print ('% 6.2f ' % U[i][j],) else: ...

     

     

    import copy
    
    
    def print_nice(U):
        print
        for i in range(N):
            for j in range(M):
                if U[i][j]>=0:
                    print ('% 6.2f ' % U[i][j],)
                else:
                    print ('% 6.2f ' % U[i][j],)               
            print
        print

     

    展开全文
  • MDP sockets support

    2020-12-30 11:18:08
    <p>Moreover, functions like <code>overlay_mdp_getmyaddr()</code> or <code>overlay_mdp_bind()</code> do call <code>overlay_mdp_send(), which can <code>call overlay_mdp_recv()</code>. The received ...
  • MDP总结

    2020-06-24 22:54:49
    MDP总结 强化学习建模 强化学习问题可以下图来表示: 上面右图中的大脑代表执行强化学习算法的个体(Agent、或称为代理)。个体通过强化学习算法计算出一个适合当前状态的动作AtA_tAt​。地球代表强化学习问题中...

    MDP总结


    强化学习建模


    强化学习问题可以下图来表示:

    在这里插入图片描述
    在这里插入图片描述

    上面右图中的大脑代表执行强化学习算法的个体(Agent、或称为代理)。个体通过强化学习算法计算出一个适合当前状态的动作AtA_t。地球代表强化学习问题中涉及的环境,它有自己的状态模型。个体在状态St=sS_t=s下选择动作后,环境状态从St=sS_t=s转移至St+1=sS_{t+1}=s',同时个体获得采取动作AtA_t后的即时奖励Rt+1R_{t+1}Rt+1R_{t+1}RtR_{t}在本质上意义是相同的,但在描述RL问题中,涉及到状态S、行为A和奖励R时使用前者表示更为方便)。

    强化学习模型要素


    1. 环境的状态SS:一个集合,称为状态空间(状态集)。在tt时刻,环境的状态为StSS_t\in S
    2. 个体的动作AA:一个集合,称为动作空间(动作集)。在tt时刻,此时环境状态为StS_t,个体采取的动作为AtAA_t\in A
    3. 环境的奖励RR:一个函数,称为回报函数(奖励函数)。在tt时刻,此时环境状态为StS_t,个体采取动作AtA_t;在t+1t+1时刻,个体得到动作对应得奖励Rt+1R_{t+1}
    4. 收获(Return)GtG_t:在一个马尔科夫奖励链上从tt时刻开始往后所有的奖励的有衰减的总和。其公式为Gt=Rt+1+γRt+2+...=k=0γkRt+k+1G_t=R_{t+1}+\gamma R_{t+2}+...=\sum\limits_{k=0}^{\infty}\gamma^kR_{t+k+1}
      1. γ[0,1]\gamma\in [0,1],衰减因子(折现因子)。
      2. γ=0\gamma=0,表明个体是贪婪的,只关注于眼前的所能得到的利益(即时奖励)。
      3. γ=1\gamma=1,表明个体对即时奖励和延时奖励(即,未来的奖励)投于相同的关注(重视度)。
      4. 0<γ<10<\gamma<1,表明个体更关注于即时奖励,但同时也会考虑延时奖励,以此来避免“短视”。
    5. 策略(Policy)π\pi:代表个体在状态StS_t下采取动作得依据。π\pi可以是一个概率的集合/分布,此时其中元素π(as)\pi(a|s)表示,在状态ss下,个体采取动作aa的概率值。
    6. 价值函数(Value Function):价值函数给出了某一状态或某一行为的长期价值。一个马尔科夫奖励过程中某一状态St=sS_t=s的价值函数为从该状态开始的马尔可夫链收获的期望(从当前状态开始到最终状态时系统所获得的累加衰减回报的期望)。其公式如下:V(s)=E[GtSt=s]V(s)=E[G_t|S_t=s]价值可以仅描述状态,也可以描述某一状态下的某个行为,在一些特殊情况下还可以仅描述某个行为。
      1. 状态价值函数(价值函数,值函数)用于描述针对状态的价值。
      2. 行为价值函数(状态行为对价值函数,Q函数)用于描述某一状态下执行某一行为的价值。
    7. 环境的状态转化模型(状态转移矩阵/函数)PP:可以理解为一个概率状态机,它可以表示为一个概率模型。通过PP可以得出,在tt时刻,个体于状态St=sS_t=s下采取动作aa后,转移到下一个状态St+1=sS_{t+1}=s'的概率PssaP_{ss'}^a
    8. 探索率ϵ\epsilon:这个比率主要用在强化学习训练迭代过程中,由于我们一般会选择使当前轮迭代价值最大的动作,但是这会导致一些较好的但我们没有执行过的动作被错过。因此我们在训练选择最优动作时,会有一定的概率ϵ\epsilon不选择使当前轮迭代价值最大的动作,而选择其他的动作。

    强化学习引入MDP的原因


    上一节中提到了状态转移模型,通过该模型可以得到个体在一状态执行动作转移到下一个状态的概率值。如果按照真实的环境转化过程看,转化到下一个状态ss'的概率既与上一个状态ss有关,还与上上个状态,以及上上上个状态有关。这一会导致我们的环境转化模型非常复杂,复杂到难以建模。因此我们需要对强化学习的环境转化模型进行简化。简化的方法就是假设状态转化的马尔科夫性,也就是假设转化到下一个状态ss'的概率仅与上一个状态ss有关,与之前的状态无关。用公式表示就是:Pssa=E(St+1St=s,At=a)P_{ss'}^a=E(S_{t+1}|S_t=s,A_t=a)

    假设把一强化学习问题形式化为马尔科夫决策过程MMMM是一个元组:S,A,R,P,γ\langle S,A,R,P,\gamma\rangle,给定一个初始策略π\pi

    1. SS状态集,StSS_t\in S
    2. AA动作集,AtAA_t\in A
    3. RR回报函数,Rsa=E(Rt+1St=s,At=a)R_s^a=E(R_{t+1}|S_t=s,A_t=a)
    4. PP状态转移函数,Pssa=P(St+1=sSt=s,At=a)P_{ss'}^a=P(S_{t+1}=s'|S_t=s,A_t=a)
    5. γ[0,1]\gamma\in [0,1],衰减因子
    6. 收获,Return,Gt=k=0γkRt+k+1G_t=\sum\limits_{k=0}^{\infty}\gamma^kR_{t+k+1}
    7. 策略π\pi,或称为策略函数。可表示为a=π(s)a=\pi(s)的确定性形式,也可表示为π(as)=P[At=aSt=s]\pi(a|s)=P[A_t=a|S_t=s]的不确定性形式。
    8. 强化学习的核心在于最优化策略,策略的优劣可以通过基于策略的价值函数来评判。该价值函数可以分为:状态价值函数和行为价值函数。通常被称为值函数和Q函数。
      1. 状态价值函数:Vπ(s)=E(GtSt=s)V^{\pi}(s)=E(G_t|S_t=s)
      2. 行为价值函数:Qπ(s,a)=E(GtSt=s,At=a)Q^{\pi}(s,a)=E(G_t|S_t=s,A_t=a)

    MDP问题求解核心 —— Bellman方程


    策略的优劣可以通过价值函数来计算。那么最优策略对应的价值函数的值必为最大。为求解最优策略,我们需要找到最优价值函数,然后对最优价值函数进行求解获得最优策略。在这一过程中就涉及到Bellman方程。下面我们对Vπ(s)Qπ(s,a)V^{\pi}(s)和Q^{\pi}(s,a)进行推导,使得当前的状态的价值函数能够用下一状态的价值函数递归表示,并且推导Vπ(s)Qπ(s,a)V^{\pi}(s)和Q^{\pi}(s,a)之间的关系。

    推导前需要注意几个表示回报的符号的意义Rsa,Rssa,RsπR_s^a,R_{ss'}^a,R_s^{\pi}

    1. RssaR_{ss'}^a:表示的是在状态ss下,执行动作aa后状态转移到ss'时得到的即时奖励。
    2. RsaR_s^aRsa=sSPssaRssaR_s^a=\sum\limits_{s'\in S}P_{ss'}^aR_{ss'}^a
    3. RsπR_s^{\pi}Rsπ=aAπ(as)RsaR_s^{\pi}=\sum\limits_{a\in A}\pi(a|s)R_{s}^a

    KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ V^{\pi}(s)=&E_…

    值函数和Q函数的关系和递推表达


    1. 值函数、Q函数的递推表达:
      Vπ(s)=aAπ(as){Rsa+γsSPssaVπ(s)}Qπ(s,a)=Rsa+γsSPssaaAπ(as)Qπ(s,a) V^{\pi}(s)=\sum\limits_{a\in A}\pi(a|s)\color{red}{\{}R_s^a+\gamma\sum\limits_{s'\in S}P_{ss'}^aV^{\pi}(s')\color{red}{\}}\\ Q^{\pi}(s,a)=R_s^a+\gamma \sum\limits_{s'\in S}P_{ss'}^a\sum\limits_{a'\in A}\pi(a|s)Q^{\pi}(s',a')
    2. 值函数与Q函数之间关系:
      Vπ(s)=aAπ(as)Qπ(s,a)Qπ(s,a)=Rsa+γsSPssaVπ(s) V^{\pi}(s)=\sum\limits_{a\in A}\pi(a|s)Q^{\pi}(s,a)\\ Q^{\pi}(s,a)=R_s^a+\gamma \sum\limits_{s'\in S}P_{ss'}^aV^{\pi}(s')

    最优价值函数


    解决强化学习问题意味着要寻找一个最优策略,该策略使个体与环境交互过程中获得始终比其他策略都要多的收获,这个最优策略我们可以用 π\pi^* 表示。一旦找到这个最优策略,那么就意味着该强化学习问题被解决。一般来说很难找到一个最优策略,但是可以通过比较若干不同策略的优劣来确定一个较好的策略,也就是局部最优解

    对于比较策略的优劣,我们可以通过对应的价值函数来实现。换句话说,寻找较优策略可通过寻找较优的价值函数来完成。

    1. 定义最优状态价值函数是所有策略下产生的众多状态价值函数中的最大者,即:V(s)=maxπVπ(s)V^*(s)=\max\limits_{\pi}V^{\pi}(s)
    2. 最优动作价值函数是所有策略下产生的众多动作状态价值函数中的最大者,即:Q(s,a)=maxπQπ(s,a)Q^*(s,a)=\max\limits_{\pi}Q^{\pi}(s,a)
    3. 对于最优策略,基于动作价值函数可以定义为:
      π(as)={1,if a=argmaxaAQ(s,a)0,else \pi^*(a|s)= \begin{cases} 1, & \text {if $a=\arg\max\limits_{a\in A}Q^*(s,a)$} \\ 0, & \text{else} \end{cases}
    4. 只要我们找到了最大的状态价值函数或者动作价值函数,那么对应的策略π\pi^*就是我们强化学习问题的解。

    Bellman最优方程


    根据上述最优价值函数的定义,我们可以将其推导为Bellman方程形式。

    1. 最优状态价值函数:V(s)=maxπVπ(s)V^{*}(s)=\max\limits_{\pi}V^{\pi}(s)
      V(s)=maxπVπ(s)=maxπ(aAπ(as)Qπ(s,a))=maxπmaxaAQπ(s,a)=maxaAQ(s,a) \begin{aligned} V^{*}(s)=&\max\limits_{\pi}V^{\pi}(s)\\ =&\max\limits_{\pi}{}(\sum\limits_{a\in A}\pi(a|s)Q^{\pi}(s,a))\\ =&\max\limits_{\pi}\max\limits_{a\in A}Q^{\pi}(s,a)\\ =&\max\limits_{a\in A}Q^{*}(s,a) \end{aligned}
      1. π(as)[0,1]\pi(a|s)\in [0,1],且aAπ(as)=1\sum\limits_{a\in A}\pi(a|s)=1
      2. aAπ(as)Qπ(s,a)\sum\limits_{a\in A}\pi(a|s)Q^{\pi}(s,a)的最大值:
        1. 假设在状态ss下执行动作aa^*时,Qπ(s,a)Q_{\pi}(s,a^*)的值最大。Qπ(s,a)Qπ(s,a),aAQ_{\pi}(s,a^*)\geq Q_{\pi}(s,a),a\in A
        2. maxaAaAπ(as)Qπ(s,a)=maxaAQπ(s,a)\max\limits_{a\in A}\sum\limits_{a\in A}\pi(a|s)Q^{\pi}(s,a)=\max\limits_{a\in A}Q^{\pi}(s,a)
        3. 推导证明:假设p1+p2+...+pn=1p_1+p_2+...+p_n=1vi0,i[0,n]v_i\geq 0,i\in [0,n],且ii为整数。令maxvi=pmax\max v_i=p_{max},对应的pip_ipmaxp_{max},那么:
          p1v1+p2v2+...+pmaxvmax+...+pnvnp1vmax+p2vmax+...+pmaxvmax+...+pnvmaxp1v1+p2v2+...+pmaxvmax+...+pnvn(p1+p2+...+pmax+...+pn)vmaxp1v1+p2v2+...+pmaxvmax+...+pnvnvmaxi[0,n]pivimaxi[0,n]vi \begin{aligned} p_1v_1+p_2v_2+...+p_{max}v_{max}+...+p_nv_n &\leq p_1v_{max}+p_2v_{max}+...+p_{max}v_{max}+...+p_nv_{max}\\ p_1v_1+p_2v_2+...+p_{max}v_{max}+...+p_nv_n &\leq (p_1+p_2+...+p_{max}+...+p_n)v_{max}\\ p_1v_1+p_2v_2+...+p_{max}v_{max}+...+p_nv_n &\leq v_{max}\\ \sum\limits_{i\in [0,n]}p_iv_i &\leq \max\limits_{i\in [0,n]}v_i \end{aligned}
          :当pmax=1p_{max}=1时等号成立。
    2. 最优行为价值函数:Q(s,a)=maxπQπ(s,a)Q^{*}(s,a)=\max\limits_{\pi}Q^{\pi}(s,a)
      Q(s,a)=maxπQπ(s,a)=maxπ(Rsa+γsSPssaVπ(s))=Rsa+γsSPssaV(s) \begin{aligned} Q^{*}(s,a)&=\max\limits_{\pi}Q^{\pi}(s,a)\\ &=\max\limits_{\pi}{}(R_s^a+\gamma\sum\limits_{s'\in S}P_{ss'}^aV^{\pi}(s'))\\ &=R_s^a+\gamma\sum\limits_{s'\in S}P_{ss'}^aV^{*}(s') \end{aligned}
    3. Q(s,a)Q^{*}(s,a)V(s)V^{*}(s)的递推表达式:
      V(s)=maxaA(Rsa+γsSPssaV(s))Q(s,a)=Rsa+γsSPssamaxaAQ(s,a) \begin{aligned} V^{* }(s)&=\max\limits_{a\in A}{}(R_s^a+\gamma\sum\limits_{s'\in S}P_{ss'}^aV^{*}(s'))\\ Q^{*}(s,a)&=R_s^a+\gamma\sum\limits_{s'\in S}P_{ss'}^a\max\limits_{a\in A}{}Q^{*}(s',a') \end{aligned}
    4. 在获取Bellman最优方程后,可以使用强化学习算法对方程进行求解获得最优策略。
    展开全文
  • Linux PPT Mdp

    2017-06-22 15:12:48
    mdp是Linux下一款基于ncurses的命令行演示工具。本文我们用图文来分享一下在 Linux 命令下创建以前展示mdp演示文稿。
  • Malmo MDP Support

    2020-12-30 11:56:00
    <div><p>Added some basic Malmo MDP support in a similar pattern to the Gym support already there. <p>With the exception of the external dependency, should be fairly straight forward, but please let me...
  • mdp文件-Chapter1-MINIM.mdp

    2017-11-05 19:05:00
    mdp文件是能量最小化,NVT模拟,NPT模拟与MD模拟的必须文件。 mdp文件的详细解释可以参考官方文档http://manual.gromacs.org/online/mdp_opt.html 接下来我将使用四个文件为例子来解释mdp文件。 能量最小化minim....

    mdp文件是能量最小化,NVT模拟,NPT模拟与MD模拟的必须文件。

    mdp文件的详细解释可以参考官方文档http://manual.gromacs.org/online/mdp_opt.html

    接下来我将使用四个文件为例子来解释mdp文件。

    能量最小化minim.mdp

     1 ; minim.mdp - used as input grompp to generate *.tpr 
    2
    integrator = steep ; steep = steepest descent minimization 3 emtol = 1000.0 4 emstep = 0.01 5 nsteps = 50000 6 7 ; Parameters describing how to find the neighbors of each atom and how to calculate the interactions 8 nstlist = 1 9 cutoff-scheme = Verlet 10 ns_type = grid 11 coulombtype = PME 12 rcoulomb = 1.0 13 rvdw = 1.0 14 pbc = xyz

    接下来我一行一行注解:

    1.从";"到换行之间的字符将被视为注释。此文件用于能量最小化(例如蛋白质刚放入溶剂,或者单纯的蛋白质在真空中的能量最小化)

    2.这不是积分,只是选项用了这个名字而已,采用最速下降法是因为这里我们想将能量最小化,而不是运行NVT模拟或者MD模拟。

    3.当最大力小于1000kJ/mol/nm时停止模拟

    4.能量步长

    5.最大步数

    7.下面的参数描述了如何搜寻近邻原子并计算相互作用。

    8.临近列表与长程力计算更新频率,1代表每步都更新

    9.截断方案:Verlet

    10.临近原子确定方案:可分为grid格点搜索和simple简单搜索。grid即格点法,计算速度要比simple快很多。

    11.计算长程库伦力的方法:PME

    12:短程库伦力的截断距离

    13:短程范德华力的截断距离

    14:周期性边界条件,在XYZ三个方向上均采用周期性边界条件(Periodic Boundary Condition)

    关于最速下降法:第2行

    最速下降法不是最有效的搜索方法,但它很稳健并且容易实现。关于最速下降法可参考官方文档P51.最速下降法中需要定义最大位移,并且每一步都会用到Fmax。

    关于近邻搜索:8-10行

    配对列表的生成:只需要对一些粒子对 i,j之间的非键配对力进行计算, 在这些粒子对中, 粒子 ii和 j的最近映象之间的距离小于给定的截断半径 Rc. 如果彼此之间的相互作用已完全被键合作用

    所考虑, 一些满足这一条件的粒子对仍然会被排除. GROMACS使用了一个 配对列表, 其中包含了那些必须计算彼此之间非键力的粒子对. 这个列表中包含原子 i, 原子 i的位移向量,

    距离原子 i的这个特殊映象rlist范围内的所有粒子 j. 该列表每nstlist步更新一次, nstlist的典型值为10. 有一个选项可用来计算每个粒子所受到的总的非键力, 这些力来源于围绕列表截断

    值, 即距离在rlistrlistlong之间的壳层中的所有粒子. 在更新配对列表时, 会计算这些力, 并在随后的nstlist中保持不变.为创建邻区列表,必须找到与给定粒子相近(即在邻居列表截断内)

    的所有粒子. 这种搜索通常被称为邻区搜索(NS, neighbor search)或对搜索(pair search), 涉及到周期性边界条件和映象的确定。

    邻区截断方案: 原子组与Verlet缓冲

    GROMACS支持两种不同的截断方案设置: 最初的基于原子组的方案和使用Verlet缓冲区的方案. 它们之间存在一些非常重要的区别, 这些区别可能会影响计算结果, 计算性能和某些功能的支持情况. 组方案(几乎)可以像Verlet方案一样运行, 但这将导致性能降低. 对在模拟中常用的水分子, 组方案特别快, 但在最近的x86处理器中, 这种优势消失了, 因为可以在Verlet方案的实现中使用更好的指令级并行. 在5.0版本中已经不再提倡使用组方案了, 将来的版本中将会删除此方案.

    在组方案中, 近邻列表由至少含一个原子的原子对构成. 这些原子组最初是电荷组。

    Verlet截断方案默认使用缓冲对列表. 它也使用了原子团簇, 但这些不像在组方案中是静态的. 相反, 团簇以空间定义, 包含4个或8个原子, 使用如SSE, AVX和GPU的CUDA等可方便地对此进行流计算. 在近邻搜索步骤中, 使用Verlet缓冲创建对列表, 即对列表的截断距离大于相互作用的截断距离. 在计算非键力的内核中, 只有当一个原子对在特定时间步处于截断距离之内时, 这个力才会被加入到近邻列表中. 当原子在两次对搜索步骤中移动时, 这确保了几乎所有处于截断距离内的原子之间的力都会被计算. 我们说, 几乎 所有的原子, 是因为GROMACS使用了一个固定的对列表更新频率以提高效率. 一个处于截断距离外的原子对, 在这样固定的步数中, 可能移动得足够多以致处于截断距离之内. 这种小概率事件会导致小的能量漂移, 而且概率的大小取决于温度. 当使用温度耦合时, 给定能量漂移的一定容差, 可以自动确定缓冲大小.

    关于长程库伦力的计算:11-14行

    参考手册4.8.1节。Ewald方法差不多是直接根据库伦力公式去计算长程力,速度很慢,计算量巨大。一般不采用Ewald方法,而是采用PME(Particle-Mesh Ewald)方法,该方法

    可以提高倒易空间加和的计算速度,这种方法不直接对波矢进行加和, 而是使用内插方法将电荷分配到网格上.先使用3DFFT算法对格点进行傅里叶变换, 在k空间中利用对格点的单个加和就可以得到倒易空间的能量项.

    以上能量最小化的一个典型mdp文件,其中的一些解释(近邻搜索与长程库伦力计算)在其他mdp文件中还能用到。

     

     

     

    转载于:https://www.cnblogs.com/w-guangyu/p/7787396.html

    展开全文
  • Listconversion for MDP files

    2020-12-09 03:27:22
    <div><p>Lists in MDP files will be converted into numpy arrays if autoconvert=True is set. This enhancement can be useful for changing list parameters in the mdp file i.e. lambda states.</p><p>该...
  • mdp文件-Chapter2-NVT.mdp

    2017-11-05 20:15:00
    这是mdp文件系列的第二篇,介绍nvt平衡中要使用的mdp文件。 先上代码,nvt.mdp 1 title = OPLS Lysozyme NVT equilibration 2 define = -DPOSRES 3 ; Run parameters 4 integrator = md 5 nsteps = ...

    这是mdp文件系列的第二篇,介绍nvt平衡中要使用的mdp文件。

    先上代码,nvt.mdp

     1 title       = OPLS Lysozyme NVT equilibration
     2 define      = -DPOSRES  
     3 ; Run parameters
     4 integrator  = md         
    5
    nsteps = 50000
    6
    dt = 0.002
    7
    ; Output control 8 nstxout = 500
    9
    nstvout = 500
    10 nstenergy = 500
    11 nstlog = 500
    12 ; Bond parameters 13 continuation = no 14 constraint_algorithm = lincs 15 constraints = all-bonds
    16 lincs_iter = 1
    17 lincs_order = 4
    18 ; Neighborsearching 19 cutoff-scheme = Verlet 20 ns_type = grid 21 nstlist = 10
    22 rcoulomb = 1.0
    23 rvdw = 1.0
    24 ; Electrostatics 25 coulombtype = PME
    26 pme_order = 4
    27 fourierspacing = 0.16
    28 ; Temperature coupling is on 29 tcoupl = V-rescale 30 tc-grps = Protein Non-Protein
    31 tau_t = 0.1 0.1
    32 ref_t = 300 300
    33 ; Pressure coupling is off 34 pcoupl = no
    35 ; Periodic boundary conditions 36 pbc = xyz
    37 ; Dispersion correction 38 DispCorr = EnerPres
    39 ; Velocity generation 40 gen_vel = yes
    41 gen_temp = 300
    42 gen_seed = -1

     按行解释:

    1.title 说明这个mdp文件的作用

    2.NVT NPT模拟中都需要对蛋白质做位置限定,这样做是为了避免在平衡过程中把蛋白质打散,最终的md模拟中要放开位置限制。

    3.运行参数部分

    4.与minim.mdp中类似,不同的是这次我们不再做能量最小化,而是做MD模拟,这里md代指蛙跳算法

    5-6.运行步长为0.002ps=2fs 总运行时间为2*50000=100ps,一般10-20ps体系就可以完成弛豫,所以取100ps一般是没有问题的

    7.输出控制

    8-9.每500步输出一次坐标和速度

    10.每500步向能量文件中输出一次,模拟结束的能量一定输出

    11.每500步向日志文件中输出一次能量

    12.键合部分

    13.continuation这个指令以前叫做unconstrained-start 直译就是“未限定即开始”,取no时意味着对初始结构做位置限定并重构壳层;取yes相反

    14.限定算法选择lincs

    15.键合限制  对所有键做限制

    16-17:与lincs算法的精度有关,一般取1,4

    18.临近搜索部分

    19.截断方式 Verlet

    20.临近格子搜索方式选择grid

    21.临近列表更新频率 10步更新一次

    22.短程库伦力截断距离(nm)

    23.短程范德华力截断距离(nm)

    24.库伦力部分

    25.库伦长程力计算方式 PME

    26-27:与精度有关

    28.温度耦合部分

    29.温度耦合,选择了Beredesen方式

    30.温度耦合组 分为蛋白质和非蛋白质组

    31.耦合时间常数 对两个组各自定义  单位为ps

    32.耦合温度  对两个组各自定义  单位为K

    33.压力耦合部分

    34.压力耦合不进行

    35.周期性边界条件部分

    36.对三个方向均进行周期性边界条件限制

    37.色散力修正

    38.选择修正方案

    39.速度产生部分

    40.是否产生速度:是 按照Maxwell分布随机分布

    41.Maxwell分布中的温度 300K

    42.随机数生成种子 -1

     

    接下来要对其中的几个重要部分做一解释,与minim.mdp重合的就不重复解释了。

    约束算法:12-17行

    约束是必要的,否则的话键合将会被打断,在Gromacs中可以使用默认的lincs算法或传统的shake算法来进行约束。参考文档3.6节。SHAKE算法将一组不受约束的坐标转变为一组坐标,使其满足一系列距离约束条件。而lincs算法则是始终将键重置为它们的正确长度,这个方法不进行迭代。lincs的精度取决于算法中展开方程的矩阵阶数,对于MD来说四阶就够了。精度为一阶。第16行的lincs_iter指精度,指定为1;lincs_order为四阶。

    温度耦合:28-32行

    直接使用的分子动力学模拟体系对应于NVE系综,这在现实中是显然不存在的。NVT系综可以让系统处于恒温,这稍微现实一点。当然最后还是要进行NPT模拟,这才对对应于真实情况。Gromacs中实现恒温过程有以下几种方案:

    Berendsen温度耦合:模仿与给定温度的热浴T0相连。优点很显然:对于以平衡为目的的模拟可以采用极小的的时间常数,对于比较可靠的体系则可以使用较大的时间常数。Berendsen耦合不会产生正确的正则系综,且会降低动能的涨落。

    速度重缩放温度耦合:本质上还是一个Berendsen耦合,但是附加了一个随机项,以保证能给出正确的动能分布,能够给出正确的正则系综。上面文件中第29行的v-rescale即代表选择该耦合方式。

    Anderson控温器:使用NVE积分方法,并周期性的从M-B分布(Maxwell-Boltzmann distribution)中重新选择粒子速度。通过每τ/Δt步同时对所有粒子的速度进行随机化,或通过一小概率(Δt/τ)随机化每个粒子的速度.Δt为时间步长,tau为特征耦合时间长度。这样一来,这个方法不能用来考察动力学和输运性质。

    Nose-Hoover耦合:Berendsen 弱耦合算法可以非常高效地将体系弛豫到到目标温度, 但是, 一旦系统达到平衡, 维持正确的正则系综更重要. 很可惜,弱耦合方案并不能满足这一点.

    Nose和Hoover提出一种方法,在运动方程中引入一个热容器和一个摩擦项,来实现一种新的耦合。具体请参考文档。

    组内温度耦合:将蛋白质和非蛋白质分开耦合。即文件中第30行。

    色散纠正:37-38行

    色散需要纠正,因为对Lennard-Jones或Buckingham相互作用截断而引起的。我们假定截断足够大以至于可以安全地忽略斥力项, 因此只须考虑色散项的校正.可参考文档4.9节。具体在mdp文件中只有三个选项:no(不进行修正),EnerPres(对能量和压力进行修正),Ener(只对能量进行修正)。一般情况下色散纠正对能量影响较小,而对压力影响很大,因此一般要采用EnerPres选项。

    速度产生:39-42行

    有三个选项,gen-vel:

    no:Do not generate velocities. The velocities are set to zero when there are no velocities in the input structure file.

    yes:在gen-temp温度下,按照M-B分布产生速度

    gen-temp:定义温度

    gen-seed:随机数种子。

     

    至此,nvt.mdp告一段落。

    转载于:https://www.cnblogs.com/w-guangyu/p/7788246.html

    展开全文
  • mdp文件-Chapter4-MD.mdp

    2017-11-05 21:00:00
    终于到了mdp系列的第四篇,最终MD模拟的mdp文件 先上代码,md.mdp 1 title = OPLS Lysozyme MD simulation 2 ; Run parameters 3 integrator = md ; leap-frog integrator 4 nsteps = 500000 ; 2 * ...
  • MDP算法通过构造一种扩展的前缀树MDP-tree,将数据仓库中的有效信息压缩存储,再使用基于MDP-tree的MDP-mining方法快速发现有趣的关联规则。MDP算法仅需要扫描一次数据仓库,就可以构造出MDP-tree,进而得到所有的...
  • Markdown呈现工具mdp2.zip

    2019-07-16 06:56:50
    mdp 是一个基于命令行的 Markdown 呈现工具 标签:mdp2
  • mdp文件-Chapter3-NPT.mdp

    2017-11-05 20:55:00
    mdp系列的第三篇,对NPT模拟中的mdp文件做一简单介绍。 先上代码 1 title = OPLS Lysozyme NPT equilibration 2 define = -DPOSRES ; position restrain the protein 3 ; Run parameters 4 integrator = ...
  • 2. MDP定义MDP是当前强化学习理论推导的基石,通过这套框架,强化学习的交互流程可以很好地以概率论的形式表示出来,解决强化学习问题的关键定理也可以依此表示出来。MDP(马尔可夫决策过程)包含以下三层含义:...
  • 之前MDP框架我们总体上介绍了MDP的大致概念,现在来说说实现这个框架的细节概念。我们知道一个智能体如果要到达指定的目标,在规划路径的时候,我们可以使用MDP最大化累计回报的方法来获取最优的线路。我们来看一个...
  • 我试图在Python中设计一个具有以下特征的迭代markov decision process (MDP)代理:>可观察的状态>我通过保留一些状态空间来处理潜在的’未知’状态用于回答DP进行的查询类型移动(t 1处的状态将为识别先前的...
  • 二、MDP问题

    2020-10-22 18:27:17
    MDP问题 文章目录MDP问题马尔科夫性与马尔科夫奖励贝尔曼方程MDP policy 简单回忆一下上一篇笔记 一、强化学习基础 中讲到的agent与environment交互的过程:当环境environment处于某个状态state时,智能体agent采取...
  • MDP通常是指一种用转移概率描述连续不确定概率过程的数学框架,是强化学习中最基础的概念,很多强化学习的算法都是在把问题抽象为一个MDP之后再想办法求解的。而q-learning是求解强化学习问题的算法的一种,大类上...
  • NASA MDP数据集

    热门讨论 2012-05-06 10:38:00
    NASA MDP 软件缺陷预测数据集 arff文件格式,用于数据挖掘
  • 马尔科夫决策过程 MDP

    2019-08-06 15:37:35
    马尔可夫决策过程MDP马尔科夫性 Markov Property马尔科夫过程 Markov Property马尔科夫奖励过程 Markov Reward Process马尔科夫决策过程(Markov decision process, MDP) 马尔科夫性 Markov Property 无后效性:...
  • MDP接入

    2015-08-06 00:33:47
    【if-mdp使用手册】   1. 总体介绍   方便多tibco ems环境下的接入;引入mdp schema,配置更灵活,无需依赖其它xml bean配置文件;既支持queue,也支持topic;支持对多queue的广播;支持...
  • 增强学习(三)MDP的动态规划解法增强学习(三)MDP的增强学习(三)MDP的动态规划解法动态规划解法
  • 开源项目-mdp-PlaneBoard.zip,通过DNS TXT查询阅读您的Twitter时间表,然后开始
  • 基于MDP的病人最优分配策略研究,耿娜,马忠偈,关键医疗图像诊断设备具有价格昂贵、利用率高的特点,这导致了病人需经过较长时间的等待才能进行检查。为了有效减少病人的等待时

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,844
精华内容 737
关键字:

mdp