My final contribution.
Applied on ex. m
|------------just another fase 1 ----------|
ts 'R=.10 20 3 phaseII^:_ <"1 |: (]`(|.@])@.["_1~ 0 1$~ #) 5 4$ /:~ r'
0.019129 23424
ds +/&>R
3
+/&> R
123 123 124 123
Applied on
M=.?. 200#1000
ts 'R=.50 60 14 phaseII^:_ <"1 |: (]`(|.@])@.["_1~ 0 1$~ #) 20 10$ /:~ M'
3.61899 146368
ds +/&> R
30
ts 'R=.50 60 14 phaseII^:_ <"1 |: (]`(|.@])@.["_1~ 0 1$~ #) 20 10$ /:~ M'
3.63213 145088
ds +/&> R
50
Not perfect, but most of the time a (very) low ds result. Experiment with LHA
of
phaseII.
===========================================================
ds=: +/@:;@(<@({. |@- }.)\.)
mutate=: 4 :0
'a b'=. y
i=.?x<.#a
j=.?x<.#b
((j{b) i} a);(i{a) j}b
)
NB. x = ne, ng, mr
NB. ne : population size
NB. ng : # generations
NB. mi : mutation param
NB. y = weights
phaseII=: 4 :0
bc=. # y
'ne ng mi' =.x
NB. imbalance of ideal set of bucket weight sums
o=. ds ((,>:)<.av) #~(,~bc&-) bc * (-<.) x: av=.bc%~+/;y
b=. /:~&.> y NB. parent
ws=. ne $ ,:b NB. population
z=.i.0 0
for. i.ng do.
p=. (] ix}~ mi mutate (ix=.2?bc) { ])"1 ws
z=. z, b1=. p {~(i. <./) ds@:(+/&>)"1 p=.p,b
if. o=ds+/&>b1 do. break. end.
ws=. ne $ ,:/:~&.> b1
if. o > o-~ ds +/&> b1 do. mi=. 1>.mi-1 end.
end.
z {~(i.<./) ds@:(+/&>)"1 z
)
--
Met vriendelijke groet,
=@@i
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm