Skip to content

Interactive visualization of algorithms for the load balancing problem, implemented through functional programming patterns

License

Notifications You must be signed in to change notification settings

nimobeeren/algo-vis

Repository files navigation

Load Balancing Visualization ⚖️

The load balancing problem is about distributing jobs over machines in order to minimize the total processing time, which is called the makespan. This app lets you play with the inputs and visualizes the results of a few different algorithms designed to provide a solution this problem.

Unfortunately, an efficient algorithm that always gives an optimal solution does not exist. This is what is known as an NP-hard problem. My friend Henrique wrote an article on this topic, check it out! Each of the algorithms implemented here comes with a different trade-off between running time and approximation ratio. The greedy algorithms will run on large inputs, but their solutions will not be optimal. The brute force algorithm on the other hand will always be optimal, but you'll quickly see running times rise until your browser crashes! 💣

This project was built using Reason, which is a functional-style programming language that feels a bit like JavaScript. Take a look at the implementation of the algorithms to see how it is different from normal JavaScript code. I had never done any functional programming before this project, which made this an interesting experience!

About

Interactive visualization of algorithms for the load balancing problem, implemented through functional programming patterns

Topics

Resources

License

Stars

Watchers

Forks