BookmarkSubscribeRSS Feed

Disallowed Combinations Script with conditional statements


Community Trekker


Jul 13, 2015

I am using the Space Filling Desing Platform to run a Fast Flexible Filling Design.  I would like to add a disallowed combination script where if a level for one variable equals a certain value, then a separate column is limited to a specific value.  I have the following script, but the script is not working.  I have tried:  F1 == 1 & F11 > 0 | F2 == 1 & F12 > 0, but then this removes all cases of F1 or F2 = 1 since F11 or F12 never actually equal 0 even though for the computer simulation these variables (F11 and F12) can be 0.  I can "fudge" it by having F11 and F12 range from -1 to 5, and then add disallowed combinations for F1 & F2 = 2 or 3 to have a negative F11 or F12.  This will limit negative values only showing up for F11 and F12 when F1 or F2 = 1, such that we will program the software to be 0 rather than negative, but this solution seems less elegant.  Is there a way to specify the disallowed combinations such that if F1|F2 == 1 then F11F12 = 0? 

crt = DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Categorical, {"1", "2", "3"}, "F1"),
Add Factor( Categorical, {"1", "2", "3"}, "F2"),
Add Factor( Continuous, 0, 75, "F3", 0 ),
Add Factor( Continuous, 0, 75, "F4", 0 ),
Add Factor( Continuous, 0, 0.25, "F5", 0 ),
Add Factor( Continuous, 0, 0.25, "F6", 0 ),
Add Factor( Continuous, 3, 5, "F7", 0 ),
Add Factor( Continuous, 6, 10, "F8", 0 ),
Add Factor( Continuous, 0, 1.8, "F9", 0 ),
Add Factor( Continuous, 0, 1.8, "F10", 0 ),
Add Factor( Continuous, 0, 5, "F11", 0 ),
Add Factor( Continuous, 0, 5, "F12", 0 ),
Add Factor( Continuous, 800, 1200, "F13", 0 ),
Set Random Seed( 2062716779 ),
Disallowed Combinations(
If(F1==1,F11= 0) | if(F2==1,F12=0)
), FFF Optimality Criterion( MaxPro ),
Space Filling Design Type( Fast Flexible Filling, 130 ),
Set Run Order( Randomize )}
dtcur = crt << Make table;
dtcur << delete columns("x1","x2");

Community Trekker


Sep 13, 2014

Hi jshaw04. I think you cannot do what you seek to do using disallowed combinations. My reasoning is that it is assumed, disallowed combos or not, that all factors will be varied, but perhaps curtailed in some way. By stipulating that some factors will not be varied, you establish the following scenarios:

* If F1=1, F11 is not a factor (not varied).

* If F2=1, F12 is not a factor.

* If F2=1 and F2=1, use Factors F1 to F10, and F13

* If F1 !=1 and F2!=1 use Factors F1 to F13.


A possible approach, assuming I'm correct, is to create four designs and combine them. Another approach is to post-process the design settings and set F11 or F12 to zero based on F1 or F2. I'd probably take the last approach and just check that everything is OK in Design Evaluation.

Of course if I'm incorrect, I guess I'll learn something with you. :)



Nov 1, 2013

Hi jshaw04,


Your best bet may be to simply create the design without the disallowed combination, and manually change the values to 0 where needed. You still get all the space-filling properties with the other factors.


In regards to your idea about fudging it with the negative value, you can use that if you want to play with the proporiton of how often F1 == 1. That is if you play with how negative the lower value is for F11, the distribution of F1 will change if you use something like this in the disallowed combination (similarly for F2/F12):
(F1 == 2 | F1 == 3) & F11 < 0 | F1 == 1 & F11 > 0


Hope that helps,