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

Reply via email to