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-nnoption. -
python3 plan.py -hSee the full list of options available for runningplan.py -
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(i,j,type,expose)whereiandjare two positions in the menu,typespecifies the type of adaptation (e.g. swap, move, group move), andexposeis 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.