# Seeking help on Branch and Price

**URL:** <https://discourse.julialang.org/t/seeking-help-on-branch-and-price/112020>\
**Category:** Optimization (Mathematical)\
**Tags:** jump\
**Created:** [March 23, 2024, 3:22pm UTC](https://discourse.julialang.org/t/seeking-help-on-branch-and-price/112020 "2024-03-23T15:22:55Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![wahadhasan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/wahadhasan/32/207949_2.png) [@wahadhasan](https://discourse.julialang.org/u/wahadhasan)\
**Post date:** [March 23, 2024, 3:22pm UTC](https://discourse.julialang.org/t/seeking-help-on-branch-and-price/112020/1 "2024-03-23T15:22:55Z")

</div>

> **[Column generation · JuMP](https://jump.dev/JuMP.jl/stable/tutorials/algorithms/cutting_stock_column_generation/)**
>
> Documentation for JuMP.

**Note that this may not be the global minimum because we are not adding new columns during the solution of the mixed-integer problem `model` (an algorithm known as [branch and price](https://en.wikipedia.org/wiki/Branch_and_price)).**

Could someone please help me how to formulate the branch and price model for this problem? Here they just generated columns without branching the variables, but I would like to implement branching and then generate columns based on pricing. Is it possible to provide the revised code?

---

<div class="post-metadata">

**Author:** ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)\
**Post date:** [March 23, 2024, 10:42pm UTC](https://discourse.julialang.org/t/seeking-help-on-branch-and-price/112020/2 "2024-03-23T22:42:02Z")

</div>

Hi @wahadhasan, welcome to the forum.

Branch-and-price is not simple to implement, which is why the tutorial does not provide the code. You’ll need to manually implement the branch and bound tree.

Alternatively, you could investigate [GitHub - atoptima/Coluna.jl: Branch-and-Price-and-Cut in Julia](https://github.com/atoptima/Coluna.jl). See this tutorial:

> **[Column generation · Coluna.jl](https://atoptima.github.io/Coluna.jl/stable/start/start/#Try-column-generation-easily-with-Coluna-and-BlockDecomposition)**
>
> Documentation for Coluna.jl.

---

<div class="post-metadata">

**Author:** ![WalterMadelim](https://avatars.discourse-cdn.com/v4/letter/w/3e96dc/32.png) [@WalterMadelim](https://discourse.julialang.org/u/WalterMadelim)\
**Post date:** [May 19, 2025, 1:39am UTC](https://discourse.julialang.org/t/seeking-help-on-branch-and-price/112020/3 "2025-05-19T01:39:32Z")

</div>

My opinion is: one might not have to stick at branch and price (or, a column generation algorithm).

There are 2 iterative procedures regarding large-scale LP/MIP:

1. iteratively adding cutting planes, aka outer approximation, constraint generation
2. iteratively recruiting vertices of the original polyhedron, aka inner approximation, column generation

They essentially have a dual relationship—meaning that you **only have to opt one of the two** methods. The outer approximation cutting plane method is more widespread and technologically mature (e.g. the Gurobi solver is a branch-and-cut solver), thereby more advisable.

[here](https://discourse.julialang.org/t/simplicial-decomposition-equals-dual-cutting-plane-a-toy-example/129128) is an example that might be illuminating.
