Initializing help system before first use

problem.addObjective

Purpose
Adds one or more objective functions to the problem.
Synopsis
problem.addObjective(obj1, obj2, ..., priority=None, weight=None, abstol=None, reltol=None)
Arguments
obj1,obj2,... 
Objectives to add to the problem. An error will be returned if any variable in any objective was not already added to the problem via addVariable.
priority 
(optional) An integer defining the relative priority for the new objective (only relevant for multi-objective problems). Higher values mean higher priority.
weight 
(optional) A double defining the weight for the new objective (only relevant for multi-objective problems). If the weight is negative, the sense of this objective is reversed.
abstol 
(optional) Absolute tolerance for the new objectives (only relevant for multi-objective problems).
reltol 
(optional) Relative tolerance for the new objectives (only relevant for multi-objective problems).
Example
The following example adds two objective functions to the problem:
prob.addObjective(x1 + x2)
prob.addObjective(2*x3 - x4)
Further information
1. In case this method is used in a multi-objective context, the objective function must be linear, as a multi-objective problem may only contain linear objective functions. The problem itself may be any kind supported by Xpress, but any nonlinear objective terms must be modeled using a transfer variable.
2. If all objectives have equal priority but different weights, a blended (weighted-sum) approach is applied. For cases where each objective has a different priority but the same weight, a lexicographic approach is applied. The highest priority objective is optimized first. In the second and subsequent iterations, all objectives from previous iterations are fixed to their optimal values within the tolerances defined by abstol and reltol. If both different priorities and different weights are passed, a hybrid approach is applied: Xpress will solve the problem once for each distinct objective priority that is defined, optimizing in each iteration a linear combination of the objective functions with the same priority.
3. The optimization sense of the first objective defines the default sense for all objectives. To revert the sense of an objective in relation to the first objective, assign it a negative weight. For example, if the first objective is set to be maximized, further objectives to be minimized can be declared with weight=-1.
4. To add multiple objectives with a different priority and/or a different weight, make individual calls to addObjective and pass the corresponding value(s) in each call.
Related topics

© 2001-2025 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.