Hi @Mark_Bailey and @SDF1 , thank you so much for your input. I have listed below my on-going design in the script.
Basically what I am looking into is to create a set of runs that will need to be actually executed in individual "container" (hence the categorical factor - "container", I currently set it at 6. L1,...,L6)). The maximal runs for each "container" at the time is 7 or below, and I would like to keep that number consistent across all "containers" .
The other factors include a constant present ingredient A; two mutually exclusive ingredient B and C which has its own range (with an additional categorical factor to define the presence of B or C); two other ingredients D or E. There are some constraints mostly set around to define the different range of B and C, as well as the range change on A when B or C does/doesn't present.
Thanks again for looking into this.
M
DOE(
Custom Design,
{Add Response( Maximize, "Response ", ., ., . ),
Add Factor( Continuous, 0.005, 0.03, "A", 0 ),
Add Factor( Continuous, 0, 0.03, "BorC", 0 ),
Add Factor( Continuous, -1, 1, "D", 0 ), Add Factor( Continuous, -1, 1, "E", 0 ),
Add Factor( Categorical, {"B", "C"}, "ingredient BorC", 0 ),
Add Factor( Categorical, {"L1", "L2", "L3", "L4", "L5", "L6"}, "container", 0 ),
Set Random Seed( 802458459 ), Number of Starts( 2 ), Add Term( {1, 0} ),
Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ), Add Term( {4, 1} ),
Add Term( {5, 1} ), Add Term( {6, 1} ), Add Term( {1, 1}, {2, 1} ),
Add Term( {1, 1}, {3, 1} ), Add Term( {1, 1}, {4, 1} ),
Add Term( {1, 1}, {5, 1} ), Add Term( {2, 1}, {3, 1} ),
Add Term( {2, 1}, {4, 1} ), Add Term( {2, 1}, {5, 1} ),
Add Term( {3, 1}, {4, 1} ), Add Term( {3, 1}, {5, 1} ),
Add Term( {4, 1}, {5, 1} ), Add Term( {1, 2} ), Add Term( {2, 2} ),
Add Term( {3, 2} ), Add Term( {4, 2} ), Add Alias Term( {1, 1}, {6, 1} ),
Add Alias Term( {2, 1}, {6, 1} ), Add Alias Term( {3, 1}, {6, 1} ),
Add Alias Term( {4, 1}, {6, 1} ), Add Alias Term( {5, 1}, {6, 1} ),
Replicates( 1 ), Set Sample Size( 36 ),
Disallowed Combinations(
ingredient == "B" & (BorC >= 0.02 & BorC <= 0.03) | BorC == 0 & (A >= 0 & A
<= 0.015)
), Simulate Responses( 0 ), Save X Matrix( 0 ), Set Run Order( Keep the Same ),
Make Table}
);