zhtrb 2018-04-15 15:10 采纳率: 0%
浏览 1651
已结题

Julia代码错误解决方法

错误显示如下:

 WARNING: deprecated syntax "abstract AbstractTransitionProbability" at D:\JuliaPro-0.6.2.2\pkgs-0.6.
2.2\v0.6\MDPs\src\transition.jl:16.
Use "abstract type AbstractTransitionProbability end" instead.

WARNING: deprecated syntax "abstract AbstractArrayTransitionProbability<:AbstractTransitionProbabili
ty" at D:\JuliaPro-0.6.2.2\pkgs-0.6.2.2\v0.6\MDPs\src\transition.jl:29.
Use "abstract type AbstractArrayTransitionProbability<:AbstractTransitionProbability end" instead.

WARNING: deprecated syntax "inner constructor ArrayTransitionProbability(...) around D:\JuliaPro-0.6
.2.2\pkgs-0.6.2.2\v0.6\MDPs\src\transition.jl:50".
Use "ArrayTransitionProbability{T}(...) where T" instead.

WARNING: deprecated syntax "abstract AbstractReward" at D:\JuliaPro-0.6.2.2\pkgs-0.6.2.2\v0.6\MDPs\s
rc\reward.jl:17.
Use "abstract type AbstractReward end" instead.

WARNING: deprecated syntax "abstract AbstractArrayReward<:AbstractReward" at D:\JuliaPro-0.6.2.2\pkg
s-0.6.2.2\v0.6\MDPs\src\reward.jl:19.
Use "abstract type AbstractArrayReward<:AbstractReward end" instead.

WARNING: deprecated syntax "inner constructor ArrayReward(...) around D:\JuliaPro-0.6.2.2\pkgs-0.6.2
.2\v0.6\MDPs\src\reward.jl:37".
Use "ArrayReward{T,N}(...) where {T,N}" instead.

WARNING: deprecated syntax "abstract AbstractQFunction" at D:\JuliaPro-0.6.2.2\pkgs-0.6.2.2\v0.6\MDP
s\src\qfunction.jl:26.
Use "abstract type AbstractQFunction end" instead.

WARNING: deprecated syntax "inner constructor VectorQFunction(...) around D:\JuliaPro-0.6.2.2\pkgs-0
.6.2.2\v0.6\MDPs\src\qfunction.jl:113".
Use "VectorQFunction{V,A}(...) where {V,A}" instead.
WARNING: Method definition isequal(MDPs.ArrayQFunction{T} where T<:Real, MDPs.ArrayQFunction{T} wher
e T<:Real) in module MDPs at D:\JuliaPro-0.6.2.2\pkgs-0.6.2.2\v0.6\MDPs\src\qfunction.jl:51 overwrit
ten at D:\JuliaPro-0.6.2.2\pkgs-0.6.2.2\v0.6\MDPs\src\qfunction.jl:138.

WARNING: deprecated syntax "abstract AbstractMDP" at D:\JuliaPro-0.6.2.2\pkgs-0.6.2.2\v0.6\MDPs\src\
mdp.jl:2.
Use "abstract type AbstractMDP end" instead.
ERROR: LoadError: LoadError: LoadError: LoadError: UndefVarError: FloatingPoint not defined
while loading D:\JuliaPro-0.6.2.2\pkgs-0.6.2.2\v0.6\MDPs\src\random.jl, in expression starting on li
ne 2
while loading D:\JuliaPro-0.6.2.2\pkgs-0.6.2.2\v0.6\MDPs\src\examples.jl, in expression starting on
line 11
while loading D:\JuliaPro-0.6.2.2\pkgs-0.6.2.2\v0.6\MDPs\src\MDPs.jl, in expression starting on line
 59
while loading C:\Users\zhtrb\Desktop\LowRankMDP-master\mdps\MountainCar.jl, in expression starting o
n line 3

我这个是从github上找的代码,它里面也有一个MDPs,但是无法调用,所以我就Pkg.add("MDPs")
这个代码是Julia 0.3的我用的Julia0.6.22解释应该不会有什么问题吧
代码如下:

 module MountainCar

using MDPs, PGFPlots

export state_space, action_space, transition, reward, simulate,
       viz_policy, viz_trajectory
export XMIN, XMAX, VMIN, VMAX


# mdp
const MX = 50
const MV = 50
const N = 1000

# state
const XMIN = -1.2
const XMAX = 0.5
const VMIN = -0.07
const VMAX = 0.07

# action
const AMIN = -1.0
const AMAX = 1.0

# reward
const TERM_REWARD = 10
const NONTERM_REWARD = -1

# test
const T = 500


function state_space(mx::Int64=MX, mv::Int64=MV)
    xs = linspace(XMIN, XMAX, mx)
    vs = linspace(VMIN, VMAX, mv)
    return RectangleGrid(xs, vs)
end # function state_space


function action_space(n::Int64=N)
    return linspace(AMIN, AMAX, n)
end # function action_space


function transition(state::Vector{Float64}, action::Float64)
    snext = zeros(length(state))
    snext[2] = state[2] + 0.001 * action - 0.0025 * cos(3 * state[1])
    snext[2] = clip(snext[2], VMIN, VMAX)
    snext[1] = clip(state[1] + snext[2], XMIN, XMAX)
    return snext
end # function transition


function clip(val::Float64, minval::Float64, maxval::Float64)
    return min(maxval, max(minval, val))
end # function clip


function reward(state::Vector{Float64}, action::Float64)
    if state[1] == XMAX
        return TERM_REWARD
    else
        return NONTERM_REWARD
    end # if
end # function reward


function simulate(mdp::MDP, policy::Policy, state::Vector{Float64})
    trajectory = zeros(T, dimensions(mdp.S))
    actions = zeros(T)
    for t = 1:T
        trajectory[t, :] = state
        if state[1] == XMAX
            trajectory = trajectory[1:t, :]
            actions = actions[1:t - 1]
            break
        end # if
        action = policy!(policy, get_belief(mdp, state))
        state = mdp.transition(state, action)
        actions[t] = action
    end # for t
    return trajectory, actions
end # function simulate


function viz_policy(mdp::MDP, policy::Policy)
    function getmap(x::Float64, v::Float64)
        return policy!(policy, get_belief(mdp, [x, v]))
    end # function getmap

    Axis([Plots.Image(getmap, (XMIN, XMAX), (VMIN, VMAX),
                      xbins = 250, ybins = 250,
                      colormap = ColorMaps.Named("RdBu"))],
          width="14cm", height="14cm",
          xlabel="position", ylabel="speed",
          title="Policy heatmap")
end # function viz_policy


function viz_trajectory(trajectory::Matrix{Float64}, actions::Vector{Float64})
    g = GroupPlot(2, 1, groupStyle="horizontal sep=1.5cm")
    push!(g, Axis([Plots.Linear(trajectory[:, 1])],
                  width="12cm", height="12cm",
                  xlabel="time", ylabel="position",
                  title="position over time"))
    push!(g, Axis([Plots.Linear(actions)],
                  width="12cm", height="12cm",
                  xlabel="time", ylabel="acceleration",
                  title="acceleration over time"))
    g
end # function viz_trajectory

end # module

还有一个问题怎么去调用自己的模块呢,我是放在一个文件夹下面的。

  • 写回答

1条回答 默认 最新

  • devmiao 2018-04-15 15:52
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog