Initializing help system before first use

# loadmipsol

Purpose
Load a MIP solution into the optimizer.
Synopsis
`function loadmipsol(s:array(set of mpvar) of real):integer`
`function loadmipsol(solnum:integer):integer`
`function loadmipsol(ms:mpsol):integer`
Arguments

s | An array containing the solution
solnum | Solution number (between 1 and XPRS_enumsols)
ms | A solution object

Return value
Operation status:

-1 | Solution rejected because an error occurred
0 | Solution accepted. When loading a solution before a MIP solve, the solution is always accepted. It is placed in temporary storage until the MIP solve is started.
1 | Solution rejected because it is infeasible
2 | Solution rejected because it is cut off
3 | Solution rejected because the LP reoptimization was interrupted

Example
The following saves a MIP solution, modifies the problem, and then loads it into the Optimizer, reloading the MIP solution:

    declarations
     MinCost:linctr
     mysol: array(set of mpvar) of real
     result: integer
    end-declarations

    savemipsol(mysol)
     ...                       ! Make some changes
    loadprob(MinCost)
    result:= loadmipsol(mysol)
    if result<>0 then writeln("Loading MIP solution failed"); end-if
    minimize(MinCost)

Further information
1. This function loads a MIP solution into the optimizer that has previously been saved using procedure savemipsol or constructed by some external heuristic. In the latter case a value needs to be assigned to each discrete variable in the problem, such as mysol(x):= 1 (where x is a decision variable of type mpvar).
2. The values for the continuous variables in the s array are ignored and are calculated by fixing the integer variables and reoptimizing.
3. The second form of the routine can be called after a search for n-best solutions has been performed by the optimiser: the selected solution is used as input.
4. The current problem definition must be loaded into the Optimizer for loadmipsol to have any effect. If this has not recently been done, e.g., by calling maximize or minimize, the problem must be explicitly loaded using loadprob.
5. If the MIP solution is accepted by the Optimizer it causes the MIPABSCUTOFF control to be set accordingly. The provided MIP solution may help guiding the MIP heuristics but the branch-and-bound search will start from the initial LP relaxation solution as usual.
Related topics
savemipsol, addmipsol.
Module
mmxprs
Parent Topic Procedures and functions

© 2001-2026 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.