Master-Subproblem Communication Patterns

Once a large problem has been decomposed into a coordinating master problem and one or more smaller subproblems, the algorithm must specify what information is exchanged between them. This lesson introduces the general master-subproblem loop, the two main communication patterns (price-directive and resource-directive), and the termination conditions used in each.

Step 1 of 157%

Tutorial

The Master-Subproblem Loop

A decomposition algorithm splits a large problem into a coordinating master problem and several smaller subproblems — one per block. The master and the subproblems exchange information through a single structured channel.

  • The master sends each subproblem kk a signal σk\sigma_k.
  • Each subproblem kk solves its block (parameterized by σk\sigma_k) and returns a reply rkr_k.

The algorithm proceeds in rounds:

Master    σk    Subproblem k    rk    Master.\text{Master}\;\xrightarrow{\;\sigma_k\;}\;\text{Subproblem }k\;\xrightarrow{\;r_k\;}\;\text{Master}.

At each round the master inspects the replies, decides whether to terminate, and otherwise updates its signals before the next round.

A key point: subproblems never communicate with each other directly. All coordination flows through the master. This isolation is exactly what allows the subproblems to be solved in parallel.

For instance, a hospital network has three clinics and a central office that allocates the daily nursing budget. The central office (master) sends each clinic kk a budget σk\sigma_k, and each clinic (subproblem) returns the number of patients rkr_k it can serve under that budget. If σ1=4000, σ2=3000, σ3=5000\sigma_1 = 4000,\ \sigma_2 = 3000,\ \sigma_3 = 5000 and the clinics reply r1=50, r2=35, r3=70r_1 = 50,\ r_2 = 35,\ r_3 = 70, the central office records that the network served 50+35+70=15550 + 35 + 70 = 155 patients.

navigate · Enter open · Esc close · ⌘K/Ctrl K toggle