我怎么运行Sutton和巴顿的"强化学习"舌头的代码?
-
22-08-2019 - |
题
我已经阅读了很多关于 加强学习 最近,我有发现 "加强学习:介绍" 是一个很好的指导。提交人帮忙,省 源代码 很多他们的工作的例子。
在我开始之前的问题,我要指出,我实际知识的舌头是最小的。我知道的基本概念和它如何工作的,但是我从来没有真正使用舌头在一个有意义的方式,所以很可能我只是在做一些令人难以置信的n00b-ish。:)
此外,提交人称在他的网页,他不会回答的问题对他的代码,所以我没联系他,想堆溢出将是一个更好的选择。
我一直在试运行代码在linux计算机上使用GNU是由一个和SBCL但没有能够运行。我继续得到整个列表中的错误,无论是使用翻译。特别是,大多数代码的出现要使用大量的公用事业的文件中包含的'公用事业。list'其中包含线
(defpackage :rss-utilities
(:use :common-lisp :ccl)
(:nicknames :ut))
(in-package :ut)
该:ccl似乎是指某种类型的基于Mac版本的口齿不清,但我不能确认这一点,这可能仅仅是一些其他的软件包的代码。
> * (load "utilities.lisp")
>
> debugger invoked on a
> SB-KERNEL:SIMPLE-PACKAGE-ERROR in
> thread #<THREAD "initial thread"
> RUNNING {100266AC51}>: The name
> "CCL" does not designate any package.
>
> Type HELP for debugger help, or
> (SB-EXT:QUIT) to exit from SBCL.
>
> restarts (invokable by number or by
> possibly-abbreviated name): 0:
> [ABORT] Exit debugger, returning to
> top level.
>
> (SB-INT:%FIND-PACKAGE-OR-LOSE "CCL")
我试图消除这种特殊件(改变的行为
(:use :common-lisp)
但是,这只是创造了更多的错误。
> ; in: LAMBDA NIL ; (+
> RSS-UTILITIES::*MENUBAR-BOTTOM* ;
> (/ (- RSS-UTILITIES::MAX-V
> RSS-UTILITIES::V-SIZE) 2)) ; ; caught
> WARNING: ; undefined variable:
> *MENUBAR-BOTTOM*
>
> ; (-
> RSS-UTILITIES::*SCREEN-HEIGHT*
> RSS-UTILITIES::*MENUBAR-BOTTOM*) ; ;
> caught WARNING: ; undefined
> variable: *SCREEN-HEIGHT*
>
> ; (IF RSS-UTILITIES::CONTAINER ;
> (RSS-UTILITIES::POINT-H ;
> (RSS-UTILITIES::VIEW-SIZE
> RSS-UTILITIES::CONTAINER)) ;
> RSS-UTILITIES::*SCREEN-WIDTH*) ; ;
> caught WARNING: ; undefined
> variable: *SCREEN-WIDTH*
>
> ; (RSS-UTILITIES::POINT-H
> (RSS-UTILITIES::VIEW-SIZE
> RSS-UTILITIES::VIEW)) ; ; caught
> STYLE-WARNING: ; undefined function:
> POINT-H
>
> ; (RSS-UTILITIES::POINT-V
> (RSS-UTILITIES::VIEW-SIZE
> RSS-UTILITIES::VIEW)) ; ; caught
> STYLE-WARNING: ; undefined function:
> POINT-V
任何人有任何想法,我可以运行这个代码?我只是完全无知的口齿不清所有的东西?
更新[2009年]: 我安装了Clozure,但是仍然不能得到代码运行。
在CCL命令,该命令
(load "utilities.lisp")
结果在以下错误输出:
;Compiler warnings :
; In CENTER-VIEW: Undeclared free variable *SCREEN-HEIGHT*
; In CENTER-VIEW: Undeclared free variable *SCREEN-WIDTH*
; In CENTER-VIEW: Undeclared free variable *MENUBAR-BOTTOM* (2 references)
> Error: Undefined function RANDOM-STATE called with arguments (64497 9) .
> While executing: CCL::READ-DISPATCH, in process listener(1).
> Type :GO to continue, :POP to abort, :R for a list of available restarts.
> If continued: Retry applying RANDOM-STATE to (64497 9).
> Type :? for other options.
1 >
很不幸的是在这里,我仍然在学习有关口齿不清,因此,虽然我有感觉的东西不是完全确定,我并不真正了解如何读取这些错误消息。
解决方案
这代码是用于Macintosh的Common Lisp(MCL)。它只会在那里运行。使用Clozure CL(CCL)不会帮助。你将不得不作出评论的图形代码。随机状态的东西也是为了MCL略特。你必须将它移植到便携式Common Lisp的(使随机状态等)。另外,文件名是特别为Mac。
Clozure CL是从Macintosh的Common Lisp的一个叉,但可以改变为Unix公约(路径名,...),并且不包括MCL的特殊图形代码。
其他提示
我的猜测是,代码是CCL-依赖性的,所以使用 CCL 代替CLISP或SBCL 。 http://trac.clozure.com/openmcl
:您可以从这里下载在Linux x86使用最新版本的CCL的,有了这个文件保存为foo.lisp:
#+ccl (defun random-state (x y)
(ccl::initialize-random-state x y))
(load "utilities.lisp")
(use-package 'rss-utilities)
(load "testbed.lisp")
(setup)
(init)
(print (runs 10 10 .1))
运行
~/svn/ccl/lx86cl -l foo.lisp
打印一堆警告消息和所期望的答案:
(-0.77201915 0.59691894 0.78171235 0.41514033 0.6744591 0.26383805 0.8981678 1.1274683 0.50265205 0.4081622)
要找出所需的#'随机状态defun定义,我猜到是‘#。(RANDOM-STATE 64497 9)’是从MCL序列化随机状态对象。要查看CCL如何处理,我在CCL检查什么使随机态输出:
$ ~/svn/ccl/lx86cl
Welcome to Clozure Common Lisp Version 1.3-r11936 (LinuxX8632)!
? (make-random-state)
#.(CCL::INITIALIZE-RANDOM-STATE 64497 9)
如果你从未以有意义的方式使用口齿不清,有一个 Matlab代码一>为 “强化学习:简介”
。除了 Rainer Joswig的答案:一旦安装Clozure你就必须更新参引的功能 RANDOM-STATE
在 utilities.lisp
要 random-mrg31k3p-state
.
更具体地更换: #.(RANDOM-STATE 64497 9)
与 #.(ccl::random-mrg31k3p-state)
random-mrg31k3p-state
似乎已经取代 random-state
之后的某个时间代码被写入看到 l1号码。口齿不清?转=13327