-
Notifications
You must be signed in to change notification settings - Fork 0
Automatically exported from code.google.com/p/rl-library
License
davehg/rl-library
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
{\rtf1\ansi\ansicpg1252\cocoartf949 {\fonttbl\f0\fswiss\fcharset0 ArialMT;\f1\fmodern\fcharset0 Courier;} {\colortbl;\red255\green255\blue255;\red0\green0\blue153;\red0\green0\blue205;\red102\green103\blue0; } \margl1440\margr1440\vieww19880\viewh18160\viewkind0 \deftab720 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ql\qnatural\pardirnatural \f0\b\fs32 \cf0 \expnd0\expndtw0\kerning0 Documentation \b0\fs26 \expnd0\expndtw0\kerning0 \'a0 \i \expnd0\expndtw0\kerning0 \ RL-Library Documentation\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural \i0 \cf0 \expnd0\expndtw0\kerning0 Thank you for downloading/using RL-Library.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa120\ql\qnatural\pardirnatural \cf0 \expnd0\expndtw0\kerning0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa320\ql\qnatural\pardirnatural \b\fs48 \cf0 \expnd0\expndtw0\kerning0 What's an RL-Library?\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural \b0\fs26 \cf0 \expnd0\expndtw0\kerning0 RL-Library is a collection of open-source agents, environments, and experiments that are compatible with the {\field{\*\fldinst{HYPERLINK "http://code.google.com/p/rl-glue/"}}{\fldrslt \cf2 \expnd0\expndtw0\kerning0 \ul \ulc3 RL-Glue}} reinforcement learning interface implementation.\ The idea is that by providing these agent, environments, and experiments to the community, we can largely eliminate the pain in the neck of re-implementing each other's hard work all the time, and facilitate more accurate and effective comparisons between methods by using a shared code library.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa120\ql\qnatural\pardirnatural \cf0 \expnd0\expndtw0\kerning0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa320\ql\qnatural\pardirnatural \b\fs48 \cf0 \expnd0\expndtw0\kerning0 Hyper Quick Start\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural \b0\fs26 \cf0 \expnd0\expndtw0\kerning0 If you just want to see something happen without learning anything about what's in this package, do:\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ql\qnatural\pardirnatural \f1\fs24 \cf0 \expnd0\expndtw0\kerning0 $\cf4 \expnd0\expndtw0\kerning0 >\cf0 \expnd0\expndtw0\kerning0 cd projects/experiments/guiExperiment\ $\cf4 \expnd0\expndtw0\kerning0 >\cf0 \expnd0\expndtw0\kerning0 bash runNetDynamicEnvAgent\cf4 \expnd0\expndtw0\kerning0 .\cf0 \expnd0\expndtw0\kerning0 bash\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural \f0\b\fs26 \cf0 \expnd0\expndtw0\kerning0 Note: \b0 \expnd0\expndtw0\kerning0 This is a graphical demo and will only work if you can display a graphical Java window!\ This will run the graphical experiment program with all of the Java agents and environments currently in rl-library.\ There are also sample experiments that you can run in projects/experiments\ Please read the rest of this document to learn what that means and what other things you can do!\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa320\ql\qnatural\pardirnatural \b\fs48 \cf0 \expnd0\expndtw0\kerning0 Installation\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural \b0\fs26 \cf0 \expnd0\expndtw0\kerning0 In theory, RL-Library is an effort that has been created by a variety of authors on a variety of platforms. We're trying as much as possible to enforce standards and set things up in as flexible a way as possible, but it won't always work.\ We use two build systems (so far) on this project, {\field{\*\fldinst{HYPERLINK "http://ant.apache.org/"}}{\fldrslt \cf2 \expnd0\expndtw0\kerning0 \ul \ulc3 Apache Ant}} and {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/software/make/"}}{\fldrslt \cf2 \expnd0\expndtw0\kerning0 \ul \ulc3 Make}}. The core C/C++ stuff uses Make and the Java stuff all uses Ant. We consider Ant our primary build system because we have it setup so that Ant can call Make, but not vice versa.\ Anyway, to rebuild the Java stuff you need Ant, but you shouldn't need to rebuild the Java stuff if you don't want to.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa280\ql\qnatural\pardirnatural \b\fs36 \cf0 \expnd0\expndtw0\kerning0 RL-Glue\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural \b0\fs26 \cf0 \expnd0\expndtw0\kerning0 Can be built from Ant or Make:\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ql\qnatural\pardirnatural \f1\fs24 \cf0 \expnd0\expndtw0\kerning0 $\cf4 \expnd0\expndtw0\kerning0 >\cf0 \expnd0\expndtw0\kerning0 make rl\cf4 \expnd0\expndtw0\kerning0 -\cf0 \expnd0\expndtw0\kerning0 glue\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural \f0\fs26 \cf0 \expnd0\expndtw0\kerning0 or\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ql\qnatural\pardirnatural \f1\fs24 \cf0 \expnd0\expndtw0\kerning0 $\cf4 \expnd0\expndtw0\kerning0 >\cf0 \expnd0\expndtw0\kerning0 ant rl\cf4 \expnd0\expndtw0\kerning0 -\cf0 \expnd0\expndtw0\kerning0 glue\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa280\ql\qnatural\pardirnatural \f0\b\fs36 \cf0 \expnd0\expndtw0\kerning0 Java Environments and Agents\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural \b0\fs26 \cf0 \expnd0\expndtw0\kerning0 All of the Java agents and environments should already be compiled into jar files that live in \f1\fs22 \expnd0\expndtw0\kerning0 rl-library/system/dist \f0\fs26 \expnd0\expndtw0\kerning0 . Java class files and .jar package files really are cross-platform compatible, so when you download rl-library you get them out of the box for free.\ To rebuild all of the Java projects, test them, generate their {\field{\*\fldinst{HYPERLINK "http://en.wikipedia.org/wiki/Javadoc"}}{\fldrslt \cf2 \expnd0\expndtw0\kerning0 \ul \ulc3 JavaDocs}}, and build rl-glue:\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ql\qnatural\pardirnatural \f1\fs24 \cf0 \expnd0\expndtw0\kerning0 $\cf4 \expnd0\expndtw0\kerning0 >\cf0 \expnd0\expndtw0\kerning0 ant all\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa280\ql\qnatural\pardirnatural \f0\b\fs36 \cf0 \expnd0\expndtw0\kerning0 C++ Agent and Environment Loaders for RL-Viz\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural \b0\fs26 \cf0 \expnd0\expndtw0\kerning0 Not quite implemented yet. Soon. For now, you can't use C++ agents or environments in RL-Viz experiments, only with RL-Glue experiments. Real the RL-Viz vs. RL-Glue section below if you don't know what we're talking about.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa280\ql\qnatural\pardirnatural \b\fs36 \cf0 \expnd0\expndtw0\kerning0 Specific Projects\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural \b0\fs26 \cf0 \expnd0\expndtw0\kerning0 For projects that are not automatically built by the main build system, please refer to the project specific documentation here on the Wiki, or in the INSTALL instructions in that directory, or wherever those docs are. Hopefully it won't be much harder than typing \f1\fs22 \expnd0\expndtw0\kerning0 make \f0\fs26 \expnd0\expndtw0\kerning0 .\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa320\ql\qnatural\pardirnatural \b\fs48 \cf0 \expnd0\expndtw0\kerning0 What the Heck are RL-Glue and RL-Viz\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural {\field{\*\fldinst{HYPERLINK "http://code.google.com/p/rl-glue/"}}{\fldrslt \b0\fs26 \cf2 \expnd0\expndtw0\kerning0 \ul \ulc3 RL-Glue}} \b0\fs26 \expnd0\expndtw0\kerning0 is both an idea and an implementation. The idea is a standard interface, a set of function calls, that reinforcement learning agents, environments, and experiments should use so that they can be easily understood and reused by the reinforcement learning community.\ The implementation is a cross-language, cross-platform software library for creating reinforcement-learning \i \expnd0\expndtw0\kerning0 components \i0 \expnd0\expndtw0\kerning0 (agents, environments, and experiments). It runs on Linux/Unix/Mac OS X/Cygwin and currently supports Python, C, C++, and Java. Lisp and Matlab support are in the works. Basically, you write your component following the spec and link it to RL-Glue. Then, you can use that component with any complimentary components that support the same actions and observations. So I could write an RL-Glue environment that has discrete actions and observations, compile it with RL-Glue, and then it could be easily used with any RL-Glue agent that works with discrete action, discrete observations. The programs could be compiled together into a single executable, or run in difference languages on a single computer, or run on different everything running across the Internet. It's pretty cool.\ Every agent, environment, and experiment in here should \b \expnd0\expndtw0\kerning0 hopefully \b0 \expnd0\expndtw0\kerning0 be compatible with RL-Glue on it's own.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ql\qnatural\pardirnatural \b\fs32 \cf0 \expnd0\expndtw0\kerning0 RL-Viz\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural {\field{\*\fldinst{HYPERLINK "http://rl-viz.googlecode.com/"}}{\fldrslt \b0\fs26 \cf2 \expnd0\expndtw0\kerning0 \ul \ulc3 RL-Viz}} \b0\fs26 \expnd0\expndtw0\kerning0 is a protocol + implementation that builds on \i \expnd0\expndtw0\kerning0 top \i0 \expnd0\expndtw0\kerning0 of RL-Glue. RL-Viz adds a specification on top of some of the more open-ended parts of RL-Glue in order to add some really neat functionality.\ Some main features:\ \pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural\pardirnatural \cf0 \expnd0\expndtw0\kerning0 \'95 Supports visualization of agents and environments\ \'95 Allows run-time selection of agents and environments\ \'95 Allows run-time configuration (setting parameters) of agents and environments\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural \cf0 \expnd0\expndtw0\kerning0 RL-Viz is currently used for the {\field{\*\fldinst{HYPERLINK "http://rl-competition.org/"}}{\fldrslt \cf2 \expnd0\expndtw0\kerning0 \ul \ulc3 Reinforcement Learning Competition 2008}}.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ql\qnatural\pardirnatural \b\fs32 \cf0 \expnd0\expndtw0\kerning0 How they Fit Together\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural \b0\fs26 \cf0 \expnd0\expndtw0\kerning0 Many of the components in the RL-Library have been created offer additional features if used through RL-Viz. To the end user, RL-Viz can be easier to use than RL-Glue because it tries to automate some aspects of running RL-Glue experiments. In any case, RL-Viz is a strict addition to RL-Glue, so anything built for RL-Viz can be used without it.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa120\ql\qnatural\pardirnatural \cf0 \expnd0\expndtw0\kerning0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa320\ql\qnatural\pardirnatural \b\fs48 \cf0 \expnd0\expndtw0\kerning0 Licensing\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa260\ql\qnatural\pardirnatural \b0\fs26 \cf0 \expnd0\expndtw0\kerning0 Each project in here is licensed independently. I know the Google Code project says Apache License 2.0. That's not project wide.\ This is a complex topic. We (Brian Tanner, Adam White, Rich Sutton, etc. at the University of Alberta) have created this Google Code project called 'rl-library'. We are putting all of the infrastructure code out under Apache License 2.0. I'm not going to explain Apache License 2.0 in detail, because I don't always get it myself, but the point is that it means that you can redistribute that code or any derivative of it without must restriction. I think you have to give us credit.\ Google Code technically says that all parts of a project should be under the same license. That's not really going to work for us, and I hope they're not upset about it.\ Instead, it goes like this: each sub-project (agent/environment/experiment) within the rl-library can be released under whatever open-source license the authors would like. If someone wants to make their code completely free (no terms, just use and enjoy), while someone else would like to use the GPL, I'm saying that's fine. It just means that if you want to use some code, you should look at the license and notices that are explained at the top level of that project.\ If you would like to use some of the work here under a different license than is offered, you can work that out with the original author, provided that you can get in contact with them.\ Sorry that this has to be complicated.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa120\ql\qnatural\pardirnatural \cf0 \expnd0\expndtw0\kerning0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\sa320\ql\qnatural\pardirnatural \b\fs48 \cf0 \expnd0\expndtw0\kerning0 Credits\ \pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural\pardirnatural \b0\fs26 \cf3 \expnd0\expndtw0\kerning0 \'95 {\field{\*\fldinst{HYPERLINK "http://brian.tannerpages.com/"}}{\fldrslt \cf2 \expnd0\expndtw0\kerning0 \ul \ulc2 Brian Tanner}}\cf0 \expnd0\expndtw0\kerning0 \ \cf3 \expnd0\expndtw0\kerning0 \'95 {\field{\*\fldinst{HYPERLINK "http://http://www.adamwhite.ca/"}}{\fldrslt \cf2 \expnd0\expndtw0\kerning0 \ul \ulc2 Adam White}}\cf0 \expnd0\expndtw0\kerning0 \ \'95 Mark Lee\ \'95 Andrew Butcher\ \'95 Matthew Radkie\ \'95 Leah Hackman}
About
Automatically exported from code.google.com/p/rl-library
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published