BaPCod — a generic Branch-and-Price Code

BaPCod is a C++ library implementing a generic branch-cut-and-price solver. BaPCod is a prototype academic code which offers a “black-box” implementation of the method:

User guide

The instructions how to compile and use BaPCod are given in the user guide available as a technical report:

Please, cite this technical report if you use BaPCod.

The most recent version of the user guide is available here : BaPCod user guide


The software is for academic use only.

To compile and use the library, you need

The rcsp libraries were generated with the following compilers: Windows x64 :MSVC 19.29, Mac x64 :AppleClang 12.0.5,Linux x64 : gcc 5.4


(current version : v0.82.5)

We remind you that you cannot use all or parts of the BaPCod software (including its sources) for industrial and/or commercial purposes without the prior written permission of Inria. If you wish to download the BaPCod software, please read and accept the attached academic software license agreement and fill in the form below with your academic e-mail address. For any other uses, please contact The processing of your personal data is compliant with the Regulation (EU) 2016/679 (General Data Protection Regulation). Your personal data may be used for internal statistical purposes. The information you provide will not be transmitted to a third party.

Please fill in the form:

First Name:
Last Name:
Institutional email: The download link will be sent to this email (this can take A FEW DAYS. check your spam also).
Using institutional email containing your name is mandatory. Other emails will get no answer.
What month is it now? Anti-robot verification

By downloading the BaPCod software, you hereby acknowledge to have read and understood the BaPCod software academic license agreement and to have accepted to be contractually bound by its provisions. If you are entering into this license agreement on behalf of a public legal entity, you represent that you have the authority to bind such entity to these terms and conditions. If you do not agree with the terms and conditions of this license agreement and/or you do not have such authority, you must not accept this license, nor download, install or use BaPCod software.

Please read the licence agreement by scrolling it down. Click on it first to scroll. Then please accept the license by pressing the corresponding button. You need to scroll till the end of the license agreement to see the button.

After acceptance of the licence your data will be sent for manual verification. The verification usually takes up to one working day.


This Software license agreement makes provision for the terms and conditions in line with which you are authorised to download, install and/or use the BaPCod Software developed and owned by the Institut National de Recherche en Informatique et en Automatique (Inria), a French public organism of scientific and technological nature – Decree n°85-831 dated August 2nd, 1985, located at Domaine de Voluceau, Rocquencourt, BP. 105 – 78153 Le Chesnay Cedex, Represented by its Chief Executive Officer, Mr Bruno SPORTISSE, who has delegated its signature to Mr Nicolas ROUSSEL, Director of the Inria Bordeaux – Sud-Ouest Research Centre (hereinafter referred to as “Inria” or the “Owner”). In this Software license agreement, you and/or your public legal entity are hereinafter referred to as “you” or the “Licensee”. You and Inria are referred to hereinafter collectively as “Parties” and individually as “Party”.


The Software is protected by Intellectual Property Rights and is the sole and exclusive property of the Owner.  Use thereof is subject to the terms and conditions of this Software license agreement. You acknowledge that use of the Software outside of the terms of this Software license agreement could lead to a copyright infringement. None of the provisions of this Software license agreement shall be construed as implying rights and obligations outside the scope of this Software license agreement.

You hereby acknowledge to have read and understood the Software license agreement and to have accepted that download of the Software is confirmation of your acceptance to be contractually bound by the following provisions. If you are entering into this Software license agreement on behalf of a public legal entity, you represent that you have the authority to bind such entity to these terms and conditions.



The purpose of this Software license agreement is to grant academic Licensees the right to modify and use the Software for internal academic research purposes only.

The exercising of this right is conditional upon certain obligations for Licensees.

In consideration of Access to the Software (as defined below) and the rights to use, copy and modify granted by the license, Licensees are provided only with a limited warranty and the Software's Owner only have limited liability.

In this respect, the risks associated with loading, using, modifying and/or developing or reproducing the Software by the Licensee are brought to the Licensee's attention, given its academic status, which may make it complicated to use, with the result that its use is reserved for developers and experienced persons having in-depth computer knowledge. Licensees are therefore encouraged to load and test the suitability of the Software as regards their requirements in conditions enabling the security of their systems and/or data to be ensured and, more generally, to use and operate it in the same conditions of security.


For the purpose of this Agreement, when the following expressions commence with a capital letter, they shall have the following meaning:

Agreement: means this license agreement and its possible subsequent versions and annexes.

Software: means the BaPCod software (APP number: IDDN.FR.001.440015.000.S.P.2017.000.20100) provided with its source code and, where applicable, its documentation, "as is" when the Licensee accepts the Agreement.  

BapCod is a generic Branch-And-Price -And-Cut Code with a high level modeling interface that brings to user an easy access to complex reformulation and decomposition approaches that are efficiently implemented, combining best algorithmic practices.

BaPCod is a prototype code that solves Mixed Integer Programs (MIP) by application of reformulation and decomposition techniques. The reformulated problem is solved using a branch-and-price-and-cut (column generation) algorithms, Benders approaches, network flow and dynamic programming algorithms. These methods can be combined in several hybrid algorithms to produce exact or approximate solutions (primal solutions with a bound on the deviation to the optimum).


Modified Software: means the Software modified by at least one Contribution.


Owner: means Inria, Université de Bordeaux, Bordeaux INP and CNRS which are the holders of the economic rights over the Software; Inria is mandated by the public establishments to negotiate, sign and manage this license, under the conditions defined by the French decree n ° 2020-24 of January 13, 2020 relating to the management of the joint ownership of research results, the method of designation and the missions of the sole representative provided for in Article L. 533-1 of the Research Code.  


Licensee: means the Software user(s) having accepted the Agreement.

The Licensee must be:

  • employed by a body governed by public law, which means any body:

(a) established for the specific purpose of meeting needs in the general interest, not having an industrial and/or commercial character in whole or in part; and

(b) having legal personality; and

(c) financed, for the most part, by the State, regional or local authorities, or other bodies governed by public law; or subject to management supervision by those bodies.

·      or, a student not having a work contract with a body not responding to the definition above mentioned

Contribution: means any or all modifications, corrections, translations, adaptations and/or new functions integrated into the Software by the Licensee.

Copyright: means the intellectual property notices attached to the Software as follows: Name of the Software © Inria

Parties: mean both the Licensee and the Owner.

These expressions may be used both in singular and plural form.

Article 2 - PURPOSE

The purpose of the Agreement is the grant by the Owner to the Licensee of a non-exclusive, non-transferable and worldwide license for the Software as set forth in Article 5 hereinafter for five (5) years, for internal academic research purposes only.

Article 3 - ACCEPTANCE

3.1 The Licensee shall be deemed as having accepted the terms and conditions of this Agreement upon the download of the software by the Licensee. In the event that any acceptance is delivered by facsimile transmission or by e-mail delivery of a ".pdf" format data file, such acceptance shall create a valid and binding obligation of the Licensee with the same force and effect as if such facsimile or ".pdf" signature page were an original thereof.

3.2 One copy of the Agreement, containing a notice relating to the characteristics of the Software, to the limited warranty, and to the fact that its use is restricted to experienced users has been provided to the Licensee prior to its acceptance as set forth in Article 3.1 hereinabove, and the Licensee hereby acknowledges that it has read and understood it.



The Agreement shall become effective on the date when it is accepted by the Licensee as set forth in Article 3.1.

4.2 TERM

The Agreement shall remain in force for a duration of five (5) years from the effective date as provided in Article 3.1.


The Owner hereby grants to the Licensee, who accepts, the following rights over the Software for internal academic research use, and for the term of the Agreement, on the basis of the terms and conditions set forth hereinafter.

The access rights granted by the Owner to the Licensee only.


The Licensee is authorized to use the Software, for internal academic research purposes, with it being hereinafter specified that this comprises:

  1. permanent or temporary reproduction of all or part of the Software by any or all means and in any or all form.
  2. loading, displaying, running, or storing the Software on any or all medium.
  3. entitlement to observe, study or test its operation so as to determine the ideas and principles behind any or all constituent elements of said Software. This shall apply when the Licensee carries out any or all loading, displaying, running, transmission or storage operation as regards the Software, that it is entitled to carry out hereunder.


The right to make Contributions includes the right to translate, adapt, arrange, or make any or all modifications to the Software, and the right to reproduce the result.

The Licensee is authorized to make any or all Contributions to the Software.


The Licensee is authorized to use the Software and Modified Software for academic publications (in the form of papers, images, or videos), provided the following acknowledgments are made:

  • the publication has to mention the Copyright of the Software;
  • the publication has to mention the publication: Ruslan Sadykov and François Vanderbeck, BaPCod - a generic branch-and-price code. Technical report HAL-03340548, Inria Bordeaux Sud-Ouest, 2021.


The Software and the Modified Software cannot be distributed without the authorization of the Owner (contact:



The Owner owns the economic rights over the Software. Any or all use of the Software is subject to compliance with the terms and conditions under which the Owner has elected to distribute its work and no one shall be entitled to modify the terms and conditions for the distribution of the Software.


The Licensee who develops a Contribution under Article 5.2 is the owner of the intellectual property rights over this Contribution as defined by applicable law, subject to Owner’s rights as mentioned above.


The Licensee expressly undertakes:

  1. not to remove, or modify, in any manner, the Copyright;
  2. to reproduce said notices, in an identical manner, in the copies of the Software modified or not.

The Licensee undertakes not to directly or indirectly infringe the intellectual property rights on the Software of the Owner, and to take, where applicable, towards its staff, any and all measures required to ensure respect of said intellectual property rights of the Owner.


7.1 Under no circumstances shall the Agreement oblige the Owner to provide technical assistance or maintenance services for the Software.

However, the Owner can offer this type of services. The terms and conditions of such technical assistance, and/or such maintenance, shall be set forth in a separate instrument.

7.2 Under no circumstances shall the Agreement grant (i) the right for the Licensee to redistribute the Software and the Modified Software, and (ii) the right for the Licensee to use the Software for commercial or non-academic purposes. However, the Owner can grant such rights subject to the signature of a separate agreement including specific terms and conditions.

Article 8 - LIABILITY

8.1 Subject to the provisions of Article 8.2, the Licensee shall be entitled to claim compensation for any direct loss it may have suffered from the Software as a result of a fault on the part of the Owner, subject to providing evidence thereof.

8.2 The Owner's liability is limited to the commitments made under this Agreement and shall not be incurred as a result of in particular: (i) loss due the Licensee's total or partial failure to fulfill its obligations, (ii) direct or indirect loss that is suffered by the Licensee due to the use or performance of the Software, and (iii) more generally, any indirect loss. In particular the Parties expressly agree that any or all pecuniary loss (i.e. loss of data, loss of profits, operating loss, loss of customers or orders, opportunity cost, any disturbance to business activities) or any or all legal proceedings instituted against the Licensee by a third party, shall constitute indirect loss and shall not provide entitlement to any or all compensation from the Owner.

Article 9 - WARRANTY

9.1 The Licensee acknowledges that the scientific and technical state-of-the-art when the Software was distributed did not enable all possible uses to be tested and verified, nor for the presence of possible defects to be detected. In this respect, the Licensee's attention has been drawn to the risks associated with loading, using, modifying and/or developing and reproducing the Software which are reserved for experienced academic users.

The Licensee shall be responsible for verifying, by any or all means, the suitability of the product for its requirements, its good working order, and for ensuring that it shall not cause damage to either persons or properties.

9.2 The Owner hereby represents, in good faith, that it is entitled to grant all the rights over the Software (including in particular the rights set forth in Article 5).

9.3 The Licensee acknowledges that the Software is supplied "as is" by the Owner without any other express or tacit warranty, other than that provided for in Article 9.2 and, in particular, its secured, safe, innovative or relevant nature.

Specifically, the Owner does not warrant that the Software is free from any error, that it will operate without interruption, that it will be compatible with the Licensee's own equipment and configuration, nor that it will meet the Licensee's requirements.

9.4 The Owner does not either expressly or tacitly warrant that the Software does not infringe any third party intellectual property right relating to a patent, software or any other property right. Therefore, the Owner disclaims any and all liability towards the Licensee arising out of any or all proceedings for infringement that may be instituted in respect of the use and modification of the Software. Nevertheless, should such proceedings be instituted against the Licensee, the Owner shall provide it with technical and legal expertise for its defense.

Such technical and legal expertise shall be decided on a case-by-case basis between the Owner and the Licensee pursuant to a memorandum of understanding. The Owner disclaims any and all liability as regards the Licensee's use of the name of the Software. No warranty is given as regards the existence of prior rights over the name of the Software or as regards the existence of a trademark.

Article 10 - TERMINATION

10.1 In the event of a breach by the Licensee of its obligations hereunder, the Owner may automatically terminate this Agreement thirty (30) days after notice has been sent to the Licensee and has remained ineffective.

10.2 A Licensee whose Agreement is terminated shall no longer be authorized to use or modify the Software.



Neither Party shall be liable for any or all delay, or failure to perform the Agreement, that may be attributable to an event of force majeure, an act of God or an outside cause, such as defective functioning or interruptions of the electricity or telecommunications networks, network paralysis following a virus attack, intervention by government authorities, natural disasters, water damage, earthquakes, fire, explosions, pandemic, strikes and labor unrest, war, etc.

11.2 Any failure by either Party, on one or more occasions, to invoke one or more of the provisions hereof, shall under no circumstances be interpreted as being a waiver by the interested Party of its right to invoke said provision(s) subsequently.

11.3 The Agreement cancels and replaces any or all previous agreements, whether written or oral, between the Parties and having the same purpose, and constitutes the entirety of the agreement between said Parties concerning said purpose. No supplement or modification to the terms and conditions hereof shall be effective as between the Parties unless it is made in writing and signed by their duly authorized representatives.

11.4 In the event that one or more of the provisions hereof were to conflict with a current or future applicable act or legislative text, said act or legislative text shall prevail, and the Parties shall make the necessary amendments so as to comply with said act or legislative text. All other provisions shall remain effective. Similarly, invalidity of a provision of the Agreement, for any reason whatsoever, shall not cause the Agreement as a whole to be invalid.


The Agreement is drafted in English.


12.1 The Agreement is governed by French law. The Parties agree to endeavor to seek an amicable solution to any disagreements or disputes that may arise during the performance of the Agreement.

12.2 Failing an amicable solution within two (2) months as from their occurrence, and unless emergency proceedings are necessary, the disagreements or disputes shall be referred to the French competent Courts, by the more diligent Party.

Version history


We appreciate financial support (salary) from Inria, Université de Bordeaux, Institute de Mathématiques de Bordeaux, and CNRS (Centre Nationale de la Recherche Scientifique, France).

Design, implementation, and maintenance of BaPCod and VRPSolver extension: François Vanderbeck, Ruslan Sadykov, Issam Tahiri, Laurent Facq, Isaac Balster, Najib Errami, Boris Detienne, Aurélien Froger, François Clautiaux, Pierre Pesneau, Artur Pessoa, Eduardo Uchoa, Halil Sen, Jinil Han, Céline Saubatte, Franck Labat, Romain Leguay, Teobaldo Bulhoes, Guillaume Marquez, Eduardo Queiroga, Adeline Fonseca.


If you encounter any bugs or problems, please contact us at bapcod(at) However, due to our very limited resources, we cannot guarantee that we will be able to provide support or fix bugs within a reasonable time. We will do our best to release punctual new versions that resolve the most critical issues.

Last updated: December 6, 2023.