fd7c94eb8eaf7f0386e475710602751a9b6d0878 — Alessio Chiapperini 11 months ago 0baedf1
Add README and problem formulation
2 files changed, 31 insertions(+), 0 deletions(-)

A FlowShop.pdf
A FlowShop.pdf => FlowShop.pdf +0 -0

A README.md => README.md +31 -0
@@ 0,0 1,31 @@
# Permutation FlowShop Scheduling
Project developed in team with [Gabriele Venturato](https://github.com/GabVenturato/).

## Problem Formulation
The formulation of the problem and the format of the input instances can be
found in the file `FlowShop.pdf`.

## Project Structure
Developed solutions using different techniques:
- MiniZinc model
- Enumeration
- Greedy
- Local Search

## Greedy
In greedy our aim was to minimize the tardiness since the instances we have are
highly influenced by it. We developed a naive and not very meaningful idea with 
good results in smaller instances, and a more advanced idea that works better 
with bigger instances. By the way both of them are not very good. An 
improvement can be probably performed by dividing the cost components, and ordering 
elements in more than one way. Further ideas need to be explored.

## Local Search
In Local Search we used the library [EasyLocal](https://bitbucket.org/satt/easylocal-3/),
references can be found in its subfolder.
We developed two moves: SwapJobs and MoveJob. Further details can be found in 
the code. An improvement can be maybe reached modifing the "MoveJob" move such 
that it lets move jobs forward and backward (now it only allows to move jobs forward).
It's important to take care to the case `(i,i+1)` because it produces the side
effect of moving twice on the same neighbor.