The original repo of this project : https://github.com/aalto-ui/chi21adaptive
This an extension version of Adaptive Menu, with a focus on adapting the split menu.
My work focused on redesigning the rewards in Deep reinforcement learning to make the whole system work on the split menu specifically.
The items in the recent section is dynamically adpatived to user's preference.
Files in MCTS - rewards design/ Monte Carlo tree search
Files in value_network - trained Neural network
Project for the MCTS of menu adaptions.
Read the Value Network documentation in a dedicated folder.
In alphabetical order:
- Antti Oulasvirta
- Gilles Baily
- Kashyap Todi
- Luis A. Leiva
- Parallel Python (PP): To install for Python3, navigate to the
pp-1.6.4.4directory, and runpip3 install. - TensorFlow 2 (https://www.tensorflow.org/install/pip) for using the Value Network
plan.pyis the starting point for code execution. To generate results, execute:
python3 plan.py -c 5items --nonn
The command will run the MCTS planner for the 5 item case (menu_5items.txt) without the value network. To include the value network, remove the --nonn option.
-
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 entire code for running the 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.
