{"title":"GNU Octave and Python Implementation of Shor's r-Algorithm with Adaptive Step Control","authors":"P. Stetsyuk, Aleksandr Pylypovskyi, O. Khomiak","doi":"10.34229/2707-451x.22.3.10","DOIUrl":null,"url":null,"abstract":"r-algorithms, or subgradient methods with dilation of space in the direction of the difference of two sequential subgradients, were proposed by N.Z.Shor in 1970 in his doctoral thesis. Respective software implementations proved to be competitive with the most effective methods for smooth ill-conditioned problems, both in terms of reliability and calculation time and accuracy of results.\nThe article is devoted to the description of two software implementations of Shor's r-algorithm modification with a constant coefficient of space dilation and adaptive step control. The first program is implemented using the GNU Octave, and the second program is implemented using Python.\nMaterial of the paper is presented in three sections. In the first section, we describe a modification of the r-algorithm with a constant coefficient of space dilation in the direction of the difference of two sequential subgradients and an adaptive method for step size adjustment in the direction of the antisubgradient in the transformed space of variables. The software implementation of this modification is presented in the form of octave-function ralgb5a, which allows to find either approximation of the minimum point of a convex function, or approximation of the maximum point of the concave function. The code of the ralgb5a function is given with a brief description of its input and output parameters.\nThe second section describes test experiments to investigate efficiency of the octave-function ralgb5a to maximizing the piecewise linear concave function, which is obtained using the method of non-smooth penalty functions for the linear programming problem. Another example represents minimization of the piecewise linear convex function, which corresponds to the method of least modules. Results of these computational experiments for test problems with 200, 500, 1000, 1500 and 2000 variables are presented to demonstrate the effective operation of the octave-function ralgb5a.\nThe third section describes the python function ralgb5a and provides its code with a description of the input and output parameters. It is show, how the ralgb5a function can be accelerated by setting two parameters. The results of computational experiments to solve the test problem using the method of least modules for 5,000 variables and 10,000 observations are presented. Keywords: r-algorithm, linear programming problem, nonsmooth penalty function, least modulus method, GNU Octave, python.","PeriodicalId":34598,"journal":{"name":"Kibernetika ta kompiuterni tekhnologiyi","volume":" ","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2022-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Kibernetika ta kompiuterni tekhnologiyi","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.34229/2707-451x.22.3.10","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
r-algorithms, or subgradient methods with dilation of space in the direction of the difference of two sequential subgradients, were proposed by N.Z.Shor in 1970 in his doctoral thesis. Respective software implementations proved to be competitive with the most effective methods for smooth ill-conditioned problems, both in terms of reliability and calculation time and accuracy of results.
The article is devoted to the description of two software implementations of Shor's r-algorithm modification with a constant coefficient of space dilation and adaptive step control. The first program is implemented using the GNU Octave, and the second program is implemented using Python.
Material of the paper is presented in three sections. In the first section, we describe a modification of the r-algorithm with a constant coefficient of space dilation in the direction of the difference of two sequential subgradients and an adaptive method for step size adjustment in the direction of the antisubgradient in the transformed space of variables. The software implementation of this modification is presented in the form of octave-function ralgb5a, which allows to find either approximation of the minimum point of a convex function, or approximation of the maximum point of the concave function. The code of the ralgb5a function is given with a brief description of its input and output parameters.
The second section describes test experiments to investigate efficiency of the octave-function ralgb5a to maximizing the piecewise linear concave function, which is obtained using the method of non-smooth penalty functions for the linear programming problem. Another example represents minimization of the piecewise linear convex function, which corresponds to the method of least modules. Results of these computational experiments for test problems with 200, 500, 1000, 1500 and 2000 variables are presented to demonstrate the effective operation of the octave-function ralgb5a.
The third section describes the python function ralgb5a and provides its code with a description of the input and output parameters. It is show, how the ralgb5a function can be accelerated by setting two parameters. The results of computational experiments to solve the test problem using the method of least modules for 5,000 variables and 10,000 observations are presented. Keywords: r-algorithm, linear programming problem, nonsmooth penalty function, least modulus method, GNU Octave, python.
r-算法,即在两个连续次梯度差的方向上空间膨胀的次梯度方法,由N.Z.Shor在1970年的博士论文中提出。事实证明,在可靠性、计算时间和结果准确性方面,相应的软件实现与处理平滑病态问题的最有效方法具有竞争力。本文致力于描述具有恒定空间膨胀系数的Shor r r算法修改和自适应步进控制的两个软件实现。第一个程序使用GNU Octave实现,第二个程序使用Python实现。在第一节中,我们描述了在两个顺序子梯度的差的方向上具有恒定空间膨胀系数的r算法的修改,以及在变量的变换空间中在反子梯度的方向上调整步长的自适应方法。该修改的软件实现以倍频程函数ralgb5a的形式呈现,它允许找到凸函数的最小点的近似值,或者凹函数的最大点的近似。给出了ralgb5a函数的代码,并简要描述了它的输入和输出参数。第二节描述了研究倍频程函数ralgb5a最大化分段线性凹函数的效率的测试实验,该函数是使用线性规划问题的非光滑罚函数方法获得的。另一个例子代表了分段线性凸函数的最小化,它对应于最小模的方法。给出了这些针对200、500、1000、1500和2000个变量的测试问题的计算实验结果,以证明倍频程函数ralgb5a的有效操作。第三部分描述了python函数ralgb5a,并为其代码提供了输入和输出参数的描述。介绍了如何通过设置两个参数来加速ralgb5a函数。给出了用最小模方法对5000个变量和10000个观测值求解测试问题的计算实验结果。关键词:r算法,线性规划问题,非光滑罚函数,最小模方法,GNU Octave,python。