Championnat d'optimisation des algorithmes. - page 98

 
Andrey F. Zelinsky:
Y a-t-il des modérateurs sur le forum ?
Pourquoi tu cries comme... Tu as mal ou quoi ? Sortez d'ici.
 
Andrey Dik:
Bien sûr, vous devez. Si vous ne faites aucune suggestion de fonction, je publierai la version finale des codes, après quoi nous passerons à la deuxième étape du championnat.
Je serai peut-être en mesure de proposer certaines de mes propres suggestions de fonctionnalités après avoir vu votre exemple. Si cela pouvait être considéré comme légitime...)
 
Реter Konow:
Je pourrai peut-être proposer une variante de la fonction après avoir vu votre exemple. Si cela pouvait être considéré comme légitime...)

Oui, bien sûr, pas de problème.

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 ;

Voici deux exemples de fonctions comme f(x1, x2).

 
Andrey Dik:

Oui, bien sûr, pas de problème.

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 ;

Voici deux exemples de fonctions de la forme f(x1, x2).

Vous pouvez voir une certaine discontinuité dans l'écriture des fonctions...

Le format correct est : fy = (x1 + x2 + ...xn) fournit les parties gauche et droite de l'équation. Le nombre de paramètres dans ces bribes de formules est évidemment faible. Je pensais que ce serait 500 ou plus...

 
Реter Konow:
Je pourrais peut-être proposer une variante de cette fonction après avoir vu votre exemple. Si cela pouvait être considéré comme légitime...)

Il n'y a qu'un seul point que je voudrais discuter avant de publier les sources du testbench.

Le fait est que je ne connais pas de fonctions qui seraient suffisamment intéressantes en termes de complexité pour l'algorithme sur toute la plage de sa définition aux paramètres [-DBL_MAX ; DBL_MAX]. Pour autant que l'on sache, les nombres doubles peuvent avoir 17 chiffres (16 décimales) et si nous prenons la plage [-DBL_MAX ; DBL_MAX], les fonctions ne seront pas sensibles aux changements de paramètres (car nous devrons mettre à l'échelle la plage des valeurs d'entrée dans la plage de sensibilité des fonctions) car le pas ne sera pas continu et uniforme.

Je propose donc d'utiliser l'intervalle [-2,0 ; 2,0] par pas de 0,0. En fait, en raison des limitations du nombre double, nous obtenons l'étape 0.0000000000000001, ce qui est intéressant en termes de complexité du problème, de sorte que nous pouvons utiliser pleinement toutes les possibilités du nombre double (le nombre d'étapes de paramètres obtiendra 4E16, et si nous considérons que les paramètres sont 500, il est clair qu'il y a beaucoup de variantes de valeurs FF, pour le moins).

 
Реter Konow:

Il semble y avoir une certaine discontinuité dans l'écriture des fonctions...

Le format correct est : fy = (x1 + x2 + ...xn) fournit les côtés gauche et droit de l'équation. Le nombre de paramètres dans ces bribes de formules est évidemment faible. Je pensais que ce serait 500 et plus...

Voici un exemple de deux fonctions de la forme f(x1, x2). Le championnat FF sera composé de 255 fonctions de ce type, les paramètres seront mélangés les uns aux autres, toutes ces fonctions individuelles deviendront dépendantes et s'affecteront mutuellement (comment exactement - l'arbitre générera une séquence d'appels aux fonctions individuelles et une séquence d'appels aux paramètres).

Si vous le pouvez, donnez-moi un exemple d'une telle fonction de la forme f(x1, x2) et je l'inclurai dans le FF général.

 
Andrey Dik:

Il n'y a qu'un seul point que je voudrais discuter avant de publier les sources du testbench.

Le fait est que je ne connais pas de fonctions qui seraient suffisamment intéressantes en termes de complexité pour l'algorithme sur toute la plage de sa définition aux paramètres [-DBL_MAX ; DBL_MAX]. Comme nous le savons tous, les nombres doubles peuvent avoir 17 chiffres (16 décimales) et si nous prenons la plage [-DBL_MAX ; DBL_MAX], les fonctions deviendront insensibles aux changements de paramètres car le pas ne sera pas continu.

C'est pourquoi je suggère d'utiliser la plage [-2,0 ; 2,0] par incréments de 0,0. En fait, en raison des limitations du double nombre, nous obtiendrons un pas de 0,0000000000000001, ce qui est intéressant en termes de complexité de la tâche, de sorte que nous pouvons utiliser pleinement toutes les possibilités du double nombre.

Je ne comprends pas. Etape 0.0 signifie pas d'étape...

Pour utiliser toutes les possibilités d'un nombre double, la plage devrait être [-DBL_MAX ; DBL_MAX], avec un pas de 0,0000000000000001.

Même si nous avons peut-être exagéré...

 
Реter Konow:

Je ne comprends pas. Etape 0.0 signifie pas d'étape...

Pour tirer pleinement parti du double, l'intervalle devrait être [-DBL_MAX ; DBL_MAX], avec un pas de 0,0000000000000001.

Même si nous avons peut-être exagéré...

L'étape 0.0 et signifie l'étape 0.00000000000000000001. Quant à la gamme, je l'ai décrite ci-dessus. Je n'ai pas trouvé de fonctions qui correspondent à la plage [-DBL_MAX ; DBL_MAX] et dont le fonctionnement est garanti sur cette plage (il faudrait faire des recherches pour vérifier, ce pour quoi je n'ai pas le temps).

Pensez-y jusqu'à demain, il est important de s'en rendre compte.

 
Andrey Dik:

Voici un exemple de deux fonctions de la forme f(x1, x2). Le championnat FF sera composé de 255 fonctions similaires, les paramètres seront mélangés, toutes ces fonctions individuelles deviendront dépendantes et s'influenceront mutuellement (comment exactement - l'arbitre générera une séquence d'appels aux fonctions individuelles et une séquence d'appels aux paramètres).

Si vous le pouvez, donnez un exemple d'une telle fonction de la forme f(x1, x2) et je l'inclurai dans le FF général.

Si je comprends bien, vous allez combiner 255 morceaux de fonctions analytiques similaires en une seule équation. Le problème est de trouver ses maxima en nombre minimum d'appels au FF.

Tout ce que vous devez savoir est la plage, le pas, le nombre de paramètres.

Je ne pense pas que mon surréalisme mathématique personnel soit nécessaire ici) Je vais accepter vos formules .

 
Andrey Dik:

L'étape 0.0 et signifie l'étape 0.00000000000000000001. Quant à la gamme, je l'ai décrite ci-dessus. Je n'ai pas trouvé de fonctions qui correspondent à la plage [-DBL_MAX ; DBL_MAX] et dont le fonctionnement est garanti sur cette plage (il faudrait faire des recherches pour vérifier, ce pour quoi je n'ai pas le temps).

Pensez-y jusqu'à demain, il est important de s'en rendre compte.

Je vais y réfléchir.