Project
Public Member Functions | List of all members
DataGenerator Class Reference

Wrapper to generate, save and load xml files. More...

#include <DataGenerator.h>

Public Member Functions

 DataGenerator (Config &config)
 
void datasetGenerator (int nb_criteria, int nb_alternative, int nb_categories, std::string datasetName="", bool overwrite=1, unsigned long int seed=0)
 
void modelGenerator (int nb_criteria, int nb_categories, std::string modelName, bool overwrite=1, unsigned long int seed=0)
 
void saveDataset (std::string fileName, AlternativesPerformance altPerf, int nb_categories, bool overwrite=1, std::string datasetName="")
 
AlternativesPerformance loadDataset (std::string fileName)
 
void saveModel (std::string fileName, float lambda, Criteria criteria, PerformanceTable pt, bool overwrite=1, std::string modelName="")
 
std::tuple< float, Criteria, PerformanceTableloadModel (std::string fileName)
 
pugi::xml_document openXmlFile (std::string filename)
 
std::string getXmlFileType (std::string fileName)
 
int getNumberOfCriteria (std::string fileName)
 
int getNumberOfCategories (std::string fileName)
 
float getThresholdValue (std::string fileName)
 
int getNumberOfAlternatives (std::string fileName)
 
std::vector< PerfgetAlternativePerformance (std::string fileName, std::string alt_id)
 
std::vector< std::string > getAlternativeIds (std::string fileName)
 
std::vector< std::string > getCriteriaIds (std::string fileName)
 
Criterion getCriterion (std::string fileName, std::string crit_id)
 
int getAlternativeAssignment (std::string fileName, std::string alt_id)
 
std::vector< float > getCriterionCategoryLimits (std::string fileName, std::string crit_id)
 
bool checkDataCompatability (std::string fileName)
 

Detailed Description

Wrapper to generate, save and load xml files.

The DataGenerator is a utility class that is the bridge between the datastructure of this project and the corresponding xml files used to store a dataset or a model.

Member Function Documentation

◆ checkDataCompatability()

bool DataGenerator::checkDataCompatability ( std::string  fileName)

This method checks if the dataset used for our profile initialisation is compatible in our framework. Essentially, it checks that at least one alternative is assigned to each category of our problem.

Parameters
fileNamedataset filename
Returns
bool

◆ datasetGenerator()

void DataGenerator::datasetGenerator ( int  nb_criteria,
int  nb_alternative,
int  nb_categories,
std::string  datasetName = "",
bool  overwrite = 1,
unsigned long int  seed = 0 
)

Generate a random dataset and puts it in a xml file

Parameters
nb_criterianumber of criteria
nb_alternativenumber of alternatives
nb_categoriesnumber of categories
datasetNamename of that dataset
overwritebool that refers to if we want to overwrite file
seedseed to control random generation
Returns
a saved file of the name datasetName.xml in data/ or default generated name

◆ getAlternativeAssignment()

int DataGenerator::getAlternativeAssignment ( std::string  fileName,
std::string  alt_id 
)

Get alternative category assignment

Parameters
fileNamefilename
alt_idCriterion id

◆ getAlternativeIds()

std::vector<std::string> DataGenerator::getAlternativeIds ( std::string  fileName)

Get all of alternative ids if they exists

Parameters
fileNamefilename

◆ getAlternativePerformance()

std::vector<Perf> DataGenerator::getAlternativePerformance ( std::string  fileName,
std::string  alt_id 
)

Get performance of alternative

Parameters
fileNamefilename
alt_idAlternative id

◆ getCriteriaIds()

std::vector<std::string> DataGenerator::getCriteriaIds ( std::string  fileName)

Get all of criteria ids

Parameters
fileNamefilename

◆ getCriterion()

Criterion DataGenerator::getCriterion ( std::string  fileName,
std::string  crit_id 
)

Get weight for one specific criterion id

Parameters
fileNamefilename
crit_idCriterion id

◆ getCriterionCategoryLimits()

std::vector<float> DataGenerator::getCriterionCategoryLimits ( std::string  fileName,
std::string  crit_id 
)

Get alternative category assignment

Parameters
fileNamefilename
crit_idCriterion id

◆ getNumberOfAlternatives()

int DataGenerator::getNumberOfAlternatives ( std::string  fileName)

Get number of alternatives found in dataset xml file if it exists

Parameters
fileNamefilename

◆ getNumberOfCategories()

int DataGenerator::getNumberOfCategories ( std::string  fileName)

Get number of categories found in xml file

Parameters
fileNamefilename

◆ getNumberOfCriteria()

int DataGenerator::getNumberOfCriteria ( std::string  fileName)

Get number of criterias found in xml file

Parameters
fileNamefilename

◆ getThresholdValue()

float DataGenerator::getThresholdValue ( std::string  fileName)

Get lambda threshold value found in xml file if it exists

Parameters
fileNamefilename

◆ getXmlFileType()

std::string DataGenerator::getXmlFileType ( std::string  fileName)

Gets the xml file type

Parameters
fileNamefilename
Returns
"model" for model xml file types or "dataset" for data xml

◆ loadDataset()

AlternativesPerformance DataGenerator::loadDataset ( std::string  fileName)

Get dataset data from xml file

Parameters
fileNamefilename
Returns
AlternativesPerformance object in order to use MRSort model

◆ loadModel()

std::tuple<float, Criteria, PerformanceTable> DataGenerator::loadModel ( std::string  fileName)

Get model data from xml file

Parameters
fileNamefilename
Returns
tuple object to use algorithms

◆ modelGenerator()

void DataGenerator::modelGenerator ( int  nb_criteria,
int  nb_categories,
std::string  modelName,
bool  overwrite = 1,
unsigned long int  seed = 0 
)

Generate a random model and puts it in a xml file

Parameters
nb_criterianumber of criteria
nb_categoriesnumber of categories
modelNamename of that model
overwritebool that refers to if we want to overwrite file
seedseed to control random generation
Returns
a saved file of the name nametName.xml in data/ or default generated name

◆ openXmlFile()

pugi::xml_document DataGenerator::openXmlFile ( std::string  filename)

Get an xml_document type for preocessing the xml files

Parameters
fileNamefilename
Returns
pugi::xml_document object that hold info on the xml filename file

◆ saveDataset()

void DataGenerator::saveDataset ( std::string  fileName,
AlternativesPerformance  altPerf,
int  nb_categories,
bool  overwrite = 1,
std::string  datasetName = "" 
)

Save dataset data in xml file name filename

Parameters
fileNamefilename
altPerfAlternative Peformance type
nb_categoriesnumber of categories
overwriteoverwrite potentiel filename if it exists
datasetNamedataset name given in xml file
Returns
save file in xml format

◆ saveModel()

void DataGenerator::saveModel ( std::string  fileName,
float  lambda,
Criteria  criteria,
PerformanceTable  pt,
bool  overwrite = 1,
std::string  modelName = "" 
)

Save model data in xml file name filename

Parameters
fileNamefilename
lambdathreshold
ptprofile Performance table
overwritedo i want to overwrite a file if it has the same "fileName"
modelNamemodel name given in the xml
Returns
save file in xml format

The documentation for this class was generated from the following file: