Skip to content

Commit 09bd3ae

Browse files
authored
Create README.md
1 parent f8f0709 commit 09bd3ae

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

README.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
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+

0 commit comments

Comments
 (0)