# Install dependencies

```
pip3 install -r requirements.txt
```

### optional for tree plotting.
```
sudo apt install graphviz
```

### Download classification dataests:
download from: https://github.com/mengxianglgal/Quant-BnB/tree/main/dataset/class
and save in ./data/big_data/ 

# Get DPDT data for plots, tables (roughly 1 hour)
```
python3 data_dpdt2_depth5.py
python3 data_dpdt3_depth5.py
python3 data_dpdt4_depth3_alpha0.py
python3 data_dpdt4_depth3.py
python3 data_dpdt4_depth5.py
python3 data_dpdt5_depth3_alpha0.py
python3 data_dpdt5_depth5.py

```
# Plot Figure 2
## plot in plots/selectors.pdf
```
python3 plot_mdp_states.py
```

# Table 1 DPDT-5, DPDT-4 columns
## run all notebook cells: train_test_accuracies_dpdt_depth3.ipynb

# Table 1 CART column
## run all notebook cells: cart_depth3.ipynb

# Figure 4 (Deep RL algorithms, takes 10 hours at least to run)
## 1. run all notebook cells: custard_depth2.ipynb
## 2. run all notebook cells: custard3.ipynb
## 3. run all notebook cells: custard5.ipynb
## 4. run all notebook cells: eval_plot_custard.ipynb

# Table 2
## run all notebook cells: model_select.ipynb

# Figure 5
## run all notebook cells: pareto_fronts_depth5_cart_vs_dpdt3.ipynb

# Trees from figure 6 are in plots/trees
