INGOR
|
Working structure for the NNSR algorithm. More...
Public Attributes | |
MPI_Comm | comm |
MPI commnuicator to work together. | |
int | rank |
MPI rank ID. This is copied from Args. | |
int | procs |
total number of MPI processes (MPI size), copied from Args. | |
int | p |
total number of variables copied from Args. | |
int | selfLoop |
true for enabling self loops, copied from Args. | |
ytRNG * | rng |
ytRNG instance copied from Args. | |
int | moduleSize |
module (subnetwork) size. | |
int | subNodes |
The number of variables (nodes) stored and managed by this process. | |
int | subNodesMax |
The max size of the split sub nodes. | |
int * | nodeSetBuff |
Node set buffer for sub network estimation. | |
int * | subGraph |
Adjacent matrix for the sub graph. | |
int | mrows |
The number of rows in the sub graph matrix subGraph. | |
int * | cntGraph |
Count graph that maintains the co-occurrences of variables. | |
int | iterations |
The number of subnetwork estimation. | |
int | exchangeInterval |
Interval between exchaning the sub graphs and updating the global structure. | |
ytPCGraph ** | subG |
Pointers to the estimated sub graphs. | |
int | BNRCOtoLv |
BNRC score precalculation level for one-to-one calculation. | |
int | BNRCLv |
BNRC score precalculation level for subnetwork estimation. | |
ytKeyValues * | algoArgs |
Arguments for the sub network estimation algorithm. | |
int | algoVerbose |
Verbose level for the sub network estimation algorithm. | |
int | scoreVerbose |
Verbose level for the score function. | |
int | maxParents |
Maximum parants in sub network estimation. | |
int | bsCheck |
true for checking the consistency of the secondary ID lengths. | |
ytArray * | bsListSet |
List set for the list bootstrap mode. | |
double * | oto |
One-to-one matrix (p-length column major matrix). | |
double | otoExponent |
One-to-one exponent coefficient. | |
int | otoInterval |
One-to-one interval. -1 for disable, 0 for only once, and > 0 for 1-to-1 score interval. | |
double | randomWalkRatio |
Node number ratio to the module size for node sampling by random walk. | |
int | randomWalkLimit |
Loop limit for random walk. | |
int | randomWalkResetPosition |
1 for reset the start position. | |
ytIntArray * | randomWalkW |
Work area for random walk 1. | |
ytDoubleArray * | randomWalkP |
Work area for random walk 2. | |
double | randomWalkThreshold |
Threshold for exchanging the global network for random walk. | |
double | outputThreshold |
Threshold for the final structure. | |
int | minCount |
Minimum number of the edge count for exchanging edges. | |
ytIntArray * | sendBuff |
Sending buffer for MPI. | |
ytDoubleArray * | sendFreqBuff |
Sending buffer for MPI. | |
int * | sizeBuff |
procs -size vector | |
int * | sendDispls |
Sending displacement for MPI. | |
int * | recvCounts |
Receive count buffer for MPI. | |
ytIntArray * | recvBuff |
Receiving buffer for MPI. | |
int * | recvDispls |
Receiving displacement for MPI. | |
ytDoubleArray * | recvFreqBuff |
Receiving buffer for MPI. | |
ytPCGraph * | g |
Global network structure. | |
ytDoubleArray * | gPaFreq |
Frequencies of edges in g . | |
ytDoubleArray * | gChFreq |
Frequencies of edges in g . | |
NNSRNodeRank * | nodeRanks |
Buffer for sorting nodes and their ranks. | |
ytIntArray * | chBuff |
Working are for exchanging the global structure. | |
ytDoubleArray * | chFreqBuff |
Working are for exchanging the global structure. | |
char * | outputGraphFile |
File name prefix to output each estimated subnetwork. | |
FILE * | outputGraphFP |
File pointer to output each estimated subnetwork. | |
ytData * | fullData |
the original full dataset. | |
ytGraph * | fullConstrain |
the original constrain graph | |
int | verbose |
verbose level. 0 for the base level. | |
char * | nodeSetFile |
FILE * | nodeSetFP |
char * | graphFile |
FILE * | graphFP |
int* NNSRWork::cntGraph |
Count graph that maintains the co-occurrences of variables.
cntGraph[u + i * p]
maintains the number of occurrences where two nodes u
and v
(u
≤ v
) are selected for the same sub network by the neighbor node sampling, where v = i * procs + rank
. Note that only the upper triangular region is used.
int NNSRWork::exchangeInterval |
Interval between exchaning the sub graphs and updating the global structure.
Exchainging the accumulated network and sub graphs, and updating the global structure are performed in every this number of subnetwork estimations. If -1 is set, this is automatically determined.
ytDoubleArray* NNSRWork::gChFreq |
Frequencies of edges in g
.
This is similar to gPaFreq. Instead of edges of parents, this contains edges for children.
ytDoubleArray* NNSRWork::gPaFreq |
Frequencies of edges in g
.
This is an array of ytDoubleArray instances. Thus gPaFreq + j
represents the pointer to the ytDoubleArray instance containing frequecies of edges from the j
-th node's parents.
ytRNG* NNSRWork::rng |
int* NNSRWork::subGraph |
Adjacent matrix for the sub graph.
subGraph[u + i * mrows]
represents the number of occurrences of (u
→ v
) edge estimated where u
≤ v
, v = i * procs + rank
, and mrows
is a member of NNSRWork (see mrows). (v
→ u
) edge is also managed in this matrix subGraph[uu + ii * mrows]
where uu = mrows - 1 - u
, and ii = subNodes - 1 - i
.
int NNSRWork::subNodes |
The number of variables (nodes) stored and managed by this process.
All the variables are split and assigned into the processes. The cyclic distribution is employed for this.
int NNSRWork::subNodesMax |
The max size of the split sub nodes.
The variables (nodes) are split into blocks whose size is 'subNodes' or 'subNodesMax'. Only the last ranks are responsible for the different number of variables.