
Dealing with Optimisation Problems: FitJSP
May 1st, 2020Job-shop scheduling is a well-known optimisation problem: finding the optimal strategy to distribute multiple tasks over several available machines. Our specific problem involved in products requiring both a preparation and drying process, each with defined time requirements and machine capacity constraints, scheduled on a weekly basis.
Genetic algorithm approach
The genetic algorithm starts with a random initial population satisfying machine constraints. A fitness function scores each individual based on makespan, daily utilisation, and conflict avoidance. Crossover creates children that take the best rows from each parent (minimum collisions), while mutation stochastically shuffles timeslots and machines to explore alternative paths. The process iterates until the desired performance score is reached or no further improvement is found.
Interactive drag-and-drop tool
On top of the algorithm, we built FitJSP — a drag-and-drop online tool where users can interact with the recommended schedule in real time. Users can update, move, create, delete, or resize events. A notification panel informs users in real time whether changes create conflicts. This makes the output accessible to non-technical users. — Ali Doku
Explore more
Smart Monitoring: Predictive Maintenance and Anomaly Detection Explained
We built a smart monitoring dashboard for Fednot using Azure Databricks, Anomaly Detector API, and Power BI — turning unstructured log files into predictive maintenance insights.

Network flow: a powerful tool for modelling problems
An introduction to network flow algorithms — from finding edge-disjoint paths to solving employee-project matching problems with bipartite graphs and max-flow-min-cost optimisation.

Internship report: Can an AI play Rummikub?
An internship project exploring whether AI can play Rummikub by combining computer vision with Monte Carlo Tree Search.

