This project implements and compares various Evolutionary Multi-Objective Optimization Algorithms (EMOA) using the pymoo framework. The implementation includes benchmarking of popular algorithms against well-known test problems and provides an interactive visualization platform.
The following state-of-the-art EMOAs are evaluated:
- NSGA-II (Non-dominated Sorting Genetic Algorithm II)
- NSGA-III (Non-dominated Sorting Genetic Algorithm III)
- MOEA/D (Multi-objective Evolutionary Algorithm Based on Decomposition)
- R-NSGA-II (Reference Point Based NSGA-II)
- SPEA2 (Strength Pareto Evolutionary Algorithm 2)
The algorithms are tested against the following benchmark problems:
- ZDT Test Suite:
- ZDT1 (Convex Pareto Front)
- ZDT2 (Non-convex Pareto Front)
- ZDT3 (Disconnected Pareto Front)
- DTLZ Test Suite:
- DTLZ1 (Linear Pareto Front)
- DTLZ2 (Spherical Pareto Front)
-
Backend:
- Python 3.8+
- pymoo (Optimization Framework)
- Flask (Web Framework)
- NumPy (Numerical Computations)
- pandas (Data Management)
-
Frontend:
- HTML5
- CSS3
- JavaScript
- Plotly.js (Interactive Visualizations)
# Clone the repository
git clone https://github.com/yourusername/MOObyMOEA.git
cd MOObyMOEA.git
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install required packages
pip install -r requirements.txt
- Start the Flask server:
python3 app.py
-
Access the web interface at
http://localhost:5000
-
Select the desired:
- Algorithm
- Test problem
- Number of generations
- Population size
- Other algorithm-specific parameters
-
View and interact with the results through the visualization dashboard
emoa-benchmarking/
├── app.py # Flask application
├── requirements.txt # Project dependencies
├── static/ # Static files
│ ├── css/ # Stylesheets
│ ├── js/ # JavaScript files
│ └── images/ # Images and icons
├── templates/ # HTML templates
├── algorithms/ # EMOA implementations
├── problems/ # Test problem implementations
└── utils/ # Utility functions
- Interactive comparison of different EMOAs
- Real-time visualization of:
- Pareto fronts
- Convergence metrics
- Population diversity
- Performance metrics calculation:
- Hypervolume
- IGD (Inverted Generational Distance)
- Spread
- Export results in various formats (CSV, JSON)
- Customizable algorithm parameters
- Responsive web interface
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- pymoo development team
- Multi-objective optimization research community
- Flask and Plotly.js contributors