Coder Social home page Coder Social logo

burlap-domains's Introduction

Snap CI branch Maven Central Hex.pm java6 java7 java8

This repository is modified from BURLAP. The original repository is https://github.com/jmacglashan/burlap

BURLAP

Repository for the ongoing development of the Brown-UMBC Reinforcement Learning And Planning (BURLAP) java library.

BURLAP is a java code library for the use and development of single or multi-agent planning and learning algorithms and domains to accompany them. The library uses a highly flexible state/observation representation where you define states with your own Java classes, enabling support for domains that are discrete, continuous, relational, or anything else. Planning and learning algorithms range from classic forward search planning to value function-based stochastic planning and learning algorithms. Various tools are also included, such as an extendable experiment shell and a common framework for the visualization of domains and agent performance.

Important Links

Simple Example

Here is example code of creating a grid world problem, creating a Q-learning agent, running the agent for 100 episodes, and then visualizing the episodes after it's complete.

//define the problem
GridWorldDomain gwd = new GridWorldDomain(11, 11);
gwd.setMapToFourRooms();
gwd.setTf(new GridWorldTerminalFunction(10, 10));
SADomain domain = gwd.generateDomain();
Environment env = new SimulatedEnvironment(domain, new GridWorldState(0, 0));

//create a Q-learning agent
QLearning agent = new QLearning(domain, 0.99, new SimpleHashableStateFactory(), 1.0, 1.0);

//run 100 learning episode and save the episode results
List<Episode> episodes = new ArrayList<>();
for(int i = 0; i < 100; i++){
	episodes.add(agent.runLearningEpisode(env));
	env.resetEnvironment();
}

//visualize the completed learning episodes
new EpisodeSequenceVisualizer(GridWorldVisualizer.getVisualizer(gwd.getMap()), domain, episodes);

Linking

BURLAP builds using Maven and is indexed on Maven Central, so all you need to do to have your Maven project link to BURLAP is add the following to the <dependencies> section of your project's pom.xml file:

<dependency>
  <groupId>edu.brown.cs.burlap</groupId>
  <artifactId>burlap</artifactId>
  <version>3.0.1</version>
</dependency>

Alternatively, you can compile and install from the source using Maven. The current master branch may be ahead of the latest release on Maven Central, so if you compile and install from source, make sure your external project's POM dependency uses the version you installed.

Compiling

BURLAP uses Maven. If you have Maven intalled already, then use the following commands for the desired operation from the same directory as the code.

Create a jar file with sources and Java doc in the target directory (will be created):

mvn package

Install to your local Maven repository:

mvn install

If you want to install and skip the tests, use

mvn -DskipTests install

Older versions

Github branches contain older versions of the code repository. Some are also available on Maven Central.

burlap-domains's People

Contributors

jmacglashan avatar brawner avatar dtrycode avatar f-leno avatar postmasters avatar andyltt avatar erickerby avatar jameskyle avatar kylejmcintyre avatar tuxdna avatar itzakh avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.