Skip to content

[Rule] PARTITION to INTEGRAL FLOW WITH MULTIPLIERS #363

Description

@isPANN

Source: PARTITION
Target: INTEGRAL FLOW WITH MULTIPLIERS
Motivation: Establishes NP-completeness of INTEGRAL FLOW WITH MULTIPLIERS via a polynomial-time reduction from PARTITION. The reduction uses the standard vertex-multiplier gadget from Sahni's gain/loss-network construction: a unit of flow sent into item vertex v_i is amplified to exactly a_i units on its outgoing arc, so feasible integral flows encode subset selection. The crucial sink-side bottleneck then forces the selected subset to sum to exactly half the total, matching PARTITION rather than merely SUBSET-SUM with a lower bound.
Reference: Sahni, "Computationally Related Problems," SIAM Journal on Computing 3(4):262-279, 1974, Fig. 2.2.1 (the applicable ND33 construction); catalogued as ND33 in Garey & Johnson, Computers and Intractability, p.215. Even-Itai-Shamir (1976, SIAM Journal on Computing 5(4):691-703) concerns other Garey-Johnson flow entries, not this multiplier-flow reduction.

GJ Source Entry

[ND33] INTEGRAL FLOW WITH MULTIPLIERS
INSTANCE: Directed graph G=(V,A), specified vertices s and t, multiplier h(v)∈Z^+ for each v∈V-{s,t}, capacity c(a)∈Z^+ for each a∈A, requirement R∈Z^+.
QUESTION: Is there a flow function f: A->Z_0^+ such that
(1) f(a)<=c(a) for all a∈A,
(2) for each v∈V-{s,t}, Sum_{(u,v)∈A} h(v)*f((u,v)) = Sum_{(v,u)∈A} f((v,u)), and
(3) the net flow into t is at least R?
Reference: [Sahni, 1974]. Transformation from PARTITION.
Comment: Can be solved in polynomial time by standard network flow techniques if h(v)=1 for all v∈V-{s,t}. Corresponding problem with non-integral flows allowed can be solved by linear programming.

Reduction Algorithm

Summary:
Let the PARTITION instance be the multiset A = {a_1, a_2, ..., a_n} of positive integers, and let S = sum_i a_i.

This reduction is Sahni's 1974 sum of subsets -> N(i) construction (Fig. 2.2.1 in SIAM Journal on Computing 3(4)), specialized to the PARTITION target value M = S/2 when S is even. The relay vertex w and the single arc (w,t) of capacity M are the load-bearing bottleneck from Sahni's figure; they are what make the sink inflow equal exactly M under this repository's net_flow(t) >= R semantics.

  1. Odd-total preprocessing: If S is odd, output a fixed NO instance of INTEGRAL FLOW WITH MULTIPLIERS:

    • vertices: s, u, t
    • arcs: (s,u) and (u,t), both with capacity 1
    • multiplier: h(u) = 2
    • requirement: R = 1

    This target instance is infeasible because conservation at u requires 2 * f(s,u) = f(u,t), but f(u,t) <= 1, so the only integral possibility is f(s,u) = f(u,t) = 0, which fails R = 1. This correctly maps every odd-total PARTITION instance to NO.

  2. Even-total case: If S is even, let M = S/2 and construct the target instance exactly in Sahni's style.

  3. Vertices: Create vertices s, t, a relay vertex w, and item vertices v_1, v_2, ..., v_n.

  4. Arcs from the source: For each i = 1, ..., n, add arc (s, v_i) with capacity c(s, v_i) = 1.

  5. Amplifying arcs into the relay: For each i = 1, ..., n, add arc (v_i, w) with capacity c(v_i, w) = a_i.

  6. Single bottleneck arc into the sink: Add one arc (w, t) with capacity c(w, t) = M.

  7. Multipliers: Set

    • h(v_i) = a_i for each item vertex v_i
    • h(w) = 1

    Then conservation enforces

    • a_i * f(s, v_i) = f(v_i, w) at each v_i
    • f(w, t) = sum_i f(v_i, w) at w
  8. Requirement: Set R = M.

  9. Correctness (forward): If the PARTITION instance is YES, there is a subset I ⊆ {1, ..., n} with sum_{i in I} a_i = M. Set

    • f(s, v_i) = 1 and f(v_i, w) = a_i for i in I
    • f(s, v_i) = 0 and f(v_i, w) = 0 for i notin I
    • f(w, t) = M

    All capacities are respected. At each v_i, conservation holds because a_i * f(s, v_i) = f(v_i, w). At w, because h(w)=1, conservation is sum_i f(v_i, w) = f(w, t) = M. Hence the sink receives net inflow M = R, so the target instance is YES.

  10. Correctness (reverse): Suppose the constructed target instance is YES. For each i, the arc (s, v_i) has capacity 1, so integrality gives f(s, v_i) in {0,1}. Conservation at v_i forces f(v_i, w) = a_i * f(s, v_i), so each item contributes either 0 or exactly a_i into w. Conservation at w with h(w)=1 gives
    f(w, t) = sum_i a_i * f(s, v_i).
    The bottleneck arc (w, t) has capacity M, so f(w, t) <= M. The sink requirement says net inflow at t is at least R = M, and t has no outgoing arcs, so f(w, t) >= M. Therefore f(w, t) = M, hence
    sum_i a_i * f(s, v_i) = M = S/2.
    The selected indices I = { i : f(s, v_i) = 1 } therefore form a valid partition subset of exact half-sum. So the PARTITION instance is YES.

Key invariant: Sahni's item vertices convert each binary source choice f(s, v_i) in {0,1} into either 0 or a_i units entering the relay. The relay vertex w with multiplier 1, together with the single bottleneck arc (w,t) of capacity S/2, turns the repository's sink condition net_flow(t) >= R into an exact-equality test net_flow(t) = S/2.

Time complexity of reduction: O(n) time and O(n) graph size in the even branch; constant time and constant size in the odd branch.

Size Overhead

Symbols:

  • n = number of elements in the PARTITION instance
  • S = total sum sum_i a_i
  • a_max = max_i a_i
Target metric (code name) Polynomial (using symbols above)
num_vertices if S is even then n + 3 else 3
num_arcs if S is even then 2 * n + 1 else 2
max_capacity if S is even then max(a_max, S / 2) else 1
requirement if S is even then S / 2 else 1

Derivation: In the even branch, the construction has n item vertices plus s, w, and t, for n + 3 total vertices. It has n source arcs, n item-to-relay arcs, and one relay-to-sink bottleneck arc, for 2n + 1 arcs total. The odd branch returns a fixed 3-vertex, 2-arc NO instance. Thus the reduction has linear size overhead overall.

Validation Method

  • Closed-loop test: reduce a PARTITION instance to IntegralFlowWithMultipliers, solve the target with BruteForce, extract the selected subset from the unit-capacity source arcs, and verify that the extracted subset sums to exactly half of the source total.
  • Test with a known YES instance: A = {1, 2, 3, 4, 5, 5} with S = 20; the bottleneck should force sink inflow exactly 10.
  • Test with an even-sum NO instance: A = {3, 5} with S = 8; without the bottleneck this was a false positive, but with Sahni's relay-and-cap construction no feasible flow can reach requirement 4.
  • Test with an odd-sum NO instance: A = {1, 2} with S = 3; the reduction must return the fixed NO target instance from Step 1.
  • Compare the construction against Sahni's Fig. 2.2.1: source-to-item arcs of capacity 1, item-to-relay arcs of capacity a_i, and a single relay-to-sink arc of capacity M.

Example

Source instance (PARTITION):
A = {2, 3, 4, 5, 6, 4} with S = 24, so M = S/2 = 12.
A valid partition is A_1 = {2, 4, 6} and A_2 = {3, 5, 4}.

Constructed target instance (IntegralFlowWithMultipliers):

  • Vertices: s, v_1, v_2, v_3, v_4, v_5, v_6, w, t (9 vertices)
  • Arcs and capacities:
    • (s, v_i) has capacity 1 for each i = 1, ..., 6
    • (v_1, w): 2, (v_2, w): 3, (v_3, w): 4, (v_4, w): 5, (v_5, w): 6, (v_6, w): 4
    • (w, t): 12
  • Multipliers:
    • h(v_1) = 2, h(v_2) = 3, h(v_3) = 4, h(v_4) = 5, h(v_5) = 6, h(v_6) = 4
    • h(w) = 1
  • Requirement: R = 12

Solution mapping:
Choose the half-sum subset {a_1, a_3, a_5} = {2, 4, 6}.
Set

  • f(s, v_1) = f(s, v_3) = f(s, v_5) = 1
  • f(s, v_2) = f(s, v_4) = f(s, v_6) = 0

Then conservation at each item vertex forces

  • f(v_1, w) = 2
  • f(v_3, w) = 4
  • f(v_5, w) = 6
  • f(v_2, w) = f(v_4, w) = f(v_6, w) = 0

At the relay, because h(w)=1, conservation gives

  • f(w, t) = 2 + 4 + 6 = 12

So the sink receives net inflow 12 = R, exactly saturating the Sahni bottleneck arc. Conversely, any feasible flow in this constructed instance must send exactly 12 units through (w, t), so it certifies a subset of {2,3,4,5,6,4} summing to 12.

References

  • [Sahni, 1974]: [Sahni1974] Sartaj Sahni (1974). "Computationally Related Problems." SIAM Journal on Computing 3(4), 262-279.
  • [Karp, 1972]: [karp1972] Richard M. Karp (1972). "Reducibility among Combinatorial Problems." In Complexity of Computer Computations, 85-103.
  • [Garey and Johnson, 1979]: [garey1979] Michael R. Garey and David S. Johnson (1979). Computers and Intractability: A Guide to the Theory of NP-Completeness.

Metadata

Metadata

Assignees

No one assigned

    Labels

    GoodAn issue passed all checks.ruleA new reduction rule to be added.

    Type

    No type

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions