Questions tagged [branch-and-bound]

Branch and bound is a general technique for finding optimal solutions of various combinatorial and integer programming problems. It entails examining candidates (“branches”), while utilizing knowledge of upper and lower limits (“bounds”) to eliminate sub-trees, to find the optimal solution quicker.

Branch and bound is a general technique for finding optimal solutions of various combinatorial and integer programming problems. It involves partial enumeration, by examining candidates (“branches”), while also utilizing knowledge of upper and lower limits (“bounds”) to eliminate sub-trees.

The B&B technique is widely used in discrete optimization problems where the solution falls in the integer space (Traveling salesman, cutting stock etc.) This method was introduced in 1960.

For further reference: The Wikipedia page on Branch-and-bound (B&B)

114 questions
4
votes
1 answer

When to switch from Dynamic Programming (2D table) to Branch & Bound algorithm?

I'm doing a knapsack optimization problem involving dynamic programming and branch & bound. I noticed that when the capacity and the item of the problem gets large, filling up the 2D table for the dynamic programming algorithm will get exponentially…
3
votes
1 answer

Numerical stability of Simplex Algorithm

Edit: Simplex the mathematical optimization algorithm, not to be confused with simplex noise or triangulation. I'm implementing my own linear programming solver and I would like to do so using 32bit floats. I know Simplex is very sensitive to the…
3
votes
4 answers

Branch And Bound Implementation for TSP in Java

I wonder if there is a useful Java implementation of a Branch And Bound algorithm for the TSP or in general a OR framework which includes a BnB for TSP. Thanks for your help! Marco
user212926
3
votes
1 answer

How to build a binary matrix from sums

I have two decimal number variables, colSum and rowSum, using those I want to build a matrix of binary values based on those sums, the rowSum array variable is the result of adding all the 1's for each row, the same goes for colSum array. So ,if you…
juaxix
  • 63
  • 7
3
votes
2 answers

Smallest list containing all elements from two lists, while preserving order

I am unsure how to combine the items from two lists of integers such that the order of the items is preserved and the resultant list, if concatenated into one integer, is as small as possible. Potentially similar to this question, although the…
The_Unobsequious
  • 277
  • 1
  • 2
  • 10
3
votes
3 answers

Python Knapsack Branch and Bound

I have spent a week working on this branch and bound code for the knapsack problem, and I have looked at numerous articles and books on the subject. However, when I am running my code I don't get the result I expect. Input is received from a text…
wikenator
  • 310
  • 1
  • 4
  • 12
2
votes
0 answers

How to find minimum vertices that connect certain vertices to each other

I want to find minimum vertices that connect certain vertices to each other. For example, assume list of edges is connections = [(2,0),(0,5),(2,3),(3,4),(0,4),(4,1),(5,1)] and the graph will be like below: Then I want to know how to connect…
user14385051
2
votes
1 answer

How is the branch and bound algorithm faster than the brute force algorithm when solving the Traveling Salesman Problem?

I understand how the Branch and Bound Algorithm works to solve the Traveling Salesman Problem but I am having trouble trying to understand how the algorithm is faster than brute-force. The way I see it you will go through all the paths in the end. …
Fateh
  • 302
  • 2
  • 12
2
votes
1 answer

Variable branching vs. constraint branching

Can someone explain to me, what the difference is between variable branching and constraint branching (Ryan and Foster)? I was reading the article: " The Solution of Massive Generalized Set Partitioning Problems in Aircrew Rostering" by D.M. Ryan…
2
votes
1 answer

CPLEX generic callbacks, node LP for cut separation

I am setting up a branch-and-cut algorithm using the generic callback framework through the C API of CPLEX 12.10. At each node, the separation problem is based on the current node LP and detects locally valid cuts, that if violated are added for…
2
votes
2 answers

Using a queue to solve TSP (Branch and Bound)

I'm working on a Branch and Bound algorithm for the Traveling Salesman Problem and I've run into a little hitch. I'm using a pretty standard Queue with Nodes representing subsets of vertices (paths). I'm pretty sure I have the whole thing worked…
fullOfQuestions
  • 453
  • 1
  • 11
  • 25
2
votes
1 answer

Is there a good option for creation of custom branching rules in branch-and-bound for MILPs in Python?

Basically, I want to recreate the conceptual results from the paper "Learning to Branch in Mixed Integer Programming" by Khalil, et al, at the same time avoiding, if possible: 1)The necessity of obtaining an academic license for CPLEX (which was…
2
votes
1 answer

how to make undo in backtracking? I'm having problems with the recursively backtracking method

Well, I have this graph: I have to make a code based in Branch and Bound and using backtracking, that has to show the optimum way to match the nodes of a graph. So in this example, the optimum solution must be >> [(1,4),(2,3)]. But my algorithm,…
2
votes
0 answers

What's the best algorithm give size N for knapsack?

I was wondering given a very small set of items, a medium and a very large what the best algorithms (Dynamic Programming, Greedy, Branch and Bound) are and their efficiencies. I am pretty sure If I have four items(with different weights) and a…
2
votes
0 answers

Branch and Bound: How to determine Lower Bound Cost

I want to write a program to solve a board game. In this game, there are two boards. One is source board S. Another one is target board T. My goal is to move pieces in the board S so that they appear the same as in the board T with smallest number…
Eric Tang
  • 207
  • 1
  • 4
  • 10