temps différents selon les langages pour la finale ?

Bonjour, d'après ce que j'ai compris, pour les qualifications, tous les langages n'avaient pas le même temps pour résoudre les exercices, par exemple le python avait beaucoup plus de temps que le C++. J'aimerais savoir si ça sera pareil pour la finale ou si il vaut mieux apprendre un langage comme que le C++ pour ne pas être désavantagé. Merci.

Bonjour !

Les compensations de temps sont conçues pour amortir les différences de performance entre les langages, de telle sorte à ce que tu ne soit pas pénalisé par le choix du langage. De manière générale, celui-ci est rarement important face à la qualité de ton algorithme et de son implémentation, qui sont les critères cible des sélections.

Lors de la finale, tout dépend du jeu. Il est probable que le temps d'exécution rentre en compte et ne sera dans ce cas là pas compensé (contrairement à lors des épreuves intermédiaires), mais le choix du langage n'est pas pour autant évident !

En effet, le temps de développement et la richesse de la bibliothèque standard sont des critères majeurs qui effacent parfois largement la rapidité d'exécution.

À toi de voir donc !

Merci pour votre réponse ! Dans ce cas je pense que le mieux à faire est d'apprendre un autre langage et de choisir celui que l'on veut utiliser en fonction du sujet. Est-il possible de changer de langage pendant l'épreuve ?

La finale étant le développement d'une IA, il est surement possible de changer de langage au milieu de l'épreuve, mais il faut alors tout recoder dans ce langage. (donc perte de temps considérable)

quent21

Merci pour votre réponse ! Dans ce cas je pense que le mieux à faire est d'apprendre un autre langage et de choisir celui que l'on veut utiliser en fonction du sujet. Est-il possible de changer de langage pendant l'épreuve ?

Il est possible de changer de langage pendant l'épreuve oui, mais ce n'est certainement pas une bonne idée.

Je suis pas sûr que ça dépende tant que ça du sujet. Ça sera par exemple toujours une mauvaise idée de le faire en C, tandis que Python et C++ tendraient à être de bons choix, avec chacuns leurs points forts.

Actuellement je maitrise bien le python mais très peu le C++. Or j'avais tester la différence entre ces 2 langages pendant les qualifications sur l'exercice 5 (car à ce moment je ne savais pas qu'il y avait une compensation de temps) et la différence était énorme ! Le C++ était jusqu'à 50 fois plus rapide dans certains cas il me semble ! Et si je fais un algo avec une recherche en profondeur ou un algo génétique, le temps d'exécution a une grande importance puisqu'il permet de faire une recherche plus en profondeur donc plus précise. C'est pour cela que je voulais apprendre le C++. Y a t'il un réel avantage à utiliser le python si ce n'est que l'algo est plus facile à coder ?

  • La vitesse d'exécution n'est pas forcément plus importante que la facilité que tu auras pour écrire ton code. Si tu as le temps de coder plus de choses dans ta stratégie, même si le code est moins performant, tu pourras gagner plus de points. Par exemple, le gagnant de l'édition 2016 avait codé en Python.
  • Si tu as une idée de stratégie qui a vraiment besoin de performance, c'est effectivement à toi de choisir un langage approprié en évaluant ses désavantages.
  • Je te recommande une grande méfiance pour les « algos génétiques ». Il n'y a qu'un seul candidat dans l'histoire de Prologin qui a réussi à implémenter ça de façon à ce que ce soit vraiment utile. C'est très complexe, souvent peu performant et mal adapté aux jeux de la finale, et difficile à débuguer. Les aspects sur lesquels tu dois te concentrer sont avant tout la stratégie et des heuristiques pour prendre des décisions. Généralement, employer des méthodes de machine learning n'est pas une bonne façon de faire la finale.

Bon courage !

Merci pour tout vos conseils ! Du coup je pense que je vais rester sur le python, je serai plus à l'aise pour coder. Bonne journée !

Répondre au sujet

Vous devez vous enregistrer ou vous connecter pour poster des messages.