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

 
Andrey F. Zelinsky:
Модераторы на форуме есть?
Чего ты вопишь как... Тебе больно что ли? Вали отсюда.
 
Andrey Dik:
Конечно, обязательно. Если от Вас предложений по функциям никаких нет, то я выставляю итоговый вариант кодов, после чего приступаем ко второму шагу чемпионата.
Возможно, я смогу предложить некоторый свой вариант функции, после того как увижу Ваш пример. Если это будет считаться легитимным...)
 
Реter Konow:
Возможно, я смогу предложить некоторый свой вариант функции, после того как увижу Ваш пример. Если это будет считаться легитимным...)

Да, конечно, не вопрос.

 

pow(cos(0.2e1 * 0.3141592654e1 * x2 * x2) + cos(0.1884955592e1 * y2) - 0.11e2, 0.2e1) + pow(cos(0.1256637062e1 * x2) + cos(0.2e1 * 0.3141592654e1 * y2 * y2) - 0.7e1, 0.2e1);

и

0.3e1 * (double) (int) pow((double) (1 - x3), (double) 2) * exp((double) (-x3 * x3 - (int) pow((double) (y3 + 1), (double) 2))) - 0.10e2 * (0.2e0 * (double) x3 - (double) (int) pow((double) x3, (double) 3) - (double) (int) pow((double) y3, (double) 5)) * exp((double) (-x3 * x3 - y3 * y3)) - exp((double) (-(int) pow((double) (x3 + 1), (double) 2) - y3 * y3)) / 0.3e1;

Вот два примера функций вида f(x1, x2). 

 
Andrey Dik:

Да, конечно, не вопрос.

 

pow(cos(0.2e1 * 0.3141592654e1 * x2 * x2) + cos(0.1884955592e1 * y2) - 0.11e2, 0.2e1) + pow(cos(0.1256637062e1 * x2) + cos(0.2e1 * 0.3141592654e1 * y2 * y2) - 0.7e1, 0.2e1);

и

0.3e1 * (double) (int) pow((double) (1 - x3), (double) 2) * exp((double) (-x3 * x3 - (int) pow((double) (y3 + 1), (double) 2))) - 0.10e2 * (0.2e0 * (double) x3 - (double) (int) pow((double) x3, (double) 3) - (double) (int) pow((double) y3, (double) 5)) * exp((double) (-x3 * x3 - y3 * y3)) - exp((double) (-(int) pow((double) (x3 + 1), (double) 2) - y3 * y3)) / 0.3e1;

Вот два примера функций вида f(x1, x2). 

Видна какая то разорванность в записи функций...

Правильный формат: fy = (x1 + x2 + ...xn) предусматривает левую и правую части уравнения. Количество параметров в этих обрывках формул явно мальнькое. Я думал будет 500 и более...

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

Есть только один момент, который я хотел бы предварительно обсудить перед публикацией исходников тестового стенда.

Дело в том, что я не знаю функций, которые были бы достаточно интересны в плане сложности для алгоритма на всём диапазоне своего определения при параметрах [-DBL_MAX; DBL_MAX]. Насколько всем известно числа double могут иметь количество знаков 17 (16 после запятой), и если мы возьмем диапазон [-DBL_MAX; DBL_MAX], то функции станут не чувствительными к изменениям параметров (потому что придётся масштабировать диапазон входных значений в диапазон чувствительности функций), так как шаг получится не непрерывным и не равномерным.

Поэтому я предлагаю использовать диапазон [-2.0; 2.0] с шагом 0.0. Фактически из за ограничений числа double получится шаг 0.0000000000000001, что волне интересно в плане сложности задачи, таким образом мы сможем полностью использовать все возможности числа double (число шагов параметров получится 4E16, и если учесть что параметров 500, то понятно, что вариантов значений ФФ очень много, мягко говоря).

 
Реter Konow:

Видна какая то разорванность в записи функций...

Правильный формат: fy = (x1 + x2 + ...xn) предусматривает левую и правую части уравнения. Количество параметров в этих обрывках формул явно мальнькое. Я думал будет 500 и более...

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

Если можете, приведите пример подобной функции вида f(x1, x2) и я её включу в общую ФФ.

 
Andrey Dik:

Есть только один момент, который я хотел бы предварительно обсудить перед публикацией исходников тестового стенда.

Дело в том, что я не знаю функций, которые были бы достаточно интересны в плане сложности для алгоритма на всём диапазоне своего определения при параметрах [-DBL_MAX; DBL_MAX]. Насколько всем известно числа double могут иметь количество знаков 17 (16 после запятой), и если мы возьмем диапазон [-DBL_MAX; DBL_MAX], то функции станут не чувствительными к изменениям параметров, так как шаг получится не непрерывным.

Поэтому я предлагаю использовать диапазон [-2.0; 2.0] с шагом 0.0. Фактически из за ограничений числа double получится шаг 0.0000000000000001, что волне интересно в плане сложности задачи, таким образом мы сможем полностью использовать все возможности числа double.  

Не понял. Шаг 0.0 означает отсутсвие шага...

Ну, чтобы использовать все возможности числа double, диапазон должен быть  [-DBL_MAX; DBL_MAX], при шаге 0.0000000000000001.

Как бы мы не перемудрили...

 
Реter Konow:

Не понял. Шаг 0.0 означает отсутсвие шага...

Ну, чтобы использовать все возможности числа double, диапазон должен быть  [-DBL_MAX; DBL_MAX], при шаге 0.0000000000000001.

Как бы мы не перемудрили...

 Шаг 0.0 и означает шаг 0.0000000000000001. А вот про диапазон я описал выше. Я не смог найти функций, подходящих под диапазон [-DBL_MAX; DBL_MAX] и гарантированно работающих на этом диапазоне (для проверки потребуются исследования, времени на которые у меня нет).

Подумайте до завтра, это важно осознать. 

 
Andrey Dik:

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

Если можете, приведите пример подобной функции вида f(x1, x2) и я её включу в общую ФФ.

Как я понял, Вы соедините 255 аналогичных обрывков аналитических функций в одно уравнение. Задача найти его максимус за мин. кол-во обращений к ФФ.

Все что нужно знать - диапазон, шаг, количество параметров.

Не думаю, что лично мой математический сюрреализм здесь необходим.) Приму Ваши формулы.

 
Andrey Dik:

 Шаг 0.0 и означает шаг 0.0000000000000001. А вот про диапазон я описал выше. Я не смог найти функций, подходящих под диапазон [-DBL_MAX; DBL_MAX] и гарантированно работающих на этом диапазоне (для проверки потребуются исследования, времени на которые у меня нет).

Подумайте до завтра, это важно осознать. 

Подумаю.