49#ifndef GUM_CLUSTERED_LAYER_GENERATOR_H
50#define GUM_CLUSTERED_LAYER_GENERATOR_H
71 template <
typename GUM_SCALAR >
123 std::vector< typename LayerGenerator< GUM_SCALAR >::LayerData >&
getLayer();
124 const std::vector< typename LayerGenerator< GUM_SCALAR >::LayerData >&
getLayer()
const;
132 std::vector< typename LayerGenerator< GUM_SCALAR >::LayerData >
_layers_;
141 std::vector< std::string >
a;
142 std::vector< std::string >
g;
144 std::vector< std::string >
c;
150 const std::string& type,
151 std::vector< MyData >& l);
154 const std::string& type,
155 std::vector< typename ClusteredLayerGenerator::MyData >& l);
158 const std::string& type,
159 std::vector< typename ClusteredLayerGenerator::MyData >& l,
164 const std::string& type,
165 std::vector< typename ClusteredLayerGenerator::MyData >& l,
172 std::vector< typename ClusteredLayerGenerator::MyData >& l);
175 std::vector< typename ClusteredLayerGenerator::MyData >& l);
The class for generic Hash Tables.
Size getDomainSize() const
Getters and setters.
void _generateClasses_(PRMFactory< GUM_SCALAR > &f, const std::string &type, std::vector< typename ClusteredLayerGenerator::MyData > &l)
void _generateSystem_(PRMFactory< GUM_SCALAR > &factory, std::vector< typename ClusteredLayerGenerator::MyData > &l)
ClusteredLayerGenerator & operator=(const ClusteredLayerGenerator &source)
Copy operator.
std::vector< typename LayerGenerator< GUM_SCALAR >::LayerData > & getLayer()
Getters and setters.
void _generateClassDag_(Size lvl, DAG &dag, Bijection< std::string, NodeId > &names, std::vector< typename ClusteredLayerGenerator::MyData > &l)
std::string _generateType_(PRMFactory< GUM_SCALAR > &f)
virtual ~ClusteredLayerGenerator()
Destructor.
virtual PRM< GUM_SCALAR > * generate()
Proceeds with the generation of the PRM<GUM_SCALAR>.
void _generateInterfaces_(PRMFactory< GUM_SCALAR > &f, const std::string &type, std::vector< MyData > &l)
double getClusterRatio() const
Returns the odds of a given class to be replaced by a cluster.
void setLayers(const std::vector< typename LayerGenerator< GUM_SCALAR >::LayerData > &v)
Defines the structure of each layers.
void setClusterRatio(double ratio)
Define the odds of a given class to be replaced by a cluster.
void _generateClass_(PRMFactory< GUM_SCALAR > &f, const std::string &type, std::vector< typename ClusteredLayerGenerator::MyData > &l, Size lvl, Set< std::string > &i)
std::vector< typename LayerGenerator< GUM_SCALAR >::LayerData > _layers_
HashTable< std::string, std::vector< std::string > * > _cluster_map_
Size getMaxParents() const
Returns the max number of parents allowed for any attribute or aggregator.
ClusteredLayerGenerator()
Default constructor.
void _generateCluster_(PRMFactory< GUM_SCALAR > &f, const std::string &type, std::vector< typename ClusteredLayerGenerator::MyData > &l, Size lvl, Set< std::string > &i)
void setMaxParents(Size s)
Returns the max number of parents allowed for any attribute or aggregator.
void setDomainSize(Size s)
Set the domain size of generated types.
Factory which builds a PRM<GUM_SCALAR>.
PRMGenerator()
Default constructor.
This class represents a Probabilistic Relational PRMSystem<GUM_SCALAR>.
Inline implementation of ClusteredLayerGenerator.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Headers of LayerGenerator.
namespace for all probabilistic relational models entities
gum is the global namespace for all aGrUM entities
std::vector< std::string > a
std::vector< std::string > c
std::vector< std::string > g