MCP is more general than Linear Complementarity Problems (LCP) and Nonlinear Complementarity Problems (NCP).
The form of MCP is as follows:
F(x) ⟂ lb ≤ x ≤ ub
which means
x = lb, thenF(x) ≥ 0 #lb means lower boundlb < x < ub, thenF(x) = 0x = ub, thenF(x) ≤ 0 #ub means upper bound
When there is no upper bound ub, and the lower bound lb=0, then it is a regular Nonlinear Complementarity Problem (NCP) of the form:
0 ≤ F(x) ⟂ x ≥ 0
which means, for each , we can get the below expressions:
F(x)' x = 0, F(x) ≥ 0, x ≥ 0
or, we can write:⟂
.
When F(x) is a linear mapping such as F(x) = Ax + q with matrix A and vector q, then it is a Linear Complementarity Problem (LCP).
Note: ⟂ denotes perpendicular symbol.

An example from GAMS tutorial doc:

Among which, ![]()
where,

.
Then implement it in GAMS with the codes as:
$TITLE simple mpec example variable f, x1, x2, y1, y2; positive variable y1; y2.lo = -1; y2.up = 1; equations cost, g, h1, h2; * define the function f cost.. f =E= x1 + x2;g.. sqr(x1) + sqr(x2) =L= 1; h1.. x1 =G= y1 - y2 + 1; h2.. x2 + y2 =N= 0; model example / cost, g, h1.y1, h2.y2 /; solve example using mpec min f;
the results are shown below pic with red mark:

本文详细解析了数学优化中MCP(混合互补问题)、LCP(线性互补问题)及NCP(非线性互补问题)的概念与形式,并通过一个GAMS实例展示了如何实现MCP。
67

被折叠的 条评论
为什么被折叠?



