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.4
directory, and runpip3 install
. - TensorFlow 2 (https://www.tensorflow.org/install/pip) for using the Value Network
plan.py
is 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.py
contains useful functions for loading data, initialisation, etc. -
Input files are stored within
Input
folder. For each case, there's an input menu, association list, and user history. -
state.py
defines the menu and user state. The root state is initialised using the input menu, associations, and user history -
adaptation.py
provides a general format for defining adaptations. It uses the syntax(i,j,type,expose)
wherei
andj
are two positions in the menu,type
specifies the type of adaptation (e.g. swap, move, group move), andexpose
is a boolean that specifies whether the adapted menu is exposed to the user or not. -
mcts.py
contains the entire code for running the Monte Carlo tree search. -
useroracle.py
defines 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.