Introduction
Variants of the linear programming problem
general linear programming problem 的形式如下:
minimizesubject toc′xai′x≥bi,i∈M1,ai′x≤bi,i∈M2,ai′x=bi,i∈M3,xj≥0,j∈N1,xj≤0,j∈N2.
其中 M1∼3 为 finite index sets, N1∼2 为 {1,…,n} 的子集.
- decision variables: x1,…,xn
- feasible solution/vector: 满足所有约束条件的 vector x
- feasible set/region: 所有 feasible solution 的集合
- free/unrestricted variable: 如果 j 既不在 N1 也不在 N2, 我们就将 xj 称为 free/unrestricted variable
- objective/cost function: c′x
- optimal (feasible) solution: 使 objective function 取到最小值的 feasible solution x∗
- optimal cost: c′x∗
- unbounded (below): optimal cost 为 −∞
由于 ai′x≥bi↔(−ai)′x≥−bi 以及 ai′x=bi↔ai′x≥bi∧ai′x≤bi, 所以我们可以将约束不等式统一为 ai′x≥bi 的形式, 再令
A=−−a1′⋮am′−−,b=(b1,…,bm).
于是 LP problem 的 general form 成为:
minimizesubject toc′xAx≥b.
standard form 的 LP problem 形式如下:
\(minimizec′subject toAxx=bx≥0.\)
通过以下方式我们可以将 general form 转化为 standard form:
- Elimination of free variables: 将 free variable xj 改写为 xj+−xj−, 然后令 variables xj+,xj−≥0 <==> 任何实数可以被写成两个非负数之差;
- Elimination of inequality constraints: 对于 ∑j=1naijxj≤bi, 我们再添加一个满足 xn+1≥0 的 variable, 将不等式变为等式 ∑j=1naijxj+xn+1=bi. 我们将 xn+1 这样的 variable 称为 slack variable.
Piecewise linear convex objective functions
Convex function
A function f:Rn↦R is called convex if for every x,y∈Rn, and every λ∈[0,1], we have
f(λx+(1−λ)y)≤λf(x)+(1−λ)f(y).
Concave function
A function f:Rn↦R is called concave if for every x,y∈Rn, and every λ∈[0,1], we have
f(λx+(1−λ)y)≥λf(x)+(1−λ)f(y).
对于 convex function, 任意连接图像上的两个点, 两点之间的曲线总是会在它们这条线段的下方, 俗称 "下凸".
形如 f(x)=a0+∑i=1naixi 的 function 被称为 affine function, 其中 a0,…,an 为 scalars. affine functions 是唯一既是 convex 又是 concave 的 functions.
convex function 一个重要的 property 就是 local minima <==> global minima, 这对于设计 efficient optimization algorithms 很有用.
另一个 property 是一组 convex functions 取 max 得到的仍然是 convex function, concave function 则是反过来:
Theorem
Let f1,…,fm:Rn↦R be convex functions. Then, the function f defined by f(x)=maxi=1,…,mfi(x) is also convex.
Proof
令 x,y∈Rn,λ∈[0,1], 我们有
f(λx+(1−λ)y)=i=1,…,mmaxfi(λx+(1−λ)y)≤i=1,…,mmaxλfi(x)+(1−λ)fi(y)=λi=1,…,mmaxfi(x)+(1−λ)i=1,…,mmaxfi(y)=λf(x)+(1−λ)f(y).
形如 maxi=1,…,m(ci′x+di) 的 function 被称为 piecewise linear function. 它比 linear functions 更 general, 不一定能保持 linearity, 但是仍然是 convex 的 (根据上面的 theorem), 并且我们可以用它来 approximate 一个 general convex function.
不妨来考虑将 piecewise linear function 作为 objective function:
minimizesubject toi=1,…,mmax(ci′x+di)Ax≥b.
令 z=maxi=1,…,m(ci′x+di), 根据 z 的表达式我们可以写出一系列对 x 的 constraints, 此时我们需要最小化的对象为 z, 问题转化为如下形式 (z,x 为 decision variables):
minimizesubject tozzAx≥≥ci′x+di,b,i=1,…,m,
Abstract
可以看出来经过一个简单的转化, 我们可以将 objective function 为 piecewise linear function (或能用它近似的 convex function) 的非 LP prob 转化为一个 LP prob.
或者是 f 为 piecewise linear function 的形如 f(x)≤h 的 constraint 也能改写为
fi′x+gi≤h,i=1,…,m,
然后接着应用 LP.
显然绝对值函数是 piecewise linear function, 那么包含绝对值的 problems 都可以尝试用上述技巧进行转化. 具体而言, 形式如下的 prob:
minimizesubject toi=1∑nci∣xi∣Ax≥b,
Warning
系数 ci 必须为非负, 否则 objective function 就不是 convex function.
我们可以将其改写为:
minimizesubject to∑i=1nciziAx≥bxi≤zi,−xi≤zi,i=1,…,n,i=1,…,n.
或者利用 "任意非负数都可以写成两个非负数之和", 引入两个新的 variants 改为如下形式:
minimizesubject toi=1∑nci(xi++xi−)Ax+−Ax−≥bx+,x−≥0.
Algorithms and operation counts
optimization problems 一般使用 algorithms 解决, 算法的运行时间可以通过 count the number of arithmetic operations 来衡量, 但是对于复杂的问题来说具体的 count 不现实, 因此我们引入 magnitude notation.
Magnitude notation
Let f and g be functions that map positive numbers to positive numbers.
- We write f(n)=O(g(n)) if there exist positive numbers n0 and c such that f(n)≤cg(n) for all n≥n0.
- We write f(n)=Ω(g(n)) if there exist positive numbers n0 and c such that f(n)≥cg(n) for all n≥n0.
- We write f(n)=Θ(g(n)) if both f(n)=O(g(n)) and f(n)=Ω(g(n)) hold.