cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
Get the free JMP Student Edition for qualified students and instructors at degree granting institutions.
Choose Language Hide Translation Bar
View Original Published Thread

Complex DOE Constraints

NimaHojat
Level I

Hi everyone,

 

I'm working on a DOE involving four chemicals (A, B, C, and D) and need to set constraints where the components are relative to each other. Here are the specific constraints:

  • A can’t be more than 27.4% of B
  • C can’t be higher than 3% of (D + B)
  • D should be less than 25% of B
  • The total should equal 100%

Is it possible to enter these constraints in JMP? If so, how can I set this up?

Thanks in advance for your help!

1 ACCEPTED SOLUTION

Accepted Solutions
Victor_G
Super User


Re: Complex DOE Constraints

Hi @NimaHojat,

 

Welcome in the Community !

 

To better understand how to set up factors constraints like the one you want, I would highly recommend reading the great article @Jed_Campbell wrote about constraints : Demystifying Factor Constraints 

 

Concerning your specific use case and based on the limited information available, it seems you're doing a mixture design (since you are more interested about ratios/relative quantities, your total sum of the components being equal to 100% / 1). 

You can use Custom Designs to create your specific mixture design with the constraints :

  1. Specify your response and mixture factors A, B, C, D :
    Victor_G_0-1718953194519.png
  2. After clicking on "Continue", you can set up your constraints in the panel "Define Factor Constraints" and the option "Specify Linear Constraints". Your constraints can be expressed after a short transformation as :
    1. A can't be more than 27,4% of B : 
      1 * :A + -0.274 * :B <= 0
    2. C can’t be higher than 3% of (D + B) : 
      -0.03 * :B + 1 * :C + -0.03 * :d  <= 0
    3. D should be less than 25% of B :
      -0.25 * :B + 1 * :d <= 0
    4. Last constraint is already taken into account when setting this DoE as a Mixture design : A+B+C+D = 1 (100%)
      Note: Sorry, for some reasons the JSL code is not working in the JMP Community when writing ":D" for the column corresponding to factor D, so I used ":d" instead. But it is the mixture factor D, not someting else, so it should be noted ":D" if you note this factor as "D".

  3. You can set up these constraints directly in the panel, specify the assumed model (I just choose a main effect mixture model for illustration here) and choose an according number of runs for your objective (I just stayed with the default recommended number of runs here) :
    Victor_G_1-1718953672423.png

You can then create your design, and if needed you can check your constraints have been respected by creating formula in your data table corresponding to the ratios/comparison you have between your mixture factors :

Victor_G_2-1718953842819.png

 

Here is the script to reproduce the design shown here :

DOE(
	Custom Design,
	{Add Response( Maximize, "Y", ., ., . ), Add Factor( Mixture, 0, 1, "A", 0 ),
	Add Factor( Mixture, 0, 1, "B", 0 ), Add Factor( Mixture, 0, 1, "C", 0 ),
	Add Factor( Mixture, 0, 1, "D", 0 ), Set Random Seed( 1982181060 ),
	Number of Starts( 49914 ), Add Constraint(
		[1 -0.274 0 0 0, 0 -0.03 1 -0.03 0, 0 -0.25 0 1 0]
	), Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ),
	Add Term( {4, 1} ), Add Alias Term( {1, 1}, {2, 1} ),
	Add Alias Term( {1, 1}, {3, 1} ), Add Alias Term( {1, 1}, {4, 1} ),
	Add Alias Term( {2, 1}, {3, 1} ), Add Alias Term( {2, 1}, {4, 1} ),
	Add Alias Term( {3, 1}, {4, 1} ), Set Sample Size( 10 ), Simulate Responses( 0 ),
	Save X Matrix( 0 ), Make Design, Set Run Order( Randomize ), Make Table}
)

And I attach the datatable with the design used for illustration here if you're more familiar with this than JSL script.

I hope this answer will help you,

Victor GUILLER

"It is not unusual for a well-designed experiment to analyze itself" (Box, Hunter and Hunter)

View solution in original post

2 REPLIES 2
Victor_G
Super User


Re: Complex DOE Constraints

Hi @NimaHojat,

 

Welcome in the Community !

 

To better understand how to set up factors constraints like the one you want, I would highly recommend reading the great article @Jed_Campbell wrote about constraints : Demystifying Factor Constraints 

 

Concerning your specific use case and based on the limited information available, it seems you're doing a mixture design (since you are more interested about ratios/relative quantities, your total sum of the components being equal to 100% / 1). 

You can use Custom Designs to create your specific mixture design with the constraints :

  1. Specify your response and mixture factors A, B, C, D :
    Victor_G_0-1718953194519.png
  2. After clicking on "Continue", you can set up your constraints in the panel "Define Factor Constraints" and the option "Specify Linear Constraints". Your constraints can be expressed after a short transformation as :
    1. A can't be more than 27,4% of B : 
      1 * :A + -0.274 * :B <= 0
    2. C can’t be higher than 3% of (D + B) : 
      -0.03 * :B + 1 * :C + -0.03 * :d  <= 0
    3. D should be less than 25% of B :
      -0.25 * :B + 1 * :d <= 0
    4. Last constraint is already taken into account when setting this DoE as a Mixture design : A+B+C+D = 1 (100%)
      Note: Sorry, for some reasons the JSL code is not working in the JMP Community when writing ":D" for the column corresponding to factor D, so I used ":d" instead. But it is the mixture factor D, not someting else, so it should be noted ":D" if you note this factor as "D".

  3. You can set up these constraints directly in the panel, specify the assumed model (I just choose a main effect mixture model for illustration here) and choose an according number of runs for your objective (I just stayed with the default recommended number of runs here) :
    Victor_G_1-1718953672423.png

You can then create your design, and if needed you can check your constraints have been respected by creating formula in your data table corresponding to the ratios/comparison you have between your mixture factors :

Victor_G_2-1718953842819.png

 

Here is the script to reproduce the design shown here :

DOE(
	Custom Design,
	{Add Response( Maximize, "Y", ., ., . ), Add Factor( Mixture, 0, 1, "A", 0 ),
	Add Factor( Mixture, 0, 1, "B", 0 ), Add Factor( Mixture, 0, 1, "C", 0 ),
	Add Factor( Mixture, 0, 1, "D", 0 ), Set Random Seed( 1982181060 ),
	Number of Starts( 49914 ), Add Constraint(
		[1 -0.274 0 0 0, 0 -0.03 1 -0.03 0, 0 -0.25 0 1 0]
	), Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ),
	Add Term( {4, 1} ), Add Alias Term( {1, 1}, {2, 1} ),
	Add Alias Term( {1, 1}, {3, 1} ), Add Alias Term( {1, 1}, {4, 1} ),
	Add Alias Term( {2, 1}, {3, 1} ), Add Alias Term( {2, 1}, {4, 1} ),
	Add Alias Term( {3, 1}, {4, 1} ), Set Sample Size( 10 ), Simulate Responses( 0 ),
	Save X Matrix( 0 ), Make Design, Set Run Order( Randomize ), Make Table}
)

And I attach the datatable with the design used for illustration here if you're more familiar with this than JSL script.

I hope this answer will help you,

Victor GUILLER

"It is not unusual for a well-designed experiment to analyze itself" (Box, Hunter and Hunter)
NimaHojat
Level I


Re: Complex DOE Constraints

Thank you Victor, that's really useful