Branch-and-Price & Column Generation for Everyone

Use Cases of GCG

Some guides are not complete yet, they are colored in gray.

In the following, you find short descriptions of all the use cases that we offer guides for, which are ordered according to their complexity.
If you're new here, we recommend starting with the first one.

Solving existing structured mixed-integer programs

If you already have existing instances and have probably also tried them in other solvers already, we will show you how to get started with GCG for the first time without much of technical detail and explain the output superficially.
The Magic of Genericity

Solving freshly created instances and start to understand GCG

If you first want to create your instance, for example using ZIMPL, this is the right guide for you. We will use GCG to solve a freshly created problem optimally and afterwards explain the theory behind the most important steps GCG does to do that.
Branch-and-price without a single line of code

Making GCG use more information from your model

Using GCG as an external server for GAMS, GCG is able to read more information from your model than with a usual LP-File. We assume that you already created your instance using GAMS. We will elaborate on how to set up GCG with GAMS to solve your problem. Contrary to the previous use case, we will not go into details concerning the theory behind what GCG does.
GCG and GAMS, a match made in heaven

Gain knowledge about the structure of your model

To get to know about how GCG sees your instance and why, we check out the Explore Menu. With it, we can make GCG show the structure that its detectors found and also influence and tweak that a bit without too much technical knowledge.
Paint my Problem

Tell GCG how to decompose your problem using your own knowledge

It can happen that you are able to fully or at least partially grasp how your problem should be decomposed, e.g. with the help of the explore menu (see above). In this guide, we will teach you how you can use that knowledge.
Tweaking the Detection

Tell GCG how to solve your problem using GCG settings

Apart from the detection, we have more settings, in particular the pricing settings, which can be changed to achieve speedups in solving your instance. In this guide, we will also give you some hints on what could be good parameters.
Optimizing all GCG Parameters

Gain knowledge about how GCG solves your instance

To see how GCG ran with your instance, for example how long it detected or how performant the pricing was, you should check out the Visualization Suite. It shows not only timings, but also illustrates algorithmic behaviour.
Visualizing Runtime Behaviour

Modify GCG's algorithmic behaviour

If you have to modify more than just parameters, it might be necessary to directly add or change parts of code within GCG. You will need the guides on adding your own plugins and it will also be helpful to read through the Example Projects. If you are doing your own project with, we would be very thankful if you contacted us such that we can add it to our documentation!
Adding new plugins and components to GCG

Develop completely new features for GCG

If it is not enough to add a pricing solver here or a branching rule there, then you might need to add completely new features. Please contact us before and, if possible, while doing that. Note that this guide is also presenting some of the general internal workflow for which Git access might sometimes be required.
Getting Started as a GCG Developer