Skip to content

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.

License

Notifications You must be signed in to change notification settings

tejasOnGit/Bin-Packing-Problem-Solver-using-Evolutionary-Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bin-Packing-Problem-Solver-using-Evolutionary-Algorithm

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
  1. Install dependencies:

    pip install matplotlib
  2. Run the notebook:

    Open and execute BPP_CODE.ipynb in Jupyter Notebook or any compatible environment.

Contents

  • BPP_CODE.ipynb: Jupyter notebook with the main code.
  • README.md: This file providing an overview and instructions.

Experiment Details

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

Results

The notebook generates bar plots showing the best fitness achieved for each experiment, helping to visualize the effectiveness of different parameter configurations.

References

  • List references and citations used in the notebook.

About the Code

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 Analysis

  • 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.

Contributing

Feel free to fork this repository, make improvements, and create pull requests. Your contributions are welcome!

License

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.

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages