Being a good or bad approach will depend on several factors, for example:
- the size of the instances
- time available to find a solution (this tends to be an important matter in vehicle routing applications)
- computing power
- what level of solution quality qualifies as good enough
See this work by Yu, Nagarajan and Shen on the minimum makespan VRP with compatibility constraints, as it's a similar problem that's been studied before using branch-and-price as an approach to solve a makespan VRP variant. It worked quite well. Note that in their case, they designed an approximation algorithm to accelerate the B&P execution time.
I suggest the following experiment:
First step: Following @RobPratt's answer to your previous question regarding makespan minimization in VRP:
Let $d_i$ be the demand for customer $i\in N$, let $V=\{1,\dots,K\}$
be the set of vehicles, and let $P$ be the set of columns, where each
column corresponds to a feasible subtour starting from the depot, with
arc variables $x_{i,j}$ and node variables $y_i$. Let $z$ be the
makespan. The master problem over $z$ and $\lambda$ is as follows,
with dual variables in parentheses:
\begin{align} &\text{minimize} &z
\\ &\text{subject to} &z - \sum_{p\in P} \left(\sum_{i,j} c_{i,j}
x_{i,j}^p\right) \lambda^p_v &\ge 0 &&\text{for $v\in V$} &&(\pi_v \ge
0)\\ &&\sum_{v \in V} \sum_{p\in P} y_i^p \lambda^p_v &\ge 1
&&\text{for $i\in N$} &&(\text{$\alpha_i \ge 0$})\\ &&-\sum_{p\in P}
\lambda^p_v &\ge -1 &&\text{for $v\in V$} &&(\text{$\beta_v \ge
0$})\\ &&\lambda^p_v &\ge 0 &&\text{for $v\in V$ and $p\in P$}
\end{align}
The column generation subproblem over $x$ and $y$ for each $v\in V$ is
then to minimize the reduced cost of $\lambda^p_v$. That is, minimize
$$\pi_v \sum_{i,j} c_{i,j} x_{i,j} - \sum_{i \in N} \alpha_i y_i +
\beta_v$$ subject to $(x,y)$ forming a feasible subtour starting from
the depot, with $\sum_i d_i y_i \le L$, where $L$ is the capacity of
each vehicle.
As stated there, the subproblem can be reformulated as elementary shortest path: Split the depot into a source and a sink, and move the node weights to the arcs: $\pi_v c_{i,j}−\alpha_i$ for the weight of arc $(i,j)$ in the elementary shortest path subproblem.
Second: Implement the above method. I recommend trying to use VRPy, as suggested by Kuifje here. That way you won't have to implement all the branch and price operations from scratch. Detailed steps:
- Take a look at the project's documentation.
- Take a look at the code in GitHub.
- Create a fork or download the project as .zip, such that you can make changes locally.
- Modify the code regarding the subproblem, such that the depot is split as was explained above.
- Run the experiments, you can follow the example instances from the documentation like here and here.
- Let us know how it worked. And remember to acknowledge VRPy and its developers in your work (be it a project report, thesis, publication, etc), as well as respecting the terms on the library's license with respect to modifications.