VieSched++
VieVS VLBI Scheduling Software
VieVS::MultiScheduling Class Reference

representation of VLBI multi scheduling tool More...

#include <MultiScheduling.h>

Inheritance diagram for VieVS::MultiScheduling:
Collaboration diagram for VieVS::MultiScheduling:

Classes

struct  Parameters
 possible multi scheduling parameters More...
 

Public Member Functions

 MultiScheduling (std::unordered_map< std::string, std::vector< std::string >> sta_group, std::unordered_map< std::string, std::vector< std::string >> src_group, std::unordered_map< std::string, std::vector< std::string >> bls_group)
 constructor More...
 
void setStart (const std::vector< boost::posix_time::ptime > &start)
 set session start times More...
 
void addParameters (const std::string &name)
 add new boolean parameter More...
 
void addParameters (const std::string &name, const std::vector< double > &values)
 add new value based parameter More...
 
void addParameters (const std::string &name, const std::string &member, const std::vector< double > &values)
 add new value and member based parameter More...
 
std::vector< ParameterscreateMultiScheduleParameters (unsigned int maxNr)
 create vector of all possible multi scheduling parameter combinations More...
 
boost::property_tree::ptree createPropertyTree () const
 create property tree used for parameter.xml file More...
 
- Public Member Functions inherited from VieVS::VieVS_Object
 VieVS_Object (unsigned long id)
 constructor More...
 
const unsigned long getId () const
 get object id More...
 
bool hasValidId () const
 check if id is valid More...
 
bool hasId (unsigned long id) const
 check if object has specific id More...
 
void setId (unsigned long id)
 set object id More...
 
std::string printId () const
 object id string More...
 

Static Public Member Functions

static void setConstants (unsigned long nsta, unsigned long nsrc)
 constructor More...
 
static std::vector< Parametersevolution_step (int gen, const std::vector< Parameters > &old_pop, const std::map< int, double > &scores, const boost::property_tree::ptree &tree)
 generate new population of multi-scheduling parameters More...
 
static void setSeed (unsigned int seed)
 set seed for RNG generator More...
 
static void pick_random_values (bool flag)
 set pick random values More...
 

Private Member Functions

void addParameter (std::vector< Parameters > &allPara, unsigned long &n_before, const std::string &name, bool pick_random=false)
 add boolean parameters More...
 
void addParameter (std::vector< Parameters > &allPara, unsigned long &n_before, const std::string &name, const std::vector< double > &value, bool pick_random=false)
 add value based parameters More...
 
void addParameter (std::vector< Parameters > &allPara, unsigned long &n_before, const std::string &name, const std::string &member, const std::vector< double > &value, bool pick_random=false)
 add value and member based parameters More...
 
std::vector< ParameterscreateMultiScheduleParameters_gridwise (unsigned int maxNr)
 create vector of all possible multi scheduling parameter combinations (gridwise selection) More...
 
std::vector< ParameterscreateMultiScheduleParameters_random (unsigned int maxNr)
 create vector of all possible multi scheduling parameter combinations (random selection) More...
 

Static Private Member Functions

template<typename T >
static std::vector< T > collect (T Parameters::*f, std::vector< Parameters > const &v)
 collecs all entries of a fiven field of a vector of parameters More...
 

Private Attributes

std::unordered_map< std::string, std::vector< std::string > > stationGroups_
 used station groups More...
 
std::unordered_map< std::string, std::vector< std::string > > sourceGroups_
 used source groups More...
 
std::unordered_map< std::string, std::vector< std::string > > baselineGroups_
 used baseline groups More...
 
std::vector< boost::posix_time::ptime > start_
 start times More...
 
std::vector< std::string > singleArgumentLogical
 boolean parameters More...
 
std::vector< std::pair< std::string, std::vector< double > > > singleArgumentNumeric
 value based parameters More...
 
std::vector< std::pair< std::string, std::pair< std::string, std::vector< double > > > > doubleArgumentNumeric
 value and member based parameters More...
 

Static Private Attributes

static unsigned long nextId = 0
 next id More...
 
static std::default_random_engine random_engine_ = std::default_random_engine()
 random number generator engine More...
 
static bool pick_random = false
 
static unsigned long nsta_ = 0
 
static unsigned long nsrc_ = 0
 

Detailed Description

representation of VLBI multi scheduling tool

Author
Matthias Schartner
Date
03.09.2017

Constructor & Destructor Documentation

MultiScheduling::MultiScheduling ( std::unordered_map< std::string, std::vector< std::string >>  sta_group,
std::unordered_map< std::string, std::vector< std::string >>  src_group,
std::unordered_map< std::string, std::vector< std::string >>  bls_group 
)

constructor

Author
Matthias Schartner
Parameters
sta_groupstation groups
src_groupsource groups
bls_groupbaseline groups

Here is the caller graph for this function:

Member Function Documentation

void VieVS::MultiScheduling::addParameter ( std::vector< Parameters > &  allPara,
unsigned long &  n_before,
const std::string &  name,
bool  pick_random = false 
)
private

add boolean parameters

Author
Matthias Schartner
Parameters
allParalist of all parameters
n_beforenumber of blocks
nameparameter name
pick_randomenable random values of multi-scheduling parameters

Here is the caller graph for this function:

void VieVS::MultiScheduling::addParameter ( std::vector< Parameters > &  allPara,
unsigned long &  n_before,
const std::string &  name,
const std::vector< double > &  value,
bool  pick_random = false 
)
private

add value based parameters

Author
Matthias Schartner
Parameters
allParalist of all parameters
n_beforenumber of blocks
nameparameter name
valuenumber of values
pick_randomenable random values of multi-scheduling parameters
void VieVS::MultiScheduling::addParameter ( std::vector< Parameters > &  allPara,
unsigned long &  n_before,
const std::string &  name,
const std::string &  member,
const std::vector< double > &  value,
bool  pick_random = false 
)
private

add value and member based parameters

Author
Matthias Schartner
Parameters
allParalist of all parameters
n_beforenumber of blocks
nameparameter name
membermember name
valuenumber of values
pick_randomenable random values of multi-scheduling parameters
void MultiScheduling::addParameters ( const std::string &  name)

add new boolean parameter

Author
Matthias Schartner
Parameters
nameparameter name

Here is the caller graph for this function:

void MultiScheduling::addParameters ( const std::string &  name,
const std::vector< double > &  values 
)

add new value based parameter

Author
Matthias Schartner
Parameters
nameparameter name
valuesparameter values
void MultiScheduling::addParameters ( const std::string &  name,
const std::string &  member,
const std::vector< double > &  values 
)

add new value and member based parameter

Author
Matthias Schartner
Parameters
nameparameter name
memberparameter member
valuesparameter values
template<typename T >
static std::vector<T> VieVS::MultiScheduling::collect ( T Parameters::*  f,
std::vector< Parameters > const &  v 
)
inlinestaticprivate

collecs all entries of a fiven field of a vector of parameters

Author
Matthias Schartner
Template Parameters
Ttype
Parameters
ffield
vvector of parameters
Returns
vector of field entries (type T)

Here is the call graph for this function:

Here is the caller graph for this function:

std::vector< MultiScheduling::Parameters > MultiScheduling::createMultiScheduleParameters ( unsigned int  maxNr)

create vector of all possible multi scheduling parameter combinations

Author
Matthias Schartner
Parameters
maxNrmaximum number of parameters
Returns
all possible multi scheduling parameter combinations

Here is the call graph for this function:

Here is the caller graph for this function:

std::vector< MultiScheduling::Parameters > MultiScheduling::createMultiScheduleParameters_gridwise ( unsigned int  maxNr)
private

create vector of all possible multi scheduling parameter combinations (gridwise selection)

Author
Matthias Schartner
Parameters
maxNrmaximum number of parameters
Returns
all possible multi scheduling parameter combinations

Here is the call graph for this function:

Here is the caller graph for this function:

std::vector< MultiScheduling::Parameters > MultiScheduling::createMultiScheduleParameters_random ( unsigned int  maxNr)
private

create vector of all possible multi scheduling parameter combinations (random selection)

Author
Matthias Schartner
Parameters
maxNrmaximum number of parameters
Returns
all possible multi scheduling parameter combinations

Here is the call graph for this function:

Here is the caller graph for this function:

boost::property_tree::ptree MultiScheduling::createPropertyTree ( ) const

create property tree used for parameter.xml file

Author
Matthias Schartner
Returns
property tree for multiSched block

Here is the caller graph for this function:

vector< MultiScheduling::Parameters > MultiScheduling::evolution_step ( int  gen,
const std::vector< Parameters > &  old_pop,
const std::map< int, double > &  scores,
const boost::property_tree::ptree &  tree 
)
static

generate new population of multi-scheduling parameters

Author
Matthias Schartner
Parameters
gengeneration number
old_popold populatoin of parameters
scoresscore of each parameter
treexml property tree
Returns
new population of parameters

Here is the caller graph for this function:

static void VieVS::MultiScheduling::pick_random_values ( bool  flag)
inlinestatic

set pick random values

Author
Matthias Schartner
Parameters
flagflag

Here is the caller graph for this function:

static void VieVS::MultiScheduling::setConstants ( unsigned long  nsta,
unsigned long  nsrc 
)
inlinestatic

constructor

Author
Matthias Schartner
Parameters
nstanumber of stations
nsrcnumber of sources

Here is the caller graph for this function:

static void VieVS::MultiScheduling::setSeed ( unsigned int  seed)
inlinestatic

set seed for RNG generator

Author
Matthias Schartner
Parameters
seedseed

Here is the caller graph for this function:

void VieVS::MultiScheduling::setStart ( const std::vector< boost::posix_time::ptime > &  start)
inline

set session start times

Author
Matthias Schartner
Parameters
startsession start times

Here is the call graph for this function:

Member Data Documentation

std::unordered_map<std::string, std::vector<std::string> > VieVS::MultiScheduling::baselineGroups_
private

used baseline groups

std::vector<std::pair<std::string, std::pair<std::string, std::vector<double> > > > VieVS::MultiScheduling::doubleArgumentNumeric
private

value and member based parameters

unsigned long MultiScheduling::nextId = 0
staticprivate

next id

unsigned long MultiScheduling::nsrc_ = 0
staticprivate
unsigned long MultiScheduling::nsta_ = 0
staticprivate
bool MultiScheduling::pick_random = false
staticprivate
std::default_random_engine MultiScheduling::random_engine_ = std::default_random_engine()
staticprivate

random number generator engine

std::vector<std::string> VieVS::MultiScheduling::singleArgumentLogical
private

boolean parameters

std::vector<std::pair<std::string, std::vector<double> > > VieVS::MultiScheduling::singleArgumentNumeric
private

value based parameters

std::unordered_map<std::string, std::vector<std::string> > VieVS::MultiScheduling::sourceGroups_
private

used source groups

std::vector<boost::posix_time::ptime> VieVS::MultiScheduling::start_
private

start times

std::unordered_map<std::string, std::vector<std::string> > VieVS::MultiScheduling::stationGroups_
private

used station groups


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