Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dyth/causal-entropic-forces
An attempt to reimplement experiments from the 2013 paper by Wissner-Gross & Freer
https://github.com/dyth/causal-entropic-forces
Last synced: 2 days ago
JSON representation
An attempt to reimplement experiments from the 2013 paper by Wissner-Gross & Freer
- Host: GitHub
- URL: https://github.com/dyth/causal-entropic-forces
- Owner: dyth
- License: gpl-3.0
- Created: 2017-06-09T11:09:48.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2024-11-11T21:49:27.000Z (3 days ago)
- Last Synced: 2024-11-11T22:32:41.840Z (3 days ago)
- Language: Jupyter Notebook
- Homepage:
- Size: 56.8 MB
- Stars: 10
- Watchers: 4
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Causal Entropic Forces
An attempt to reimplement the particle in a box experiment as described in Fig.2a of [Wissner-Gross & Freer, 2013](http://math.mit.edu/~freer/papers/PhysRevLett_110-168702.pdf) and pages 2-3 and 10-11 of [supplementary material](https://journals.aps.org/prl/supplemental/10.1103/PhysRevLett.110.168702).
The code in its current state cannot reproduce the experiment reliably.
The agent in the experiment runs on an algorithm that three repeating steps.
1. Generate random walks throughout the environment from a start state.
![lightCone2D](https://raw.githubusercontent.com/dyth/causalEntropicForces/secondImplementation/images/particleBoxLightCone2D.png)2. Use kernel density estimation to compute the likelihood of visiting a future state at the end of a random walk given the start state.
![path](https://raw.githubusercontent.com/dyth/causalEntropicForces/secondImplementation/images/density.png)3. Update the start state to a new state in the direction towards the most-likely visited future state (given by black arrow). As seen in the diagram above, the black arrow actually goes against the expected direction in the experiment, so there's an error with the code at the moment.
## Installation
Python 2.7 with the `numpy`, `matplotlib`, `scipy` libraries.
```
$ pip install numpy matplotlib scipy
```## Run
Properties of the agent can be specified in `config.json`.
```
{
"environment" : "",
"num_sample_paths" : 200, // number of paths to sample
"plot" : {true, false},
"steps" : 100, // number of steps within the policy
"cur_macrostate" : null // for use in plotting light cones
}
```To design your own environment, ensure that it contains the same methods and variables as those in `particleBox.py`. The agent can then be run by the following command.
```
$ python agent.py
```