LambdaConglomerate / x9115lam

2 stars 0 forks source link

Constriction Factor #39

Closed aisobran closed 8 years ago

aisobran commented 8 years ago

I've been trying to determine why we have so many deaths and evaluated the k calculation. It's always 1.0 which pretty much makes it useless and turns it into classical PSO without a Vmax which would explain why we have so many deaths.

meneal commented 8 years ago

oh no! No wonder why it's not working. Shit. I'm glad you found that!

On Sun, Dec 6, 2015 at 11:43 AM, Alexander Sobran notifications@github.com wrote:

I've been trying to determine why we have so many deaths and evaluated the k calculation. It's always 1.0 which pretty much makes it useless and turns it into classical PSO without a Vmax which would explain why we have so many deaths.

— Reply to this email directly or view it on GitHub https://github.com/LambdaConglomerate/x9115lam/issues/39.

aisobran commented 8 years ago

Getting rid of the leading term in the denominator helps. Makes it 0.5. I think we want the constriction factor to be 0 < X < 1. We might just want to hard code it in too, if we're not going to play around with either phi

aisobran commented 8 years ago

0.25 gave this type of behaviour (500 steps)

screen shot 2015-12-06 at 11 51 21 am screen shot 2015-12-06 at 11 51 46 am screen shot 2015-12-06 at 11 51 53 am
aisobran commented 8 years ago

That looks like the type of behavior we are looking for.

meneal commented 8 years ago

"K" is the construction factor: K = 2 / ( abs(2 - φ - sqrt(φ * φ) - 4φ)) φ = φ1 + φ2 φ > 4. This is what menzies posted on his lecture.

phi_tot = phi_1 + phi_2 k = (2.0/math.fabs(2.0 - (phi_tot) - math.sqrt(phi_tot*_2.0 - 4.0_phi_tot)))

Does that look the same?

aisobran commented 8 years ago

Thats phi_total > 4, we have phi_total = 4.

meneal commented 8 years ago

damnit all. That's the difference.

meneal commented 8 years ago

If you even increase beyond 4 do we end up with similar behavior to what you were showing above through pegging the value of k?

aisobran commented 8 years ago

Yeah and it's a huge difference because the constriction factor with exponentially reduce the previous velocities.

Setting it to 0.25 gave some really good results for DTLZ1. Closest ever.

screen shot 2015-12-06 at 11 57 06 am screen shot 2015-12-06 at 11 57 12 am
meneal commented 8 years ago

Damn I have to say I'm super happy that worked. I feel like a dick for messing it up though.

aisobran commented 8 years ago

Increasing the phi gives the the same type of affect if it's high enough. Changes the learning behavior though.