thieu1995/opfunu

[BUG]: A bug in cec2020.F82020(ndim=10)

RuiZhong961230 opened this issue · 12 comments

Description of the bug

Dear Thieu
I hope to find you well.
cec2020.F82020(ndim=10) seems to have a bug that the fitness value may be smaller than 0
and in the official technical report, the minimum is 2100.
Best wishes

Steps To Reproduce

You can directly copy the following code:

from opfunu.cec_based import cec2020

func = cec2020.F82020(ndim=10)
print(func.evaluate([90.75118764, 97.00278372, 76.1721669, 99.96999972, -11.39271999, 89.5915097, 76.24025183, 83.30977968, 23.79283718, 37.22928422]))

where the 10-D solution [90.75118764, 97.00278372, 76.1721669, 99.96999972, -11.39271999, 89.5915097, 76.24025183, 83.30977968, 23.79283718, 37.22928422] is within the search space in [-100, 100]

Additional Information

No response

Hi @RuiZhong961230 ,

Which version are you using?
In the latest version, @firestrand has fixed some bugs in these functions. I don't know if it cause this one or not.

Thank you @thieu1995 for your reply.
And I use the latest version 1.0.1 of opfunu.

@RuiZhong961230
I see. I checked and got the same results. So I think there is a bug somewhere in based functions.
I will look into this closely soon. In the meantime, can you rollback to version 1.0.0 and try it?
I think previous version has no such problem.
One question is how did you find that solution that makes fitness < 0?

@thieu1995 Thank you for your reply
I recently replicated the latest metaheuristic algorithm: "Growth Optimizer: A powerful metaheuristic algorithm for solving continuous and discrete global optimization problems".
This algorithm found the position of that I mentioned before :)

@RuiZhong961230 ,
Thank you. I will try that algorithm.
By the way, I'm curious, I saw you have used Coati Optimization Algorithm. I know it is not my job but I think you should check other algorithms of the same authors Eva Trojovská, Pavel Trojovský such as Fennec For Optimization, Northern Goshawk Optimization, Osprey Optimization Algorithm, Pelican Optimization Algorithm, Serval Optimization Algorithm,... and compare them together. You will see something there. I think you know what I am talking about.
In case you don't, please check it here: https://github.com/thieu1995/mealpy
Cheers.

@RuiZhong961230 ,

Yes, I know your feelings. That is why we should avoid and boycott these kind of algorithms as much as possible.

I realize I didn’t increment the package version after fixing the bugs, using the code from latest should fix any CEC issue as all are passing tests for optimal values.

@firestrand. I know it passed the tests for optimal values. However, there are some solutions that can make the function smaller than 0 like @RuiZhong961230 said above. I think there is a bug somewhere. Can you check it?

@RuiZhong961230,

I will close this issue now. Feel free to open it. It seems the problem has been fixed. I will release new version.