Simple implementation and visualisation of genetic algorithm in work using Python & Qt.
Genetic algorithm is special technique for solving optimization problems, specialy in places where there are a lot of combinations and finding optimal solotion by simply brute-forcing is impossible.
The Aim of this project is to achieve optimized cell placement to complete efficient routing. Optimization should meet following criterias.
- Each cell (when moved) should preserve it's connectivity ( parent & child connections )
- Cell position can be adjusted within same colum ( can be moved vertically, but not horizontally )
- Intersections/crossings beetween connections should be minimal.
Left: Initial placmenet Right: optimized placement
I've used MVC pattern to abstract the data from renderer. Theortically should be possible to add any view that can will use get_data function returning 2D array of nodes used and renderer them.