6.1. Algorithm A: Branch-and-bound algorithm for solving MINLP
Step 1:
Solve the NLP relaxed original problem, and set its objective function value, TC to the lower bound of the optimal solution of MINLP problem, ZL = TC.
Step 2:
If integer solutions are obtained for integer variables, the process stops, and if not, set the upper bound ZU → ∞.
Step 3:
Form the subsets by adding constraints one at a time and the resulting NLP relaxed subsets are solved one by one; Check the feasibility of the solutions, and keep the feasible solutions to form nodes. If the solutions are integer, update ZL, i.e., set ZL equal to the new objective value.
Step 4:
Compare ZL with ZU: If ZL ⩽ ZU, update ZU by ZU ← ZL.
Step 5:
Look for the most promising node for further fathoming. If not available, stop; otherwise repeat Steps 2–4.