Project
DataGenerator.h
Go to the documentation of this file.
1 #ifndef DATAGENERATOR_H
2 #define DATAGENERATOR_H
3 
10 // will be using pugiXML for parsing and generating
11 // git clone https://github.com/zeux/pugixml.git
12 // forked repo and uncomment in pugixml/src/pugiconfig.hpp
13 // line 48 #define PUGIXML_HEADER_ONLY
14 
15 #include "../../extsrc/pugixml/src/pugixml.hpp"
16 #include "../app.h"
18 #include "Criterion.h"
19 #include "PerformanceTable.h"
20 #include <iostream>
21 #include <tuple>
22 
31 public:
32  DataGenerator(Config &config);
33 
47  void datasetGenerator(int nb_criteria, int nb_alternative, int nb_categories,
48  std::string datasetName = "", bool overwrite = 1,
49  unsigned long int seed = 0);
50 
63  void modelGenerator(int nb_criteria, int nb_categories, std::string modelName,
64  bool overwrite = 1, unsigned long int seed = 0);
65 
78  void saveDataset(std::string fileName, AlternativesPerformance altPerf,
79  int nb_categories, bool overwrite = 1,
80  std::string datasetName = "");
81 
90  AlternativesPerformance loadDataset(std::string fileName);
91 
105  void saveModel(std::string fileName, float lambda, Criteria criteria,
106  PerformanceTable pt, bool overwrite = 1,
107  std::string modelName = "");
108 
117  std::tuple<float, Criteria, PerformanceTable> loadModel(std::string fileName);
118 
127  pugi::xml_document openXmlFile(std::string filename);
128 
136  std::string getXmlFileType(std::string fileName);
137 
144  int getNumberOfCriteria(std::string fileName);
145 
152  int getNumberOfCategories(std::string fileName);
153 
160  float getThresholdValue(std::string fileName);
161 
168  int getNumberOfAlternatives(std::string fileName);
169 
176  std::vector<Perf> getAlternativePerformance(std::string fileName,
177  std::string alt_id);
184  std::vector<std::string> getAlternativeIds(std::string fileName);
185 
192  std::vector<std::string> getCriteriaIds(std::string fileName);
193 
200  Criterion getCriterion(std::string fileName, std::string crit_id);
201 
208  int getAlternativeAssignment(std::string fileName, std::string alt_id);
209 
216  std::vector<float> getCriterionCategoryLimits(std::string fileName,
217  std::string crit_id);
218 
227  bool checkDataCompatability(std::string fileName);
228 
229 private:
230  Config &conf;
231 };
232 
233 #endif
Dataset data structure.
Datastructure representing a criterion.
PerformanceTable data structure.
Dataset datastructure.
Definition: AlternativesPerformance.h:35
Set of Criterion datastructure.
Definition: Criteria.h:25
Criterion datastructure.
Definition: Criterion.h:21
Wrapper to generate, save and load xml files.
Definition: DataGenerator.h:30
void saveModel(std::string fileName, float lambda, Criteria criteria, PerformanceTable pt, bool overwrite=1, std::string modelName="")
int getNumberOfAlternatives(std::string fileName)
float getThresholdValue(std::string fileName)
void datasetGenerator(int nb_criteria, int nb_alternative, int nb_categories, std::string datasetName="", bool overwrite=1, unsigned long int seed=0)
std::vector< float > getCriterionCategoryLimits(std::string fileName, std::string crit_id)
int getNumberOfCategories(std::string fileName)
std::string getXmlFileType(std::string fileName)
Criterion getCriterion(std::string fileName, std::string crit_id)
std::vector< Perf > getAlternativePerformance(std::string fileName, std::string alt_id)
AlternativesPerformance loadDataset(std::string fileName)
void saveDataset(std::string fileName, AlternativesPerformance altPerf, int nb_categories, bool overwrite=1, std::string datasetName="")
int getAlternativeAssignment(std::string fileName, std::string alt_id)
std::vector< std::string > getCriteriaIds(std::string fileName)
void modelGenerator(int nb_criteria, int nb_categories, std::string modelName, bool overwrite=1, unsigned long int seed=0)
std::tuple< float, Criteria, PerformanceTable > loadModel(std::string fileName)
pugi::xml_document openXmlFile(std::string filename)
int getNumberOfCriteria(std::string fileName)
bool checkDataCompatability(std::string fileName)
std::vector< std::string > getAlternativeIds(std::string fileName)
PerformanceTable data structure.
Definition: PerformanceTable.h:37
High level configuration of the app.
Definition: config.h:20