Algorithm Optimisation Championship. - page 100

 
Alexander Laur:
In my opinion, the rules should also take into account the test time of the algorithm. As long as there are two of you, the test run of the algorithm can be measured in hours, days. And if more participants want to participate? Please do not waste the time of the competition referee.
There is a limit to the number of FF runs. Some competitors have asked for no limit on the test time.
 

Alexander Laur:
1. Еще один момент: Как Вы собираетесь проверять ПРАВДИВОСТЬ полученного результата 

2. After all, the most important result is to find the real global extremum. And how to check it?

1. The validity of the result is checked simply by substituting the values of the parameters into the FF and comparing the result of the contestant with that of the FF.

2. The real global result can be obtained in three ways:

a) exact value: analytically solve the problem (not acceptable for us)

(b) Exact value: total enumeration (not feasible for us)

c) approximate value: use an optimization algorithm - this is what we will do, the highest result will be the best. The real maximum will remain unknown for us (it is not possible to find it), and the best will be the highest among the participants.

 
Andrey Dik:

1. you asked for minimum constraints and this is the minimum step possible.

2.If there can be problems, it is with the contestant's algorithm, not the FF. This means that any critical errors caused by the algorithm will disqualify the competitor.

1. I didn't ask for minimum limits.

I was against unilateral decision-making on parameters of problem conditions by the organizer, because I saw in it an opportunity (intentionally or not) to adapt these conditions to the existing algorithm. Taking into account that the main contingent of participants had no experience in solving optimization problems, such an intention would have been unfair to them.

I asked to change the range and step, in order to at least slightly equalize the chances of newcomers without a ready algorithm and participants who have it for a long time.


2. Critical errors in an unknown function with random values of several hundred parameters substituted in succession can occur to any participant regardless of his/her algorithm, just by chance.

Suppose there is such an entry inside the function - (2/(0.000000254345 - x1)); and the algorithm accidentally passes the value 0.000000254345 to the parameter x1 in one of the calls.

In this case, the brackets will contain zero, which will be divisible by two.

This will result in a critical error. However, none of the participants can know that the randomly generated number sent to the FF along with other numbers in the array is not equal to some constant and is not subtracted from it or divided by something else...

 
Реter Konow:

1. I didn't ask for minimum limits.

I was against unilateral decision-making on parameters of problem conditions by organizer, because I saw in it an opportunity (intentionally or not) to adjust these conditions to already existing algorithm. Taking into account that the main contingent of participants had no experience in solving optimization problems, such an intention would have been unfair to them.

I asked to change the range and pitch, so as to at least slightly level the chances of newcomers without a ready-made algorithm and participants who have had it for a long time.


2. Critical errors in an unknown function with random values of several hundred parameters substituted in succession can occur to any participant regardless of his/her algorithm, just by chance.

Suppose there is such an entry inside the function - (2/(0.000000254345 - x1)); and the algorithm accidentally passes the value 0.000000254345 to the parameter x1 in one of the calls.

In this case, the brackets will contain zero, which will be divided by two.

This will result in a critical error. However, none of the participants can know that the randomly generated number sent to the FF along with other numbers in the array is not equal to some constant and is not subtracted from it or divided by something else...

1. Tell me frankly, are you not ready to use 0.0000000000000001 step? Is it too difficult for you? If you are ready, your question is removed.

2. I said earlier, don't worry about any mathematical operations inside the FF, no errors may occur there, even if you try very hard. You'd better take care of absence of errors in your algorithm, because it will be clearly seen in terminal's logs where exactly the errors occur.

In addition, any requirements for the properties of the FF from you are not legitimate, because you have refused to provide a sample function of the form f(x1, x2) for its inclusion into the FF. Be content with what has already been worked out and prepared for you by others. In a couple of hours you'll be able to have a last look inside the FF, but only to understand that contemplating the insides of the FF will not give you anything in terms of increasing your chances in the contest. Black box, think only of it, the rest is impractical and impractical to achieve first place.

 
Andrey Dik:

1. Tell me frankly, are you not prepared to use the 0.0000000000000001 step? Is it too complicated for you? If you are ready, then the question is off the table.

2. I said earlier, don't worry about any mathematical operations inside the FF, no errors may occur there, even if you try very hard. You'd better take care of absence of errors in your algorithm, because it will be clearly seen in terminal's logs where exactly the errors occur.

In addition, any requirements for the properties of the FF from you are not legitimate, because you have refused to provide a sample function of the form f(x1, x2) for its inclusion into the FF. Be content with what has already been worked out and prepared for you by others. In a couple of hours you'll be able to have a last look inside the FF, but only to understand that contemplating the insides of the FF will not give you anything in terms of increasing your chances in the contest. Black box, think only of it, the rest is impractical and impractical to achieve first place.

Don't get hot and bothered. We are just discussing and agreeing according to point 2 you wrote here: https://www.mql5.com/ru/forum/87536/page92#comment_2652859

1. I am prepared to use any conditions you will also use, but I suggest that you consider whether the conditions you propose will lead to errors independent of the contestant's algorithm.

2. Knowing parts of the blocks of an analytic function (namely its constants and mathematical actions with parameters) can be misused by a participant.

Example: I compiled and handed you the function (2 / (2 - x1)) . You included it in the FF.

Then the referee, at your suggestion, simply shuffled the function blocks, while leaving constants and operations in those blocks...

Further, when compiling the algorithm, I will know that I cannot pass the number 2 into the x1 parameter, as this will result in a critical division error by zero. However, the other participant may not know this, and therefore may pass the value of 2 to this parameter.

As a result, his algorithm will be disqualified.

I suggest that this nuance be taken into account.

If the constants are outside the range [2 , -2], no operations will result in zero inside the functions.

P.S. Of course, you may get zero in this case too, but it is less probable. You could exclude division operation from FF, but it's probably too much...))

Чемпионат Алгоритмов Оптимизации.
Чемпионат Алгоритмов Оптимизации.
  • www.mql5.com
Чемпионат алгоритмов оптимизации задуман как соревнование для людей ищущих, любознательных, для которых стоять на месте означает движение назад...
 
Alexander Laur:

I don't want to get offended, it's just my opinion. :)

And the opinion is that point "c" of your answer is a guessing game. It's a guessing game because a reliable result is not known. If the result is unknown, how can you determine the OPTIMALITY of the algorithm?

If we evaluate the OPTIMALITY of search algorithms, we should do it on Known Results obtained through exhaustive search. But in the Championship's tasks, specify that this known result must be obtained in 100-fold reduction of steps. That would be a competition in which a known TRUE result, would be obtained in SIGNIFICANT Fewer steps! With this approach, no one would have any doubts about the outcome of the win.

I agree with you.

I believe that the maximum value of the function should be reliably known to the referee.

Otherwise the whole contest turns into a farce.

In addition, one of the most important criteria for evaluating the effectiveness of a contestant's algorithm, along with the number of FF calls, is accuracy, which is impossible to determine without having a reliable mask function value.

 
Реter Konow:

Don't get hot and bothered. We are simply discussing and agreeing according to point 2 you have spelled out here: https://www.mql5.com/ru/forum/87536/page92#comment_2652859

1. I am ready to use any conditions you will also use, but I suggest you consider whether the conditions you propose will lead to errors independent of the contestant's algorithm.

2. Knowing parts of the blocks of an analytic function (namely its constants and mathematical actions with parameters) can be misused by a participant.

Example: I compiled and handed you the function (2 / (2 - x1)) . You included it in the FF.

Then the referee, at your suggestion, simply shuffled the function blocks, while leaving constants and operations in those blocks...

Further, when compiling the algorithm, I will know that I cannot pass the number 2 into the x1 parameter, as this will result in a critical division error by zero. However, the other participant may not know this, and therefore may pass the value 2 to this parameter.

As a result, his algorithm will be disqualified.

I suggest you consider this nuance.

If the constants are outside the range [2 , -2], no operations will result in zero inside the functions.

What do you think the source FF is shown for, among other things? To see that no errors occur in the FF due to mathematical operations and other errors. If errors occur in the FF, and they theoretically can occur, by viewing the source code of the FF you can use the vulnerabilities in your advantage, causing a critical error in the FF. If this happens, it's the fault of the creator of the FF, and since I am the sole creator, the blame will be entirely on me and I will be the loser and you the winner. You have a chance of becoming a winner in this way, or rather - there is no chance of becoming a winner in this way.
 
Andrey Dik:
What do you think the original FF is shown for, amongst other things? To see that it is impossible for errors to occur in the FF due to mathematical operations and other errors. If errors occur in the FF, and they can theoretically arise, by viewing the source code of the FF you can use the vulnerabilities in your favour, causing a critical error in the FF. If this happens, it's the fault of the creator of the FF, and since I am the only creator, the blame will be entirely on me and I will be the loser and you the winner. You have a chance of being a winner in this way, or rather - there is no chance of being a winner in this way.

After I see the original FF, a lot will become much clearer to me than it is now...

I'm not at all going to use your possible FF drafting errors to my advantage, as it invalidates the basis of my motivation to participate, which is not at all about striving for a fake win.

The victory must be unambiguous, credible and fair. I don't need any other.

 
Alexander Laur:

I don't want to get offended, it's just my opinion. :)

And the opinion is that point "c" of your answer is a guessing game. It's a guessing game because a reliable result is not known. If the result is unknown, how can you determine the OPTIMALITY of the algorithm?

If we evaluate the OPTIMALITY of search algorithms, we should do it on Known Results obtained through exhaustive search. But in the Championship's tasks, specify that this known result must be obtained in 100-fold reduction of steps. That would be a competition in which a known TRUE result, would be obtained in SIGNIFICANT Fewer steps! With this approach, no one will have any doubt about the outcome of the win.

Reg Konow:

I agree with you.

I think the maximal value of the function must be reliably known to the referee.

Otherwise the whole contest turns into a farce.

In addition, one of the most important criteria for evaluating the efficiency of a contestant's algorithm, along with the number of FF calls, is accuracy, which is impossible to determine without having a reliable mask function value.

You two are so funny... ) No offence. ))))

If the global maximum is known to all without exception, then, think again, think carefully, what will happen? Can an optimization algorithm championship be held at all in such a case? Of course, it cannot, because any competitor can idly call the FF at 60-70 per cent of the maximum allowed and produce a result with 100 per cent accuracy! We can only compete on UNLIMITED FFs! The maximum value of one of the competitors is the best result.

You really make me laugh... )))

But if you are serious and would really like to know how accurate an algorithm is in finding the maximum, then outside the competition we can feed the algorithms with a known maximum, to feed them after the algorithms have been published, nobody prohibits doing that, the participants' algorithms will be freely available for several days and everyone can check and test the algorithms as much as he likes. I hope that by that time you will already have at least some functions with known maximum, to check and find out for yourself the properties of the algorithms of any of the participants.

 
Реter Konow:

After I see the original FF, a lot will become much clearer to me than it is now...

I'm not at all going to use your possible FF drafting errors to my advantage, as it invalidates the basis of my motivation to participate, which is not at all to strive for a fake win.

Winning must be unambiguous, credible and honest. I don't need any other.

Does this mean that the algorithm is not yet ready? How much time do you expect to get to understand and prepare the algorithm for a known FF? What difference does it make what is contained in the FF? The algorithm must be able to work with an unknown FF, otherwise it's bullshit and not an algorithm.