Scippy

SCIP

Solving Constraint Integer Programs

Frequently Asked Questions (FAQ)

General Questions about SCIP

  1. What is SCIP?
  2. When should I use SCIP?
  3. I heard something about licenses. Do I have to pay for using SCIP?
  4. How do I get started?
  5. Do I need any extra software?
  6. How can I build/compile SCIP?
  7. What are the main differences between the CMake and the Makefile system?
  8. I have installation problems. What can I do?
  9. I changed to a new version of SCIP and now compiling breaks with some error messages which I don't understand. Do you have a general hint on that?
  10. How can I debug in SCIP?
  11. SCIP prints error messages, aborts, produces segmentation faults, or just behaves strangely. What should I do?
  12. I would like to check whether some functionality is implemented in SCIP. How does the naming of the methods work? Where do I find the most common methods?
  13. Can I use SCIP as a pure CP/SAT Solver?
  14. Can I use SCIP as a pure LP-Solver?
  15. Which kind of MINLPs are supported by SCIP?
  16. What is this business with .a and .so libraries in the directory lib/?
  17. Can I compile SCIP as a shared library?
  18. The methods SCIPgetVarSol() and SCIPvarGetSol() seem to have the same functionality. Which one should I use?
  19. Is there a way to visualize the branch and bound tree?
  20. SCIP has found decent primal and dual bounds but still reports the gap as "Infinity". Why?
  21. SCIP crashes during symmetry detection with bliss. What can I do?
  22. How can I run SCIP in parallel?
  23. What are implicit-integer variables?

Using SCIP as a standalone solver

  1. The output is too wide for my terminal window. What can I do?
  2. What do the cryptic abbreviations for the columns mean which are displayed during the solving process of SCIP?
  3. Why does SCIP claim that it could not find the user parameters "scip.set"? Where can I get such a file?
  4. How do I change the behavior of SCIP?
  5. How can I learn more about/from the presolve reasoning SCIP applies to my combinatorial optimization problem?
  6. I recognized that one special plugin works very poorly / very well for my problem and I want to disable it / weaken its influence / intensify its influence. How do I do this?
  7. How can I use my own functions in the interactive shell/extend the set of available interactive shell commands?
  8. How can I input a MINLP into SCIP?
  9. Does SCIP handle symmetries inherent to my problem?
  10. Which symmetry handling method should I use?
  11. SCIP's incumbent solution is infeasible in the original space. What can I do?
  12. What is displayed in the column "compl." of the SCIP output?
  13. What is the difference between SCIP's search tree and the "Estimation Tree" in the SCIP statistics?

Using SCIP included in another source code

  1. How do I construct a problem instance in SCIP?
  2. I already know a solution in advance, which I want to pass to SCIP. How do I do this?
  3. What operational stages of SCIP are there and are they important for me?
  4. What is the difference between the original and the transformed problem?
  5. Why do the names, e.g., in debug messages often differ from the ones I defined?
  6. What is SCIP_CALL()? Do I need this?
  7. I want to stop the solving process after a certain time. How can I do this?
  8. Is it possible to avoid that the SCIP library overrides my signal handler for interruptions?

Using SCIP as a Branch-Cut-And-Price-Framework

  1. How do I start a project?
  2. What types of plugins can I add and how do I do this?
  3. When should I implement a constraint handler, when should I implement a separator?
  4. Can I remove unnecessary display columns or—even better—add my own ones? Can I change the statistics displayed at the end of solving?
  5. What do LP-rows look like in SCIP?
  6. How do I get the data of the current LP-relaxation?
  7. What is the difference between columns and variables, rows and constraints?
  8. Are the variables and rows sorted in any particular order?
  9. When should I use which of the numerical comparison functions?
  10. How do I solve an LP inside my SCIP plugin?
  11. Can I write my own symmetry handling plugin for SCIP?
  12. What is the difference between sepastore and cutpool, and when should one add a cut to one or the other?

Specific questions about Column Generation and Branch-And-Price with SCIP

  1. What can I expect when using SCIP as a Branch-Cut-and-Price framework?
  2. Why are not all variables in the LP?
  3. I only implemented one pricer, why is there a second one, called variable pricer?
  4. How can I store branching decisions?
  5. I want to store some information at the nodes and update my pricer's data structures when entering a new node. How can I do that?
  6. How can an event handler help me with my branching?
  7. How can I add locally valid variables to the problem in my branch-and-price code?
  8. My pricer generates the same column twice. How can I solve this problem?
  9. Which default plugins should be deactivated in order to get a working branch-and-price code?
  10. What are the lazy bounds for variables in SCIP and what do I need them for?
  11. Can I stop the pricing process before the master problem is solved to optimality?
  12. SCIP does not stop although my gap is below 1.0 and all variables are binary and have objective coefficient 1. What can I do?
  13. How can I delete variables?
  14. How do I branch on constraints?

Specific questions about the copy functionality in SCIP

  1. What is SCIPcopy()?
  2. When should I use SCIPcopy() instead of SCIPcopyConsCompression()?
  3. How do I get a copy of a variable or a constraint?
  4. What does the valid pointer in the copy callback of the constraint handler and variable pricer mean?

General Questions about SCIP

  1. What is SCIP?

  2. When should I use SCIP?

  3. I heard something about licenses. Do I have to pay for using SCIP?

  4. How do I get started?

  5. Do I need any extra software?

  6. How can I build/compile SCIP?

  7. What are the main differences between the CMake and the Makefile system?

  8. I have installation problems. What can I do?

  9. I changed to a new version of SCIP and now compiling breaks with some error messages which I don't understand. Do you have a general hint on that?

  10. How can I debug in SCIP?

  11. SCIP prints error messages, aborts, produces segmentation faults, or just behaves strangely. What should I do?

  12. I would like to check whether some functionality is implemented in SCIP. How does the naming of the methods work? Where do I find the most common methods?

  13. Can I use SCIP as a pure CP/SAT Solver?

  14. Can I use SCIP as a pure LP-Solver?

  15. Which kind of MINLPs are supported by SCIP?

  16. What is this business with .a and .so libraries in the directory lib/?

  17. Can I compile SCIP as a shared library?

  18. The methods SCIPgetVarSol() and SCIPvarGetSol() seem to have the same functionality. Which one should I use?

  19. Is there a way to visualize the branch and bound tree?

  20. SCIP has found decent primal and dual bounds but still reports the gap as "Infinity". Why?

  21. SCIP crashes during symmetry detection with bliss. What can I do?

  22. How can I run SCIP in parallel?

  23. What are implicit-integer variables?

Using SCIP as a standalone solver

  1. The output is too wide for my terminal window. What can I do?

  2. What do the cryptic abbreviations for the columns mean which are displayed during the solving process of SCIP?

  3. Why does SCIP claim that it could not find the user parameters "scip.set"? Where can I get such a file?

  4. How do I change the behavior of SCIP?

  5. How can I learn more about/from the presolve reasoning SCIP applies to my combinatorial optimization problem?

  6. I recognized that one special plugin works very poorly / very well for my problem and I want to disable it / weaken its influence / intensify its influence. How do I do this?

  7. How can I use my own functions in the interactive shell/extend the set of available interactive shell commands?

  8. How can I input a MINLP into SCIP?

  9. Does SCIP handle symmetries inherent to my problem?

  10. Which symmetry handling method should I use?

  11. SCIP's incumbent solution is infeasible in the original space. What can I do?

  12. What is displayed in the column "compl." of the SCIP output?

  13. What is the difference between SCIP's search tree and the "Estimation Tree" in the SCIP statistics?

Using SCIP included in another source code

  1. How do I construct a problem instance in SCIP?

  2. I already know a solution in advance, which I want to pass to SCIP. How do I do this?

  3. What operational stages of SCIP are there and are they important for me?

  4. What is the difference between the original and the transformed problem?

  5. Why do the names, e.g., in debug messages often differ from the ones I defined?

  6. What is SCIP_CALL()? Do I need this?

  7. I want to stop the solving process after a certain time. How can I do this?

  8. Is it possible to avoid that the SCIP library overrides my signal handler for interruptions?

Using SCIP as a Branch-Cut-And-Price-Framework

  1. How do I start a project?

  2. What types of plugins can I add and how do I do this?

  3. When should I implement a constraint handler, when should I implement a separator?

  4. Can I remove unnecessary display columns or—even better—add my own ones? Can I change the statistics displayed at the end of solving?

  5. What do LP-rows look like in SCIP?

  6. How do I get the data of the current LP-relaxation?

  7. What is the difference between columns and variables, rows and constraints?

  8. Are the variables and rows sorted in any particular order?

  9. When should I use which of the numerical comparison functions?

  10. How do I solve an LP inside my SCIP plugin?

  11. Can I write my own symmetry handling plugin for SCIP?

  12. What is the difference between sepastore and cutpool, and when should one add a cut to one or the other?

Specific questions about Column Generation and Branch-And-Price with SCIP

  1. What can I expect when using SCIP as a Branch-Cut-and-Price framework?

  2. Why are not all variables in the LP?

  3. I only implemented one pricer, why is there a second one, called variable pricer?

  4. How can I store branching decisions?

  5. I want to store some information at the nodes and update my pricer's data structures when entering a new node. How can I do that?

  6. How can an event handler help me with my branching?

  7. How can I add locally valid variables to the problem in my branch-and-price code?

  8. My pricer generates the same column twice. How can I solve this problem?

  9. Which default plugins should be deactivated in order to get a working branch-and-price code?

  10. What are the lazy bounds for variables in SCIP and what do I need them for?

  11. Can I stop the pricing process before the master problem is solved to optimality?

  12. SCIP does not stop although my gap is below 1.0 and all variables are binary and have objective coefficient 1. What can I do?

  13. How can I delete variables?

  14. How do I branch on constraints?

Specific questions about the copy functionality in SCIP

  1. What is SCIPcopy()?

  2. When should I use SCIPcopy() instead of SCIPcopyConsCompression()?

  3. How do I get a copy of a variable or a constraint?

  4. What does the valid pointer in the copy callback of the constraint handler and variable pricer mean?