cibd: Program for Constructing Cyclic Incomplete Block Designs

  1. Introduction
  2. Using cibd
  3. Output
  4. Examples
  5. References


Cyclic incomplete block designs (IBDs) are IBDs generated by the cyclic development of one or more suitably chosen initial blocks. Cyclic IBDs accounts for a large number of balanced IBDs or BIBDs in Fisher & Yates (1963) and Rao (1961). They also provide efficient alternatives to many partially balanced IBDs, or PBIBDs, catalogued in Clatworthy (1973). Chapter 3 of John & Williams (1995) gives an excellent summary of cyclic designs. In this note this book is abbreviated as JW. When the number of replications r is equal to or is a multiple of the block size k, cyclic IBDs render automatic elimination of heterogeneity in two directions (see Section 5.7 of JW). Being an important class of IBD, cyclic IBDs have been extensively catalogued by John et al. (1972).

cibd is a Gendex module for generating optimal or near-optimal cyclic IBDs. cibd can handle up to 10,000 treatments. Designs constructed by cibd can be used as column components of row-column designs (see Nguyen 1997). cibd uses a 2-stage optimization process. Each stage of the optimization process uses an algorithm similar to the cyclic-coordinate exchange algorithm described in Nguyen (2002). The detailed account of the cibd algorithm will be given elsewhere.

Using cibd

Let's assume all Gendex class files are in the directory c:\gendex and suppose you want to construct a cyclic IBD of size (v,k,r)=(6,2,4). At the working directory, issue the following command at the Command Prompt (case is important no space is allowed before and after the equal sign):

java -cp c:\gendex cibd v=6  k=2  r=4

The following window will pop up:

You encounter this question when the number of replications r is equal to or is a multiple of the block size k. The order of blocks generated by the same initial block and the order of treatments within blocks are always randomized. Answering Yes to this question if you do not want to randomize the treatments within blocks (you want to construct a Youden square type design). Now click Yes, cibd will start running and after try 1, the plan of the constructed design will be displayed in the terminal window (as the ratio E/U reaches 1) and cibd stops:

cibd 10.0: Program for Constructing cyclic IBDs of size (v,k,r)
(c) 2018 Design Computing (

Note: Best cyclic IBD for v=6, k=2, r=4, b=12

Try	iter	E	E/U	Concurrences
1	0	0.577	1	0(1) 1(4) 

Initial block(s) and the no. of blocks generated by each initial block for try 1 using seed 1533469494717:

0	2	 (6)
0	5	 (6)

Plan (blocks are columns):

2	5	1	4	0	3	
4	1	3	0	2	5	

4	5	3	0	1	2	
3	4	2	5	0	1	

Note: The order of treatments within each block is not randomized.
Note: cibd used 3.616 seconds.
Note: cibd.htm has been created.

Note that the default random seed is the one obtained from the system clock and the default number of tries is 1000. You can change these default values by specifying the seed number and the number of tries, e.g.

java -cp c:\gendex cibd v=6  k=2  r=4 seed=1234 tries=1000


The result of the best try is displayed at the terminal window and is also saved in the file cibd.htm in the working directory. This file can be read by a browser such as IE or Google Chrome. Information for this try includes:

  1. Try number;
  2. The number of iterations;
  3. E, the efficiency factor of this design;
  4. The ratio E/U where U is the upper bound of an IBD. U=UJ where UJ is the bound of Jarrett (1989) good for any regular graph design (RGD). An RGD is an IBD with concurrences differing by at most 1. The program automatically stops if this ratio reaches 1.
  5. The distribution of the concurrences of this design;
  6. The design plan and the associated initial block(s) and random seed. If you want to print block as rows, please specify the option -r on the command line.
  7. The time in seconds cibd used to construct this design;


  1. A cyclic IBD of size (v,k,r)=(7,3,15) (
  2. A cyclic IBD of size (v,k,r)=(8,4,35) (
  3. A cyclic IBD of size (v,k,r)=(11,4,4) (
  4. A cyclic IBD of size (v,k,r)=(8,4,6) (
  5. A cyclic IBD of size (v,k,r)=(12,4,6) (
  6. A cyclic IBD of size (v,k,r)=(12,4,8) (
  7. A cyclic IBD of size (v,k,r)=(15,4,4) (
  8. A cyclic IBD of size (v,k,r)=(91,10,10) (
  9. A cyclic IBD of size (v,k,r)=(133,12,12) (
  10. A cyclic IBD of size (v,k,r)=(183,14,14) (
  11. A cyclic IBD of size (v,k,r)=(43,7,14) (
  12. A cyclic IBD of size (v,k,r)=(61,5,15) (



Clatworthy, W.H. (1973) Tables of two-associates- class partially balanced designs. Applied. Math. Ser. 63. National Bureau of Standards, Washington.
Fisher, R.A. & Yates, F. (1963) Statistical tables for biological, agricultural and medical research. London: Oliver & Boyd.
Jarrett, R.G. (1989). A review of bounds for the efficiency factor of block designs. Austral. J. Statist. 31, 118-129.
John, J.A. & Williams E.R. (1995) Cyclic designs and computer-generated designs. New York: Chapman & Hall.
John, J.A., Wolock, F.W. & David, H.A. (1972) Cyclic Designs. Applied. Math. Ser. 62. National Bureau of Standards, Washington.
Nguyen, N-K (2001) A modified cyclic-coordinate exchange algorithm as illustrated by the construction of minimum-point second-order designs. Advances in Statistics, Combinatorics and Related Areas. Edited by C. Gulati, Y-X Lin, S. Mishra, J. Rayner. World Scientific Publishing Co. Pte. Ltd., 205-210.
Nguyen, N-K. and Williams, E.R. (1993) An algorithm for constructing optimal resolvable row-column designs. Austral. J. Statist. 35, 363-370.
Patterson, H.D. & Williams, E.R. (1976a) A new class of resolvable incomplete block designs. Biometrika 63, 83-92.
Patterson, H.D. & Williams, E.R. (1976b) Some theoretical results on general block designs. In Proceedings of the 5th British Combinatorial Conference. Congressus Numeratium XV, 489-496, Utilitas Mathematica, Winnipeg.
Rao, C.R. (1961) A study of BIB design with replication 11 to 15. Sankhya A 23, 117-127.

©2000-2018 Design Computing