Carnegie Mellon University Master of Chemical Engineering (2018-2019)
This project involved the implementation of cyclic coordinate search algorithm for DFO, by bringing together different sampling methods, building surrogate modeling by machine learning tools, and simulation optimization methodologies. The goal is to integrate methods from different fields to search towards global optimization quickly with least demands of modeling evaluations and higher accuracy.
Integrated Machine Learning / Optimization with Python
Core Algorithm:
- Coordinate search
Sampling methods:
- The Hammersley Quasi Monte Carlo (QMC) Sequence
- The Halton Quasi Monte Carlo (QMC) Sequence
- Latin Random Squares in M dimensions
- The van der Corput Quasi Monte Carlo (QMC) sequence
=============================================================
UPDATE LOG: 5/24/2019
- Able to compile C language source code (black box model)
- Prepare to write sampling methods
5/25/2019
- Try to use Shell script to compile for uses
6/2/2019
- Use SALib package to generate sampling data
- rewrite function 'val_generate' and 'create_input'
6/3/2019:
- Test sklearn package
6/12/2019:
- Complete sampling methods: Halton and Hammersley (range 0~1)
6/13/2019
- Use alamopy package to do regression
- Use Shell script to delete redundant files generated by alamo
6/15/2019
- Use pyomo to do optimization
6/17/2019
- Use pyomo to call Baron to do optimization
6/20/2019
- Use cycling coordinate search or trust region
- A new sampling method: Faure sequence
6/23/2019
- Connect Python, Baron and Pyomo
- Enable single cycle of coordinate search
6/27/2019
- Rewrite core algorithm a. Generate sampling data b. Regression(alamo) c. Optimization(pyomo + baron) d. Check update e. update radius
- Radius need to be updated by checking if result is good or not
7/6/2019
- Finish algorithm with only one direction
7/8/2019
- Shuffle the order of variables every iteration
- Output results to csv file
7/10/2019
- PCA is not greatly helpful
- Try kernel PCA
7/14/2019
- Paper "Coordinate descent algorithm"
- Finish launch.py file
7/15/2019
- Debug boundary overflow problem
- model "expquad" is stuck
7/16/2016
- paper "Derivative-free optimization: a review of algorithms and comparison of software implements"
7/17/2019
- Integrate all of the sampling methods in Sampling.py a. Halton b. Van der corput c. Hammersley d. Latin random‘
- Halton sequence has problems in high dimensions