A Multi-Objective Optimization Algorithm for Molecular Design