This code repository is for the adaptive menus application described in the CHI 2021 paper: https://userinterfaces.aalto.fi/adaptive/resources/chi2021-todi-adaptive.pdf
- Ray (https://ray.io) for parallelisation.
- TensorFlow 2 (https://www.tensorflow.org/install/pip) for using the neural networks.
plan.pyis the starting point for code execution. To generate results, execute:
python3 plan.pyThe command will run the MCTS planner for the 5-item case (
menu_5items.txt) without the value network. To use the value network, add the
python3 plan.py -hSee the full list of options available for running
utility.pycontains useful functions for loading data, initialisation, etc.
Input files are stored within
Inputfolder. For each case, there's an input menu, association list, and user history.
state.pydefines the menu and user state. The root state is initialised using the input menu, associations, and user history
adaptation.pyprovides a general format for defining adaptations. It uses the syntax
jare two positions in the menu,
typespecifies the type of adaptation (e.g. swap, move, group move), and
exposeis a boolean that specifies whether the adapted menu is exposed to the user or not.
mcts.pycontains the code for Monte Carlo tree search.
useroracle.pydefines the user models for running simulations. These models are used towards predicting task completion time given a menu design, and for computing the reward after making an adaptation.