DeepXube (pronounced "Deep Cube") aims to solve classical planning problems in an explainable manner using deep reinforcement learning, heuristic search, and formal logic. The current project can:
- Train a heuristic function to estimate the cost-to-go between state/goal pairs, where a goal represents a set of states considered goal states. The representation of the goal can come in any form: i.e. a state, a set of ground atoms in first-order logic, natural language, an image/sketch, etc.
- Specify goals with answer set programming, a robust form of logic programming, in the case where goals are represented as a set of ground atoms in first-order logic.
DeepXube is a generalization of DeepCubeA (code,paper).
For any issues, you can create a GitHub issue or contact Forest Agostinelli ([email protected]).
Outline:
- Installation
- Environment
- Training Heuristic Function
- Heuristic Search
- Answer Set Programming Specification
- Examples
pip install deepxube
See INSTALL.md for more details
The environment includes a state object that defines states, a goal object that defines goals (a set of states considered goal states), and an environment object that generate start states, define state transitions, when a state a goal state, and the neural network that takes states as an input.
See ENVIRONMENT.md for more details
Once an environment has been implemented, a heuristic function can be trained to map states and goals to heuristic values (estimates of the cost-to-go from a given start state to a given goal).
See TRAIN.md for more details.
Given a trained heuristic function, a start state, and a goal, heuristic search is used to find a path from the start state to the goal.
See HEURSEARCH.md for more details.
Coming soon.