On a Dual Direct Cosine Simplex Type Algorithm and Its Computational Behavior

(e goal of this paper is to propose a dual version of the direct cosine simplex algorithm (DDCA) for general linear problems.(e proposed method has not artificial variables, so it is different from both the two-phase method and big-Mmethod. Our technique solves the dual Klee–Minty problem via two iterations and solves the dual Clausen problem via four iterations. (e power of the proposed algorithm is evident from the extensive experimental results on benchmark problems adapted from NETLIB. Preliminary results indicate that this dual direct cosine simplex algorithm (DDCA) reduces the number of iterations of the twophase method.


Introduction
Linear programming plays an important role in the optimization theory. Many real-world problems can be formulated as linear or nonlinear mathematical models. e simplex method is the common tool for solving linear programs. It is an iterative method that was developed by Dantzig [1][2][3].
ere are many pivot rules for the simplex-type algorithm such as the exterior point simplex algorithm [4][5][6], primal-dual exterior point algorithm [7], and max-out-in pivot rule [8]. It is known that the application of the simplex algorithm requires at least one basic feasible solution. On the other hand, the common techniques that are used for determining an initial feasible basis are the twophase and big-M methods. e main drawback of these techniques lies in requiring the introduction of artificial variables and increasing the dimension of the problem. Corley et al. [9] introduced the cosine simplex algorithm for solving linear programs. Yeh and Corley [10] proposed a simple direct cosine simplex algorithm (DCA) which solves the Klee-Minty Problem [11] via two iterations. ey deduced that their algorithm reduced the number of iterations of simplex in most cases in their experimental results. Li and Li [12] explained the relationship between the cosine pivot rule and the most-obtuse-angle pivot rule, proposed by Pan [13]. In this paper, we propose a dual version of a simple direct cosine simplex algorithm (DDCA) which solves the dual Klee-Minty class of problems via two iterations while the two-phase method solves this class in n+1 iterations where n is the size of the problem. Our technique also solves Clausen class of problems via four iterations, but the two-phase method solves this class in 2n-1 iterations where n is the size of the problem. Our technique does not require the introduction of artificial variables. e rest of the paper is organized as follows. Section 2 describes the proposed DDCA algorithm and its characteristics. Benchmark problems "Klee-Minty and Clausen problems" are presented in Section 3. In Section 4, we introduce illustrations of the proposed method with two examples. Computational experiments are proposed in Section 5. Finally, conclusions and future work are proposed in Section 6.

Dual Cosine Simplex Algorithm (DDCA)
We consider the linear programming (LP) problem in standard form: (P) max b T y: A T y � c; y ≥ 0 , where A is an m × n matrix, x and c are n-dimensional vectors, and T denotes transposition. e dual of (P) is the problem.
(D) min c T x: Ax ≥ b ,where y is an m-dimensional vector.
For constraint i of (D), define cos θ i � ( j∈N (a ij c j ) 2 / j∈N (a ij ) 2 ) as the cosine of angle θ i between the constraints i and the objective function where b i < 0 and N is the index set of the nonbasic variables (Algorithm1).

Remark 1.
ere is no proof for the correctness of the above cosine criteria. Hence, it is not true for ever.

Benchmark Problems
In this section, we present two well-known classes of linear programming problems, Klee-Minty class of problems [11] is the first problem and the other is Clausen class of problems [14] as illustrated in the following models: Clausen problem.

(1)
Klee and Minty [11,14] proved that the simplex algorithm is an exponential algorithm in 1972 (for the worst case). An interesting result is that the dual simplex method solves the Klee-Minty problem in a polynomial number of iterations. Another challenging exponential example is shown in [14]. e advantage of Clausen's example [14] is that the dual simplex is exponential on the dual problem, whereas the primal simplex method is exponential on the primal problem.
e following examples show the superiority of our technique over the two-phase method. Example 1 shows that the two-phase method requires 6 tableaus while our technique requires 3 iterations only, without including the initial one.

Illustrative Examples
Example 1. Consider the following Random Linear Programming Problem: e variables x 3 and x 6 are slack variables, but the variables x 4 and x 5 are the surplus variables for the corresponding constraints. We calculate cos θ i for every i � 2, 3 (in the first iteration) as follows: e value of cos θ 2 is bigger than the value of cos θ 3 . erefore, the variable x 4 is the leaving variable. From STEP 2, the entering variable is calculated as follows.
Furthermore, the two-phase method requires 6 iterations, as shown in Table 2, without including the initial one.

Example 2. Dual Klee-Minty problem.
Consider the following dual Klee-Minty problem of size n � 3: Step 1 (dual feasibility condition): let N is the index set of the nonbasic variables. e leaving variable, x i , is the basic variable having the maximum cos θ i for minimization problem, where cos θ i � ( j∈N (a ij c j ) 2 / j∈N (a ij ) 2 ) is the angle between the constraint i and the objective function. e tie is broken by choosing the most negative value in the right hand side.
Step 2 (dual optimality condition): given that x i is the leaving variable, the entering variable is the nonbasic variable a ij < 0 that corresponds to min |b i /a ij |: a ij < 0 and j ∈ N e ties are broken arbitrary. If a ij ≥ 0 for all nonbasic variables, then the problem has no feasible solution.
Step 3: apply a pivoting End while e current basis is feasible Apply the simplex algorithm.   Iteration subject to : e variables x 4 , x 5 , and x 6 are the surplus variables for the corresponding constraints. We calculate the corresponding cos θ i in the Iteration 0 for every i � 1, 2, 3 as follows: e value of cos θ 3 is bigger than the values of cos θ 1 and cos θ 2 . We choose x 6 as the leaving variable. e entering variable is calculated as follows (STEP 2): Iteration Iteration Mathematical Problems in Engineering Table 4: e solution of Example 2 by the two-phase method.
On the other hand, the two-phase method requires 5 iterations, as shown in Table 4, without including the initial one.

Computational Experiments
In this section, we present the computational results of the dual cosine simplex algorithm (DDCA) and two-phase method for dual Klee-Minty and dual Clausen classes of problems. We compare the number of iterations of the dual cosine simplex algorithm (DDCA) with the two-phase method. We used different tolerances to reduce the number of iterations for each benchmark problem. We used the twophase method [3,[15][16][17][18] to evaluate the effectiveness of the proposed method. On the other hand, the two-phase method was used for the problems contain " ≥ " constraints and/or equality constraints. e programming language used was MATLAB v7.01 SP2 with default options. All codes were run under 64-bit Window 8.1 Operating System having Core (TM)i5 CPU M 460 @2.53 GHz, 4.00 GB of memory.
It is clear that the basic difference between the dual cosine simplex method (DCSM) and the two-phase method is that our technique does not involve artificial variables. From Table 5, the contribution of the proposed algorithm is to solve the Klee-Minty problem and Clausen problem with 2 and 4 iterations, respectively. On the other hand, the simplex method with two-phase method spends O(n) iterations for these problems. Table 6 characterizes 33 NETLIB test problems [19] were used in comparison to evaluate the effectiveness of the proposed methods. For simplicity, we converted the bounded variables and free variables into constraints. e accuracy rates of the solution obtained from the proposed algorithms were tested by LINGO software. Table 6 contains 6 categories of the problems according to the range of variable numbers as shown in Table 7. Table 6 contains the largest nonzero number, density, number of variables (after transferring sign constraints), number of constraints (after transferring sign constraints), " ≤ " constraint number, " ≥ " constraint number, and "�" constraint number.
In general, from Table 8, the contribution of the proposed algorithm is that DDCA is generally better than the two-phase method (22 problems vs. 11 problems). e details of our results are as follows: (a) Six problems with the variable numbers 30-99: DDCA is better than the two-phase method (5 problems vs. one problem) (b) Fifteen problems with the variable numbers 100-500: DDCA is better than the two-phase method (10 problems vs. 5 problems) (c) Five problems with the variable numbers 501-999: DDCA is better than the two-phase method (4 problems vs. one problem) (d) Four problems with the variable numbers 1000-1500: DDCA and two-phase methods are equal (2 problems vs. 2 problems) (e) Two problems with the variable numbers 1501-1999: the two-phase method is better than DDCA (0 problems vs. 2 problems) (f ) One problem with the variable numbers over 2000: the two-phase method is better than DDCA (0 problems vs. 1 problem)

Conclusions
We proposed a dual version of the direct cosine simplex algorithm (DDCA) for general linear problems. e proposed method has not artificial variables, so it is different from both the two-phase method and big-M method. Our technique solved the dual Klee-Minty problem via two iterations and solved the dual Clausen problem via four iterations. e power of the proposed algorithm is evident from the extensive experimental results on benchmark problems adapted from NETLIB. Preliminary results indicate that this dual direct cosine simplex algorithm (DDCA) reduces the number of iterations of the two-phase method.

Data Availability
All data and methods generated or used during the study are available within the article.

Conflicts of Interest
e authors declare that they have no conflicts of interest.