Skip to main content
. 2026 Sep 25;26(19):6098. doi: 10.3390/s26196098
Algorithm 2 CLI-PPO End-to-End Training Framework
  •   1:

    Initialize PPO policy parameters θ, LSTM parameters θlstm, ICM parameters θICM={θϕ,θf,θg}, rollout buffer B and success buffer Bsuccess

  •   2:

    Set Tmax=5×107, N=24, nsteps=2048

  •   3:

    Set learning rate lr=1×10−5, discount factor γ=0.999, intrinsic reward coefficient β=0.1, and curriculum threshold ρ=0.7

  •   4:

    Initialize curriculum boundary ratio α=0.3

  •   5:

    for iter=1 to TmaxN·nsteps do

  •   6:

        for step=1 to nsteps do

  •   7:

            for i=1 to N do

  •   8:

                Obtain observation: oti←GetObservation(Envi)

  •   9:

                Update recurrent hidden states: hti,cti←LSTM(oti,ht−1i,ct−1i;θlstm)

  • 10:

                Sample continuous action: ati∼πθ(ati|hti)

  • 11:

                Execute action: (ot+1i,rexti,donei)←Step(Envi,ati)

  • 12:

                Compute intrinsic curiosity reward: rinti←ComputeICM(oti,ot+1i,ati;θICM)

  • 13:

                Compute total reward: rti=rexti+βrinti

  • 14:

                Store transition: B←(oti,hti,ati,rti,ot+1i)

  • 15:

            end for

  • 16:

        end for

  • 17:

        Compute ICM loss: LICM←ComputeICMLoss(B)

  • 18:

        Update ICM parameters: θICM←AdamUpdate(θICM,LICM)

  • 19:

        Update PPO policy: (θ,θlstm)←PPOUpdate(θ,θlstm,B)

  • 20:

        Update success buffer: Bsuccess←UpdateSuccessBuffer(done)

  • 21:

        if Mean(Bsuccess)≥ρ then

  • 22:

            Expand curriculum boundary: α←ExpandBoundary(α)

  • 23:

            Update environment boundary: SetBoundary(Env,α)

  • 24:

        end if

  • 25:

        Clear rollout buffer: B←∅

  • 26:

    end for

  • 27:

    return θ,θlstm