# Constraints for groups of design variables

## Recommended Posts

Hello,

I'm searching for an easy way to implement the following constraint for a group of design variables in an optimization study within the Hyperstudy interface.

Let's assume we have the variables A, B, and C wich should be varied within the following ranges:

A: Lower Bound: 0, Upper Bound: 1, Initial Value: 0.33

B: Lower Bound: 0, Upper Bound: 1, Initial Value: 0.33

C: Lower Bound: 0, Upper Bound: 1, Initial Value: 0.33

Whereas the general constraint A+B+C<=1 musn't be violated.

My approach using the function "Link Variables" did not lead to an appropriate result.

I would like to avoid a redefinition of the parameters within the solver input file (i.e. by A = A/(A+B+C), in consideration of the explicit assignment between the parameters defined by Hyperstudy and the "real" parameters used within the solver.

Does anybody know of an convenient way to implement the constraints as described?

Cheers,

Felix

##### Share on other sites

HST is structured so that all the unlinked design variables are truly independent, so there is no direct way to enforce an a prior constraint like this in HST today.Try adding constraints on dvs (by passing them as responses).But That would still result in wasted runs.This  comment is for Linking DVs.

We don’t have any setup today that allows to enforce this type of condition.  Our setup is dependent on their being indpenendent variables.

However, in the past we have accomplished the same thing by introducing a dummy variable which is a percentage (from 0 to 1) and is used to enforce the condition.

For example, consider a condition that x + y < 10.

X = normal DV in range [0,10]

Z = dummy variable in range [0,1]

Y = (10-x)*z

See the attached scatter plot from a HST of a Hammersley DOE of this space, you can see the shape of the space matches your required space.  This setup has some less than ideal characteristics when you do optimization because the variables are not independent.  The optimization will still work, but the convergence may take longer.  I attached an example archive of this setup for your review.

Another option, which you pointed out below is to just the optimizer and tell it ignore failed runs.  You mentioned this below, and rightly pointed out that GRSM will not use the maximum number of runs.   But this is easily worked around by just increasing the number of runs.  Set it high (1000) and just kill it when you are satisfied with its number of runs.

I hope one of these two suggestions helps,

Study_1.hstx

##### Share on other sites

Hello Rahul,

I forgot mentioning that i am of course using a GRSM since we have to expect several local minima.

Thank you for alluding to this implication.

Your approach using dummy variables helped to increase the efficiency of the optimization, although it is not exactly what i was hoping to find.

Cheers,

Felix

##### Share on other sites

Hi Rahul,

I have a variable (var_21) linked to multiple variables (B, C, D). Variables B,C & D are independent and Optimizer will vary them.

But I need to give a constraint to variable var_21. I tried adding Constraints in the "Define Input Variables" section, But HS is throwing an error saying

"581 Error  : Failed evaluating ( var_21 ) which is the ( Left Expression ) of the constraint ( con_1 ) the error was: ( Use of linked variable ( var_21 ) is invalid in a constraint expression. )"

Can you suggest me some ways to do this?

Sri

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.