Concave Programming
Concave Programming
N ON - LINEAR P ROGRAMMING
AND E NVELOPE T HEOREM
CONTENTS
Concave programming 264
Karush-Kuhn-Tucker (KKT) conditions 264
The envelope theorem 271
Utility maximization: Roy’s identity 271
Cost minimization: Shephard’s lemma 272
The Lagrange multiplier as shadow value 273
C O NC A VE PR O G R A M M I NG
Concave programming refers to a type of optimization problem where the
objective function is a concave function and the feasible region is a convex set.
Concave programming, a form of non-linear programming, is used to optimize
functions subject to inequality constraints. The objective and constraint
functions are assumed concave. Since the negative of a convex function is
concave, it also considers convex functions. Concave programming can minimize
a function by maximizing the negative of that function. The goal is to find the
point in the feasible region that minimizes the objective function. Some
applications of concave programming include portfolio optimization, resource
allocation, and revenue management.
K A R U S H -K U H N -T U C K E R (KKT) C O ND IT IO NS
The Karush-Kuhn-Tucker (KKT) conditions, also known as the Kuhn-
Tucker (KKT) conditions, are a set of first-order necessary conditions for
solving non-linear optimization problems (with equality and inequality
constraints), including concave programming problems.
𝑍 = 𝑓(𝑥1 , 𝑥2 , 𝜆) + 𝜆𝑔(𝑥1 , 𝑥2 )
b) 𝑥𝑖 ≥ 0
𝜕𝑍
c) 𝑥̅𝑖 =0 𝑖 = 1,2
𝜕𝑥𝑖
𝜕𝑍
2. a) = 𝑔(𝑥̅1 , 𝑥̅2 ) ≥ 0 (≤ for a minimization problem)
𝜕𝜆
b) 𝜆̅ ≥ 0
𝜕𝑍
c. 𝜆̅ =0
𝜕𝜆
𝜕𝑍
where the condition 𝜆̅ = 0 is called the complementary-slackness condition,
𝜕𝜆
meaning that both 𝑥̅ and 𝑓′(𝑥̅ ) cannot simultaneously both be nonzero.
The rationale for the conditions (a) to (c) is demonstrated in the three scenarios
Figure 20.1 For a value 𝑥 to give a local maximum, it must satisfy the following
three conditions: