Outsiders17711 / Site-Layout-Ant-Colony-Optimization

Implementing the Ant Colony Optimization (ACO) algorithm from scratch in MATLAB. Solving the site-level facilities layout problem. Creating functions for pretty-printing the pheromone weights and visualizing the solutions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

https://github.com/Outsiders17711  https://github.com/Outsiders17711 

Site-Layout-Ant-Colony-Optimization

Oluwaleke Umar Yusuf

Implementing the Ant Colony Optimization (ACO) algorithm from scratch in MATLAB. 
Solving the site-level facilities layout problem. 
Creating functions for pretty-printing the pheromone weights and visualizing the solutions.

Construction site-level facilities layout is an important activity in site planning. The objective of this activity is to allocate appropriate locations and areas for temporary site-level facilities such as warehouses, job offices, various workshops and batch plants. Depending on the size, location, and nature of the project, the required temporary facilities may vary. The layout of facilities has an important impact on the production time and cost savings, especially for large projects.

In this implementation, a construction site-level facility layout problem is described as allocating a set of predetermined facilities into a set of predetermined places, while satisfying layout constraints and requirements. The Ant Colony Optimization (ACO) algorithm is used to determine the optimal allocation of facilities to locations on the site that minimizes the total traveling distance of site personnel between facilities.

Reference Paper: Heng Li & Peter E. D. Love - Site-Level Facilities Layout Using Genetic Algorithms

I also made a blog post that provides some more background on the site-level facilities layout. It also contains a walkthrough of the MATLAB code implementation of the ant colony optimization algorithm . You can check it out.


Optimum Solution:

The optimum solution -- representIng Facility@Location-pair information -- found was [ 9 11 5 6 7 2 4 1 3 8 10 ] i.e.

[ F1@L9 , F2@L11 , F3@L5 , F4@L6 , F5@L7 , F6@L2 , F7@L4 , F8@L1 , F9@L3 , F10@L8 , F11@L10 ]

The solution was arrived at after 33 iterations with an ant colony population size of 50. The figure below shows that the pheromone matrix values (left) and normalized pheromone weights and best (optimum) solution (right) at iteration 33.

Best Solution & Pheromone Weights

Best Solution & Pheromone Weights Across Iterations:

Best Solution & Pheromone Weights Across Iterations


About

Implementing the Ant Colony Optimization (ACO) algorithm from scratch in MATLAB. Solving the site-level facilities layout problem. Creating functions for pretty-printing the pheromone weights and visualizing the solutions.


Languages

Language:HTML 99.7%Language:MATLAB 0.3%