Code Monkey home page Code Monkey logo

openlock's Introduction

OpenLock

OpenLock is an OpenAI Gym environment, designed for transfer learning. The environment is governed by compositional structure that requires reasoning about an abstract latent state. OpenLock is a virtual "escape room" where agents are required to interact with levers in order to open the door. Agents are required to find all solutions within a room. After completing a single room, agents are moved to a new room with the same underlying abstract structure, but the positions of each lever has been changed.

This experimental setup is designed to test whether or not agents are capable of forming an abstract representation of the task.

The gif below summarizes the environment's execution and how lever positions change between rooms:

OpenLock environment executions

The environment supports a number of scenarios, each of which encode a specific locking mechanism that governs the environment:

causal structures

For additional details on the environment, please see the project page for our CogSci 2018 paper: http://www.mjedmonds.com/projects/OpenLock/CogSci18_OpenLock_CausalRL.html

Installation

To install:

  1. Use Python 3.5+

  2. Install the following system-level packages:

sudo apt-get install python3-tk graphviz graphviz-dev
  1. Create a virtual envrionment for OpenLock. Then run:
python setup.py install
  1. Finally, install pybox2d 2.3.2 from source (https://github.com/pybox2d/pybox2d/blob/master/INSTALL.md)

Bibtex

If you use this environment in your work, please use the following citation:

@inproceedings{edmonds2018human,
  title={Human Causal Transfer: Challenges for Deep Reinforcement Learning},
  author={Edmonds, Mark and Kubricht, James and Summers, Colin and Zhu, Yixin and Rothrock, Brandon and Zhu, Song-Chun and Lu, Hongjing},
  booktitle={40th Annual Meeting of the Cognitive Science Society},
  year={2018}
}

openlock's People

Contributors

mjedmonds avatar chi6 avatar colinxs avatar wllmshao avatar jeasinema avatar xiaozhuchacha avatar austinguo550 avatar

Stargazers

Chunyang Tang avatar June avatar Chi Zhang avatar Feng Gao avatar Daniel Tang avatar Thomas Gorman avatar superidiot avatar  avatar YinfengYu avatar Zilong Zheng avatar  avatar  avatar Ignavier Ng avatar ykoneee avatar  avatar Zeyu Zhang avatar Yixin Chen avatar Lifeng Fan avatar

Watchers

James Cloos avatar  avatar

openlock's Issues

Test fails due to KeyError

python tests.py fails on line 59 of openlock_env.py. In a debugger it's clear that env.config_to_idx is empty, because initialize_for_scenario wasn't called. I don't know what the right entry-point to initialize_for_scenario is.

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.