lisp - 如何运行 Sutton 和 Barton 的 "Reinforcement Learning"Lisp 代码?

标签 lisp artificial-intelligence common-lisp reinforcement-learning mcl

我已经阅读了很多关于 Reinforcement Learning 的内容最近,我找到了"Reinforcement Learning: An Introduction"成为一名出色的向导。作者的帮助省source code对于他们的许多工作示例。

在开始这个问题之前,我应该指出我对 lisp 的实际知识很少。我知道基本概念及其工作原理,但我从未真正以有意义的方式使用过 lisp,所以我很可能只是在做一些令人难以置信的 n00b-ish。 :)

另外,作者在他的页面上声明他不会回答关于他的代码的问题,所以我没有联系他,并且认为 Stack Overflow 会是一个更好的选择。

我一直在尝试在 linux 机器上运行代码,同时使用 GNU 的 CLISP 和 SBCL,但未能运行它。使用任一解释器时,我都会不断收到完整的错误列表。特别是,大多数代码似乎使用了文件“utilities.lisp”中包含的大量实用程序,该文件包含以下行

(defpackage :rss-utilities
  (:use :common-lisp :ccl)
  (:nicknames :ut))

(in-package :ut)

:ccl 似乎是指某种基于 Mac 的 lisp 版本,但我无法证实这一点,它可能只是其他一些代码包。

> * (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

有人知道我如何运行这段代码吗?我是不是对 lisp 的一切一无所知?

更新 [2009 年 3 月]:我安装了 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 >

不幸的是,我仍在学习 lisp,所以虽然我觉得有些东西没有完全定义,但我并不真正理解如何阅读这些错误消息。

最佳答案

我的猜测是代码依赖于 CCL,所以使用 CCL而不是 CLISP 或 SBCL。您可以从这里下载:http://trac.clozure.com/openmcl

关于lisp - 如何运行 Sutton 和 Barton 的 "Reinforcement Learning"Lisp 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/533960/

相关文章:

format - 漂亮地打印固定宽度字段中的值

opengl - 如何使用 SBCL 安装 CL-Opengl?

artificial-intelligence - 遗传算法的选择算子

lisp - lisp项目的结构

common-lisp - 了解 Common Lisp 中的类型说明符

lisp - 如何反复搜索一个plist?

lisp - 在这里如何使用mapcar?

python-3.x - 运行预训练 ImageAI 模型时出现问题

Python 国际象棋实现

方案表达式评估