The principal pivoting algorithm is a popular direct algorithm in solving the linear complementarity problem, and its block forms had also been studied by many authors. In this paper, relying on the characteristic of block principal pivotal transformations, a block principal pivoting algorithm is proposed for solving the linear complementarity problem with an M-matrix. By this algorithm, the linear complementarity problem can be solved in some block principal pivotal transformations. Besides, both the lower-order and the higher-order experiments are presented to show the effectiveness of this algorithm.
starting funds of research program611-612279Zhaoqing UniversityPresident’s Endowed Professorship Program of the University of Texas SystemChongqing Research Program of Basic Research and Frontier Technologycstc2016jcyjA05541. Introduction
For a given matrix A∈Rn×n and a given vector q∈Rn, the linear complementarity problem is to find a vector x∈Rn such that(1)xTw=0,x≥0,w=Ax+q≥0,where the superscript “T” denotes the transpose of a vector. This problem is usually abbreviated as LCP(A,q) and many problems can be converted into (1) under some conditions, such as the linear and quadratic programming problems, the free boundary problems of journal bearings, and Black-Scholes American option pricing problems (see [1–10] and the references therein).
To obtain the numerical solution of (1), many authors have presented all kinds of methods in recent decades. Some authors discussed the single principal pivoting algorithms based on the complementarity pivot idea (see [3, 11–18]). In [3], the authors presented the principal pivoting algorithm for the case that the matrix A was an M-matrix, and the concrete matrices were the tridiagonal matrix and the block tridiagonal matrix, which were derived from the free boundary problems of journal bearings. This algorithm was a direct algorithm, and the principal pivoting procedure was carried out element by element in a cycle. So, there needs to be many cycles when the LCP(A,q) was solved in the end. There were some papers to discuss the block principal pivoting algorithms for (1), such as [19–25]. In [20], the authors presented two block principal pivoting algorithms for the LCP(A,q) and the BLCP(A,q), respectively, and the system matrix A is the P-matrix. About the two block principal pivoting algorithms, the authors gave many numerical experiments to show the effectiveness in [20]. The two block principal pivoting algorithms were designed for the general P-matrix and there was a predetermined constant p involved in the block principle pivoting algorithms, which was related to the number of the block principal pivotal transformations. Besides the direct algorithms introduced above, there are many iteration methods, in which the modulus-based matrix splitting iteration methods were studied by many authors recently, and a series of related methods had been presented gradually (see [1, 9, 26–34] and the references therein). Other solving methods, such as the nonstationary extrapolated modulus algorithms, the projection type iteration methods, and the interior-point iteration methods, can refer to [2, 7, 35–41] and the references therein.
The iteration methods are affected by many factors, for instance, the parameter matrix Ω and the matrix splitting forms in the modulus-based matrix splitting related iteration methods and the parameter α in the projection type iteration methods. The forms of the direct methods are very simple sometimes, and the solving processes are only determined by the matrix A and the vector q. Moreover, the solutions obtained by the direct methods are the exact solutions, which are different from the approximate solutions obtained by the iteration methods. In this paper, we further discuss the direct methods for the LCP(A,q). We consider a particular linear complementarity problem that the system matrix A is an M-matrix. Utilizing the characteristic of the M-matrix’s block principal pivotal transformation, that is, any block principal pivotal transformation of an M-matrix can produce four particular submatrices, we provide a concrete block principal pivoting algorithm based on [3, 6, 7, 11, 20]. The numerical experiments show the effectiveness of this algorithm.
This paper is organized as follows. We introduce the block principal pivoting algorithm idea and present the concrete algorithm in Sections 2 and 3, respectively. Numerical experiments are shown and discussed in Section 4. Finally, we end this paper by the concluding remark in Section 5.
2. Block Principal Pivoting Algorithm
We first briefly review some definitions and notations in the following. The matrix A∈Rn×n is denoted by A≥0 if aij≥0,i,j=1,2,…,n. A matrix A∈Rn×n is called a Z-matrix if aij≤0(i≠j),i,j=1,2,…,n. A matrix A∈Rn×n is called an M-matrix if it is a Z-matrix and satisfies A-1≥0. The real vector v is denoted by v≥0(>0) if vi≥0(>0) holds for i=1,2,…,n. All these definitions and notations can refer to [1, 3, 7, 28] and the references therein.
Lemma 1 (see [11]).
If A∈Rn×n is a Z-matrix and x¯ satisfies conditions (1) q+Ax¯≥0 and (2) x¯≥0 in (1), then x¯i>0 whenever qi<0.
For the LCP(A,q), since the condition wixi=0 with wi≥0 and xi≥0,i=1,2,…,n are required, it is easy to establish the following conclusion from Lemma 1.
Lemma 2.
If A∈Rn×n is a Z-matrix and x¯ is a solution of (1), then x¯i>0 and w¯i=0 whenever qi<0.
In [3], the authors introduced the two concepts, that is, the basic variable wi and the nonbasic variable xi,i=1,2,…,n based on (1), and give Table 1.
The table of the LCP(A,q).
x1
x2
⋯
xn
w1
q1
a11
a12
⋯
a1n
w2
q2
a21
a22
⋯
a2n
⋮
⋮
⋮
⋮
⋮
wn
qn
an1
an2
⋯
ann
From the theory of LCP(A,q), we know that if the problem is solved, there must exist an equivalent converted LCP(A(i),q(i)) corresponding to the solution x∗ with w∗, as shown in the form of Table 2, where the LCP(A(i),q(i)) is obtained from the LCP(A,q) by the same computation transformations for both the rows and the columns of A. The index set Swnonbasic=i1,i2,…,ir corresponds to both the nonbasic variable set of wis and the basic variable set of xis; meanwhile, the index set Swbasic=ir+1,ir+2,…,in corresponds to both the basic variable set of wis and the nonbasic variable set of xis. Moreover, if the solution is unique, the solution of LCP(A(i),q(i)) as well as the solution of LCP(A,q) can be constructed from(2)xi1∗xi2∗⋮xir∗=-a11ia12i⋯a1ria21ia22i⋯a2ri⋮⋮⋮ar1iar2i⋯arri-1q1iq2i⋮qri≥0and xir+1∗xir+2∗⋮xin∗=00⋮0.At the same time, w∗ can be constructed from(3)wi1∗wi2∗⋮wir∗=00⋮0and wir+1∗wir+2∗⋮win∗=-ar+11iar+12i⋯ar+1riar+21iar+22i⋯ar+2ri⋮⋮⋮an1ian2i⋯anrixi1∗xi2∗⋮xir∗+qr+1iqr+2i⋮qni≥0.So, if the LCP(A,q) has a unique solution and the sets Swnonbasic and Swbasic are obtained, it can be solved easily from (2) and (3). It is well known that LCP(A,q) with an M-matrix A has a unique solution for any q∈Rn (see [1, 3, 28]); thus the main task is to find the above two sets. Besides, we remark here that Table 2 is only a representation form for the sake of later discussion, which has other representation forms, where {wi1,wi2,…,wir} and {xi1,xi2,…,xir} are exchanged, and both A(i) and q(i) are difference from Table 2 and it is enough to note the index set in the solving process of the LCP(A,q).
The table of the converted LCP(Ai,qi).
xi1
xi2
⋯
xir
xir+1
xir+2
⋯
xin
wi1
q1(i)
a11(i)
a12(i)
⋯
a1r(i)
a1r+1(i)
a1r+2(i)
⋯
a1n(i)
wi2
q2(i)
a21(i)
a22(i)
⋯
a2r(i)
a2r+1(i)
a2r+2(i)
⋯
a2n(i)
⋮
⋮
⋮
⋮
⋮
⋮
⋮
⋮
wir
qr(i)
ar1(i)
ar2(i)
⋯
arr(i)
arr+1(i)
arr+2(i)
⋯
arn(i)
wir+1
qr+1(i)
ar+11(i)
ar+12(i)
⋯
ar+1r(i)
ar+1r+1(i)
ar+1r+2(i)
⋯
ar+1n(i)
wir+2
qr+2(i)
ar+21(i)
ar+22(i)
⋯
ar+2r(i)
ar+2r+1(i)
ar+2r+2(i)
⋯
ar+2n(i)
⋮
⋮
⋮
⋮
⋮
⋮
⋮
⋮
win
qn(i)
an1(i)
an2(i)
⋯
anr(i)
anr+1(i)
anr+2(i)
⋯
ann(i)
Problem LCP(A(i), q(i)) is equivalent to the original LCP(A,q). Of course, both the equivalent LCP(A(i), q(i)) and the above corresponding table are not unique and even the original LCP(A,q) has a unique solution. Moreover, if we obtain Table 2, from the first two columns and the first row of which, we can construct the solution x∗ with w∗ of the LCP(A,q).
From Lemma 2, we know that if qi<0, then i∈Swnonbasic. However, if qi>0 or qi=0, we need to judge whether i∈Swnonbasic. For an M-matrix A with order n, if we set U=1,2,…,n and set a nonempty set N=i1,i2,…,ir⊆U with P=U-N, then through the block principal pivotal transformation, we can obtain a matrix(4)ANN-1-ANN-1ANPAPNANN-1APP-APNANN-1ANP,where(5)ANN-1≥0,-ANN-1ANP≥0,APNANN-1≤0and(6)APP-APNANN-1ANPis Schur complement matrix of ANN, which is a lower-order M-matrix. From (5) and (6), combining with the characteristic of the linear complementarity problem, a block principal pivoting algorithm can be presented to search for the set Swnonbasic and solve the LCP(A,q). The basic idea of this algorithm is that we set a small Swnonbasic according to the original q and then amplify Swnonbasic by adding the new indices until the size of Swnonbasic keeps unchanged; thus we construct the solution of the LCP(A,q) by (2). We show the concrete solving process of block principal pivoting algorithm in the following paragraph.
We denote the negative entry index set of q by Swnonbasic=N with N≠U and N≠Φ, the other entry index set by P, where U=1,2,…,.,n and Φ denotes the empty set. Then from Lemma 2 we set wN=0 and carry out the block principal pivotal transformation to the submatrix ANN of A, and then we have xN=-ANN-1(ANPxP+qN) and(7)wP=APP-APNANN-1ANPxP-APNANN-1qN+qP,wPTxP=0.The equation in (7) is an established complementarity problem and the system matrix is still an M-matrix with lower-order than the matrix A from (6). Then we can select the negative entry index set of the constant vector in the right side of wP and add it to Swnonbasic. At the same time, according to the negative entry index set, we carry out the block principal pivotal transformation to the lower-order complementarity problem (7). These processes can be continued until the constant vector in the last lower-order complementarity problem has no negative element and then Swnonbasic keeps unchanged. Once the last Swnonbasic is obtained, then we can apply (2) to construct the unique solution of (1).
About the above block principal pivoting algorithm, we have the following discussions.
(1) At the beginning of block principal pivoting algorithm, the solution can be obtained easily if Swnonbasic=N or Swnonbasic=Φ, that is, x∗=A-1(-q) and x∗=0, respectively.
(2) The block principal pivoting algorithm can be divided into two parts: the searching process of Swnonbasic and the constructing process of x∗.
(3) The orders of the linear complementarity problems in the block principal pivoting algorithm are decreasing gradually, and the total number of the block principal pivotal transformations is no more than n when the LCP(A,q) is solved.
3. Algorithm
In this section, based on the discussion in the above section, we present the pseudocodes of the block principal pivoting algorithm as Algorithm 1.
30: construct NegativeLocation by NegativeLocation and addNegativeLocation
31: return
32: end function
4. Numerical Experiment
In this section, we present three examples. In the first example, we illustrate the solving process of the block principal pivoting algorithm by two lower-order cases. In the second example, we apply the block principal pivoting algorithm to deal with a practical problem, that is, the free boundary value problem about the flow of water through a porous dam, which is a higher-order case. In the third example, we mainly investigate the relationship between the running time and the number of the block principal pivotal transformations in the block principal pivoting algorithm.
Example 1.
We set the system matrix A in the LCP(A,q) to be (8)A=10-10-1-120-1-10-13-10-10-14-10-1-105,and consider the variable q to be two cases: (9)q¯=-1,2,-1,2,1T,q^=-1,1,-1,0,1T.Thus, the matrix A is an M-matrix and the LCP(A,q¯) and the LCP(A,q^) have the same U=1,2,3,4,5 and the original negative element index set (10)S¯wnonbasic=S^wnonbasic=1,3,which corresponds to the the nonbasic variable set of wis and the basic variable set of xis. Applying the block principal pivoting algorithm to the LCP(A,q¯) and the LCP(A,q^), respectively, then we have the last negative element index sets (11)S¯wnonbasic=1,3and S^wnonbasic=1,2,3,4,5and the solutions are (12)x¯∗=43,0,13,0,0Twithw¯∗=0,23,0,13,23Tand (13)x^∗=167,1714,2928,2528,14Twith w^∗=0,0,0,0,0T,respectively. Besides, the numbers of the block principal pivoting transformations for the LCP(A,q¯) and the LCP(A,q^) are 1 and 2, respectively.
Example 2.
In this example, we consider the higher-order case and set A in the LCP(A,q) to be a block tridiagonal M-matrix, that is, A=Tridiag(-I,S,-I)∈Rn×n, where(14)S=tridiag-1,4,-1=4-1⋯00-14⋯00⋮⋮⋮⋮00⋯4-100⋯-14∈Rm×mand I is an identity matrix of order m. We set (15)q¯=-1,1,-1,1,…T,q^=-1,1,0,-1,1,0,…T∈Rnwith n=m2 and perform five experiments for m=20,30,40,50,60, respectively. This problem arises from the finite difference discretization on equidistant grid of a free boundary value problem about the flow of water through a porous dam (see [26] and the references therein). We consider three quantities, that is, the running time (CPU), the number of block principal pivotal transformations (NUM), and the error of the residual vector (ERROR). ERROR is defined as (16)ERROR=normminx,Ax+q,where both “norm” and “min” are the functions in Matlab software (see [1, 26]). Then the numerical results are shown in Table 3.
The block principal pivoting algorithm for solving the LCP(A,q).
LCP(A,q-)
LCP(A,q^)
n
400
900
1600
2500
3600
400
900
1600
2500
3600
CPU
0.005
0.025
0.094
0.298
0.732
0.007
0.038
0.122
0.341
1.012
NUM
1
1
1
1
1
2
2
2
2
2
ERROR
2e-15
3e-15
4e-15
5e-15
6e-15
2e-15
5e-15
4e-15
4e-15
1e-14
From Table 3, we can find that the block principal pivoting algorithm is effective and the number of the block principal pivotal transformations is very small in this example. Besides, the precision of the solution is very high and the running time will be increased when the model’s size is enlarged.
Example 3.
In this example, we consider the relationship between the running time and the number of block principal pivotal transformations. Set the system matrix A to be a tridiagonal M-matrix, that is, (17)A=tridiag-1,2,-1∈Rn×n,and set q to be an arbitrary vector, that is, q=randn(n,1), and carry out 10 experiments; then we obtain Table 4.
Comparison between the running time and the number of block principal pivotal transformations.
LCP(A,q),A=tridiag(-1,2,-1),q=randn(n,1),n=1000
q
q1
q2
q3
q4
q5
q6
q7
q8
q9
q10
CPU
0.121
0.105
0.087
0.089
0.068
0.102
0.086
0.088
0.072
0.065
NUM
21
20
21
17
22
22
18
27
35
21
ERROR
3e-12
2e-12
4e-12
5e-13
3e-11
3e-12
2e-12
3e-12
3e-11
9e-12
From Table 4, we can observe that when the number of block principal pivotal transformations is larger, the running time usually increases slightly. However, the relationship between the number of block principal pivotal transformations and the running time is not entirely consistent, which can be found from q1,q2,q8, and q9. In addition, although the precision of the solution decreases slightly compared with Example 2 with the increasing number of block principal pivotal transformations, we can see that the precision is still very high.
At the end of this section, we remark that since the LCP(A,q) is equivalent to the linear complementarity problem(18)wTx=0,w≥0,x=A-1w+A-1-q≥0,which is denoted by LCP(A-1,A-1(-q)) here, if A-1 is an M-matrix (A is called an inverse M-matrix), then the original LCP(A,q) can be solved through solving the LCP(A-1,A-1(-q)) by the block principal pivoting algorithm. In addition, besides the free boundary value problem about the flow of water through a porous dam mentioned in Example 2, there are other two applications where the block principal pivoting algorithm can be utilized: one is Black-Scholes American option pricing problem and the other is the free boundary problem of journal bearings. The discretized approximation models of the two problems are the LCP(A,q)s with M-matrices and the details can be found in [8, 9] and [3], respectively.
5. Concluding Remark
In this paper, we provide a block principal pivoting algorithm for solving the LCP(A,q) with an M-matrix. By this algorithm, the LCP(A,q) can be solved in the limited block principal pivotal transformations. The numerical experiments show that this algorithm is effective in practical applications and the numerical solutions possess very high precision.
Data Availability
No data were used to support the study in this paper.
Conflicts of Interest
The authors declare that they have no conflicts of interest.
Acknowledgments
The first author Fang’s work has been supported by the starting funds of research program (no. 611-612279), Zhaoqing University, China. The author Qiao’s work is partially supported by the President’s Endowed Professorship Program of the University of Texas System. The author Zhao’s work is supported by the Chongqing Research Program of Basic Research and Frontier Technology (no. cstc2016jcyjA0554). The authors are also thankful to Prof. Xiao-Dong Fan for his fruitful discussions.
BaiZ.-Z.Modulus-based matrix splitting iteration methods for linear complementarity problems201017691793310.1002/nla.680MR27596012-s2.0-78649670552CottleR. W.PangJ.-S.StoneR. E.1992New York, NY, USAAcademic PressMR1150683CottleR. W.SacherR. S.On the solution of large, structured linear complementarity problems: the tridiagonal case19763432134010.1007/BF01448184MR0461861FerrisM. C.PangJ-S.1997Philadephia, Pa, USAZbl0863.00054HarkerP. T.PangJ.-S.Finite-dimensional variational inequality and nonlinear complementarity problems: a survey of theory, algorithms and applications1990481-316122010.1007/BF01582255MR1073707LemkeC. E.HowsonJ. T.Equilibrium points of bimatrix games196412241342310.1137/0112033MR0173556MurtyK. G.19883Berlin, GermanyHeldermannSigma Series in Applied MathematicsMR949214Zbl0634.90037ShiX.-J.YangL.HuangZ.-H.A fixed point method for the linear complementarity problem arising from American option pricing201632492193210.1007/s10255-016-0613-6MR3552859Zbl1358.90141WuS.-L.LiC.-X.Two-sweep modulus-based matrix splitting iteration methods for linear complementarity problems201630232733910.1016/j.cam.2016.02.011MR3475523Zbl1334.901792-s2.0-84960927451ZhengH.LiW.QuW.A non-modulus linear method for solving the linear complementarity problem2016495385010.1016/j.laa.2016.01.032MR3462986Zbl1333.65062ChandrasekaranR.A special case of the complementary pivot problem19707263268MR0282653GravesR. L.A principal pivoting simplex algorithm for linear and quadratic programming196715348249410.1287/opre.15.3.482MR0211756JiangY.-J.ZengJ.-P.Direct algorithm for the solution of two-sided obstacle problems with M-matrix201118116717310.1002/nla.726MR2769040MurtyK. G.Note on a Bard-type scheme for solving the complementarity problem1974112-3123130MR0453774ZhouS.-Z.A direct method for the linear complementarity problem199082178182MR1299219ZhangL.HuX.-Y.On the direct method for linear complementarity problem19941615964MR1391694ZengJ.-P.JiangY.-J.Direct algorithms to solve the two-sided obstacle problem for an M-matrix200613754355110.1002/nla.487MR2253291ZhangL.-L.Two-step modulus-based matrix splitting iteration method for linear complementarity problems20115718399CottleR. W.The principal pivoting method revisited1990483, (Ser. B)36938510.1007/BF01582264MR10781932-s2.0-34249953247JudiceJ. J.PiresF. M.A block principal pivoting algorithm for large-scale strictly monotone linear complementarity problems199421558159610.1016/0305-0548(94)90106-6MR1269152KostrevaM. M.Block pivot methods for solving the complementarlty problem197821320721510.1016/0024-3795(78)90083-6MR0503864PortugalL. F.JúdiceJ. J.VicenteL. N.A comparison of block pivoting and interior-point algorithms for linear least squares problems with nonnegative variables19946320862564310.2307/2153286MR1250776Zbl0812.90124MurthyA. L.MurthyG. S.Principal pivoting method for solving column sufficient complmentarty problems200022252753210.1137/S0895479899363526MR1780198ToddM. J.A generalized complementary pivoting algorithm19746124326310.1007/BF01580244MR0391953ToddM. J.Extensions of Lemke's algorithm for the linear complementarity problem197620439741610.1007/BF00933128MR0444038Zbl0327.90018DongJ.-L.JiangM.-Q.A modified modulus method for symmetric positive-definite linear complementarity problems200916212914310.1002/nla.609MR2485040Zbl1224.651522-s2.0-60749119758FangX.-M.WeiC.-M.The general modulus-based Jacobi iteration method for linear complementarity problems20152981821183010.2298/FIL1508821FMR3403899LiW.A general modulus-based matrix splitting method for linear complementarity problems of H-matrices201326121159116410.1016/j.aml.2013.06.015MR3250427LiuS.ZhengH.LiW.A general accelerated modulus-based matrix splitting iteration method for solving linear complementarity problems201653218919910.1007/s10092-015-0143-2MR3502091MurtyK. G.On the number of solutions to the complementarity problem and spanning properties of complementary cones1972516510810.1016/0024-3795(72)90019-52-s2.0-0012072680RenH.WangX.TangX.-B.WangT.The general two-sweep modulus-based matrix splitting iteration method for solving linear complementarity problems20197741071108110.1016/j.camwa.2018.10.040MR3913650WuX.-P.PengX.-F.LiW.A preconditioned general modulus-based matrix splitting iteration method for linear complementarity problems of H-matrices20187941131114610.1007/s11075-018-0477-3MR3878918ZhangL.-L.Two-stage multisplitting iteration methods using modulus-based matrix splitting as inner iteration for linear complementarity problems2014160118920310.1007/s10957-013-0362-0MR31491232-s2.0-84893781415Zbl1334.90181ZhengN.YinJ.-F.Accelerated modulus-based matrix splitting iteration methods for linear complementarity problem201364224526210.1007/s11075-012-9664-9MR3101880Zbl1273.650752-s2.0-84884210449AhnB. H.Iterative methods for linear complementarity problems with upperbounds on primary variables198326329531510.1007/BF02591868MR707064BaiZ.-Z.The convergence of parallel iteration algorithms for linear complementarity problems1996329117BaiZ.-Z.EvansD. J.Matrix multisplitting relaxation methods for linear complementarity problems1997633-430932610.1080/00207169708804569MR14552392-s2.0-0030708166BaiZ.-Z.On the convergence of the multisplitting methods for the linear complementarity problem2006211677810.1137/S0895479897324032MR1709726HadjidimosA.TzoumasM.Nonstationary extrapolated modulus algorithms for the solution of the linear complementarity problem20094311-219721010.1016/j.laa.2009.02.024MR2522568HadjidimosA.LapidakisM.TzoumasM.On iterative solution for linear complementarity problem with an H+-matrix20123319711010.1137/100811222MR2902673HadjidimosA.ZhangL.-L.Comparison of three classes of algorithms for the solution of the linear complementarity problem with an H+-matrix201833617519110.1016/j.cam.2017.12.028MR3759704