An implementation of open-ended goal inference via open-ended Sequential Inverse Plan Search (SIPS) in the Block Words domain.
For more details about open-ended SIPS, see our paper:
Tan Zhi-Xuan, Gloria Kang, Vikash Mansinghka, and Joshua B. Tenenbaum, 2024. Infinite Ends from Finite Samples: Open-Ended Goal Inference as Top-Down Bayesian Filtering of Bottom-Up Proposals In Proceedings of the 46th Annual Meeting of the Cognitive Science Society (CogSci 2024).
Model outputs, human data, and figures can be found in the following OSF repository: https://osf.io/bygwm/
To set up the environment for this project, make sure this directory is set as the active environment. Then run the following commands in via Pkg
mode in the Julia REPL:
add https://github.com/probcomp/InversePlanning.jl.git
instantiate
The files in this directory are organized as follows:
- The
dataset
directory contains all plans, problems, and stimuli. - The
src
directory contains non-top-level source files. - The
assets
directory contains word and word frequency lists. - The
interface
directory contains the web interface for our experiment. run_inference.jl
runs the inference algorithms and saves their outputs.run_analysis.jl
analyzes model outputs in comparison with human data.testbed.jl
is for experimenting with modeling and inference parametersstimuli.jl
generates stimuli animations and metadata
The word list corresponds to the 3of6game
list from the 12Dicts package. Word frequencies for each word are derived from the Zipf frequency returned by the wordfreq Python package. The Block Words domain was first introduced in Ramizez & Geffner (IJCAI 2009) as a variant of the classic Blocksworld.