Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCTS Adaptive Split Menu

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.

What is a split menu:

Splitmenu

How to adapt:

The items in the recent section is dynamically adpatived to user's preference.

What I have changed:

Files in MCTS - rewards design/ Monte Carlo tree search

What remains as the original repo:

Files in value_network - trained Neural network

The Original Repo:

Project for the MCTS of menu adaptions.

Read the Value Network documentation in a dedicated folder.

Contributors

In alphabetical order:

  • Antti Oulasvirta
  • Gilles Baily
  • Kashyap Todi
  • Luis A. Leiva

Requirments

  1. Parallel Python (PP): To install for Python3, navigate to the pp-1.6.4.4 directory, and run pip3 install.
  2. TensorFlow 2 (https://www.tensorflow.org/install/pip) for using the Value Network

Key Components for MCTS

  • 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) where i and j are two positions in the menu, type specifies the type of adaptation (e.g. swap, move, group move), and expose 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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages