Open Wukong-SCUT opened 3 months ago
Dear @Wukong-SCUT, actually this is a benchmark for a previous competition in 2013 for Large Scale Global Optimization. The idea of the benchmark is to be able to reproduce comparisons and also to compare results directly between algorithms. Thus, it is difficult to change any behavior for any function. However, if you write me a more detailed explanaition, we could work on that for next comparisons. Thanks in advance for your comments.
已收到,感谢您的来信。 ——悟空同学
Thank you for your professional reply. Here I give a detailed explanation of some of my ideas:
You can see the picture below. This is the key calculation step of the F14 function. It is first processed by rotateVectorConflict.
Okay, so let's take a look at the function rotateVectorConflict, which is shown in the picture below. This picture contains the code for how to get z, which is more critical.
Note that for F14, the dimension of x is 905, which means it is overlapped, but OvertorVec is a matrix divided by 1000-dimensional vectors into subspace sizes. Therefore, the meaning of this code is to expand the dimension of x to 1000, and then divide the dimension into subspaces and then compare it with OvectorVec to achieve the purpose of translation.
Because x is expanded from 905 dimensions to 1000 dimensions. Therefore, for the overlapped dimension, the values in different subspaces are the same. But this is not the case for OvectorVec. The values of overlapped dimensions in different subspaces are different. Therefore, even if the x^opt vector is brought into the function, the optimal value 0 cannot be obtained, which is also inconsistent with the original paper.
The above are my personal thoughts. I may not understand them well. Please forgive me. I can understand that the original intention is to make the overlapped dimensions have different effects in each subspace, so this operation is performed. But this makes it impossible to obtain the optimal value, because it is impossible for anyone to input a 905-dimensional vector, and the overlapped dimensions after expansion are different in different subspaces.
So my idea is to change the dimension of X to 1000, but remind users that they need to pay attention to overlap, so that people can find the optimal value of the dimension in different components based on conflict. Otherwise, it seems that we can't find the optimal value, and we don't even know what the possible optimal value of the 905-dimensional x input would be.
The above are some of my personal thoughts. There may be many misunderstandings. Please forgive me. Thank you again for your professional answer. I am very concerned about the development of the LSGO field. If you have a new Benchmark release, please let me know. Thank you again!
The optimal point in F14 should be the point provided in the xopt file, but in fact it is not the case. I personally think it is because F14 itself has the attribute of overlap. It should provide a 905-dimensional vector like F13, and then form a 1000-dimensional vector based on overlap. But this is not the case in the code. Instead, xopt with 1000 dimensions is provided. In this way, even if xopt is input, the vector obtained after expanding the first 905 dimensions of xopt is not a shift vector, so it is not the optimal point. And such an optimal point cannot be achieved. 1000-dimensional xopt means that one dimension requires two values in different sub_sizes.