0-1 Integer Programming with Recursive Solution Generation

Resource Overview

0-1 integer programming has broad applications in assignment problems, knapsack problems, and even TSP problems - all belonging to NP-hard class where exhaustive search becomes infeasible for large-scale instances. This implementation demonstrates a recursive approach to systematically enumerate all possible solutions for verification purposes, with a notable discrepancy found when comparing results against textbook examples.

Detailed Documentation

0-1 integer programming finds extensive applications in areas like assignment problems and knapsack problems. Even the Traveling Salesman Problem (TSP) can be transformed into a 0-1 formulation. However, these problems all fall into the NP-hard category, making exhaustive search methods impractical for obtaining optimal solutions within acceptable time frames for large-scale instances. This program serves as an exercise, featuring a recursive algorithm that systematically enumerates all possible solution combinations through depth-first search with backtracking.

Notably, when applying this program to Example 3 on page 97 of "Operations Research Fundamentals and Applications (Third Edition)" by Hu Yunquan, the computed result shows: optimal solution x*=(1, 0, 0, 0, 0) with optimal value f(x*)=8. However, the textbook presents x*=(1, 0, 1, 0, 0) with f(x*)=4 as the optimal solution. This discrepancy raises questions about potential errors in the published example, inviting readers to verify independently.

The source code below employs recursive function calls to generate binary combinations representing all feasible solutions, evaluating objective function values through iterative constraints checking. Users may freely utilize this code without copyright restrictions. For large-scale 0-1 programming problems requiring advanced optimization techniques, please feel free to contact me. Thank you!

Technical note: The implementation requires at least 3 decision variables to demonstrate meaningful combinatorial complexity.