getBlocks

0th

Percentile

Get Blocks of a Graph

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).

Keywords
spatial
Arguments

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 nblock could be either 2 or 4, and for a 3D graph nblock could be either 2 or 8.

Details

The vertices within each block are mutually independent given the vertices in other blocks. Some blocks could be empty.

Value

A list with the number of components equal to nblock. Each component consists of vertices within the same block.

References

Wilkinson, D. J. (2005) "Parallel Bayesian Computation" Handbook of Parallel Computing and Statistics, pp. 481-512 Marcel Dekker/CRC Press

• getBlocks
Examples
# NOT RUN {
#Example 1: split a line into 2 blocks

#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))