A library for general-purpose material and molecular optimization using AlphaZero-style reinforcement learning.
Code currently under development as part of the "End-to-End Optimization for Battery Materials and Molecules by Combining Graph Neural Networks and Reinforcement Learning" project at the National Renewable Energy Laboratory (NREL), Colorado School of Mines (CSU), and Colorado State University (CSU). Funding provided by the Advanced Research Projects Agency–Energy (ARPA-E)'s DIFFERENTIATE program
Most dependencies for this project are installable via conda, with the exception of nfp, which can be installed via pip. An example conda environment file is provided below:
name: tf2_gpu
channels:
- conda-forge
- defaults
dependencies:
- python=3.7
- jupyterlab
- rdkit
- seaborn
- pandas
- scikit-learn
- jupyter
- notebook
- pymatgen
- xlrd
- tqdm
- psycopg2
- cudnn=7.6
- sqlalchemy
- pyyaml
- pip
- pip:
- nfp
- networkx
- tensorflow-gpu==2.3.0
- tensorflow-addonsWith the above file as environment.yml, you can install on Eagle with
module purge
conda env create -f environment.yml --prefix /projects/rlmolecule/<USER>/envs/tf2_gpuThis library is still under active development, and APIs are expected to change frequently. Currently, optimization proceeds by subclassing alphazero.Node to provide the expected reward function calculation. Example usage of the module is demonstrated for radical construction in stable_radical_optimization/.