Box-Behnken Experimental Design Algorithm


Box-Behnken is a 3 level design algorithm with low, middle and high values (-1,0,+1) for each uncertainty variable. It is aimed at fitting second order objective functionequations (response surfaces). 

Box-Behnken is also known as a balanced incomplete block design. In each block a certain number of the
uncertainty variables are put through a full factorial combination of their low and high values (2**nvar)
while the remaining variables are kept at their middle value.

For example with 3 uncertainty variables a,b and c we can have 3 blocks.

In the first block, variable a is set to its zero value while the values of variables b and c are paired
together in a 2**2 factorial using -1 and +1 values. In the second block we set variable b to zero and
iterate over variables a and c and in the third block we set variable c to zero and iterate over a and b.
Having done this we then add a final central run with all variables set to their zero or middle value.
The design for 3 variables thus looks like..

 a  b  c
 0 -1 -1
 0 +1 -1
 0 -1 +1
 0 +1 +1
-1  0 -1
+1  0 -1
-1  0 +1
+1  0 +1
-1 -1  0
+1 -1  0
-1 +1  0
+1 +1  0
 0  0  0

If we have a larger number of uncertainty variables (more than 5) and only block one variable at a time then
we can end up with a large number of simulation decks generated that may not be practical to run. The
number will still be a lot less than a full factorial but if our simulation run times are measured in days
rather than hours we may need to reduce the number of generated decks still further. We can do this by
blocking more than one variable at a time, i.e. fixing 2 or 3 variables to their zero value while we factorially

iterate over the -1,+1 values of the remaining variables