https://github.com/suleimanelkhoury/ec-scheduler
Three implemented evolutionary strategies using DEAP to optimize energy scheduling tasks.
https://github.com/suleimanelkhoury/ec-scheduler
cmaes deap docker evolutionary-algorithms flask machine-learning microservices nsga-ii pso python redis
Last synced: 7 months ago
JSON representation
Three implemented evolutionary strategies using DEAP to optimize energy scheduling tasks.
- Host: GitHub
- URL: https://github.com/suleimanelkhoury/ec-scheduler
- Owner: suleimanelkhoury
- Created: 2024-08-07T00:29:24.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-09T12:10:16.000Z (about 1 year ago)
- Last Synced: 2025-01-21T23:15:06.918Z (9 months ago)
- Topics: cmaes, deap, docker, evolutionary-algorithms, flask, machine-learning, microservices, nsga-ii, pso, python, redis
- Language: Python
- Homepage:
- Size: 45.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# **EC-Scheduler**
## **Project Overview**
Welcome to **EC-Scheduler**! This project provides a comprehensive solution for optimizing and scheduling general energy resources. It consists of three main components:
1. **Optimization Method (`ec-scheduler`)**:
This part of our work implements three various evolutionary algorithms using the DEAP (Distributed Evolutionary Algorithms in Python) library. It includes:
- **`NSGA2.py`** : Non-dominated Sorting Genetic Algorithm II.
- **`PSO.py`** : Particle Swarm Optimization.
- **`CMAES.py`** : Covariance Matrix Adaptation Evolution Strategy.
- **`ea_utils.py`**: This file contains the helper, statistics, plotting, and parallelization functionalities for each evolutionary algorithms.
- **`Strategy.py`**: This file contains the strategy logic for generating and updating the population in CMA-ES.
- **`genotyp_phenotyp.py`**: This file contains logic used to convert chromosomes into the corresponding scheduling plans, and send and receive the values to and from the Mockup Scheduler.
- **`main.py`**: This file contains the main Flask app for the project.
- **`container_handling.py`**: This file contains the logic for handling the containers on the IAI cluster using Kubernetes.2. **Mockup Scheduler (`mockup_scheduler`)**:
This component simulates the scheduling of five different types of energy facilities:
- Photovoltaic (solar panels)
- Wind Turbine
- Two Batteries
- Combined Heat and Power Plant3. **User Interface (`user_interface`)**:
Built using PyQt5, this component provides a graphical interface to interact with the optimization methods. It allows users to configure and execute optimization tasks and view results.## **Getting Started**
To get started with **ec-scheduler**, simply execute the `start_services.sh` script to build and run the necessary Docker containers. This script handles the setup and execution of all services required for the project.
## **Project Structure**
- **`start_services.sh`**: Script to build and run Docker containers.
- **`delete_services.sh`**: Script to delete Docker containers.
- **`optimization_method`**: Directory for the optimization methods.
- **`mockup_scheduler`**: Directory for a simple mockup scheduler project.
- **`user_interface`**: Directory for the PyQt5 UI.## **Contributing**
Contributions are welcome! To contribute, please fork the repository and submit a pull request.