Acessibilidade / Reportar erro

A NEW STRATEGY TO SOLVE LINEAR INTEGER PROBLEMS WITH SIMPLEX DIRECTIONS

ABSTRACT

In this paper, we propose a new heuristic strategy to solve linear integer mathematical problems. The strategy begins by finding the optimal solution of the continuous associated problem and the simplex directions from that optimal solution. A total of n − m problems are generated and solved by the strategy, where m is the number of constraints and n is the number of variables of the problem. The best solution to those problems is the solution to the original problem. Several instance problems were randomly generated to validate the strategy, and our strategy finds good solutions in 80% of the instances. We also tested the proposed strategy with instances of the MIPLIB 2017. We compare a total of 39 instances and on average our strategy performed 47% fewer iterations than the solver, in 34 of 39 instances, the strategy found good solutions.

Keywords:
mixed integer linear programming; algorithms; heuristic

1 INTRODUCTION

Many practical problems can be formulated using integer programming. An Integer Linear Program (ILP) can be written as (1).

m a x z = c t x s u b j e c t t o A x b x 0 and integer. (1)

Where A is a m × n matrix, b is a m × 1 vector, c is a n × 1 vector and x is a n × 1 vector of variables. If some, but not all, variables of the problem are continuous we have a Mixed Integer Linear Program (MILP), it can be written as (2).

m a x z = c t x + d t y s u b j e c t t o A x + G y b y 0 x 0 and integer. (2)

Where G is a m × p matrix, d is a p × 1 vector and y is a p × 1 vector of variables. It could be challenging to solve general MILP or ILP problems efficiently, therefore, several strategies and methods are proposed in the literature to solve those problems. In this paper, we propose a new strategy to solve integer linear problems. Given an ILP and its LP relaxation solution, the heuristic solves one or more external MILP that aims at finding an integer solution closer to an edge of the LP relaxation solution. The strategy starts from an LP relaxation optimal solution x and the associated simplex directions d i , i = 1, 2, ..., mn. Using x and d i , the method defines a MILP that aims to find an integer solution closer to an edge, and since we have mn simplex directions, we can define mn MILP problems, therefore, the strategy performs at most nm iterations. Each iteration solves a MILP that is much easier than the original, and some of those can be infeasible. At the end of the strategy, we will have at most nm integer solutions. The solution with the best objective function value is selected. In most tests, the MILP problems take fewer iterations to be solved and generate a good integer solution to the original problem. The difference between our strategy and the strategies found in the literature is mainly in the use of the simplex directions for determining integers solutions.

2 BIBLIOGRAPHY REVIEW

The conventional exact strategies to solve ILP and MILP problems are the branch and bound, cutting plane and its variations, those methods are found in Nemhauser & Wolsey (1988NEMHAUSER GL & WOLSEY LA. 1988. Integer programming and combinatorial optimization. Wiley, Chichester. GL Nemhauser, MWP Savelsbergh, GS Sigismondi (1992). Constraint Classification for Mixed Integer Programming Formulations. COAL Bulletin, 20: 8-12.) and Wolsey (2007WOLSEY LA. 2007. Mixed integer programming. Wiley Online Library. 1-10 pp.). In problems with many constraints and variables, apart from special structured or well-solved problems, such as the problems described in Wolsey (2007WOLSEY LA. 2007. Mixed integer programming. Wiley Online Library. 1-10 pp.), it needs several iterations to find a solution. To overcome this, we have non-exact methods, such as heuristics, metaheuristics, and matheuristics methods, the one did not guarantee the optimum solution, but they need significantly fewer iterations to converge. Table 1 was mainly elaborated with information from Genova & Guliashki (2011GENOVA K & GULIASHKI V. 2011. Linear integer programming methods and approaches-a survey. Journal of Cybernetics and Information Technologies, 11(1).) and Fischetti & Lodi (2010FISCHETTI M & LODI A. 2010. Heuristics in mixed integer programming. Wiley Encyclopedia of Operations Research and Management Science,.) and, summarizes some of those strategies and methods.

Table 1
Strategies and Methods.

The feasibility pump, described in Fischetti et al. (2005FISCHETTI M, GLOVER F & LODI A. 2005. The feasibility pump. Mathematical Programming, 104(1): 91-104.) and Berthold et al. (2019BERTHOLD T, LODI A & SALVAGNIN D. 2019. Ten years of feasibility pump, and counting. EURO Journal on Computational Optimization, 7(1): 1-14.), is a heuristic strategy to efficiently solve mixed-integer problems. The one with any feasible solution of the set P=Axb, and defines its rounding. Each iteration searches for a point x*P that is as close as possible to the current x by solving the problem min δx,x:xP. Assuming δx,x is chosen properly, they claim that linear problems can be easily solved. When δx*,x=0, then x is a feasible MIP solution and the feasibility pump ends. Otherwise, x is replaced by the rounding of x , and the step is repeated until δx*,x=0. In Achterberg & Berthold (2007ACHTERBERG T & BERTHOLD T. 2007. Improving the feasibility pump. Discrete Optimization, 4(1): 77-86.) the feasibility pump was improved, and they can obtain better solutions for MILP instances.

According to Danna et al. (2005DANNA E, ROTHBERG E & LE PAPE C. 2005. Exploring relaxation induced neighborhoods to improve MIP solutions. Mathematical Programming, 102(1): 71-90.) the RINS uses solutions of simplified external MILPs and LPs to find the solution of the original MILP problem. At specified nodes of the branch-and-bound tree, the current LP relaxation solution x and the incumbent x are compared and all integer variables that agree in value are fixed and removed from the MILP. In this way, the MILP is simplified, and it is also reduced in size.

The work of Eisenbrand & Weismantel (2019EISENBRAND F & WEISMANTEL R. 2019. Proximity results and faster algorithms for integer programming using the Steinitz lemma. ACM Transactions on Algorithms (TALG), 16(1): 1-14.) describes the Proximity search as an alternative to Large-Neighborhood Search and RINS heuristics, which are aimed at improving a given feasible solution. The one modifies the objective function to make the search easier. More specifically, proximity search replaces the objective function with a proximity one, to enhancing the heuristic behavior of the MIP black-box solver. The one starts with a feasible solution x, and adds an explicit cutoff constraint fxfx-θ to the MIP, where θ is a given cutoff tolerance.

In Richard et al. (2003RICHARD JPP, DE FARIAS IR & NEMHAUSER GL. 2003. A simplex-based algorithm for 0-1 mixed integer programming. In: Combinatorial Optimization-Eureka, You Shrink!. pp. 158-170. Springer.), the authors present a simplex-based algorithm for mixed-integer problems. The algorithm uses a hybrid cutting plane, based on a strong cutting plane and Gomorytype. The cuts are obtained from the relaxation of the simplex tableau and used on the original problem. The authors show that the cuts can be computed in polynomial time and can be embedded in a finitely convergent algorithm.

Some Lagrangian relaxation strategies, such as Fisher (2004FISHER ML. 2004. The Lagrangian relaxation method for solving integer programming problems. Management science, 50(12_supplement): 1861-1871.), can be used to improve the bounds of the branch and bound method faster. Metaheuristics methods like particle swarm (see Laskari et al. (2002LASKARI EC, PARSOPOULOS KE & VRAHATIS MN. 2002. Particle swarm optimization for integer programming. In: Proceedings of the 2002 Congress on Evolutionary Computation. CEC’02 (Cat. No. 02TH8600), vol. 2. pp. 1582-1587. IEEE.)), Simulated Annealing, Genetic Algorithm (see Arenales et al. (2007ARENALES MN, ARMENTANO VA, MORABITO NETO R & HIDEKI YH. 2007. Pesquisa operacional. Elsevier.)) are usually used to solve complex and large MILP instances.

Some strategies are developed for specific problems, such as Park & Kim (2005PARK YM & KIM KH. 2005. A scheduling method for berth and quay cranes. In: Container terminals and automated transport systems. pp. 159-181. Springer.) where the authors present proposes a method to solve the scheduling problem of a port berth and quay cranes and Biagio et al. (2012BIAGIO MA, COELHO MA & FRANCO PEC. 2012. Heuristic for solving capacitor allocation problems in electric energy radial distribution networks. Pesquisa Operacional, 32(1): 121-138.) which proposes a heuristic to solve capacitor allocation problems in electric energy radial distribution networks. New applications of preexisting strategies can also be found, like Ceschia et al. (2017CESCHIA S, DI GASPERO L & SCHAERF A. 2017. Solving discrete lot-sizing and scheduling by simulated annealing and mixed integer programming. Computers & Industrial Engineering, 114: 235-243.) which proposes a Simulated Annealing application for the discrete single-machine, multi-item lot-sizing scheduling problem and obtained good results.

3 DETERMINATION OF INTEGER SOLUTIONS WITH SIMPLEX DIRECTIONS

Given an integer problem, such as (1) and x the LP relaxation solution, an integer solution of the problem will be generated with the simplex directions associated with x . That is, we start with an LP relaxation solution of the ILP and search for integer solutions on the adjacent edges of x . If the edges do not contain any integer solutions, we search for the feasible integer solution closer to an edge.

3.1 Simplex Direction

According to Bazaraa et al. (2011BAZARAA MS, JARVIS JJ & SHERALI HD. 2011. Linear programming and network flows. John Wiley & Sons.), the simplex direction d of an LP is defined as the direction that starts at a basic solution x B and walks on an edge of the polytope generated by the constraints. This generates the line w*=xB+λd*, Figure 1 shows the simplex direction and the line w*=xB+λd*.

Figure 1
Simplex Direction.

Figure 1 shows the x B on the intersection of lines 1 and 2 and the direction d which is the simplex direction that leaves x B and generates the line segment w*=xB+λd* where λ0. Definition 1 formalizes the simplex direction concept.

Definition 1. (Simplex Direction) The simplex direction d is defined by the direction which starts at a basic solution x B and walks on the edge of the polytope generated by the constraints.

Mathematically d * = B - 1 a N k - e k where N k is the index of the non-basic variable which is entering on the basis, a N k is the N k -th column of the A matrix.

3.2 Generalization of the Strategy

Given an ILP problem, such as Problem (1), the first step is to define and solve the LP relaxation, given by Problem (3).

m a x z = c t x s u b j e c t t o A x b x 0 . (3)

With the LP relaxation solution x of the Problem (3), we calculate the simplex directions in x . There are nm simplex directions in x and those directions are decent if it is a maximization problem or ascent if it is a minimization problem. To obtain those simplex directions, we solve the linear systems given by (4).

y k = B - 1 a N k k = 1 , 2 , , n - m . (4)

Where N is the non-basic matrix and N k is the k-th column of N. The simplex direction d k , where k=1,2,,n-m, is given by (5).

d k = y k - e k . (5)

The next step is to find integer solutions in the lines x*+λdk. To do that we need to select a k in 1, 2, ..., nm, and solve the ILP given by (6).

m a x z = c t x s u b j e c t t o A x b x = x * - λ d k x 0 and integer. (6)

Where k=1,2,,n-m. After solving the problems, we will have at most nm integer solutions. We select the solution with the best object function value.

This strategy is for an ILP problem. For a MILP problem, the continuous variables should not be included in the step of searching for an integer solution on the adjacent edges. There are cases when the problem has no integer solution on the adjacent edges of the continuous solution. In those cases, we need to find the integer solution closer to an edge.

If the edges do not contain at least one good integer solution, the next step is to find the integer solutions inside the feasible region that are closer to an edge. To find these solutions, we solve one or more of the nm problems given by (7).

m a x z = c t x - β t p subject to A y b x = x * - d k λ y = x - p x , p 0 y 0 and integer. (7)

Where k=1,2,,n-m, β is the penalization value to ensure a solution close to the edge, it must be proportional to c, p is the distance between the integer solution and the edge, x is the solution in the edge and y is an integer solution.

By solving the mathematical models, we obtain at most nm integer solutions. The solution with the best object function value is chosen. Algorithms 1 and 2 summarize the strategy of this paper.

Algorithm 1
Algorithm to find integer solutions on the edges

Algorithm 2
Algorithm to find integer solutions closer to the edges of the problem

Algorithms 1 and 2 solve nm integer problems, which could take many iterations and not be a good strategy. In some problems, such as the MIPLIB problems, a selection criterion can be applied instead of testing every simplex direction. In Section 4 we present a selection criterion for the MIPLIB problems.

3.3 Example Problem

Consider, as an example, the Problem (8) as our ILP.

m a x z = 8 x 1 + 5 x 2 s . t . 1 x 1 + 1 x 2 6 9 x 1 + 5 x 2 45 x 1 , x 2 0 and integer (8)

Figure 2 shows the geometric interpretation of Problem (8), in the figure we can see the LP relaxation solution x*=154,94t and the adjacent edges. Consider x as the initial solution and the simplex directions d 1 and d 2, given by the vectors (9a) and (9b), respectively.

d 1 = 5 4 - 9 4 (9a)

d 2 = - 1 4 1 4 (9b)

Figure 2
Constrains of Problem (8).

Starting with the solution x and the simplex directions d 1 and d 2, we search for integer solutions in the line segments generated by the optimum point and the simplex directions. These line segments must be limited by the problem constraints. Starting from x we search for integer solutions, if exists, in the edges defined by x*+λd1 and x*+λd2, which are given by the equations (10a) and (10b), respectively.

R 1 x 1 = 15 4 + 5 4 λ x 2 = 9 4 - 9 4 λ (10a)

R 2 x 1 = 15 4 - 1 4 λ x 2 = 9 4 - 1 4 λ (10b)

The objective is to obtain an integer solution that satisfies the equation (10a) or (10b), the constraints, and maximizes the problem. The problem of finding a solution in the line (10a) which satisfies the constraints of Problem (8) is given by Problem (11).

m a x z = 8 x 1 + 5 x 2 subject to 1 x 1 + 1 x 2 6 9 x 1 + 5 x 2 45 x 1 + 0 x 2 - 5 4 λ = 15 4 0 x 1 + x 2 + 9 4 λ = 9 4 x 1 , x 2 0 and integer. (11)

Problem (11) is an ILP with a feasible region given by one edge of the original problem. The feasible region has only a fraction of the number of integer solutions of the problem and, may not have integer solutions. With some mathematical manipulations, the Problem (11) can be written as the Problem (12).

m a x z = 8 x 1 + 5 x 2 subject to x 1 = 15 4 + 5 4 λ x 2 = 9 4 - 9 4 λ 0 λ 1 x 1 , x 2 0 and integer. (12)

The solution of Problem (12) is an integer solution that tends to be closer to the LP relaxation solution that is in line (10a), given that the direction d 1 is descending on a maximization problem. Solving Problem (12), we find the solution (5, 0)t with the objective function value of 40.

We also need to obtain the best integer solution in line (10b). Similarly, the problem of finding the integer solution in line (10b) and satisfies the constraints of Problem (8) is given by (13).

m a x z = 8 x 1 + 5 x 2 subject to 1 x 1 + 1 x 2 6 9 x 1 + 5 x 2 45 x 1 + 0 x 2 + 1 4 λ = 15 4 0 x 1 + x 2 - 1 4 λ = 9 4 x 1 , x 2 0 and integer. (13)

Problem (13) is an ILP with line (10b) as the feasible region. With some mathematical manipulations, Problem (13) can be written as Problem (14).

m a x z = 8 x 1 + 5 x 2 subject to x 1 = 15 4 - 1 4 λ x 2 = 9 4 + 1 4 λ 0 λ 15 x 1 , x 2 0 and integer. (14)

Solving Problem (14) we find the solution (3, 3)t with the objective function value of 39.

Comparing the solutions of Problems (12) and (14) we have the best integer solution on the adjacent edges as (5, 0)t with the objective function value of 40.

3.4 Example Problem 2

The problem may not have a feasible integer solution on the adjacent edges. In that case, we need to find integer solutions inside the feasible region. As an example, Problem (15) has no integer solution in the adjacent edges.

m a x z = 8 x 1 + 5 x 2 s . t . 1 x 1 + 1 x 2 6 . 5 9 x 1 + 5 x 2 44 x 1 , x 2 0 and integer. (15)

Figure (3) shows the feasible region of Problem (15). The LP relaxation solution of Problem (15) is given by x*=2.875,3.625t and neither of the adjacent edges has integer solutions.

Figure 3
Feasible Region of Problem (15)

Problem (16) can be used to find the integer solution that tends to be closer to the adjacent edge d 1.

m a x z = 8 y 1 + 5 y 2 - β 1 p 1 - β 2 p 2 subject to y 1 + y 2 6 . 5 9 y 1 + 5 y 2 44 x 1 = 2 . 875 + 5 4 λ x 2 = 3 . 625 - 9 4 λ y 1 = x 1 - p 1 y 2 = x 2 - p 2 0 λ 1 . 6 x 1 , x 2 , p 1 , p 2 0 y 1 , y 2 0 and integer. (16)

Where x=x1,x2t is a solution in the edge x=x*+λd1 with d 1 given by the equation (9a), p 1 is the distance between x 1 and y 1, p 2 is the distance between x 2 and y 2, given p=p1,p2t we have y=x-p as the integer solution closer to the edge defined by the line x=x*+λd1. We recommend that the value of β=β1,β2 be proportional to the value of c.

Solving Problem (16), we have the solutions x=3.2,3t and y=3,3t. The integer solution is given by y and has the objective function value of 39. Figure 4 shows the solution.

Figure 4
Graphical Representation of Problem (16)

To find the solution that tends to be closer to the other adjacent edge, we use Problem (17).

m a x z = 8 y 1 + 5 y 2 - β 1 p 1 - β 2 p 2 subject to y 1 + y 2 6 . 5 9 y 1 + 5 y 2 44 x 1 = 2 . 875 - 1 4 λ x 2 = 3 . 625 + 1 4 λ y 1 = x 1 - p 1 y 2 = x 2 - p 2 0 λ 11 . 5 x 1 , x 2 , p 1 , p 2 0 y 1 , y 2 0 and integer. (17)

Where x=x1,x2t is a solution in the edge x=x*+λd2 with d 2 given by equation (9b), p 1 is the distance between x 1 and y 1, p 2 is the distance between x 2 and y 2, given p=p1,p2t we have y=x-p as the integer solution closer to the edge define by the line x=x*+λd2.

Solving Problem (17), we find x=2.5,4t and y=2,4t. The integer solution is given by y and has the objective function value of 36. Figure 5 shows the solution.

Figure 5
Graphical Representation of the Problem (17).

To find the best integer solution we compare the solutions of Problems (16) and (17), therefore we have y=3,3t with the objective function value of 39.

4 RESULTS

To test the strategy, we initially made a thousand instances. Those instances are randomly generated, considering A a matrix m × n, where 1m200 and 200n500. The values are generated by a normal distribution. Each value of the vector c is an integer between 0 and n, each value of the matrix A is an integer between 0 and mn and each value of the vector b is an integer between 1 and 30mn. We implemented the instances in the solver and compare the results with our strategy, the solver used was the IBM Cplex.

Algorithm 1 finds a solution in 34 instances. For comparison purposes, given z the optimal value, we consider solutions with z0.7z* as good solutions, therefore, Algorithm 1 finds good solutions in 16 instances. Besides the low convergence rate, every instance problem took one iteration to find the solution or determine infeasibility. Figure 6 shows the solution quality.

Figure 6
Quality of the solutions of Algorithm 1.

Algorithm 2 found a solution in all instances, of which 783 are good solutions. The algorithm found a trivial solution in 93 instances. The algorithm took an average of 334 iterations to find the solution while the solver took 1019 iterations, which represents a reduction of 67%. Each MILP took an average of 1.8 iterations to converge, due to the number of MILP problems solved in each instance, the number of iterations reaches 334. It was observed that the instances with the largest number of variables generated the largest reductions in the number of iterations. Table 3 shows some of those instances.

Table 2
Quality of the solutions.

Table 3
Results of instances.

Figure 7 shows the solution quality obtained by Algorithm 2 and Table 2 details the quality of the solutions found by Algorithm 2.

Figure 7
Quality of the solutions of Algorithm 2.

In Table 3 the column Instance shows the number of the instance, m shows the number of constraints, n shows the number of variables, Algorithm 2 Solution shows the objective value obtained by Algorithm 2, Algorithm 2 Iterations shows the total number of iterations performed by the Cplex to solve the nm MILP problems of Algorithm 2, Cplex Solution shows the objective value obtained by Cplex, Cplex Iterations shows the number of iterations performed by Cplex, Solution Quality shows the quality of the algorithm solution relative to the Cplex solution, for example, instance 149 has a Cplex solution of 1954 and an Algorithm 2 solution of 1163, which represents 60% of the Cplex solution. The column Relative Number of Iterations is the number of iteration performed by Algorithm 2 relative to the number performed by Cplex, for example, Algorithm 2 performed less than 1% of the number of iterations performed by Cplex.

In most of the instances of Table 3, Algorithm 2 found a good solution. The variation of the solution quality tends to increase according to the value of m. The increase of the value of n, which represents the number of variables, does not show an increasing tendency on the variation of the solution quality. Figure 8 shows the average solution quality by the number of constraints, and Figure 9 shows the average solution quality by the number of variables.

Figure 8
Average solution quality by the number of constraints.

Figure 9
Average solution quality by the number of variables.

We also tested our strategy on MIPLIB 2017 instances with integer or binary variables, we selected instances that can be solved by solvers such as Cplex or Gurobi. Instead of testing every edge in Algorithm 2, we first try the edge argmaxcB-NB'*y. If the problem generated by that edge is infeasible, then we try other edges, in order, until a solution is found. Table 4 brings results of MIPLIB 2017 instances, those instances can be found in MIPLIB (2018MIPLIB. 2018. MIPLIB 2017. Available at: http://miplib.zib.de.
http://miplib.zib.de...
).

Table 4
Results of MIPLIB Instances.

In Table 4 the column Instance shows the name of the instance, Algorithm 2 Solution shows the objective value obtained by Algorithm 2, Algorithm 2 Iterations shows the total number of iterations performed by the Cplex to solve the MILP problems generated by Algorithm 2, Solver Solution shows the objective value obtained by the solver, Solver Iterations shows the number of iterations performed by the solver. The solver used in the tests was the Cplex, except Chromaticindex32-8, Neos-555343, neos18, and acc-tight5. In those instances, the Gurobi solver was used.

In all 39 instances of Table 4, the solver performed a total of 13280128 iterations, and Algorithm 2 performed 7125257 iterations, therefore, Algorithm 2 perform 53% of the iterations performed by Cplex. In 28 instances, Algorithm 2 performs less or equal iterations than the solver. In 34 instances, Algorithm 2 obtains a good solution, with a gap lower than 18%, of which 22 instances, the solution of the algorithm is the same solution found by the solver, with a gap lower than 108.

The Cplex had issues solving the MILP generated by Algorithm 2 in the instances Chromaticindex32-8, Neos-555343, neos18, and acc-tight5 and did not return any solution. Those instances were solved by the Gurobi, the process was stoped due to numerical issues and the results are in Table 4, those solutions have a gap of up to 81%. Both Cplex and Gurobi solvers had issues solving the MILP generated by Algorithm 2 in the instances mine-166-5, mine-90-10, qap10, and cod105 and did not return any solution.

Different optimal solutions were found by the Cplex and Gurobi solvers for the instances App2-2 and Neos-555424. The Cplex solver found the objective values of 212042.5 and 1331800, respectively, and the Gurobi solver found the objective values of 212047.5 and 1286800, respectively.

5 CONCLUSIONS

Algorithm 1 found a solution in 34 of 1000 randomly generated instances, which suggests that few problems have an integer solution in an adjacent edge of the continuous solution. Besides the results, the algorithm has a low cost and was able to find a solution or determine the infeasibility in one iteration.

Algorithm 2 found a solution for all generated instances, of which 783 are good solutions. On average, the algorithm performed 33% of the iterations performed by the solver. On larger instances, like the ones in Table 3, the number of iterations was between 1% to 5% of the number of iterations taken by Cplex and obtains solutions with objective function values close to the optimum value.

In the MIPLIB instances, Algorithm 2 also performs well, with an average save of 47% on iterations. In 34 of 39 instances, the algorithm found solutions close or equal to the optimal solution in fewer iterations. Instances like sp98ir and opm2-z7-s8Algorithm 2 needs very few iterations to find a good solution, compared with the number of iteration taken by the solver. In 28 of 39 MIPLIB instances, the algorithm performs fewer iterations than the solver.

The usage of the strategy is recommended in instances where conventional methods require many iterations to find a solution. The solution obtained by the strategy can be used as an initial solution for the original problem. With some modifications, the method can be used to solve MILP problems with equality or inequality constraints.

References

  • ACHTERBERG T & BERTHOLD T. 2007. Improving the feasibility pump. Discrete Optimization, 4(1): 77-86.
  • ARENALES MN, ARMENTANO VA, MORABITO NETO R & HIDEKI YH. 2007. Pesquisa operacional. Elsevier.
  • BAZARAA MS, JARVIS JJ & SHERALI HD. 2011. Linear programming and network flows. John Wiley & Sons.
  • BERTHOLD T, LODI A & SALVAGNIN D. 2019. Ten years of feasibility pump, and counting. EURO Journal on Computational Optimization, 7(1): 1-14.
  • BIAGIO MA, COELHO MA & FRANCO PEC. 2012. Heuristic for solving capacitor allocation problems in electric energy radial distribution networks. Pesquisa Operacional, 32(1): 121-138.
  • CESCHIA S, DI GASPERO L & SCHAERF A. 2017. Solving discrete lot-sizing and scheduling by simulated annealing and mixed integer programming. Computers & Industrial Engineering, 114: 235-243.
  • DANNA E, ROTHBERG E & LE PAPE C. 2005. Exploring relaxation induced neighborhoods to improve MIP solutions. Mathematical Programming, 102(1): 71-90.
  • ECKSTEIN J & NEDIAK M. 2007. Pivot, cut, and dive: a heuristic for 0-1 mixed integer programming. Journal of Heuristics, 13(5): 471-503.
  • EISENBRAND F & WEISMANTEL R. 2019. Proximity results and faster algorithms for integer programming using the Steinitz lemma. ACM Transactions on Algorithms (TALG), 16(1): 1-14.
  • FISCHETTI M, GLOVER F & LODI A. 2005. The feasibility pump. Mathematical Programming, 104(1): 91-104.
  • FISCHETTI M & LODI A. 2003. Local branching. Mathematical programming, 98(1): 23-47.
  • FISCHETTI M & LODI A. 2010. Heuristics in mixed integer programming. Wiley Encyclopedia of Operations Research and Management Science,.
  • FISHER ML. 2004. The Lagrangian relaxation method for solving integer programming problems. Management science, 50(12_supplement): 1861-1871.
  • GENOVA K & GULIASHKI V. 2011. Linear integer programming methods and approaches-a survey. Journal of Cybernetics and Information Technologies, 11(1).
  • LASKARI EC, PARSOPOULOS KE & VRAHATIS MN. 2002. Particle swarm optimization for integer programming. In: Proceedings of the 2002 Congress on Evolutionary Computation. CEC’02 (Cat. No. 02TH8600), vol. 2. pp. 1582-1587. IEEE.
  • MIPLIB. 2018. MIPLIB 2017. Available at: http://miplib.zib.de
    » http://miplib.zib.de
  • NEMHAUSER GL & WOLSEY LA. 1988. Integer programming and combinatorial optimization. Wiley, Chichester. GL Nemhauser, MWP Savelsbergh, GS Sigismondi (1992). Constraint Classification for Mixed Integer Programming Formulations. COAL Bulletin, 20: 8-12.
  • PARK YM & KIM KH. 2005. A scheduling method for berth and quay cranes. In: Container terminals and automated transport systems. pp. 159-181. Springer.
  • RICHARD JPP, DE FARIAS IR & NEMHAUSER GL. 2003. A simplex-based algorithm for 0-1 mixed integer programming. In: Combinatorial Optimization-Eureka, You Shrink!. pp. 158-170. Springer.
  • ROTHBERG E. 2007. An evolutionary algorithm for polishing mixed integer programming solutions. INFORMS Journal on Computing, 19(4): 534-541.
  • WOLSEY LA. 2007. Mixed integer programming. Wiley Online Library. 1-10 pp.
  • YUAN G & WEI Z. 2009. New line search methods for unconstrained optimization. Journal of the Korean Statistical Society, 38(1): 29-39.

Publication Dates

  • Publication in this collection
    16 Mar 2022
  • Date of issue
    2022

History

  • Received
    09 Aug 2021
  • Accepted
    09 Jan 2022
Sociedade Brasileira de Pesquisa Operacional Rua Mayrink Veiga, 32 - sala 601 - Centro, 20090-050 Rio de Janeiro RJ - Brasil, Tel.: +55 21 2263-0499, Fax: +55 21 2263-0501 - Rio de Janeiro - RJ - Brazil
E-mail: sobrapo@sobrapo.org.br