Championnat d'optimisation des algorithmes. - page 100

 
Alexander Laur:
À mon avis, les règles devraient également tenir compte du temps de test de l'algorithme. Tant que vous êtes deux, le test de l'algorithme peut se mesurer en heures, en jours. Et si d'autres participants veulent participer ? Veuillez ne pas faire perdre de temps à l'arbitre de la compétition.
Il y a une limite au nombre d'exécutions de FF. Certains concurrents ont demandé à ce que la durée de l'épreuve ne soit pas limitée.
 

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

2. Après tout, le résultat le plus important est de trouver le véritable extremum global. Et comment le vérifier ?

1. La validité du résultat est vérifiée simplement en substituant les valeurs des paramètres dans le FF et en comparant le résultat du concurrent avec celui du FF.

2. Le résultat global réel peut être obtenu de trois manières :

a) valeur exacte : résoudre analytiquement le problème (non acceptable pour nous)

(b) Valeur exacte : énumération totale (non réalisable pour nous)

c) valeur approximative : utiliser un algorithme d'optimisation - c'est ce que nous ferons, le résultat le plus élevé sera le meilleur. Le vrai maximum restera pour nous inconnu (il n'est pas possible de le trouver), et le meilleur sera le plus élevé parmi les participants.

 
Andrey Dik:

1. vous avez demandé des contraintes minimales et ceci est l'étape minimale possible.

S'il peut y avoir des problèmes, c'est avec l'algorithme du concurrent, pas avec le FF. Cela signifie que toute erreur critique causée par l'algorithme entraînera la disqualification du concurrent.

1. Je n'ai pas demandé de limites minimales.

J'étais contre la prise de décision unilatérale de l'organisateur sur les paramètres des conditions problématiques, car j'y voyais une opportunité (intentionnelle ou non) d'adapter ces conditions à l'algorithme existant. Compte tenu du fait que le principal contingent de participants n'avait aucune expérience dans la résolution de problèmes d'optimisation, une telle intention aurait été injuste pour eux.

J'ai demandé de changer la fourchette et le pas, afin d'égaliser au moins légèrement les chances des nouveaux venus sans algorithme prêt et des participants qui l'ont depuis longtemps.


2. Des erreurs critiques dans une fonction inconnue avec des valeurs aléatoires de plusieurs centaines de paramètres substitués successivement peuvent se produire pour n'importe quel participant, quel que soit son algorithme, juste par hasard.

Supposons qu'il existe une telle entrée dans la fonction - (2/(0,000000254345 - x1)) ; et que l'algorithme transmette accidentellement la valeur 0,000000254345 au paramètre x1 dans l'un des appels.

Dans ce cas, les parenthèses contiendront un zéro, par lequel le double sera divisible.

Cela entraînera une erreur critique. Cependant, aucun des participants ne peut savoir que le nombre généré aléatoirement envoyé au FF avec les autres nombres du tableau n'est pas égal à une certaine constante et n'en est pas soustrait ou divisé par quelque chose d'autre...

 
Реter Konow:

1. Je n'ai pas demandé de limites minimales.

J'étais contre la prise de décision unilatérale par l'organisateur sur les paramètres des conditions du problème, car j'y voyais une occasion (intentionnelle ou non) d'ajuster ces conditions à un algorithme déjà existant. Compte tenu du fait que le principal contingent de participants n'avait aucune expérience dans la résolution de problèmes d'optimisation, une telle intention aurait été injuste pour eux.

J'ai demandé de modifier la gamme et le ton, de manière à égaliser au moins légèrement les chances des nouveaux venus sans algorithme tout fait et des participants qui l'ont depuis longtemps.


2. Des erreurs critiques dans une fonction inconnue avec des valeurs aléatoires de plusieurs centaines de paramètres substitués successivement peuvent se produire pour n'importe quel participant, quel que soit son algorithme, juste par hasard.

Supposons qu'il existe une telle entrée dans la fonction - (2/(0,000000254345 - x1)) ; et que l'algorithme transmette accidentellement la valeur 0,000000254345 au paramètre x1 dans l'un des appels.

Dans ce cas, les parenthèses contiendront zéro, qui sera divisé par deux.

Cela entraînera une erreur critique. Cependant, aucun des participants ne peut savoir que le nombre généré aléatoirement transmis au FF avec les autres nombres du tableau n'est pas égal à une certaine constante et n'en est pas soustrait ou divisé par quelque chose d'autre...

1. Dites-moi franchement, n'êtes-vous pas prêt à utiliser le pas de 0,0000000000000001 ? Est-ce trop difficile pour vous ? Si vous êtes prêt, votre question est supprimée.

2. Je l'ai déjà dit, ne vous inquiétez pas des opérations mathématiques à l'intérieur du FF, aucune erreur ne peut s'y produire, même si vous faites de gros efforts. Vous feriez mieux de veiller à l'absence d'erreurs dans votre algorithme, car les journaux du terminal indiqueront clairement où les erreurs se produisent.

En outre, toute exigence de votre part concernant les propriétés du FF n'est pas légitime, car vous avez refusé de fournir un échantillon de fonction de la forme f(x1, x2) pour son inclusion dans le FF. Contentez-vous de ce qui a déjà été élaboré et préparé pour vous par d'autres. Dans quelques heures, vous pourrez jeter un dernier coup d'œil à l'intérieur du FF, mais seulement pour comprendre que contempler les entrailles du FF ne vous donnera rien pour augmenter vos chances dans le concours. Une boîte noire, ne pensez qu'à ça, le reste est peu pratique et irréalisable en premier lieu.

 
Andrey Dik:

1. Dites-moi franchement, n'êtes-vous pas prêt à utiliser le pas de 0,0000000000000001 ? Est-ce trop compliqué pour vous ? Si vous êtes prêt, alors la question ne se pose plus.

2. Je l'ai déjà dit, ne vous inquiétez pas des opérations mathématiques à l'intérieur du FF, aucune erreur ne peut s'y produire, même si vous faites de gros efforts. Vous feriez mieux de veiller à l'absence d'erreurs dans votre algorithme, car les journaux du terminal indiqueront clairement où les erreurs se produisent.

En outre, toute exigence de votre part concernant les propriétés du FF n'est pas légitime, car vous avez refusé de fournir un échantillon de fonction de la forme f(x1, x2) pour son inclusion dans le FF. Contentez-vous de ce qui a déjà été élaboré et préparé pour vous par d'autres. Dans quelques heures, vous pourrez jeter un dernier coup d'œil à l'intérieur du FF, mais seulement pour comprendre que contempler les entrailles du FF ne vous donnera rien pour augmenter vos chances dans le concours. Une boîte noire, ne pensez qu'à ça, le reste est peu pratique et irréalisable en premier lieu.

Ne t'énerve pas. Nous discutons et sommes d'accord avec le point 2 que vous avez écrit ici: https://www.mql5.com/ru/forum/87536/page92#comment_2652859.

1. Je suis prêt à utiliser toutes les conditions que vous utiliserez également, mais je vous suggère d'examiner si les conditions que vous proposez entraîneront des erreurs indépendantes de l'algorithme du concurrent.

2. La connaissance de certaines parties des blocs d'une fonction analytique (à savoir ses constantes et ses actions mathématiques avec des paramètres) peut être utilisée à mauvais escient par un participant.

Exemple : j'ai compilé et vous ai remis la fonction (2 / (2 - x1)) . Vous l'avez inclus dans le FF.

Ensuite, l'arbitre, à votre suggestion, a simplement mélangé les blocs de fonctions, tout en laissant les constantes et les opérations dans ces blocs...

De plus, lors de la compilation de l'algorithme, je saurai que je ne peux pas passer le nombre 2 dans le paramètre x1, car cela entraînerait une erreur critique de division par zéro. Cependant, l'autre participant peut ne pas le savoir, et peut donc donner la valeur 2 à ce paramètre.

En conséquence, son algorithme sera disqualifié.

Je suggère que cette nuance soit prise en compte.

Si les constantes sont en dehors de la plage [2 , -2], aucune opération n'aboutira à zéro dans les fonctions.

P.S. Bien sûr, vous pouvez aussi obtenir zéro dans ce cas, mais c'est moins probable. Vous pourriez exclure l'opération de division de FF, mais c'est probablement trop...))

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

Je ne veux pas être offensé, c'est juste mon opinion. :)

Et l'opinion est que le point "c" de votre réponse est un jeu de devinettes. C'est un jeu de devinettes car on ne connaît pas de résultat fiable. Si le résultat est inconnu, comment pouvez-vous déterminer l'OPTIMALITÉ de l'algorithme ?

Si nous évaluons l'OPTIMALITÉ des algorithmes de recherche, nous devons le faire sur des résultats connus obtenus par une recherche exhaustive. Mais dans les tâches du Championnat, précisez que ce résultat connu doit être obtenu en réduisant de 100 fois le nombre d'étapes. Il s'agirait d'une compétition dans laquelle un résultat VRAI connu, serait obtenu en un nombre SIGNIFICATIF d'étapes moins élevé ! Avec cette approche, personne n'aurait de doutes sur l'issue de la victoire.

Je suis d'accord avec vous.

Je pense que la valeur maximale de la fonction doit être connue de manière fiable par l'arbitre.

Sinon, tout le concours tourne à la farce.

En outre, l'un des critères les plus importants pour évaluer l'efficacité de l'algorithme d'un concurrent, avec le nombre d'appels FF, est la précision, qui est impossible à déterminer sans disposer d'une valeur de fonction de masque fiable.

 
Реter Konow:

Ne t'énerve pas. Nous discutons simplement et sommes d'accord selon le point 2 que vous avez explicité ici: https://www.mql5.com/ru/forum/87536/page92#comment_2652859.

1. Je suis prêt à utiliser toutes les conditions que vous utiliserez également, mais je propose d'examiner si les conditions que vous proposez entraîneront des erreurs indépendantes de l'algorithme du concurrent.

2. La connaissance de certaines parties des blocs d'une fonction analytique (à savoir ses constantes et ses actions mathématiques avec des paramètres) peut être utilisée à mauvais escient par un participant.

Exemple : J'ai compilé et vous ai transmis la fonction (2 / (2 - x1)) . Vous l'avez inclus dans le FF.

Ensuite, l'arbitre, à votre suggestion, a simplement mélangé les blocs de fonctions, tout en laissant les constantes et les opérations dans ces blocs...

De plus, lors de la compilation de l'algorithme, je saurai que je ne peux pas passer le nombre 2 dans le paramètre x1, car cela entraînerait une erreur critique de division par zéro. Cependant, l'autre participant peut ne pas le savoir, et peut donc donner la valeur 2 à ce paramètre.

En conséquence, son algorithme sera disqualifié.

Je vous suggère de considérer cette nuance.

Si les constantes sont en dehors de la plage [2 , -2], aucune opération n'aboutira à zéro dans les fonctions.

A quoi pensez-vous que la source FF est montrée, entre autres choses ? Veiller à ce qu'aucune erreur ne se produise dans le FF en raison d'opérations mathématiques et d'autres erreurs. Si des erreurs se produisent dans le FF, et elles peuvent théoriquement se produire, en consultant le code source du FF, vous pouvez utiliser les vulnérabilités à votre avantage, en provoquant une erreur critique dans le FF. Si cela se produit, c'est la faute du créateur de la FF, et comme je suis le seul créateur, la faute me reviendra entièrement et je serai le perdant et vous le gagnant. Vous avez une chance de devenir un gagnant de cette manière, ou plutôt - il n'y a aucune chance de devenir un gagnant de cette manière.
 
Andrey Dik:
A votre avis, à quoi sert, entre autres, le FF original ? Voir qu'il est impossible que des erreurs se produisent dans le FF en raison d'opérations mathématiques et d'autres erreurs. Si des erreurs se produisent dans le FF, et elles peuvent théoriquement se produire, en consultant le code source du FF, vous pouvez utiliser les vulnérabilités à votre avantage, en provoquant une erreur critique dans le FF. Si cela se produit, c'est la faute du créateur de la FF, et comme je suis le seul créateur, la faute me reviendra entièrement et je serai le perdant et vous le gagnant. Vous avez une chance d'être gagnant de cette manière, ou plutôt - il n'y a aucune chance d'être gagnant de cette manière.

Après avoir vu le FF original, beaucoup de choses me paraîtront plus claires que maintenant...

Je ne vais pas du tout utiliser vos éventuelles erreurs de rédaction de FF à mon avantage, car cela invalide la base de ma motivation à participer, qui n'est pas du tout de chercher à obtenir une fausse victoire.

La victoire doit être sans équivoque, crédible et équitable. Je n'en ai pas besoin d'autre.

 
Alexander Laur:

Je ne veux pas être offensé, c'est juste mon opinion. :)

Et l'opinion est que le point "c" de votre réponse est un jeu de devinettes. C'est un jeu de devinettes car on ne connaît pas de résultat fiable. Si le résultat est inconnu, comment pouvez-vous déterminer l'OPTIMALITÉ de l'algorithme ?

Si nous évaluons l'OPTIMALITÉ des algorithmes de recherche, nous devons le faire sur des résultats connus obtenus par une recherche exhaustive. Mais dans les tâches du Championnat, précisez que ce résultat connu doit être obtenu en réduisant de 100 fois le nombre d'étapes. Il s'agirait d'une compétition dans laquelle un résultat VRAI connu, serait obtenu en un nombre SIGNIFICATIF d'étapes moins élevé ! Avec cette approche, personne n'aura de doute sur l'issue de la victoire.

Reg Konow:

Je suis d'accord avec vous.

Je pense que la valeur maximale de la fonction doit être connue de manière fiable par l'arbitre.

Sinon, tout le concours tourne à la farce.

En outre, l'un des critères les plus importants pour évaluer l'efficacité de l'algorithme d'un concurrent, avec le nombre d'appels FF, est la précision, qui est impossible à déterminer sans disposer d'une valeur fiable de la fonction de masque.

Vous êtes si drôles tous les deux... ) Sans vouloir vous offenser. ))))

Si le maximum global est connu de tous sans exception, alors, réfléchissez encore, réfléchissez bien, que se passera-t-il ? Un championnat d'algorithmes d'optimisation peut-il être tenu dans un tel cas ? Bien sûr, il ne peut pas, parce que n'importe quel concurrent peut appeler le FF à 60-70 pour cent du maximum autorisé et produire un résultat avec une précision de 100 pour cent ! Nous ne pouvons concourir que sur des FF ILLIMITÉS ! La valeur maximale de l'un des concurrents est le meilleur résultat.

Vous me faites vraiment rire... )))

Mais si vous êtes sérieux et que vous voulez vraiment savoir avec quelle précision un algorithme peut trouver le maximum, alors en dehors de la compétition nous pouvons alimenter les algorithmes avec un maximum connu, les alimenter après que les algorithmes aient été publiés, personne n'interdit de le faire, les algorithmes des participants seront librement disponibles pendant plusieurs jours et chacun pourra vérifier et tester les algorithmes autant qu'il le souhaite. J'espère que d'ici là, vous aurez déjà au moins quelques fonctions dont le maximum est connu, pour vérifier et découvrir par vous-même les propriétés des algorithmes de l'un ou l'autre des participants.

 
Реter Konow:

Après avoir vu le FF original, beaucoup de choses me paraîtront plus claires que maintenant...

Je ne vais pas du tout utiliser vos éventuelles erreurs de rédaction de FF à mon avantage, car cela invalide la base de ma motivation à participer, qui n'est pas du tout de viser une fausse victoire.

Les gains doivent être sans ambiguïté, crédibles et honnêtes. Je n'en ai pas besoin d'autre.

Cela signifie-t-il que l'algorithme n'est pas encore prêt ? Combien de temps pensez-vous obtenir pour comprendre et préparer l'algorithme pour un FF connu ? Quelle différence cela fait-il de savoir ce qui est contenu dans le FF ? L'algorithme doit pouvoir fonctionner avec un FF inconnu, sinon ce sont des conneries et non un algorithme.