Présentation du projet
Dans le cadre d'un projet de recherche, des chercheurs du LERIA ont écrit un programme qui tente de déterminer comment on peut caractériser un groupe de lignes en fonction de leurs valeurs binaires écrites en colonnes. A partir d'un fichier-galerie qui définit les noms des colonnes binaires utilisées, d'un fichier-groupes qui indique le nom des groupes et d'un fichier-dac (données binaires), leur «solveur» produit un fichier-cs (caractérisation spécifique=solution).
Le but du projet est d'écrire des fonctions de vérifications des données d'entrée et de sortie et de tester si la solution-candidate fournie est exacte, puis de voir si elle s'applique à d'autres fichiers de données binaires. Ainsi pour les données de démonstration nommées paradis reproduites ci-dessous
la solution-candidate est
Elle s'interprète comme suit : le groupe 1 est caractérisé par ~2 (non 2), c'est-à-dire par le fait que la colonne 2 vaut 0. De même, le groupe 2 est caractérisé par C2=1 (la colonne 2 est vraie, elle vaut 1). Le formalisme général des solutions est le suivant : un numéro de colonne signifie que cette colonne vaut 1 pour le groupe ; si le numéro est précédé du symbole tilde (~), la colonne vaut 0 pour le groupe. Le symbole & signifie ET. Il faut donc que les deux indications de part et d'autre soient vérifiées. Par contre le symbole barre droite (|) signifie OU. Il suffit donc que l'une des indications entre ces barres soit vérifiée.
Aprés vérification (à la main), ces solutions s'avèrent être exactes. Par contre, si on l'applique aux données enfer ci-dessous on peut constater que le groupe 1 n'est pas caractérisé par des 0 en colonne 2. La caractérisation du paradis n'est donc pas valable pour l'enfer !
Dans le cadre du projet, on écrira des fonctions PHP "propres", utilisables à la fois en ligne de commande et via une interface Web. On notera que le fichier des solutions peut parfois contenir des solutions partielles (tous les groupes ne sont pas caractérisés).
Vu la qualité du travail exigé, il sera prudent de rencontrer le maitre de stage dès le tout début du stage et de fixer un rendez-vous hebdomadaire.
Données
Comme il est d'usage, on utilisera un jeu d'essai minimal pour mettre au point le programe. Notre exemple paradis peut être utilisé à cet effet, en version galerie, groupes et données binaires ou en version XML (UTF-8) à l'aide du fichier-solution paradis.cs.
Ensuite, on pourra tenter de vérifier les solutions de xanthostgen, en version galerie, groupes et données binaires ou en version XML (UTF-8) à l'aide du fichier-solution xanthostgen.cs. Et enfin, on pourra essayer de tester les solutions partielles de puces.cs ci-dessous
mais attention : il y a 10 760 et quelques colonnes binaires dans le fichier puces.dac.
Compléments
Le fichier cs.xsd contient la grammaire XML (en fait, un schéma XSD) associée aux données. La page ce_f.php contient d'autres exemples de données ; les pages ccd.php et cs.php contient quelques définitions relatives à la notion de caractérisation spécifique. Enfin la page verifsolf contient un mini vérificateur de solution limité à un seul groupe.
Retour à la page principale de (gH)