#ifndef __algo_h #define __algo_h #include "treillis.h" #include #include #include using namespace std; /* La classe algo contient toutes les méthodes nécessaires aux différents algorithmes implémentés et les structures globales. */ class algo { /* relation binaire sur laquelle on va lancer les algorithmes */ relation relation_a_examiner; /*ensemble des concepts générés*/ stack < concept > treillis; public: /* méthode permettant de lire une relation binaire dans un fichier */ void lecture(const string & nom_fic); /* méthode écrivant les résultats des calculs dans un fichier */ void ecriture_resultats(const string & nom_fic); /* méthode renvoyant le nom d'une propriété en fonction de son numéro */ string nom_propriete(int num); /* partitionnement récursif */ void partitionnement(const vector & ensemble_a_partitionner,const sous_relation & SR,const int & niveau,vector > &calcul_index); /* marquage des sommets dominants dans une partition */ vector marquer_dominants(const vector > & index, const sous_relation & SR); /* etape de l'algorithme récursif Berry-Bordat-Sigayret */ void etape(const concept & conc, const sous_relation & SR, vector marques); /* Algorithme Berry-Bordat-Sigayret */ void lancer_algo_berry(); }; #endif