Unofficial implementation of the algorithm proposed in the article "Learning All Optimal Policies with Multiple Criteria" by Barrett and Narayanan (Proceedings of the International Conference on Machine Learning, 2008). This implementation has been used in the experimental evaluation of "Guaranteeing Alignment with Value Systems by Means of Multi-Objective Reinforcement Learning" by Rodriguez-Soto et al. (under review in Artificial Intelligence, 2024).
Clone this repository with --recursive
to clone all submodules recursively.
- CMake
- A version of g++ supporting C++20
- OpenMP for C++ parallelism
- Gperftools for profiling
- pip
- Navigate to the
chvi/qhull
subdirectory - Adjust the desired optimization options in the
CMakeList.txt
file. Levels-O3
and above can potentially affect the output of Qhull for some degenerate instances. - Build and install Qhull with
cmake .
,make
andsudo make install
- Download required packages with
pip install -r requirements.txt
- Build the Cython module and package it in a Python Wheel with
./build.sh
- Install the Python Wheel with
./install.sh
- Navigate to the
chvi
subdirectory - Compile the C++ native version with
./build.sh