Harness the power of Evolutionary Algorithms to optimize bin packing. Experiment with crossover strategies, mutation techniques, and population sizes to achieve efficient item allocation in bins.
# Bin-Packing Problem Solver using Evolutionary Algorithm
## Overview
This repository contains Python code to solve Bin-Packing Problems (BPP) using an Evolutionary Algorithm (EA). The EA explores different combinations of crossover operators, mutation strategies, and population sizes to optimize the packing of items into bins.
## Prerequisites
- Python 3.x
- matplotlib (for plotting results)
## How to Use
1. **Clone the repository:**
```bash
git clone https://github.com/yourusername/your-repository.git
cd your-repository
-
Install dependencies:
pip install matplotlib
-
Run the notebook:
Open and execute
BPP_CODE.ipynb
in Jupyter Notebook or any compatible environment.
BPP_CODE.ipynb
: Jupyter notebook with the main code.README.md
: This file providing an overview and instructions.
The notebook conducts several experiments (Experiment 1 to Experiment 6) to evaluate the EA's performance under different conditions:
- Varying population sizes (10 and 100)
- Different crossover operators (single-point and multi-gene)
- Comparison of mutation strategies
The notebook generates bar plots showing the best fitness achieved for each experiment, helping to visualize the effectiveness of different parameter configurations.
- List references and citations used in the notebook.
The BPP_CODE.ipynb
notebook is structured to analyze and solve Bin-Packing Problems using evolutionary techniques. Each experiment explores a unique combination of parameters to assess the algorithm's performance.
- Experiment 1: Evaluates EA with crossover & operator M1 and population size 10.
- Experiment 2: Evaluates EA with crossover & operator M1 and population size 100.
- Experiment 3: Evaluates EA with crossover & operator M5 and population size 10.
- Experiment 4: Evaluates EA with crossover & operator M5 and population size 100.
- Experiment 5: Evaluates EA with only operator M5 and population size 10.
- Experiment 6: Evaluates EA with only crossover and population size 10.
Each experiment analyzes the best fitness achieved across multiple trials, providing insights into effective parameter settings for solving BPP.
Feel free to fork this repository, make improvements, and create pull requests. Your contributions are welcome!
This project is licensed under the MIT License - see the LICENSE
file for details.
### Instructions
1. **Copy** the entire content above.
2. **Paste** it into your `README.md` file in your GitHub repository.
3. **Customize** the sections like "Prerequisites" and "Experiment Details" to fit your specific project details.
4. **Save** the changes and commit them to your repository.
This template provides a structured and informative README file that helps users understand your project, how to use it, and how to contribute. Adjust as needed to suit your project's specific requirements and style preferences.