NDD Solve RequestSolve Request
Overview
The solve request houses the model and the action that should be performed on it. The NDD solve request supports an additional ExperimentalSolve type beyond the standard Optimise, Evaluate, and ReOptimise options.
Applicable models
- NDD
ndd-cmibu6krtqja
Endpoint
Solve Request
Schema definition
message SolveRequest {
optional Model model = 1;
optional string modelID = 2;
repeated TaskSequence routes = 3;
optional SolveType solveType = 4 [default = Optimise];
}Fields
- model
- The target model which should be solved (commonly specified). If not specified, the
modelIDfield should be provided with a valid reference to an existing model. - modelID
- A GUID which refers to a valid model which has recently been solved. Model data are stored in a hot cache for 24 hours after which they are deleted. If a
modelIDreferences a model which no longer exists, an error is returned. - routes
- An optional list of task sequences specifying predefined routes. Used in conjunction with the
modelIDand the solve typesEvaluateandReOptimise. The task sequences specified here will override any task sequences defined within the model. - solveType
- The solve type defining the target solver behaviour.
Notes
- Either a complete model or a valid
modelIDshould be specified. - Predefined routes are ignored for the
Optimisesolve type. - The typical NDD workflow involves two API calls: first an
Optimiserequest which returns a Pareto frontier of compact solutions, then anEvaluaterequest using the task sequences from a chosen frontier point to recover the full solution detail.
Solve Request Solve Type
Schema definition
enum SolveType {
Optimise = 0;
Evaluate = 1;
ReOptimise = 2;
ExperimentalSolve = 3;
}Fields
- Optimise
- Issues an
Optimiserequest which finds a set of solutions forming a Pareto frontier. The solution response will contain a collection of compact solutions representing the tradeoff between competing objectives. Provided task sequences are ignored. - Evaluate
- Issues an
Evaluaterequest which evaluates the provided task sequences against the model. Returns a single solution instance with full route detail, stops, and dimensional evaluations. This is typically used to recover the detail of a point selected from the Pareto frontier. - ReOptimise
- Issues a
ReOptimiserequest which uses the provided task sequences as a starting solution and continues to optimise. If the provided solution is feasible, the result is guaranteed to be equal or better in cost. - ExperimentalSolve
- Uses an experimental decomposition code-path. This may provide improved performance on certain problem structures but behaviour may change between API versions.