1 #ifndef UNIFORMSAMPLING_H
2 #define UNIFORMSAMPLING_H
4 #include "../base/inputsetter.h"
5 #include "../base/algorithm.h"
6 #include "../base/solutionprovider.h"
7 #include "../datastructure/discreteproxysolution.h"
8 #include "../misc/randomness.h"
9 #include "../exception/invalidruntimeconfigurationexception.h"
24 UniformSampling(std::vector<T*>
const* data = NULL,
unsigned int numberOfSamples = 0);
40 virtual void setInput(std::vector<T*>
const*);
55 unsigned int n) : input(data), number_of_samples(n)
69 unsigned int N = this->input->size();
72 unsigned int samplenum = this->number_of_samples;
78 std::vector<T*> unchosen = *this->input;
79 solution->
proxysets.push_back(std::vector<T*>());
81 for(
unsigned int i=0; i<samplenum; i++)
84 std::uniform_int_distribution<int> dis(0, N-i-1);
87 solution->
proxysets[0].push_back(unchosen[index]);
88 unchosen.erase(unchosen.begin()+index);
93 std::clog <<
"CluE::UniformSampling<T>::compute() - finished" << std::endl;
104 this->number_of_samples = n;
Encapsulates an STL random generator.
Data structure for discrete proxies.
std::vector< std::vector< T * > > proxysets
static RandomGenerator getRandomGenerator()
Abstract base class for algorithms.
Indicates that a computation entered an invalid configuration state.