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.
Read full abstract