Scippy

GCG

Branch-and-Price & Column Generation for Everyone

solver_knapsack.c File Reference

Detailed Description

knapsack solver for pricing problems

Author
Gerald Gamrath
Martin Bergner
Christian Puchert

Definition in file solver_knapsack.c.

#include <assert.h>
#include <string.h>
#include "solver_knapsack.h"
#include "scip/cons_linear.h"
#include "scip/cons_knapsack.h"
#include "pricer_gcg.h"
#include "pub_solver.h"
#include "relax_gcg.h"
#include "pub_gcgcol.h"

Go to the source code of this file.

Macros

#define SOLVER_NAME   "knapsack"
 
#define SOLVER_DESC   "knapsack solver for pricing problems"
 
#define SOLVER_PRIORITY   200
 
#define SOLVER_HEURENABLED   FALSE
 
#define SOLVER_EXACTENABLED   TRUE
 
#define solverFreeKnapsack   NULL
 
#define solverInitsolKnapsack   NULL
 
#define solverExitsolKnapsack   NULL
 
#define solverInitKnapsack   NULL
 
#define solverExitKnapsack   NULL
 
#define solverUpdateKnapsack   NULL
 

Functions

static SCIP_RETCODE solveKnapsack (SCIP_Bool exactly, SCIP *scip, SCIP *pricingprob, GCG_SOLVER *solver, int probnr, SCIP_Real *lowerbound, GCG_PRICINGSTATUS *status)
 
static GCG_DECL_SOLVERSOLVE (solverSolveKnapsack)
 
static GCG_DECL_SOLVERSOLVEHEUR (solverSolveHeurKnapsack)
 
SCIP_RETCODE GCGincludeSolverKnapsack (SCIP *scip)
 

Macro Definition Documentation

◆ SOLVER_NAME

#define SOLVER_NAME   "knapsack"

Definition at line 48 of file solver_knapsack.c.

◆ SOLVER_DESC

#define SOLVER_DESC   "knapsack solver for pricing problems"

Definition at line 49 of file solver_knapsack.c.

◆ SOLVER_PRIORITY

#define SOLVER_PRIORITY   200

Definition at line 50 of file solver_knapsack.c.

◆ SOLVER_HEURENABLED

#define SOLVER_HEURENABLED   FALSE

indicates whether the heuristic solving method of the solver should be enabled

Definition at line 52 of file solver_knapsack.c.

◆ SOLVER_EXACTENABLED

#define SOLVER_EXACTENABLED   TRUE

indicates whether the exact solving method of the solver should be enabled

Definition at line 53 of file solver_knapsack.c.

◆ solverFreeKnapsack

#define solverFreeKnapsack   NULL

Definition at line 485 of file solver_knapsack.c.

◆ solverInitsolKnapsack

#define solverInitsolKnapsack   NULL

Definition at line 486 of file solver_knapsack.c.

◆ solverExitsolKnapsack

#define solverExitsolKnapsack   NULL

Definition at line 487 of file solver_knapsack.c.

◆ solverInitKnapsack

#define solverInitKnapsack   NULL

Definition at line 488 of file solver_knapsack.c.

◆ solverExitKnapsack

#define solverExitKnapsack   NULL

Definition at line 489 of file solver_knapsack.c.

◆ solverUpdateKnapsack

#define solverUpdateKnapsack   NULL

Definition at line 490 of file solver_knapsack.c.

Function Documentation

◆ solveKnapsack()

static SCIP_RETCODE solveKnapsack ( SCIP_Bool  exactly,
SCIP *  scip,
SCIP *  pricingprob,
GCG_SOLVER solver,
int  probnr,
SCIP_Real *  lowerbound,
GCG_PRICINGSTATUS status 
)
static

solve the pricing problem as a knapsack problem, either exactly or approximately

Parameters
exactlyshould the pricing problem be solved to optimality or heuristically?
scipmaster problem SCIP data structure
pricingprobpricing problem SCIP data structure
solversolver data structure
probnrproblem number
lowerboundpointer to store lower bound
statuspointer to store pricing problem status

Definition at line 65 of file solver_knapsack.c.

References GCG_PRICINGSTATUS_INFEASIBLE, GCG_PRICINGSTATUS_NOTAPPLICABLE, GCG_PRICINGSTATUS_OPTIMAL, GCG_PRICINGSTATUS_UNKNOWN, GCGcreateGcgCol(), and GCGpricerAddCol().

Referenced by GCG_DECL_SOLVERSOLVE(), and GCG_DECL_SOLVERSOLVEHEUR().

◆ GCG_DECL_SOLVERSOLVE()

static GCG_DECL_SOLVERSOLVE ( solverSolveKnapsack  )
static

exact solving method for knapsack solver

Definition at line 494 of file solver_knapsack.c.

References solveKnapsack().

◆ GCG_DECL_SOLVERSOLVEHEUR()

static GCG_DECL_SOLVERSOLVEHEUR ( solverSolveHeurKnapsack  )
static

heuristic solving method of knapsack solver

Definition at line 506 of file solver_knapsack.c.

References solveKnapsack().

◆ GCGincludeSolverKnapsack()

SCIP_RETCODE GCGincludeSolverKnapsack ( SCIP *  scip)

creates the knapsack solver for pricing problems and includes it in GCG

Parameters
scipSCIP data structure

Definition at line 517 of file solver_knapsack.c.

References GCGpricerIncludeSolver(), SOLVER_DESC, SOLVER_EXACTENABLED, SOLVER_HEURENABLED, SOLVER_NAME, SOLVER_PRIORITY, solverExitKnapsack, solverExitsolKnapsack, solverFreeKnapsack, solverInitKnapsack, solverInitsolKnapsack, and solverUpdateKnapsack.

Referenced by GCGincludeMasterPlugins().