: narural // the counter on branched nodes
b: natural // the number of branched nodes provided by the current node
Best ,
Live = // the set of nodes to be processed
while Live   do
 Select the node N from Live to be processed which gives the best F by using DFS
 Live =
if  F(N) = F(X) for a feasible complete solution X and F (X) < Best F then
  Best
  Solution =X // A complete solution is founded
else if Best F then
  Discard N from processing // partial candidate is rejected
else
  // partial candidate is kept
  Branch on N generating by respecting the problem constraints
  for   to     do
   Bound Nc: compute F(Nc) // bound calculation for the node Nc
   Live = Live U
  end for
end if
end while
Optimal Solution = Solution, Optimal Value = Best
Algorithm 3: Branch and Bound for hardware task placement [24].