SCIPcopyOrigConsCompression

Function SCIPcopyOrigConsCompression 

Source
pub unsafe extern "C" fn SCIPcopyOrigConsCompression(
    sourcescip: *mut SCIP,
    targetscip: *mut SCIP,
    varmap: *mut SCIP_HASHMAP,
    consmap: *mut SCIP_HASHMAP,
    suffix: *const c_char,
    fixedvars: *mut *mut SCIP_VAR,
    fixedvals: *mut f64,
    nfixedvars: c_int,
    enablepricing: c_uint,
    threadsafe: c_uint,
    passmessagehdlr: c_uint,
    valid: *mut c_uint,
) -> SCIP_RETCODE
Expand description

copies source SCIP original problem to target SCIP but compresses constraints

constraint compression is performed by removing fixed variables immediately during constraint creation if the involved constraint handlers support compression

the copying process is done in the following order:

  1. copy the plugins
  2. copy the settings
  3. create problem data in target-SCIP and copy the problem data of the source-SCIP
  4. copy all original variables a) fix all variable copies specified by \p fixedvars, \p fixedvals, and \p nfixedvars b) enable constraint compression
  5. copy all constraints

@note all variables and constraints which are created in the target-SCIP are not (user) captured

@note In a multi thread case, you need to lock the copying procedure from outside with a mutex. Also, ‘passmessagehdlr’ should be set to FALSE. @note the ‘threadsafe’ parameter should only be set to TRUE if you are absolutely certain that the source and target SCIP instances will be solved in parallel. The usual case is to set this to FALSE, since thread safety typically incurs a performance cost. @note Do not change the source SCIP environment during the copying process

@note Reoptimization and exact solving are explicitly disabled in the target-SCIP.

@return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref SCIP_Retcode “SCIP_RETCODE” for a complete list of error codes.

@pre This method can be called if sourcescip is in one of the following stages: - \ref SCIP_STAGE_PROBLEM - \ref SCIP_STAGE_TRANSFORMED - \ref SCIP_STAGE_INITPRESOLVE - \ref SCIP_STAGE_PRESOLVING - \ref SCIP_STAGE_EXITPRESOLVE - \ref SCIP_STAGE_PRESOLVED - \ref SCIP_STAGE_INITSOLVE - \ref SCIP_STAGE_SOLVING - \ref SCIP_STAGE_SOLVED

@pre This method can be called if targetscip is in one of the following stages: - \ref SCIP_STAGE_INIT - \ref SCIP_STAGE_FREE

@note sourcescip stage does not get changed

@note targetscip stage does not get changed

See \ref SCIP_Stage “SCIP_STAGE” for a complete list of all possible solving stages.