getBlocks {bayesImageS} | R Documentation |
Obtain blocks of vertices of a 1D, 2D, or 3D graph, in order to use the conditional independence to speed up the simulation (chequerboard idea).
getBlocks(mask, nblock)
mask |
a vector, matrix, or 3D array specifying vertices of a graph. Vertices of value 1 are within the graph and 0 are not. |
nblock |
a scalar specifying the number of blocks. For a 2D graph |
The vertices within each block are mutually independent given the vertices in other blocks. Some blocks could be empty.
A list with the number of components equal to nblock
. Each component consists of vertices within the same block.
Wilkinson, D. J. (2005) "Parallel Bayesian Computation" Handbook of Parallel Computing and Statistics, pp. 481-512 Marcel Dekker/CRC Press
#Example 1: split a line into 2 blocks getBlocks(mask=c(1,1,1,1,0,0,1,1,0), nblock=2) #Example 2: split a 4*4 2D graph into 4 blocks in order # to use the chequerboard idea for a neighbourhood structure # corresponding to the second-order Markov random field. getBlocks(mask=matrix(1, nrow=4, ncol=4), nblock=4) #Example 3: split a 3*3*3 3D graph into 8 blocks # in order to use the chequerboard idea for a neighbourhood # structure based on the 18 neighbors definition, where the # neighbors of a vertex comprise its available # adjacencies sharing the same edges or faces. mask <- array(1, dim=rep(3,3)) getBlocks(mask, nblock=8)