Le concours du reporter (3/3)

lundi 31 mars 2003
par  Gaétan RYCKEBOER
popularité : 1%

Tout jeu possÚde des rÚgles, le concours du Reporter n’y échappe pas, voici donc celles qui seront appliquées pour :

- établir le classement des pilotes logiciels de chaque participant sur un circuit de référence qui sera publié chaque mois sur le site de CLX jusqu’à clÎture du concours,

- établir le classement définitif à clÎture du concours lors d’épreuves éliminatoires disputées sur plusieurs circuits

- Attribuer les cadeaux réservés aux 50 premiers participants ayant respectés les rÚgles du jeu.

Règles de participation

Article 1

La participation au concours sous-entend l’acceptation du présent
règlement. Tout participant ne vérifiant pas l’un ou l’autre des articles de ce
règlement sera irrémédiablement éliminé et ne pourra prétendre à aucun cadeau
 :-<.

Article 2

Le concours est gratuit et ouvert à toute personne physique ou morale
(association, club, école...). Dans le cas d’un groupement d’individus, une
personne physique doit être désignée comme représentant pour écrire ou recevoir
tout courrier ayant trait au concours. Un seul cadeau sera fourni par équipe
quel que soit le nombre de participant.

Article 3

Les dénommés Gaétan Ryckeboer (ASR), Frédéric Gautier (Fred) sont considérés comme arbitres. A ce titre, ils
ne peuvent pas participer aux épreuves du championnat, mais veilleront au bon
déroulement des courses dans le respect du règlement.

Article 4

Chaque participant doit adresser
- par courrier à : Gaétan Ryckeboer, 6 Allée Henri Bergson, 35200 Rennes,
- ou par e-mail à [clx-concours@clx.anet.fr].

avant le 31 Août 2003 (le cachet de la poste ou du serveur de mails clx.anet.fr
faisant foi), une enveloppe contenant :

- 1) Sur disquette 3 pouces et demi, formatée DOS ou Linux 1,44 Mo, ou sur CD-ROM :

  • a) Un programme exécutable ou interprété, dénommé "Pilote Logiciel", respectant les conditions suivantes :
    • Exécutable statique ou script utilisable sous Linux, OpenBSD, FreeBSD, ou MacOSX à l’exclusion de tout autre système d’exploitation ;
    • Mémoire maximum exploitable pour son exécution : 10 Mo de mémoire.
    • Le script ou exécutable ne peut excéder 5 Mo ;
    • Le programme ne peut faire faire appel à d’autres librairies que les bibliothèques (ou librairies) standard installées sur tous les Un*x ;
    • Le programme doit être interruptible par un simple appui sur une touche. Le temps maximum alloué pour la génération du fichier .F1 contenant les déplacements du bolide sur un circuit est limité à 2 min (sur la machine de référence, un P2-350 sous console Unix Debian 2.2). Lors des épreuves de qualifications, les arbitres devront pouvoir interrompre le logiciel si ce délai est dépassé. Un temps maximum de réaction de 10 secondes sera toléré entre l’instant ou une touche est pressée et la sortie effective du programme ;
    • Le programme doit fonctionner "en l’état" et ne doit donc comporter aucun dispositif d’installation ou de configuration ;
    • Le programme doit fonctionner uniquement en ligne de commande et ne pas faire appel à des menus ;
    • Le programme doit accepter en unique paramètre de ligne de commande le nom, avec son extension, d’un fichier circuit à traiter, se trouvant dans le répertoire courant ;
    • Le programme doit créer dans le répertoire courant, pour chaque circuit traité, un fichier de même nom que l’exécutable mais d’extension .F1 respectant les règles d’évolution de la F1 et la syntaxe des fichiers résultat ;
    • la création de fichiers temporaires est tolérée à raison d’un seul présent sur le disque à la fois ne dépassant pas une taille de 1 Mo. Tous les fichiers temporaires devront obligatoirement être détruit par le programme avant la fin de son exécution, et stockés dans /tmp.
  • b) Un fichier de description de circuit, d’extension .CIR, dénommé "Circuit" par la suite, considéré comme conforme par le programme de validation CREECIR.EXE fourni aux participants.

- 2) Une lettre manuscrite datée et signée ou un e-mail signé par GPG ou PGP
comprenant :

  • Le nom et les coordonnées (adresse) de la personne physique participant au concours, ou du représentant physique dans le cas d’une participation groupée ;
  • faisant attestation :
    • que le participant est bien l’auteur du programme fourni ou dûment mandaté comme représentant d’un groupe d’auteurs le cas échéant ;
    • que le programme est certifié fonctionner sans risque de porter atteinte à l’intégrité de tout système informatique sur lequel il sera amené à être exécuté ;
  • engageant l’auteur :
    • à autoriser la diffusion gratuite de son pilote logiciel auprès des participants en faisant la demande pour vérification du résultat des épreuves éliminatoires venant en clôture du concours.
    • à fournir et autoriser la parution du source de son pilote logiciel sur le site de CLX, protégé par une licence libre de son choix.

NB : Chaque participant reste propriétaire de tous les droits sur ses logiciels
et sources créés à l’occasion de ce concours.

Article 5

Lorsqu’un participant envoie, avant le délai final fixé au 20 Novembre 2003,
une nouvelle version de son pilote logiciel et/ou de son circuit, celui-ci (ou
ceux-ci) se substitue(nt) au précédent envoi. Seule donc la dernière version
reçue (le cachet de la Poste faisant foi) participera aux épreuves de
qualification venant clore le concours.

Article 6

Seuls pourront prétendre à un cadeau les 50 premiers participants (date du
dernier courrier faisant foi) :

- ayant respecté les règles énoncées ci-dessus ;
- et dont le pilote logiciel aura parcouru de bout en bout, dans les temps
impartis, 70% des circuits qui lui seront présentés lors des épreuves de
clôture du concours.

Article 7

L’envoi des cadeaux prendra effet à partir de la date de clôture du concours.

Article 8

A l’issue du concours, tout participant pourra vérifier les résultats des
courses en faisant la demande écrite à l’un des arbitres, soit en joignant une
enveloppe pré-affranchie ainsi qu’une disquette à Gaétan Ryckeboer pour que lui
soient transmis les circuits et pilotes logiciels concurrents, soit par simple
e-mail (voir adresses plus haut).

Article 9

Les épreuves de qualification et éliminatoires venant clore ce concours sont
détaillées au chapitre épreuves de qualification

Épreuves de qualification

L’ordinateur sur lequel se dérouleront les courses est muni d’un processeur AMD
P2 à 350 MHz.

Un programme arbitre, baptisé TESTF1, sert à établir les temps de chaque pilote
logiciel sur les circuits qu’il a traité, analyser le fichier résultat généré
par le pilote et vérifier que le chemin décrit vérifie bien les règles
d’évolution ainsi que la syntaxe du fichier résultat.

Le temps mis par un pilote pour parcourir un circuit donné, ainsi que la
vitesse moyenne, sont ceux indiqués par le programme arbitre TESTF1, considéré
comme chronomètre officiel du concours.

EXEcutable i386 DOS/Windows - 26.6 ko
testf1.exe
L’outil utilisé pour vérifier la validité d’une course

Ce programme est fourni avec ce numéro afin de permettre à chacun d’évaluer et
tester son pilote avant envoi.

Classement provisoire avant clôture du concours :

Sur le site de CLX, nous ferons paraître les performances des pilotes logiciels
sur un circuit de référence, au fur et à mesure des envois.

Ce circuit est celui fourni à titre d’exemple : MONACO.CIR

Texte - 14.8 ko
monaco.cir
Le circuit de base (à renommer)

Ce classement sera établi grâce au chronomètre officiel TESTF1.EXE

Épreuves de qualification à la clôture du concours :

Tous les concurrents seront regroupés par "poules" comprenant entre 6 (minimum)
et 12 (maximum) participants. La formation des poules se fera conformément à la
procédure d’organisation des poules décrite en annexe.

Dans chaque "poule", le pilote logiciel de chacun des participants en faisant
partie devra générer un fichier .F1 pour chaque circuit fourni par ses
co-listiers et par lui-même.

Classement des pilotes par circuit de la poule :

Ces fichiers .F1 seront ensuite traités par le programme arbitre TESTF1 qui
générera pour chaque circuit un fichier .LOG permettant d’établir par circuit
un classement des pilotes dressé selon les deux critères décroissants :

- Rapidité de couverture du parcours - vitesse moyenne

Pour chaque circuit de la poule, il sera attribué un nombre de points aux
différents pilotes logiciel, en fonction de leur position dans le classement
précédemment obtenu :

position points
1 10
2 6
3 4
4 3
5 2
6 1
7 à 12 0

En cas d’ex aequo sur un circuit, tous les pilotes classés à la même position
marquent les points de cette position. Les points des places suivantes qui
auraient dû être occupées ne sont pas attribués.

Exemple : 3 pilotes ex aequo à la deuxième place marquent tous 6 points, le
suivant marque 2 points (position 5).

Classement des pilotes dans la poule (tout circuits confondus) :

Lorsque toutes les courses d’une poule sont terminées, on procède, pour chaque
pilote, à l’addition des points obtenus sur chacun des circuits qu’il a
parcouru au sein de la poule. Ce cumul de points sert de classement de la
poule. (On procède de même pour toutes les poules de l’épreuve de qualification
en cours)

Exemple :

Position Pilote Points par Circuits 1 Toto 10+10+10+6+4+2=42
2 Titi 6+6+6+0+6+6 =30
3 Tutu 10+10+10+0+0+0=30
.. ... ...
6 Tata 0+0+1+2+0+1 =04

En cas d’égalité de points entre plusieurs participants de la poule, les règles
de départage suivantes seront appliquées, classées par ordre de priorité :

- 1) On enlève le moins bon résultat supérieur à 0 des participants ex aequo et
on les reclasse. On répète l’opération précédente autant de fois que
nécessaire jusqu’à ce que l’un ait plus de point que l’autre.

Ce système d’arbitrage fait que, dans l’exemple ci dessus, il vaut mieux
marquer 30 points en terminant 5 fois deuxième (5*6=30) plutôt que de gagner 3
fois (3*10=30). En effet, dans ce cas, après avoir enlevé le moins bon
résultat, Titi se retrouve avec 24 points et Tutu avec 20 points.

Ce système d’arbitrage essaie de privilégier la régularité au détriment des
coups d’éclats.

- 2) Si malgré cela des participants restent ex aequo, il sera fait appel à la
question subsidiaire :

Le temps moyen de toutes les courses valides de la poule sera calculé (Par
course valide on entend une course pour laquelle le pilote n’a pas été
éliminé).

Le temps moyen est donc la somme de tous les temps obtenus sur toutes les
courses valides de la poule, divisée par le nombre de courses valides de la
poule.

Les participants seront classés en fonction de la proximité du temps estimé
qu’ils ont donné par courrier avant le début des courses et ce temps
calculé. Plus l’estimation préalable du participant est proche de la réalité,
meilleur sera son classement.

Sélection des pilotes pour les qualifications suivantes :

Ne sont retenus pour les épreuves de qualification suivantes que la moitié des
participants de chaque poule (arrondi au chiffre supérieur si le nombre de
participants est impair) en fonction du classement obtenu dans leurs poules
respectives.

Le total des points de chaque pilote est remis à 0 à l’issue de de cette
sélection et avant l’épreuve de qualification suivante.

On procédera ainsi à de nouvelles séances de qualification par poules en ne
gardant à chaque fois que la moitié des pilotes logiciels les plus performants
dans la leur. Et ce jusqu’à ce que le nombre de participants restant soit
inférieur ou égal à 12.

Poule finale :

Les rescapés des épreuves de qualification s’affronteront dans une poule finale
dont le classement se fera selon les mêmes règles que celles décrites ci-avant.

Sera déclaré vainqueur, le participant dont le pilote est classé premier de la
poule finale.

Pourquoi organiser des poules ?

Par Stéphane Pineau
Pourquoi organiser des poules et diviser ainsi les participants ?

Ben, parce que nous ignorons totalement le nombre de participants qui
répondront.(Beaucoup j’espère !)

Imaginez qu’il y ait 32 participants et que l’on fasse tourner les pilotes de
tous les candidats sur tous les circuits.. Il y aurait alors 32*32 courses, et
à raison de 5 minutes par course, cela prendrait 85 heures (sans pause !).

Pour 64 participants, on aurait 341 heures, soit plus de 14 jours...

Bref, comme on compte sur vous pour que ce concours soit un véritable succès,
il fallait bien trouver une solution !

D’où l’idée de répartir les participants en poules...

Comme si, par exemple, il y avait plusieurs championnats de Formule 1, un en
Europe, un en Afrique, un en Asie et un en Amérique.

On organise des championnats ’régionaux’ et on sélectionne (qualifie) les
meilleures voitures de chaque région pour une finale.

Un championnat régional, c’est ce que l’on appelle une poule. Dans ce
championnat, chaque voiture tourne sur chacun des circuits.

Comme en Formule 1, pour chaque circuit, on attribue des points aux meilleurs
participants.

À l’issue du championnat, les meilleures voitures sont qualifiées, les autres
étant éliminées.

L’objet de ce chapitre est de vous décrire la méthode retenue pour diviser les
participants en poule.

Ce n’est pas très simple à comprendre, car on a veillé à ne pas trop éliminer
de candidats à chaque fois, quitte à être obligé de subdiviser encore plus si
nécessaire (championnat local, qualifiant pour un championnat régional,
lui-même qualifiant pour la poule finale...).

Les concurrents seront, en fonction du nombre de participants, divisés en
plusieurs poules. Le nombre de poules dépend du nombre de participants par la
formule :

nombre_de_poule= 1+ trunc(nombre_de_participants / 12)

trunc indique un arrondi à la valeur inférieure (exemple
trunc(3.9)=3). Ceci permet de définir des poules de 12 candidats maximum.
Ex. :
- 8 participants -> 1 poule
- 12 participants -> 2 poules (2 poules de 6 participants)
- 15 participants -> 2 poules (une poule de 7 et une de 8)
- 32 participants -> 3 poules (2 poules de 11 et une de 10)
- 36 participants -> 4 poules (4 poules de 9)
- etc..

Ensuite les participants sont répartis dans les poules en fonction de la date
postale de leur premier envoi. Le premier envoi reçu allant dans la première
poule, le second dans la deuxième et ainsi de suite. Dès que l’on dépasse le
nombre de poules, on recommence à la première poule.

Exemple : 32 participants : 3 poules

poule 1 poule 2 poule 3
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18
19 20 21
22 23 24
25 26 27
28 29 30
31 32

On aura 2 poules de 11 participants et une de 10 participants.

La course sera organisée par poule et seront qualifiés au moins la moitié des
participants de la poule. Si le nombre de candidats dans la poule est pair,
c’est juste la moitié qui est qualifiée, si le nombre est impair, on arrondit
la moitié du nombre de participants au chiffre supérieur.

Dans notre exemple, on qualifiera 6 participants des 2 premières poules et 5
participants de la troisième. Le nombre de candidats restant en course après le
premier tour est donc de 17.

On reprend la procédure initiale, avec les seuls candidats qualifiés, et en les
plaçant dans les nouvelles poules suivant un balayage en ’zig-zag’.

Par exemple, si on appelle p1_1 à p1_6 les 6 qualifiés de la poule 1 du premier
tour, (et p2_x et p3_x respectivement ceux de la poule 2 et 3) la répartition
des 2 poules du deuxième tour se fera (toujours pour notre exemple initial à 32
participants) :

poule 1 rencontre poule 2
p1_1 -> p1_2
p1_4 <- p1_3
p1_5 -> p1_6
p2_2 <- p2_1
p2_3 -> p2_4
p2_6 <- p2_5
p3_1 -> p3_2
p3_4 <- p3_3
p3_5

On répète l’opération de qualification et de mise en poule, jusqu’à ce qu’il
n’y ait plus qu’une seule poule, baptisée poule finale.

Le classement du concours est le classement de la poule finale.

Résumons par un exemple concret

Pour participer au concours, vous avez deux fichiers à fournir, en plus de la
lettre manuscrite :

- 1) Un fichier décrivant un circuit, d’extension .CIR. C’est, entre autres, sur
ce circuit que votre voiture et celles de vos concurrents devront évoluer.

Pour créer ce circuit, il vous est possible d’utiliser l’outil fourni dans
les annexes, baptisé
CREECIR.EXE.

Pour dessiner votre circuit, il suffit de taper :

CREECIR mon_circuit

où mon_circuit est le nom que vous donnez à votre circuit.

Votre circuit ne peut pas être quelconque, il doit vérifier certaines règles
pour être conforme au règlement.

Un bouton, marqué OK, permet de vérifier dans CREECIR, si un circuit est
conforme au règlement.

Pour tester le programme CREECIR, nous avons joint au Reporter un circuit test
de démonstration (MONACO.CIR).

Ce fichier est le dessin d’un circuit conforme au règlement.

Pour autant que votre PC soit en mode VGA et dispose sous DOS d’un driver de
souris, vous pouvez visualiser, modifier le circuit, ainsi que vérifier sa
conformité au règlement, à l’aide du logiciel CREECIR.EXE :

<code185|center>

CREECIR monaco

Vous pouvez aussi visualiser, à l’aide d’un éditeur quelconque tel que EDIT, le
fichier .CIR généré. Il est au format ASCII et la piste est tout simplement
représentée par le caractère ’ ’ (espace).

Vous pouvez vous amuser à modifier le circuit MONACO.CIR afin de le rendre non
conforme et constater le verdict du programme de vérification.

- 2) Le deuxième fichier à fournir est votre programme de pilote, celui qui
décrira l’évolution de votre voiture sur un circuit donné.

Il reçoit, comme paramètre d’entrée, le nom du circuit sur lequel la voiture
doit boucler un tour. En sortie, il génère un fichier ASCII, décrivant
l’évolution de la voiture et qui respecte les règles physiques du comportement
de la voiture sur la piste.

La syntaxe d’appel est, par convention :

votre_programme nom_de_circuit.CIR

et son action est de créer un fichier votre_programme.F1 à partir du circuit
nom_du_circuit.CIR.

Pour vous évitez de tester le principe du concours en écrivant dès maintenant
un pilote automatique, dans les annexes du concours, vous trouverez
un tel programme.

Ce pilote automatique de démonstration n’est pas du tout performant (vous
pourrez faire nettement mieux) car notre but est juste de montrer ce que nous
attendons des participants.

Ce programme de pilote automatique de démonstration est baptisé DEMO_2CV.EXE,
et il génère, à partir d’un fichier circuit .CIR conforme un fichier résultat
(d’extension .F1) qui vérifie la syntaxe des fichiers résultats.

Pour utiliser le pilote de démonstration tapez :

DEMO_2CV monaco

et le programme génèrera un fichier résultat MONACO.F1. Bien entendu, le
fichier résultat est en ASCII et est donc parfaitement lisible avec un éditeur
de textes...

Enfin, pour contrôler le fichier résultat d’une voiture, et effectuer un
chronométrage officiel de la voiture, utilisez le programme arbitre fourni :
TESTF1.EXE.

Grâce à ce programme, les temps réalisés sont vérifiables par TOUS !

En plus de son rôle de ’chronomètre’, TESTF1 vérifie que le résultat obtenu par
le programme pilote est correct, à savoir que la voiture respecte les règles
d’évolution et qu’aucune collision n’est constatée avec les bords de piste.

TESTF1 reçoit comme paramètre d’entrée le nom du fichier résultat (d’extension
F1) qu’il doit vérifier.

Pour visualiser la course qu’a effectuée le pilote automatique de démonstration
et connaître son chronométrage précis, il ne reste plus qu’à faire tourner le
programme arbitre, à savoir :

TESTF1 demo_2cv.F1


Le rÚglement ici présent est trÚs fortement inspiré du rÚglement original proposé par L.RiviÚre lors de la publication initiale du concours. Voici d’ailleurs le Post-Scriptum qu’il adressait aux concurrents et que nous reprennons à notre compte :

Tout ceci peut sembler long car j’ai (Luc RivÚre) voulu à la fois présenter ce qui fait partie du concours en lui-même et les outils ’pour aider les participants et éviter les problÚmes’.


Commentaires

Logo de Blimp
samedi 5 avril 2003 à 11h20 - par  Blimp

Oui on va pouvoir se remettre à l’oeuvre d’autant qu’avec les nouvelles limites (2 minutes, 10 Mo) il va me falloir nettoyer un peu mon code qui utilisait 40 Mo les jours de fête :)

Pour la limitation de 10 Mo, j’imagine qu’un ulimit bien senti fait l’affaire ?

Logo de Gaétan RYCKEBOER
vendredi 4 avril 2003 à 13h41 - par  Gaétan RYCKEBOER

AMD K6-2 350

Logo de pacman
mardi 1er avril 2003 à 11h56 - par  pacman

Aaaaaaaaaaah, heureusement que le réglement date d’hier, aujourd’hui (1er avril) je n’y aurais pas cru !

D’abord une petite erreur à signaler :

"
Pour utiliser le pilote de démonstration tapez :

DEMO_2CV monaco

et le programme génÚrera un fichier résultat MONACO.F1. Bien entendu, le fichier résultat est en ASCII et est donc parfaitement lisible avec un éditeur de textes...
"

Le fichier résultat c’est DEMO_2CV.F1 pas MONACO.F1 !

Et quelques questions :
- C’est quoi ce processeur AMD P2 350 MHz : un Intel PII-350 ou un AMD K6-2-350 ? Si je me souviens bien au niveau des perfs en virgule flottante c’est pas pareil !

- Les 10 megs alloués au programme sont imposés comment ?

Bon on va pouvoir se remettre à l’oeuvre...

Annonces

Annuaire LibreNord

Retrouvez l’annuaire de logiciels libres créé par l’association Club Linux Nord-Pas de Calais sur le site suivant http://www.librenord.org


Sur le Web

21 mai - Décryptualité du 20 mai 2019 - Quand les informaticiens se rebiffent

20 mai - Revue de presse de l'April pour la semaine 20 de l'année 2019

20 mai - Interview de Sébastien Broca - Bonus de Philippe Borrel - Internet ou la révolution du partage

20 mai - Projet de loi école de la confiance : amendement 187 sur la priorité au logiciel libre déclaré irrecevable

20 mai - Projet de loi école de la confiance - Discussion au Sénat sur la priorité aux logiciels libres - 17 mai 2019

20 mai - Libre à vous ! Radio Cause Commune - Transcription de l'émission du 14 mai 2019

20 mai - Volontaires en Service Civique recherchés pour une mission de 9 mois

16 mai - Marche mondiale contre Monsanto et Bayer

16 mai - Émission « Libre à vous ! » sur radio Cause Commune (21 mai 2019) - Modèles d'organisation d'entreprises - Transcriptions - Partager est bon

16 mai - Publication officielle du SILL 2019 (Socle interministériel de logiciels libres)

16 mai - Interview de Lionel Maurel - Bonus de Philippe Borrel - Internet ou la révolution du partage

15 mai - Fontaine, ville « libre » - Bonus de La Bataille du Libre

15 mai - L'April présente à la Fête du Libre le 25 mai 2019 à Ivry-sur-Seine (94)

15 mai - Collectivités, participez à l'édition 2019 du label Territoire Numérique Libre

15 mai - Tonton Alias raconte comment il s'est cogné au mur du content ID de Google - Décryptualité du 13 mai 2019

14 mai - « Libre à vous ! » diffusée mardi 14 mai 2019 sur radio Cause Commune - Développement logiciel libre – Next INpact – Internet ou la révolution du partage

14 mai - Pourquoi les logiciels tombent en panne - Décryptualité du 6 mai 2019

14 mai - Animatrice/animateur nature en CDD (30h) pour 4 mois

14 mai - Décryptualité du 13 mai 2019 - Tonton Alias raconte comment il s'est cogné au mur du content ID de Google

13 mai - Revue de presse de l'April pour la semaine 19 de l'année 2019