Troubleshooting With Validation Errors
After every Cosmic Frog run, it’s a great habit to check the OptimizationValidationErrorReport table. Even for models that run successfully, this table can have useful information on how the input data is being processed by the solver.
Key columns in the validation error report can tell you:
- Where the error is located:
- ScenarioName
- TableName
- ColumnName
- IdentifiedValue
- Count
- What kind of error is occurring:
- ValidationRule
- ErrorType
- ErrorMessage
- Severity
- How the model is (or isn’t) handling the error:
- Action
- ValueReplaced
Validation errors that have “high” or “moderate” severity are likely to cause an infeasible model. In fact, Cosmic Frog has an “infeasibility checker” that looks for these kinds of errors and flags them before running the model to save you run time.
Example validation error
In this example, there are no transportation lanes that can deliver beds to CUST_Phoenix, so demand cannot be fulfilled. The infeasibility checker finds this and stops the model run before it even tries to optimize.
A couple of examples of how we could fix this error:
- We could add the necessary lanes to deliver to CUST_Phoenix in the TransportationPolicies table.
- We could remove/relax the CUST_Phoenix demand by setting DemandStatus = “Consider” in the CustomerDemand table.
Another Example Validation Error
The OutputValidationErrorReport table is often very useful, even if a model “successfully” runs. This table will catch potential errors that do not cause infeasibility but could change the model results. In this example, there is a typo in the CustomerDemand table for “CUST_Montgomery”. Here, the model drops that row in the demand table. This will not cause an infeasible model, as it just removes that demand constraint. However, it means that no product will be sent to this customer in our optimized result.