Championnat d'optimisation des algorithmes. - page 122

 

Le championnat est conçu pour des participants formés, pour ceux qui ont des algorithmes prêts. Je vous rappelle que si vous voulez lire la littérature de profil au préalable, le lien est dans mon profil et ici.

Lorsque nous aurons suffisamment de participants formés avec des algorithmes prêts, nous aurons de quoi parler. Pour l'instant, au revoir et à bientôt !

 

J'ai consacré beaucoup d'énergie et de nerfs à ce championnat, mais un modérateur peut tout gâcher avec un seul de ses messages. Des exemples de codes et d'algorithme de travail, des références à la littérature, des interfaces de connexion - tout cela, je l'ai donné, mais il s'avère, comme l'a dit le modérateur, que tout cela n'existe pas, j'ai dû l'imaginer !

Si vous voulez vérifier la solidité de vos algorithmes, n'hésitez pas à me contacter dans l'espace personnel, et je répondrai à vos questions.

N'attendez plus d'activité publique de ma part, comprenez-moi bien.

 

Avec ta permission, Andrew, je propose de l'évaluer de cette façon, encore une fois, je n'insiste pas.

Problème : trouver un extremum F(x1,x2, xn) d'une fonction inconnue de l'algorithme.

Règles :

Le gagnant sera déterminé sur la somme de 2 critères

Précision T=Fmin_best/Fmin_y - (minimum du meilleur/ minimum du participant) en cas de recherche du minimum.

T=Fmax_y/Fmax_best en cas de recherche du maximum

2. Nombre d'appels à la fonction K=Kbest/Ky (nombre minimum d'appels de tous les participants)

Score total Os=T+K.

L'algorithme du participant passe le tableau double X[x1,x2, xn] et obtient la valeur de la fonction, puis il opère selon sa logique et calcule l'extremum et le nombre d'appels (nombre de passages du tableau).

La plage de recherche est déclarée séparément.

Nous pouvons prendre la fonction F(x1,x2,x3)=exp(x1+x2+x3)/(x1*x2*x2*x3*x3) pour l'apprentissage ;

Mon algorithme a donné les résultats suivants

J'ai obtenu ces résultats.

L'erreur de recherche spécifiée - 0.01 Paramètres initiaux (premier appel) x1=x2=x3=0.5 ; La plage de recherche 0-100

Nombre de fois que la fonction est appelée - Ky=51

Minimum Fmin_y=3.76210

x1=1,1 ; x2=2,1 ; x3=3,1 ;

F=(exp(X[1]+X[2]+X[3]))/(X[1]*X[2]*X[2]*X[3]*X[3]*X[3]);
 
Yuri Evseenkov:

Avec ta permission, Andrew, je propose de l'évaluer de cette façon, encore une fois, je n'insiste pas.

Problème : trouver un extremum F(x1,x2, xn) d'une fonction inconnue de l'algorithme.

Règles :

Le gagnant sera déterminé sur la somme de 2 critères

Précision T=Fmin_best/Fmin_y - (minimum du meilleur/ minimum du participant) en cas de recherche du minimum.

T=Fmax_y/Fmax_best en cas de recherche du maximum

2. Nombre d'appels à la fonction K=Kbest/Ky (nombre minimum d'appels de tous les participants)

Score total Os=T+K.

L'algorithme du participant passe le tableau double X[x1,x2, xn] et obtient la valeur de la fonction, puis il opère selon sa logique et calcule l'extremum et le nombre d'appels (nombre de passages du tableau).

La plage de recherche est déclarée séparément.

Nous pouvons prendre la fonction F(x1,x2,x3)=exp(x1+x2+x3)/(x1*x2*x2*x3*x3) pour l'apprentissage ;

Mon algorithme a donné les résultats suivants

J'ai obtenu ces résultats.

L'erreur de recherche spécifiée - 0.01 Paramètres initiaux (premier appel) x1=x2=x3=0.5 ; La plage de recherche 0-100

Nombre de fois que la fonction est appelée - Ky=51

Minimum Fmin_y=3.76210

x1=1,1 ; x2=2,1 ; x3=3,1 ;

Je vous ai montré ici comment les places sont calculées. La seule précision n'est pas le temps, mais le nombre d'appels au FF :

Andrey Dik:
Précision, max 1.0MaxMinCritèreCritère*3Heure, s.MaxMinCritèreCritère globalLieu
Petrov0,890,890,211,003,00800,00800,00221,000,003,001
Lemonov0,740,890,210,782,34456,00800,00221,000,592,932
Sidorov0,760,890,210,812,43589,00800,00221,000,362,793
Uhin0,610,890,210,591,76387,00800,00221,000,712,484
Progrès0,650,890,210,651,94521,00800,00221,000,482,425
Lenon0,450,890,210,351,06800,00800,00221,000,001,066
Clôtures0,210,890,210,000,00221,00800,00221,001,001,007
Abamov0,300,890,210,130,40721,00800,00221,000,140,538

Voici un exemple de calcul de la place de champion pour les concurrents. Le tableau est déjà trié par la colonne "Critère général".

Regardons de plus près le tableau. Petrov a obtenu un score de 0,89 pour le critère "Précision", où la valeur maximale du FF est de 1,0 et la valeur minimale de 0,0. Il s'agit donc du meilleur rapport qualité-prix de tous. Zaborov a obtenu le score le plus bas sur ce critère, il n'a réussi à obtenir que 0,21 et il semblait déjà que Zaborov ferait du surplace dans le classement.....

Mais selon le critère "Temps", Zaborov est le leader - il est l'algorithme le plus rapide et a accompli la tâche en 221 secondes (mais pas le plus inexact en même temps).

Calculons maintenant le critère général. Et qu'est-ce qu'on voit ? Qui l'aurait cru, mais Abamov est en dernière place, car son critère global est le plus faible, il n'a pu obtenir que 0,53.

ZS. Pour le critère de précision, la valeur la plus élevée est meilleure ; pour le critère de temps, la valeur la plus faible est meilleure. Toutes les coïncidences des noms sont accidentelles, pour moi c'était une grande surprise de voir Abamov obtenir la dernière place, enfin, il faudra être plus précis.... et plus rapide.

ZZZI. Pour calculer le critère "Précision", on applique la formule(In - InMIN) / (InMAX - InMIN); et pour calculer le critère "Temps"(InMIN - In) / (InMAX - InMIN);

PS. Combien de tests faites-vous dans votre tâche ? Pourquoi initialiser avec une valeur fixe de 0,5 ? Combien d'accès obtenez-vous si vous initialisez avec un nombre de 10.0 ?

PPS..... toutes les questions, veuillez les envoyer à la section personnelle.

 
Andrey Dik:

C'est ici que j'ai montré comment les places des participants sont calculées. La seule précision n'est pas le temps, mais le nombre de références au FF :

PS. Combien d'essais faites-vous dans votre tâche ? Pourquoi initialiser avec une valeur fixe de 0,5 ? Combien d'accès obtenez-vous si vous initialisez avec le nombre 10.0 ?

G Lors de l'initialisation de 10.0 vous obtenez un nombre d'occurrences de 2028 au moins 3.73722. Je n'ai pas encore testé à l'initialisation de RSCh.

Comprenez que je ne prétends pas du tout que mon algorithme est meilleur que le vôtre, je travaille encore sur le mien. Je voulais juste savoir comment le score total sera formé. Comment affiner l'algorithme.

Tu as raison, je suis le seul à dire que j'ai quelque chose de prêt. Les autres participants gardent publiquement le silence. Il est raisonnable de reporter le championnat à l'automne et de s'entraîner entre-temps.

 
Yuri Evseenkov:

G Lors de l'initialisation de 10.0 le nombre d'occurrences est de 2028 au moins 3.73722. Je n'ai pas encore vérifié l'initialisation du RNG.

Comprenez que je ne prétends pas que mon algorithme est meilleur que le vôtre, je travaille encore sur le mien. Je voulais juste savoir comment le score total sera formé. Comment affiner l'algorithme.

ZS. Tu as raison, il semble que je sois le seul à dire que j'ai quelque chose de prêt. Les autres participants gardent publiquement le silence. Il est raisonnable de reporter le championnat à l'automne, et entre-temps de s'entraîner.

Eh bien, c'est ce que je pensais.

C'est ça le truc. Vous n'avez pas besoin de le modifier pour l'adapter à quoi que ce soit. L'algorithme doit pouvoir fonctionner avec toutes les fonctions qu'il ne connaît pas, et toute initialisation est équivalente, et vous devez faire plusieurs tests, au moins 20.

Mettez la communication dans le privé.

 
Alexander Laur:
Mon grand-père avait l'habitude de me dire : "La différence entre un sage et un fou, c'est que le premier fait avancer les choses.
Votre grand-père ne vous a-t-il pas dit "ne vous mêlez pas de ce que vous ne connaissez pas" et "ne vous mêlez pas de ceux qui font le travail" ?
Afin de ne pas interférer - le travail et la préparation des participants sont maintenant en privé.
 
Andrey Dik:
Ton grand-père ne t'a pas dit... "n'interférez pas avec le fouineur" ?

Vous êtes occupé ?

Bien que vous soyez un classique du genre - comment parler du championnat pendant deux mois, réunir les participants, obtenir le soutien du MC sous la forme d'un prix de 3 000 dollars, mais ensuite vous l'avouez et vous n'obtenez rien.

La vieille dame de Pouchkine dont l'abreuvoir fuyait a eu plus de chance à la fin - au moins, elle a récupéré son abreuvoir.

 
Andrey F. Zelinsky:

Vous êtes occupé ?

Bien que vous soyez un classique du genre - comment parler du championnat pendant deux mois, réunir les participants, obtenir le soutien du MC sous la forme d'un prix de 3000 $, puis se contenter de parler et ne rien obtenir.

La vieille dame de Pouchkine dont l'abreuvoir fuyait a eu plus de chance à la fin - au moins, elle a récupéré son abreuvoir.

Vous êtes confus... Un jour j'ai rassemblé les participants, le lendemain je ne l'ai pas fait... Les prix n'étaient pas destinés à moi, mais aux participants, et maintenant personne ne recevra rien - vous devriez être heureux.
L'argent n'était pas le but pour moi dans le championnat, et les objectifs ont été atteints, voir le premier post dans le message, les gens sont intéressés, ont commencé à écrire et à développer leurs algorithmes et c'est le principal.
 
Donc je ne comprends pas. Cela fait deux mois maintenant et c'est toujours là. Quand le championnat aura-t-il lieu ?
Raison: