File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed
Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change 1+ # PyQt Genetic Algo
2+ Simple implementation and visualisation of genetic algorithm in work using Python & Qt.
3+
4+ ### Backround
5+ Genetic algorithm is special technique for solving optimization problems,
6+ specialy in places where there are a lot of combinations and finding optimal solotion by simply brute-forcing is impossible.
7+
8+ ### The task to solve
9+ The Aim of this project is to demonstrate optimized cell placement to complete efficient routing
10+ Optimization should meet following criterias.
11+ * Each node when moved should preserve it's connectivity ( parent & child connections )
12+ * Cell position can be adjusted within same colum ( cell can be only poped/pushed vertically, horizontal moves not allowed)
13+ * Intersections/crossings beetween should be minimal.
14+
15+ ### Implementation
16+ I've used MVC pattern to abstract the data from renderer.
17+ Theortically should be possible to add any view that can will use get_data function returning 2D array of nodes used and renderer them.
18+
19+
20+ ### Examples
21+ * Left:* Initial placmenet   ;  ;   ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;   ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;   ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;   ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;   ;  ;  ;  ;  ;  ;  ;  ;  ;  ;   ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ; * Right:* optimized placement
22+
23+ <img src =" https://i.ibb.co/SDSzVrK/before.png " width =" 400 " height =" 300 " >  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;
24+ <img src =" https://i.ibb.co/ScSMY6k/after.png " width =" 400 " height =" 300 " >
25+
26+
27+
28+ ### More complicated cases
29+
30+ Placement before ( 51 crossings )
31+ <img src =" https://i.ibb.co/YDR5PKS/1.png " >
32+
33+
34+ Optimized ( 1 crossing )
35+ <img src =" https://i.ibb.co/2dmL5sC/2.png " >
36+
37+
You can’t perform that action at this time.
0 commit comments