Skip to content

Projet S7 C++ - Application permettant de lire un fichier de donnée puis de générer et d'étudier un graphe de voisinage (Relative Neighborhood Graph).

Notifications You must be signed in to change notification settings

gbchd/RelativeNeighborhoodGraph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 

Repository files navigation

RelativeNeighborhoodGraph

Code grade Code score CodeFactor

Ce logiciel est écrit en C++ et est issu d'un projet de DI4 de l'école Polytech Tours.

Qu'est-ce que c'est ?

Le but est de mettre en place un Graphe de Voisinage (Relative Neighborhood Graph) à partir d'un fichier de données et d'analyser celui-ci grâce à un algorithme de parcours afin d'obtenir diverses statistiques.

Installation

Le projet est actuellement sous la forme d'un projet Xcode, néanmoins importer le dossier src sous Visual Studio où tout autre IDE est également possible.

Vous pouvez également retrouver une version du projet sous Visual Studio (avec les tests unitaires) à cet adresse : https://github.com/ColinTr/ProjetS7RelativeNeighborhoodGraph

Prérequis du logiciel

Le logiciel a besoin d'un fichier de données complet pour fonctionner. Celui-ci ne doit contenir que des nombres ou alors doit être accompagné d'un fichier d'entête qui spécifie si une des colonnes est un attribut de classe et ne sera donc pas utiliser pour générer le graphe.

Le fichier de données peut être assimilé à une matrice où chaque colonne est séparé par un certain caractère de séparation (par défaut ',').

Le fichier d'entête ne contient qu'une seule ligne et doit posséder le même nombre de colonnes que le fichier de données. Pour chaque colonne on spécifie une valeur précise :

  • 0 signifie que la colonne n'est pas un attribut de classe et est utilisée pour générer le graphe (doit être un nombre).
  • 1 signifie que la colonne est un attribut de classe et n'est pas utilisée pour générer le graphe.
  • 2 signifie que la colonne est un attribut de classe et est utilisée pour générer le graphe (doit être un nombre).

Exemple de fichier

Fichier de donnée :

1,2,3,4,5,Attribut de classe
1,2,3,4,5,Attribut de classe
...
1,2,3,4,5,Attribut de classe

Fichier d'entête :

0,0,0,0,0,1

Utilisation du logiciel

Une fois le logiciel compilé, on obtient un executable qui peut prendre plusieurs arguments :

  • -d "chemin du fichier de données" permet de choisir le fichier de données, si cette option est manquante le logiciel s'interrompra et enverra le code 1.
  • -c "chemin du fichier d'entête" permet de choisir le fichier d'entête, si cette option est manquante, on considèrera que toutes les colonnes du fichier de données sont utilisées pour créer le graphe et ne sont pas des attributs de classes.
  • -e "chemin du dossier d'exportation" permet de choisir le dossier dans lequel seront exportés les fichiers de résultats. Si cette option est manquante les résultats seront affichés dans le terminal.
  • -s 'charactère de séparation' permet de choisir le charactère de séparation utilisé pour séparer les colonnes dans les fichiers importés.
  • -v version permet de choisir quelle version de l'algorithme de parcours le logiciel utilisera, la version 1 ne prend en compte que les voisins d'un noeud A (plus rapide mais moins précise) tandis que la version 2 prend en compte les voisins et leurs voisins (moins rapide mais plus précise).
  • -k nombre de noeuds permet de choisir le nombre de noeuds que l'on souhaite utiliser pour l'algorithme de parcours. Si cette option est absente, l'algorithme de parcours effectuera pour tous les noeuds du graphe une insertion sur tous les noeuds.

About

Projet S7 C++ - Application permettant de lire un fichier de donnée puis de générer et d'étudier un graphe de voisinage (Relative Neighborhood Graph).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages