Implementation of Non-dominated Sorting Genetic Algorithm (NSGA-II), a Multi-Objective Optimization Algorithm in Python