Чемпионат Алгоритмов Оптимизации. - страница 100

 
Alexander Laur:
На мой взгляд, правила должны еще учитывать время теста алгоритма. Пока Вас двое то тестовый запуск алгоритма участника может измеряться часами, днями. А если изъявят желание участвовать большее количество участников? Пожалейте время рефери соревнования.
Есть ограничение на количество запусков ФФ. Некоторые участники просили не вводить ограничений на время испытания.
 

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

2. Ведь самый важный результат - нахождение реального глобального экстремума. А как эго проверить?

1. Правдивость полученного результата проверяется просто - достаточно подставить значения параметров в ФФ и сравнить результат участника и результат ФФ.

2. Реальный глобальный результат возможно получить тремя способами:

a) точное значение: аналитически решить задачу (для нас не приемлемо)

b) точное значение: полный перебор параметров (для нас не приемлемо)

с) приблизительное значение: использовать алгоритм оптимизации - именно этим мы и будем заниматься, наибольший результат будет лучшим. Реальный максимум останется для нас неизвестным  (найти его не представляется возможным), а лучшим будет считаться наибольший среди участников.

 
Andrey Dik:

1.  Вы просили минимальных ограничений, а это минимальный шаг из возможных.

2.Если и могут возникнуть проблемы, то только в алгоритме участника, а не у ФФ. Это означает, что любые критические ошибки по вине алгоритма будут причиной дисквалификации участника. 

 1. Я не просил минимальных ограничений.

Я был против единоличного принятия решений по параметрам условия задачи со стороны организатора, потому как видель в этом возможность (умышленно или нет) приспособить эти условия под уже имеющийся алгоритм. Если принять во внимание, что основной контингент участников не имел опыта в решении задач оптимизации, то такие намерения были бы нечестными по отношению к ним.

Я просил изменить диапазон и шаг, дабы хоть немного уравнять шансы новичков без готового алгоритма и участников которые его давно имеют.


2. Критические ошибки в неизвестной функции, в которую последовательно подставляются случайные значения в несколько сотен параметров могут возникнуть у любого участника независимо от его алгоритма, просто в следствии случайности.

Допустим, если внутри функции есть такая запись - (2/(0.000000254345 - x1)); и случайно в одном из обращений алгоритм передаст в параметр х1 значение 0.000000254345.

В этом случае в скобках получится ноль, на который будет делится двойка.

Это приведет к критической ошибке. Однако никто из участников не может знать, что случайно сгенерированное число переданное в ФФ наряду с другими числами в массиве не равно какой то константе и не вычитается из нее и не делится далее на что то...

 
Реter Konow:

 1. Я не просил минимальных ограничений.

Я был против единоличного принятия решений по параметрам условия задачи со стороны организатора, потому как видель в этом возможность (умышленно или нет) приспособить эти условия под уже имеющийся алгоритм. Если принять во внимание, что основной контингент участников не имел опыта в решении задач оптимизации, то такие намерения были бы нечестными по отношению к ним.

Я просил изменить диапазон и шаг, дабы хоть немного уравнять шансы новичков без готового алгоритма и участников которые его давно имеют.


2. Критические ошибки в неизвестной функции, в которую последовательно подставляются случайные значения в несколько сотен параметров могут возникнуть у любого участника независимо от его алгоритма, просто в следствии случайности.

Допустим, если внутри функции есть такая запись - (2/(0.000000254345 - x1)); и случайно в одном из обращений алгоритм передаст в параметр х1 значение 0.000000254345.

В этом случае в скобках получится ноль, на который будет делится двойка.

Это приведет к критической ошибке. Однако никто из участников не может знать, что случайно сгенерированное число переданное в ФФ наряду с другими числами в массиве не равно какой то константе и не вычитается из нее и не делится далее на что то...

1. Скажите прямо, Вы не готовы использовать шаг 0.0000000000000001? Для Вас это слишком сложно? Если готовы, то вопрос снят.

2. Я сказал ранее, не переживайте на счет любых математических операций внутри ФФ, ошибок там возникнуть не может, даже если очень постараетесь. Позаботитесь лучше об отсутствии ошибок в своём алгоритме, поскольку будет явно видно по логам терминала где именно возникают ошибки. 

 

К тому же, любые требования по части свойств ФФ от Вас не правомочны, поскольку Вы отказались предоставить образец функции вида f(x1, x2) для включения её в состав ФФ. Довольствуйтесь тем, что уже проработано и подготовлено для Вас другими. Через пару тройку часов сможете посмотреть последний раз внутрь ФФ, но и то лишь для того, что бы понять, что созерцание внутренностей ФФ ничего не даст в плане повышения шансов в соревновании. Чёрный ящик, думайте только об этом, остальное - непрактично и нецелесообразно для достижения первого места.

 
Andrey Dik:

1. Скажите прямо, Вы не готовы использовать шаг 0.0000000000000001? Для Вас это слишком сложно? Если готовы, то вопрос снят.

2. Я сказал ранее, не переживайте на счет любых математических операций внутри ФФ, ошибок там возникнуть не может, даже если очень постараетесь. Позаботитесь лучше об отсутствии ошибок в своём алгоритме, поскольку будет явно видно по логам терминала где именно возникают ошибки. 

 

К тому же, любые требования по части свойств ФФ от Вас не правомочны, поскольку Вы отказались предоставить образец функции вида f(x1, x2) для включения её в состав ФФ. Довольствуйтесь тем, что уже проработано и подготовлено для Вас другими. Через пару тройку часов сможете посмотреть последний раз внутрь ФФ, но и то лишь для того, что бы понять, что созерцание внутренностей ФФ ничего не даст в плане повышения шансов в соревновании. Чёрный ящик, думайте только об этом, остальное - непрактично и нецелесообразно для достижения первого места.

Не горячитесь и не наколяйте. Мы просто обсуждаем и согласовываем согласно пункту 2 прописанному Вами здесь:  https://www.mql5.com/ru/forum/87536/page92#comment_2652859

1. Я готов использовать любые условия, которые будете использовать и Вы, но я предлагаю обдумать не приведут ли предложенные Вами условия к ошибкам, не зависищим от алгоритма участника.

2. Знание частей блоков аналитической функции (а именно ее констант и математических действий с параметрами) может быть недобросовестно использовано участником.

Пример: я составил и передал Вам функцию (2 / (2 - х1)) . Вы включили ее в состав ФФ.

Затем рефери, по Вашему предложению, просто перемешал блоки функции, оставив при этом константы и операции в этих блоках...

Далее, при составлении алгоритма я буду знать, что в параметр х1 нельзя передавать число 2, так как это приведет к критической ошибке деления на ноль. Однако, другой участник этого может не знать, и следовательно может передать значение 2 в этот параметр.

В итоге, его алгоритм будет дисквалифицирован.

Предлагаю учесть этот нюанс.

Если константы будут вне диапазона [2 , -2], то ни при каких операциях, ноль внутри функций не получится.

P.S. Конечно и в таком случае может получится ноль, но уже менее вероятно... Можно было бы исключить операцию деления из ФФ, но это наверное перебор...)))

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

Скажу сразу БЕЗ ОБИД, это всего лишь мое мнение. :)

А мнение такое, что пункт "с" Вашего ответа - угадайка. Угадайка потому, что достоверный результат не известен. Если неизвестен результат, то как можно определить ОПТИМАЛЬНОСТЬ алгоритма?

Если уж оценивать ОПТИМАЛЬНОСТЬ поисковых алгоритмов, то нужно это делать на ИЗВЕСТНЫХ результатах, полученных путем полного перебора. Но в задачах Чемпионата указать, что этот известный результат должен быть получен за 100-кратное уменьшение шагов. Вот это будет соревнование, при котором известный ПРАВДИВЫЙ результат, будет получаться за ЗНАЧИТЕЛЬНОЕ МЕНЬШЕЕ количество шагов! При таком подходе ни у кого не будет в сомнении результатов победы.

Согласен с Вами.

Считаю, что максимальное значение функции должно быть достоверно известно рефери. 

Иначе все соревнование превращается в фарс.

К тому же один из важнейших критериев оценки эффективности алгоритма участника наряду с количеством вызовов ФФ, - это точность, определить который без наличия достоверного маск. значения функции невозможно.

 
Реter Konow:

Не горячитесь и не наколяйте. Мы просто обсуждаем и согласовываем согласно пункту 2 прописанному Вами здесь:  https://www.mql5.com/ru/forum/87536/page92#comment_2652859

1. Я готов использовать любые условия, которые будете использовать и Вы, но я предлагаю обдумать не приведут ли предложенные Вами условия к ошибкам, не зависищим от алгоритма участника.

2. Знание частей блоков аналитической функции (а именно ее констант и математических действий с параметрами) может быть недобросовестно использовано участником.

Пример: я составил и передал Вам функцию (2 / (2 - х1)) . Вы включили ее в состав ФФ.

Затем рефери, по Вашему предложению, просто перемешал блоки функции, оставив при этом константы и операции в этих блоках...

Далее, при составлении алгоритма я буду знать, что в параметр х1 нельзя передавать число 2, так как это приведет к критической ошибке деления на ноль. Однако, другой участник этого может не знать, и следовательно может передать значение 2 в этот параметр.

В итоге, его алгоритм будет дисквалифицирован.

Предлагаю учесть этот нюанс.

Если константы будут вне диапазона [2 , -2], то ни при каких операциях, ноль внутри функций не получится.

Как Вы думаете, Для чего, помимо всего прочего, показывается исходник ФФ? Для того, что бы видеть, что в ФФ невозможно появление ошибок в связи с выполнением математических операций и других ошибок. Если возникнут ошибки в ФФ, а они теоретически могут возникнуть, то просмотрев исходник ФФ Вы можете использовать уязвимости в свою пользу, вызвав критическую ошибку в ФФ. Если подобное случится - это вина составителя ФФ, а поскольку я являюсь единственным составителем, то вина будет полностью на мне и я буду признан побеждённым дисквалифицированным а Вы соответственно победителем. У Вас есть шанс стать победителем таким образом, а точнее - нет никаких шансов стать победителем таким образом.
 
Andrey Dik:
Как Вы думаете, Для чего, помимо всего прочего, показывается исходник ФФ? Для того, что бы видеть, что в ФФ невозможно появление ошибок в связи с выполнением математических операций и других ошибок. Если возникнут ошибки в ФФ, а они теоретически могут возникнуть, то просмотрев исходник ФФ Вы можете использовать уязвимости в свою пользу, вызвав критическую ошибку в ФФ. Если подобное случится - это вина составителя ФФ, а поскольку я являюсь единственным составителем, то вина будет полностью на мне и я буду признан побеждённым дисквалифицированным а Вы соответственно победителем. У Вас есть шанс стать победителем таким образом, а точнее - нет никаких шансов стать победителем таким образом.

После того, как я увижу исходник ФФ, мне многое станет значительно яснее чем сейчас...

Я вовсе не собираюсь использовать Ваши возможные ошибки составления ФФ в свою пользу, так как это лишает смысла основу моей мотивации к участию, которая вовсе не заключается в стремлении к фальшивой победе.

Победа должна быть однозначная, достоверная и честная. Другой мне не нужно.

 
Alexander Laur:

Скажу сразу БЕЗ ОБИД, это всего лишь мое мнение. :)

А мнение такое, что пункт "с" Вашего ответа - угадайка. Угадайка потому, что достоверный результат не известен. Если неизвестен результат, то как можно определить ОПТИМАЛЬНОСТЬ алгоритма?

Если уж оценивать ОПТИМАЛЬНОСТЬ поисковых алгоритмов, то нужно это делать на ИЗВЕСТНЫХ результатах, полученных путем полного перебора. Но в задачах Чемпионата указать, что этот известный результат должен быть получен за 100-кратное уменьшение шагов. Вот это будет соревнование, при котором известный ПРАВДИВЫЙ результат, будет получаться за ЗНАЧИТЕЛЬНОЕ МЕНЬШЕЕ количество шагов! При таком подходе ни у кого не будет в сомнении результатов победы.

Реter Konow:

Согласен с Вами.

Считаю, что максимальное значение функции должно быть достоверно известно рефери. 

Иначе все соревнование превращается в фарс.

К тому же один из важнейших критериев оценки эффективности алгоритма участника наряду с количеством вызовов ФФ, - это точность, определить который без наличия достоверного маск. значения функции невозможно.

 Вы оба такие смешные... ) Без обид.))))

Если глобальный максимум известен всем без исключения, то, подумайте ещё раз, внимательно подумайте, что произойдет? Может быть ли вообще проведён чемпионат алгоритмов оптимизации в таком случае? Конечно не может, ведь любой участник может в холостую вызвать ФФ на процентов 60-70 от максимально разрешенного и выдать результат со 100% точностью! Мы можем соревноваться лишь на НЕИЗВЕСТНЫХ ФФ! Максимальное значение одного из участников и есть лучший результат.

Вы реально делаете мне смешно... )))

А вот если серьёзно, и очень хочется узнать, насколько точно алгоритм может находить максимум, то вне рамок соревнования можно подсунуть алгоритмам известную функцию с известным максимумом, подсунуть уже после момента публикации алгоритмов, никто же не запрещает этого делать, алгоритмы участников будут свободно доступны несколько дней и все могут проверять и тестировать алгоритмы сколько душе угодно. Надеюсь что у вас уже будет к тому моменту хоть какие нибудь функции с известным максимумом, что бы проверить и выяснить для себя свойства алгоритмов любого из участников. 

 
Реter Konow:

После того, как я увижу исходник ФФ, мне многое станет значительно яснее чем сейчас...

Я вовсе не собираюсь использовать Ваши возможные ошибки составления ФФ в свою пользу, так как это лишает смысла основу моей мотивации к участию, которая вовсе не заключается в стремлении к фальшивой победе.

Победа должна быть однозначная, достоверная и честная. Другой мне не нужно.

Означает ли это, что алгоритм ещё не готов? Сколько времени Вы рассчитываете получить для понимания и подготовку алгоритма под известную ФФ? Какая разница что содержится в ФФ? Алгоритм должен быть в состоянии работать с неизвестной ему ФФ, иначе это фигня а не алгоритм. 
Причина обращения: