All Collections
Hexawise Features
Constraints
Understanding which type of Constraint is appropriate
Understanding which type of Constraint is appropriate

Tips for how to decide which type of constraint to use in a given scenario.

Conor Wolford avatar
Written by Conor Wolford
Updated over a week ago

This training file will explain when a situation looks like it could use a constraint, as well as help determine which constraint is right for your model.

Invalid Constraint

Whenever you generate a model, ask yourself if two values absolutely cannot appear together. These two would form an impossible-to-exist combination of values. Let's look at an example below.

With these inputs in mind, an invalid pair would be perfect to prevent  'Add Hotel Reservation = Add hotel' and 'Type of Hotel = N/A (skip - no hotel reservation)' from appearing together as seen below when viewing the Constraints screen.

Another method is to generate many invalid constraints to make sure that a value won't appear with many other values of a parameter. Let's use the same model.

It doesn't make sense if 'Add a Hotel = Do not add a hotel' ever paired with 'Type of Hotel = 3-Star.' As a matter of fact, would it make sense for 'Add a Hotel = Do not add a hotel' to be paired with anything from the 'Type of Hotel' parameter? Only one value makes sense - 'Type of Hotel = N/A (skip - no hotel reservation).' Let's invalidate all of the hotels from pairing with 'Add a Hotel = Do not add a hotel.'

If you have a large number of invalid constraints and one particular value is included again and again in those invalid constraints, it might be a better idea to use a bound constraint or mutually bound constraint instead of using the invalid constraint feature multiple times.

Bound Constraint

Considering these inputs, 'Shipping Option = Next Day' should only pair with 'Destination = Domestic' and not 'Destination = International' (although that would be an incredible feat in reality). In other words, you can only ship for the next day if the destination is domestic. 'Destination = Domestic' can still have 'Shipping Option = Within 1 week' and 'Shipping Option = Within 2 weeks.'

As you can see to the left side of the image, 'Shipping Option = Next Day' will only pair with 'Destination = Domestic' when considering these two parameters. The values 'Shipping Option = Within 1 week' and 'Shipping Option = Within 2 weeks' are still able to pair with 'Destination = Domestic' as normal.

Mutually Bound Constraint

This constraint makes it so two values may only ever appear together.

A mutually bound constraint is in some ways simpler to think about than a "regular" bound constraint type. Values in this type of constraint may only appear together. In the example above, 'Book Format = Digital’ will only every appear with 'Delivery Option = Email (Digital)' and vice-versa. That means:

  • 'Book Format = Digital’ will never appear in the same test with....'Delivery Option = Next Day,' nor 'Delivery Option = 2-3 Day.'

  • Similarly, 'Delivery Option = Email (Digital)' will never appear in a test with 'Book Format = Physical.’

Did this answer your question?