CHALLENGE ALGORITHMIQUE
Gagne jusqu'à
$ 3500
Tu peux participer maintenant !
Lire très attentivement le document ci-dessous
Visiter la page : https://www.nora642.com
Envoyer un email à info@noracle.io
Des préoccupations ? Contacte nous via Telegram @Noracle_info
logo

NORACLE

Concours d’Algorithmique

$3500 (trois mille cinq cents dollars US) pour les valeureux gagnants

La technologie de la blockchain a induit un important mouvement de la décentralisation de certains processus opérationnels. Avec l’avènement des contrats intelligents (smart contracts) en particulier, il est aujourd’hui possible d’implémenter des systèmes basés sur des consensus purement algorithmiques qui éliminent des tiers de confiance dans les domaines comme la finance (finance décentralisée), l’actuariat, les réseaux sociaux, les jeux, le trading, l’intelligence artificielle, la gouvernance, etc.

Plusieurs projets dans le domaine de la blockchain utilisent l’approche open source pour permettre à diverses personnes de contribuer de manière ouverte à la construction de leurs algorithmes et consensus. Ainsi en est-il du projet NORACLE qui veut s’établir comme un oracle des modèles prédictifs, c’est-à-dire un projet qui développe des modèles prédictifs et les expose par des API (Application Programming Interface) à l’utilisation par diverses applications et jeux de prédiction.

L’un des modèles prédictifs de NORACLE, décrit dans le brevet US 8,727,859 B2, offre des outils d’optimisation de combinaisons ayant les meilleures probabilités d’apparaître dans un tirage aléatoire. Ce modèle prédictif est utilisé dans un jeu sur la blockchain dont la version test est consultable à l’adresse https://www.nora642.com

Problème d’optimisation :

Pour améliorer l’utilisabilité de ce modèle dans des jeux comme NORA642, les algorithmes conçus pour la recherche des combinaisons et du nombre total de combinaisons possibles en fonction des paramètres fournis au modèle, doivent être optimisés pour permettre une exécution rapide.

Le problème posé dans ce concours est celui de l’élaboration des algorithmes qui répondent aux critères d’exactitude et de rapidité. L’exactitude ici correspond au fait pour ces algorithmes de produire comme résultat les combinaisons qui correspondent à tous les critères paramétrés dans le modèle (ces critères sont visibles sur le site test de NORA642 quand on clique sur « Build your Nori »). L’algorithme ou les algorithmes doit/doivent être écrit/s dans l’un des langages de programmation Java ou Solidity. Au besoin, des structures de données appropriées peuvent être construites pour utilisation dans ces algorithmes.

Concrètement, toute personne ou groupe de personnes qui souhaite travailler sur ce problème (implémenter ces algorithmes) doit ouvrir le site https://www.nora642.com, ensuite cliquer sur le bouton « Build your Nori ». Cela permettra de voir et comprendre tous les critères/paramètres qui doivent être renseignés au modèle avant tout calcul des combinaisons par les algorithmes à implémenter.

Les algorithmes à implémenter au choix sont les suivants :

  1. Un algorithme qui sélectionne, de manière aléatoire, n combinaisons qui obéissent chacune à tous les critères sélectionnés dans chacune des 8 options de configuration (voir les options sur le site). n étant un nombre variable compris entre 1 et le nombre total de combinaisons possibles remplissant chacune tous les critères sélectionnés par l’utilisateur.
  2. Un algorithme qui, lorsque les critères/paramètres des options 2 (Mandatory numbers), 3 (Excluded numbers) et 4 (Prioritized numbers) sont donnés, sélectionne, de manière aléatoire, n combinaisons qui obéissent chacune à tous les critères sélectionnés dans l’option 5 (Filter Criteria).
  3. Un algorithme qui, lorsque les critères/paramètres des options 2 (Mandatory numbers), 3 (Excluded numbers) et 4 (Prioritized numbers) sont donnés, sélectionne, de manière aléatoire, n combinaisons qui obéissent chacune à tous les critères sélectionnés dans l’option 6 (Advanced Filter Criteria).
  4. Un algorithme qui, lorsque les critères/paramètres des options 2 (Mandatory numbers), 3 (Excluded numbers) et 4 (Prioritized numbers) sont donnés, sélectionne, de manière aléatoire, n combinaisons qui obéissent chacune à tous les critères sélectionnés dans l’option 7 (Partitions).
  5. Un algorithme qui, lorsque les critères/paramètres des options 2 (Mandatory numbers), 3 (Excluded numbers) et 4 (Prioritized numbers) sont donnés, sélectionne, de manière aléatoire, n combinaisons qui obéissent chacune à tous les critères sélectionnés dans l’option 8 (Blockwise Generation).

Répartition des prix en jeu :

La fondation Noracle Labs met la somme de $3500 en jeu pour récompenser les meilleures contributions à ce challenge. Le travail en équipe est aussi encouragé pour élaborer les algorithmes susceptibles de remporter l’un des prix.

L’algorithme le plus performant dans chacune des 5 catégories ci-dessus énumérées recevra le prix de la catégorie. Le prix pour la catégorie 1) est de $1752, et le prix pour chacune des catégories 2) 3) 4) et 5) est de $442 respectivement.

Le critère de performance de l’algorithme est simplement sa vitesse d’exécution qui doit être meilleure que celle de tous les algorithmes en compétition, y compris l’algorithme actuellement utilisé dans la version test de NORA642.

Pour participer, simplement envoyer un email à info@noracle.io ainsi qu’un fichier (word ou txt) comprenant nom, prénom, pays, ville et quartier ou code postal, email ou nom d’utilisateur Telegram de chaque membre de l’équipe, accompagné de l’algorithme (qui peut être organisé en plusieurs fichiers). Il est important de mettre comme sujet du courriel : Concours Optimisation Noracle Nr x (x ici est à remplacer par le numéro de la catégorie à laquelle l’algorithme prend part). En outre, il doit être indiqué dans le courriel la classe principale pour exécuter l’algorithme ainsi que le format des paramètres d’entrée.

Pour toute question liée à ce concours, bien vouloir l’adresser à : info@noracle.io

Date limite :

Le présent concours est ouvert jusqu’au 31/12/2024 00 :00 GMT. Cependant, la compétition peut être fermée pour une catégorie donnée bien avant la date limite si des algorithmes suffisamment performants ont été soumis et ont remporté le prix pour cette catégorie. Les résultats seront publiés sur la page https://noracle.io/concours-algo au fur-et-à-mesure que les algorithmes performants nous parviennent et qu’ils surpassent l’algorithme actuel du modèle dans l’une des catégories.

La rapidité dans l’implémentation des algorithmes est donc avantageuse pour les participants à ce concours, et il est important de visiter régulièrement la page https://noracle.io/concours-algo pour voir la liste des gagnants et des catégories encore en compétition.

Post-scriptum : Définition de la valeur AC

Il y'a dans l'option 6 (Advanced Filter Criteria) une certaine valeur appelée valeur AC. Puisqu'il ne s'agit pas d'une valeur familière et relativement triviale comme les autres, il convient ici d'en donner une définition pour que tous les participants à ce concours aient exactement la même compréhension de cette valeur.

La complexité arithmétique (valeur AC, Arithmetic Complexity en anglais) mesure la diversité des différences entre les nombres d'une combinaison. Plus la valeur est élevée, plus les nombres sont supposés être mélangés et distribués au hasard dans la combinaison.

Concrètement, l’algorithme suivant calcule la valeur AC d’une combinaison a de longueur s :