摘要
采用原对偶内点法求解线性规划问题,对初始点要求严格。根据初始可行内点的准则,定义了相应的达成度函数,并由达成度函数定义了适应值函数,从而提出了基于演化计算的线性规划原对偶内点法中的初始点选取算法。该算法基于和声搜索演化算法实现,经数值实验测试,结果表明,对所选取测试的典型线性规划问题,算法都能求得大部分问题的初始可行内点。
线性规划(Linear programming, LP)是一类重要的数学规划问题,它应用广泛、发展较快、方法较成熟,已成为辅助人们进行科学管理的一种数学方法。到目前为止,求解线性规划的常见方法有:单纯形法及对偶单纯形
单纯形算法的特点是从一个基可行解旋转到另一个基可行解,从几何上而言就是从可行域的一个顶点迭代到另一个顶点,直至到达最优顶点为止。单纯形方法简单、实用,针对小规模的线性规划求解非常有效。1972年,Klee和Minty举例说明了单纯形算法的时间复杂性是指数型,因此线性规划问题是否存在多项式型有效算法便成了计算机科学家和数学家迫切需要研究的问题。前苏联数学家Khachian在1979年给出了一个求解线性规划的椭球算法,计算复杂性为O(
内点算法对初始点的要求比较严格,既要满足原可行性和对偶可行性、又要求在中心路径邻域内。文献[
本文依据文献[
考虑线性规划及对偶问题
(1) |
式中: 。
采用文献[
要求初始点及参数与满足以下准则:
准则0 ;; ; (对参数的要求)
准则1 ; (原可行性)
准则2 ; (对偶可行性)
准则3 ; (在中心路径邻域内)
其中:,,,, ,表示2范数。
直接寻找满足上述准则的初始点较为困难,下面采用进化算法,建立适应值函数,利用和声搜索算法(Harmony search, HS)优化适应值函数,从而获得满足条件的初始点。
对初始点的选取,若采用Monte Carlo随机产生的方式,是很难得到符合满足上述准则的初始点。演化计算(Evolutionary computation, EC)是一类受自然进化和演变启示而提出的各种计算方法。常见的演化计算有遗传算法(Genetic algorithm, GA)、粒子群优化算法(Particle swarm optimization, PSO)、蚁群算法(Ant colony optimization, ACO)、差分进化算法(Differential evolution, DE)及和声搜索算法等,更多的演化计算详见文献[
采用演化计算选取初始点,首先考虑演化计算种群中个体的构成分量。一种方案可以将初始点直接作为种群个体,但它们受到线性规划中矩阵A和向量b、c的有关等式约束(即满足原可行性及对偶可行性)。对种群中个体分量的选择,做如下分析。
对非齐次方程组 中,设为其一个特解,为其导出组的基础解系,则其通解为,其中为任意常数。当取适当值时,,从而满足准则1。
利用方程构造,这里。对,设为其一个特解,为其导出组的基础解系,则其通解为,其中,为任意常数,则的前个分量就是,而剩余的个分量就是;同理,当取适当的值时,就可使得,及满足准则2。
定义种群优化算法中个体构成分量为。其中,,,且个体分量维数为dim=2+r+s。
在演化算法求解问题的过程中,演化算法依据个体适应值来挑选父代,采用不同的算子来产生新的种群子代,一般子代的适应值优于父代的适应值,在不断的迭代演化过程中,最终得到符合要求的个体子代,求得问题的解。可见,演化计算求解问题,关键问题之一就是将问题转换为一个最优化问题——设计合适的种群个体适应值函数。
为了构造演化计算的适应值函数,对上述4个准则,定义如下几个达成度函数
(2) |
(3) |
(4) |
(5) |
如果上述条件都满足,则,于是构造差项
,使其最小。
有了上面的分析,定义演化计算的适应值函数为
当且仅当时,则找到可行内点。
通过演化计算求解对偶内点法的初始点选取问题的算法流程描述如下。
算法1 演化计算寻找可行初始内点算法
Step 1 问题数据A, b, c, m, n初始化。
Step 2 种群演化计算参数初始化,如种群大小popsize等。
Step 3 初始化种群。
Step 4 求种群中每个个体的适应值。
Step 5 选取种群中最优适应值bestfit和对应个体bestx。
Step 6 如果bestfit≤0(满足约束要求)或超过最大迭代次数,则迭代结束;转Step 12。
Step 7 依据种群优化算法,生成新个体。
Step 8 计算新个体的适应值。
Step 9 淘汰适应度差的个体。
Step 10 选取种群中最优适应值bestfit和对应个体bestx。
Step 11 返回 Step 6。
Step 12 如果bestfit≤0,则根据bestx构造可行初始点。
和声搜索算法是 2001 年韩国学者Geem等人提出的一种新颖的智能优化算法,具有通用、简单、易于实现、群体协同搜索等优
算法2 和声搜索求解初始点选取算法
Step 1 问题数据Am×n,b,c初始化,问题维数dim。
Step 2 参数初始化:①和声记忆库的大小HMS;②和声记忆库取值概率HMCR;③音调微调概率PAR;④音调微调带宽bw;⑤最大创作次数Tmax。
Step 3 随机初始化和声记忆库。
Step 4 求种群中每个个体的适应度fitness。
Step 5 选取种群中最优适应值bestfit和其个体bestx。
Step 6 设当前迭代次数t=1。
Step 7 如果bestfit≤0或迭代次数t>Tmax,则迭代结束;goto Step 28。
Step 8 i=1
Step 9 while i>dim,则goto Step 22。
Step 10 产生[0,1]之间的随机数rand1。
Step 11 如果 rand1≥HMCR,则goto Step 14。
Step 12 随机产生xnew(i)。
Step 13 Goto Step 20。
Step 14 产生[1,HMS]之间的随机整数d。
Step 15 xnew(i)=HM(d,i)。
Step 16 产生[0,1]之间的随机数rand2。
Step 17 如果 rand2≥PAR,则goto Step 20。
Step 18 产生[-1,1]之间的随机数rand3。
Step 19 xnew(i) = xnew(i)+bw*rand3。
Step 20 i=i+1。
Step 21 Goto Step 9。
Step 22 计算新个体的适应值newfit=f(xnew)。
Step 23 选择HM中适应值最差的和声worstx和其适应值worstfit。
Step 24 如果newfit优于worstfit,则用newfit、xnew替换worstfit、worstx。
Step 25 选取种群中最优适应值bestfit和其个体bestx。
Step 26 t=t+1。
Step 27 返回 Step 7。
Step 28 如果bestfit<=0,则根据bestx构造可行初始点。
对线性规划问题,选取了如下9个线性规划问题,如
算法参数设置:①和声记忆库的大小HMS=10;②和声记忆库取值概率HMCR=0.9;③音调微调概率PAR=0.3;④音调微调带宽bw=0.01;⑤最大创作次数Tmax=10 000。
测试问题中,种群个体 的搜索范围分别设为 。
为了消除随机数对算法的影响,对每个问题,算法独立执行100次,
实验结果表明,对8个存在最优解的线性规划问题,除了LP03外,其他7个问题都找到多个满足条件的初始可行内点,且大部分问题(除了LP03、LP07外)在100次独立运行中,都有超过80%的比例找到初始可行内点,且最小迭代次数和平均的迭代次数都远远小于Tmax。
线性规划问题
(6) |
式中:。该问题特点是对具有个变量的问题,单纯形方法起点取为原点时,需要次迭代才能找到其最优解,即遍历所有顶点才能到达最优解。
当时,取,即LP09,对应的线性规划为
(7) |
其最优解为,最优目标值为1。若初始点取为,采用单纯形方法,则在可行域上的单纯形迭代过程为,如

图1 单纯形法迭代过程示意图
Fig.1 Schematic diagram of simplex iterative process
采用本文的方法,找到一组满足条件的初始可行内点为:
, |
, |
, |
采用文献[

图2 原对偶内点算法求解的收敛图及目标函数的收敛图
Fig.2 Convergence graph of the primal-dual interior point algorithm
此外,对于Klee⁃Minty问题,当n分别取5、10、20,的情况,经程序运行测试,结果数据统计如
线性规划内点法的难点在于初始可行内点要满足多个准则,本文对每一个准则分别构造了相应的达成度函数,建立了演化计算的适应值函数,通过优化该适应值函数获得线性规划原对偶内点算法的初始内点。计算结果表明,对8个存在最优解的线性规划问题,其中7个问题都找到了多个初始可行内点(1个问题没有找到);并把该方法应用于求解Klee‑Minty问题。
基于演化计算的初始点选取,算法虽具有通用性,且可以找到大部分问题的初始可行内点,但由于演化算法本身具有的随机性,并不能保证算法的每一次运行都能找到满足全部准则的初始可行内点,而且问题规模越大,算法的迭代次数也较多,甚至可能寻找失败。可是,即使算法返回失败的结果,其寻找的初始点也符合准则中大部分要求。后继将对这些情况进行进一步的研究,以期获得更好的结果。
参考文献
潘平奇. 线性规划计算(上)[M]. 北京: 科学出版社, 2016. [百度学术]
PAN Pingqi. Linear programming calculation (Volume 1)[M]. Beijing: Science Press, 2016. [百度学术]
潘平奇. 线性规划计算(下)[M]. 北京: 科学出版社, 2016. [百度学术]
PAN Pingqi. Linear programming calculation (Volume 2)[M]. Beijing: Science Press, 2016. [百度学术]
张建中, 许绍吉. 线性规划[M]. 北京: 科学出版社, 1999. [百度学术]
ZHANG Jianzhong, XU Shaoji. Linear programming [M]. Beijing: Science Press, 1999. [百度学术]
方述诚, 普森普拉. 线性优化及扩展理论与算法[M]. 北京: 科学出版社,1994. [百度学术]
MONTEIRO R D C, ADLER I. Interior path following primal-dual algorithms. Part I: Linear programming[J]. Mathematical Programming, 1989, 44(1/2/3): 27-41. [百度学术]
DARVAY Z, TAKÁCS P R. New method for determining search directions for interior-point algorithms in linear optimization[J]. Optimization Letters, 2017(1): 1-18. [百度学术]
KOJIMA M, MEGIDDO N, Mizuno S. Primal-dual infeasible-interior-point algorithm for linear programming[J]. Mathematical Programming, 1993, 61(1/2/3): 263-280. [百度学术]
DANHUA Z, MINGWANG Z. A full-newton step infeasible interior-point algorithm for linear complementarity problem[J]. Nonlinear Analysis: Real World Applications, 2011, 12(1): 545-561. [百度学术]
BAI Y Q, LESAJA G, ROOS C, et al. A class of large-update and small-update primal-dual interior-point algorithms for linear optimization[J]. Journal of Optimization Theory & Applications, 2008, 138(3): 341-359. [百度学术]
BAI Y Q, GHAMI M E, ROOS C. A comparative study of kernel functions for primal-dual interior-point algorithms in linear optimization[J]. SIAM Journal on Optimization, 2004,15(1): 101-128. [百度学术]
YE Yinyu. An O(
YE Yinyu. On the complexity of approximating a KKT point of quadratic programming[J]. Math Programming, 1998(80): 195-211. [百度学术]
FOUTAYENI Y E, BOUANANI H E, KHALADI M. An efficient fifth-order method for linear optimization[J]. Journal of Optimization Theory and Applications, 2016, 170(1): 189-204. [百度学术]
雍龙泉.基于上方一致光滑逼近函数的高阶牛顿法求解线性规划[J].吉林大学学报(理学版),2019,57(2): 265-270. [百度学术]
YONG Longquan. High order newton method for solving linear programming based on uniform smooth approximation function from above[J]. Journal of Jilin University (Science Edition), 2019,57(2): 265-270. [百度学术]
雍龙泉.线性规划的原对偶内点算法数值实验初步[J].科学技术与工程,2007(18): 4576-4579. [百度学术]
YONG Longquan. Primary numerical experiment to the primal-dual interior point algorithm for linear programming[J]. Science Technology and Engineering, 2007(18): 4576-4579. [百度学术]
李士勇, 李研, 林永茂. 智能优化算法与涌现计算[M]. 北京: 清华大学出版社,2019. [百度学术]
LI Shiyong, LI Yan, LIN Yongmao. Intelligent optimization algorithms and emergent computation[M]. Beijing: Tsinghua University Press, 2019. [百度学术]
TUO Shouheng, ZHANG Junying, YONG Longquan, et al. A harmony search algorithm for high-dimensional multimodal optimization problems[J]. Digital Signal Processing: A Review Journal, 2015,46(11): 151-163. [百度学术]
YONG Longquan, TUO Shouheng, GAO Kai. Harmony search with teaching-learning algorithm for nonnegative linear least square[J]. Journal of Interdisciplinary Mathematics, 2017, 20(8): 1661-1677. [百度学术]
雍龙泉, 拓守恒, 史加荣. 约束处理技术及应用[J].计算机科学与探索, 2018,12(6): 1013-1020. [百度学术]
YONG Longquan, TUO Shouheng, SHI Jiarong. Constraint-handling technique and applications[J]. Journal of Frontiers of Computer Science and Technology, 2018,12(6): 1013-1020. [百度学术]
黎延海, 拓守恒, 雍龙泉. 动态选择策略的和声教与学混合算法[J]. 计算机应用研究, 2019,36(12): 3679-3684. [百度学术]
LI Yanhai, TUO Shouheng, YONG Longquan. Hybrid algorithm based on harmony search and teaching-learning-based optimization using dynamic selection strategies[J]. Application Research of Computers, 2019,36(12): 3679-3684. [百度学术]