From fe3b86d97e0850519f99b92f1d0ae40b913d0010 Mon Sep 17 00:00:00 2001 From: tomasz Date: Mon, 8 Jun 2020 22:41:10 +0200 Subject: [PATCH] zmiana generowania nowych populacji --- .idea/workspace.xml | 90 ++++++++++++++------------ __pycache__/funkcje.cpython-37.pyc | Bin 4676 -> 4648 bytes __pycache__/genetyczne.cpython-37.pyc | Bin 4016 -> 4288 bytes __pycache__/program.cpython-37.pyc | Bin 5033 -> 5033 bytes funkcje.py | 2 +- genetyczne.py | 50 ++++++++++---- program.py | 4 +- 7 files changed, 91 insertions(+), 55 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 42c9970..a3c438b 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,5 +1,8 @@ + + + @@ -22,8 +25,8 @@ - - + + @@ -39,8 +42,8 @@ - - + + @@ -48,8 +51,8 @@ - - + + @@ -72,8 +75,8 @@ - - + + @@ -101,11 +104,6 @@ - cop - jakLiczycKoszt - jakLiczyc - eve - doW self gen data.geny @@ -130,7 +128,12 @@ mutate od tego mom regalsik + podajDwaChromosomy + generuj + populacjaF + rys data + populacjaFitness @@ -165,9 +168,9 @@ @@ -414,6 +417,13 @@ + + + file://$PROJECT_DIR$/genetyczne.py + 26 + + @@ -605,16 +615,6 @@ - - - - - - - - - - @@ -635,10 +635,30 @@ + + + + + + + + + + + + + + + + + + + + - - + + @@ -647,25 +667,15 @@ - - - - - - - - - - - - + + - - + + diff --git a/__pycache__/funkcje.cpython-37.pyc b/__pycache__/funkcje.cpython-37.pyc index 01885938f541884c20260c5c1f5bce3c08e77670..d134230812a9514ca47a89216973e7245236db12 100644 GIT binary patch delta 374 zcmX@2vOnLXSZb3o~+2Rl2Lc_X%1#aHf4}* z)yY>ly%br+C1s`!4hA(e6$*C<(ook0S+_YwZ4Wf- z5;aA*xCTLkv;{>&gKK|61>GaP!-wztJfG)#t3T;lNz)YOzUzz6{pSbGBhq#EXR|IC z;DEy&sVVmW*lE$`2H29rT5<;rKFvD3%=Y3~6w$1!3qvC9D85U_-W~&HupO3=YZkbL zmT=LW--v#V79(p3AD)Yp@EkTyj!nD~mC2yHW_*H2Kmi$42y!cizv2aS9D0`^g&yA> zr2F?i34~64b2#uAxwX5*l3{kQ!D%22{}bt^O$Q)HJ2tJqbOkjJ5#flB{deU~7Puc1q*VLcoTt&k%T cWI_h7!dX2=aa@t6lp_=fR diff --git a/__pycache__/genetyczne.cpython-37.pyc b/__pycache__/genetyczne.cpython-37.pyc index 3df080b386015eeed554ebde5b54c85234616b2e..483b4f9a906940108c777936c0479ef4ddc25a28 100644 GIT binary patch delta 1120 zcmZ`&-)j>=5Z>9#T{g+}+S*u~sMY$jhk_`!#afYSt(IyK1gk-XvzKbLP2%2_wz9Dg z6`y>tE~toL`{276#8+Pg@y*u*#ec!SKxZzo52AO>w{x>Ido%ORzTNS$&pFlBmS*_8 zTmOC|lV5du;P&c%&-S|?vSP;Ha*4S;tB?EP^XmH>nPQk!#tMwF>jm8l!@3ABvRyOf zuu=+wv03k8wKhNNP2VX$<7{@zI^V^eb*d>lF@IJPi&Au#G&Vjm9tD z53s+{pO^#~(4qMTMs?omUA8dJKsk*P_y{3WumW|iU=0*shq|GdGIFe*P;8AWV;ulJ z{%HU8Hvi?V63U$6SUMD3BQoa7mF37RSNzgqWMEmYB?mBr$ez9}t8=aLqSVb&5MK6X z=Sz`8>S@}XprE1^J05PWN91;lZUXfq+ElCh-kq@pFAk{&)w!j!Xb-v(7#ENR(TR|5 zs<9?V8V9Yb08{!=(uI?Hr;~%1`b+Zppfcjjc|n>Ojj49wB2N+w5)2V!5u%h|om#pp zOToM=^bgT9C6AHWjFXkazu%)6tWUs?x{negaK9Awk#4tTJN(v=r`T;7$oew#NY+E59H&&MP zq)PhyE|>kZ4zYUj7ORWJ^C1rn8q#=7N3QXDs-9M9-{@vOp!bz9p>SSScs--Uni*O+ zHOm<~US)iam{jJ9NyBq*c#0{3Ly#y)z%=51O3Knr%DuQmrmW6ae0hR4+X+Sp;(k*_ zt}Qo{fo3Ict?VI vc@$h*54Z2m$5q7xM1)H!O?DEDYuUapPg9CfTbpbzg%<&mjq z>V{==jk<(|OB0hO?o3?kKWL0`rT@W|=M+p#yp!|Y@4mis=ey_g@Q1XWiN{R^+x&~~ zE4A*1-2C7ow?s94pyc^}OT*E8xtNWT6ZhP$s+YBiPSd8Fq@U%Lf+x29JvXc6 zMRm;;1Ek!BL1IbDf#HwJUb8=eu9=LZV-%*^ylM_J*pv6Im$BAgsoj?RWgWp&c@SUN zzlCRWk^;9hy z@d_< DuSl$D diff --git a/__pycache__/program.cpython-37.pyc b/__pycache__/program.cpython-37.pyc index 9432cbc08860e1a4c1d1088f241acd461ee1f66f..c549a5b72cf03763be8be76677c0023849d43e9d 100644 GIT binary patch delta 61 zcmZ3fzEYjniI bestValue): data.best = (pierwsza[:],bestValue) data.doWykresu.append(bestValue) - + """ tmpPopulacja.pop(bestChromIndex) chromFitness.pop(bestChromIndex) @@ -111,9 +133,9 @@ def dwieNajlepsze(populacja, data): druga = tmpPopulacja[bestChromIndex] tmpPopulacja.pop(bestChromIndex) chromFitness.pop(bestChromIndex) + """ - - return (pierwsza, druga) + return (tmpPopulacja, chromFitness) def crossover(data,pierwszy, drugi, fragmentLiczba, wspMutacji): ileWChrom = len(pierwszy) @@ -158,15 +180,17 @@ def crossover(data,pierwszy, drugi, fragmentLiczba, wspMutacji): return nowyChrom -def genPopulacje(data,pierwszy, drugi, ileWPopulacji, fragmentLiczba, wspMutacji): - ileWChrom = len(pierwszy) +def genPopulacje(data,populacja, chromFitness, ileWPopulacji, fragmentLiczba, wspMutacji): + ileWChrom = len(populacja[0]) fragment = round(fragmentLiczba*ileWChrom) if(fragment == 1): fragment +=1 nowaPopulacja = [] - for i in range(ileWPopulacji): - nowaPopulacja.append(crossover(data,pierwszy,drugi,fragment, wspMutacji)) + for i,index in enumerate(range(ileWPopulacji)): + if index % 2 == 0: + dwaChrom = podajDwaChromosomy(populacja,chromFitness) + nowaPopulacja.append(crossover(data,dwaChrom[0],dwaChrom[1],fragment, wspMutacji)) return nowaPopulacja diff --git a/program.py b/program.py index 856ccc1..2d0b9b0 100644 --- a/program.py +++ b/program.py @@ -89,9 +89,11 @@ class MainWindow: elif(event.type==pygame.KEYDOWN): if event.key == pygame.K_g: updateMap(self.data, self.map, self.mapForAStar, self.regals) + dane = okno() if(dane == 0): continue + start(self.data,self.wheel, dane) for gen in self.data.best[0]: if(gen.unboxWczesniejszegoGenu == None): @@ -101,7 +103,7 @@ class MainWindow: zbierzBox(gen,self.data, self.moves, kordStartowy) elif(event.key== pygame.K_r): - self.map = randomBox(self.map, self.regals, 5) + self.map = randomBox(self.map, self.regals, 20) updateMap(self.data, self.map, self.mapForAStar, self.regals) elif len(self.moves)==0: self.wheel.move(event, self.map)