GA and branch and bound

Reviews
Shared by: Daniel voydge
Categories
Tags
Stats
views:
36
rating:
not rated
reviews:
0
posted:
10/22/2008
language:
English
pages:
0
Journal of Heuristics, 7: 551–564, 2001 c 2001 Kluwer Academic Publishers. Manufactured in The Netherlands. Using a Hybrid Genetic-Algorithm/Branch and Bound Approach to Solve Feasibility and Optimization Integer Programming Problems ALAN P. FRENCH, ANDREW C. ROBINSON AND JOHN M. WILSON Loughborough University, Loughborough, LE11 3TU, England, UK email: a.p.french@lboro.ac.uk; a.c.robinson@lboro.ac.uk, j.m.wilson@lboro.ac.uk Abstract The satisfiability problem in forms such as maximum satisfiability (MAX-SAT) remains a hard problem. The most successful approaches for solving such problems use a form of systematic tree search. This paper describes the use of a hybrid algorithm, combining genetic algorithms and integer programming branch and bound approaches, to solve MAX-SAT problems. Such problems are formulated as integer programs and solved by a hybrid algorithm implemented within standard mathematical programming software. Computational testing of the algorithm, which mixes heuristic and exact approaches, is described. Key Words: branch and bound, genetic algorithm, maximum satisfiability Introduction The satisfiability problem is the problem of assigning truth values (true or false) to a set of logical variables (literals) which occur in a series of logical expressions (clauses) to establish the truth or falsity of the entire collection of logical expressions. The satisfiability problem is known to be NP-hard, and is in fact the first problem to be classified as such (Cook, 1971). A generic way to solve such problems has been developed by Davis and Putnam (1960) and modified by Loveland (1978). In the modified Davis-Putnam algorithm there is need for a good branching strategy for the algorithm to be effective. A number of computational studies, such as Harche, Hooker, and Thompson (1994), support the view that branching algorithms are the most useful for solving satisfiability problems. A study by Hooker and Vinay (1995) considerably clarifies the understanding of why certain branching rules work well. A paper by De Jong and Spears (1989) develops a genetic algorithm (GA) for the satisfiability problem. A GA (Holland, 1975) is a search algorithm inspired by biological evolution. There are other styles of similarly inspired algorithms and they are all known collectively as evolutionary algorithms, but GA is the class which has to date received most attention mainly because they can deal successfully with a wide range of problem areas (Reeves, 1993). GAs combine survival of fittest strings in a population with a structured but randomized information exchange to form mechanisms that do not demand assumptions about the search space. A key aspect to the area has been the issue of robustness, enabling a method to be employed on a wide range of problems, unlike traditional methods, which 552 FRENCH, ROBINSON AND WILSON work well but only on specialized problems, or enumerative schemes and random walks, which work well at a very low level of performance but across a wide range of problems. Much research has been conducted into the development of GAs and a good introduction appears in Reeves (1993). Davis (1991) argues that hybridizing GAs with successful optimization methods can lead to good solutions: the algorithms should perform no worse than the more traditional method alone, although there is a computational overhead in using the GA. In this paper the maximum satisfiability problem (MAX-SAT) will be used as a test problem for a hybrid algorithm which combines integer programming (IP) branch and bound techniques with a GA. MAX-SAT is an example of an NP-hard problem (except for restricted variations) and is used here as a surrogate for general IP problems, although the results obtained will not be generalizable to all NP-hard problems. The aim will be to develop a computer code to test the hybrid algorithm and to test that code on appropriate data sets to compare the performance of the hybrid algorithm in solving satisfiability problems, formulated as IP models, against a standard IP branch and bound method. In our work, we are aware that representing and solving the MAX-SAT problem as an IP problem is not necessarily the most efficient approach, but we are mainly using MAX-SAT problems as a vehicle for testing our hybrid algorithm. Results obtained from the testing will not be completely generalizable, however. It should also be noted that a heuristic approach is not guaranteed to find the optimal solution to a MAX-SAT problem, and a tree search approach must ultimately form the basis of any useful optimizing solution approach. The proposed hybrid approach can always fall back on tree search as will be seen. 1. The maximum satisfiability (MAX-SAT) problem The logical conditions of the MAX-SAT problem may be expressed in a variety of forms, such as conjunctive or disjunctive normal forms for convenience, but in what follows use will be made of IP representations. The following formulation of MAX-SAT, containing m clauses and n literals, will be used in our computational work: m Minimize z = i=1 si x j + si ≥ 1, i ∈ {1, 2, . . . , m} j ∈ {1, 2, . . . , n} (1) (2) (3) (4) Subject to j∈Ji x j ∈ {0, 1}, si ∈ [0, ∞), i ∈ {1, 2, . . . , m}, and x j is x j or 1 − x j Ji is the index set of literals for clause i The slack variables (si ), whilst constrained to take any non-negative real value are forced in practice by branch and bound to take either the value 0 or 1. If the literals in a clause satisfy it, then the slack can assume any non-negative value, but the minimizing nature of the objective function (1) forces the slack variable to take the value 0. However, for a clause A HYBRID GENETIC-ALGORITHM/BRANCH AND BOUND APPROACH 553 in which all the literals fail to satisfy the clause, the associated constraint (2) forces the slack variable to be equal to 1. If the value of the objective function (1) is zero, then all clauses have been satisfied and the problem is satisfiable. In cases where the objective function is non-zero ( p say), then this represents a solution where p clauses are not satisfied and the remaining (m- p) are satisfied. In branch and bound terminology, both these cases will arise from a node of the search tree having only integral valued variables. The satisfiability problem with exactly three literals per clause (3-SAT) is known to be hardest to solve when m/n is approximately 4.3 (Gent and Walsh, 1994). This relationship was used in the generation of hard-to-solve satisfiability problems employing sources from DIMACS. 2. The approach taken in the research Branch and Bound has been the favored algorithm for IP problems for many years since it was first described by Land and Doig (1960). It is the standard tool incorporated in most commercial IP software. The algorithm takes advantage of the relatively short time taken to obtain solutions of the linear programming relaxation of the IP problem to provide useful information. However, for pure combinatorial problems it was felt by the authors that this approach may not always be best as the relaxation may not be particularly helpful. Long futile searches through the branch and bound tree may ensue (but it would still be useful to take advantage of the rapid solution to the linear programming relaxation from time to time). Linear programming based methods for solving satisfiability problems were introduced by Blair, Jeroslow, and Lowe (1988) but work by Jeroslow and Wang (1990) improved on this work by incorporating an alternative to linear programming fathoming. Heuristic approaches for combinatorial problems provide a way to move a search into a different part of the search space. However, these approaches lack the search uniformity of an implicit enumeration scheme and consequently may miss solutions. We therefore aim to gain advantage by combining the two approaches—tree search and heuristic—into a hybrid algorithm. The software XPRESS-MP, running on a Hewlett-Packard system provided the branch and bound engine. GA code, to provide the heuristic search, was written in the C language and integrated into XPRESS-MP. The hybrid algorithm operated completely within the standard commercial software. 2.1. Some background justification The following table shows results taken from a MAX-SAT problem with 430 clauses and 100 literals. This problem required 84 branch and bound nodes before the final satisfying solution could be found. During the search process only 16 variables (literals) were actually branched on at any stage. For the remaining 84 variables, their mean values over the 83 nodes were calculated and compared to the final value at node 84. Table 1 shows that on 69% of the occasions when the final value should be 1 the mean is 0.5 or above and on 78% of the occasions when the final value should be 0 the mean is 0.5 or below. 554 Table 1. Values of unbranched variables. Final value = 1 Mean value of variable 1 0.9000–0.9999 0.8000–0.8999 0.7000–0.7999 0.6000–0.6999 0.5000–0.5999 0.4000–0.4999 0.3000–0.3999 0.2000–0.2999 0.1000–0.1999 0.0001–0.0009 0 No. of literals 0 1 4 4 8 7 7 3 0 1 0 0 FRENCH, ROBINSON AND WILSON Final value = 0 No. of literals 0 0 0 2 4 5 9 8 8 12 1 0 Cumulative % 100 100 100 100 96 88 78 59 43 27 2 0 Cumulative % 0 3 14 26 49 69 89 97 97 100 100 100 Although based on results from a single problem, the table illustrates that branching on the linear programming relaxation of the satisfiability problem leads to unfixed variables tending to take values close (in terms of (≥0.5 ⇒ 1, <0.5 ⇒ 0) to their final binary values. Thus the values of the unfixed variables in the hanging nodes appear to offer some guidance as to potential heuristic solutions that may be generated by an approach such as a GA. 3. The hybrid algorithm Other authors have attempted to combine branch and bound with GA approaches. Relevant research is reported in Cotta et al. (1995), Nagar, Heragu, and Haddock (1996) and Reeves (1996), but these approaches are less general than the approach developed in this paper. Cotta et al. (1995) use a problem-specific branch and bound tree search for the travelling salesman problem and make use of a GA to provide bounds and so aid the branch and bound search. For solving flowshop scheduling problems Nagar, Heragu, and Haddock (1996) combine a branch and bound tree search with a GA, which is used to provide bounds. Our algorithm will be more general in that we will use a general linear programming based branch and bound algorithm hybridized with a GA. The branch and bound algorithm is that implemented in existing commercially available software, in this case XPRESS-MP, to solve general IPs. The GA, which is not unduly problem-specific, is then embedded within this software. In our approach we use a GA based on one developed by Beasley and Chu (1996) for the set covering problem. This particular GA seemed promising as it solved a problem which, like the satisfiability problem, could ‘hinge’ on the ‘correct’ setting of one variable in each constraint. Research by Hooker (1996) stresses the connection between satisfiability and set covering problems. A HYBRID GENETIC-ALGORITHM/BRANCH AND BOUND APPROACH 555 The hybrid algorithm commences in XPRESS-MP and traverses a number of nodes before entering the GA. In the branch and bound phase the algorithm maintains satisfiability (constraint satisfaction) with integrality being relaxed. Information from hanging nodes is used to suggest chromosomes to be added to the GA gene pool, which initially is filled with random chromosomes. Potential solutions are generated by the GA from the gene pool, and after a sequence of GA operations the fittest is passed back to be added to the branch and bound tree, and control returns to the branch and bound engine. Thus in the GA phase, the algorithm promotes integrality with satisfiability relaxed (constraint satisfaction). When the algorithm returns to branch and bound, each new potential solution is examined in turn and grafted onto the existing tree. Although control has been returned to the branch and bound engine, all decisions concerning branching node, branching variable and branching direction are made using information extracted from the potential solutions generated during the GA phase. Once these potential solutions have been grafted onto the branch and bound search tree, branch and bound is forced to explore all immediate descendants of these newly created nodes. Finally full control of branching is handed back to branch and bound. Subsequently our algorithm iterates between the two approaches until the solution is obtained or the search completed. Thus the hybrid algorithm uses the systematic search procedure of branch and bound, with added information from the linear programming relaxation of the problem and a GA approach which attempts to ‘kick start’ the search into new areas if branch and bound appears to be getting nowhere. Although the hybrid algorithm incorporates a meta-heuristic approach, it is an exact algorithm guaranteed to find the optimal solution. A number of considerations need to be made for the hybrid approach. These are listed in the following six sub-sections. Systematic testing was conducted on each of these aspects with the associated experimental conclusions as stated. All parameters described (for example gene pool size) were explored using pilot experimentation and were found to be robust over a wide range of problem sizes. 3.1. Chromosome structure Each bit position in a chromosome corresponds to a binary variable (i.e. x j ) in the problem instance. There are three scenarios for each binary variable at any given node in the branch and bound tree. First, if the variable has been branched on during the path from the root of the tree to the node, then the value of the variable will have been fixed (either to zero or one). Secondly, the value of a variable may have been forced to integrality by the linear programming solver e.g. by influence of the settings of the branched variables or the geometry of the feasible region. Lastly, the variable may have a non-integral value. The problems associated with the non-integrally valued binary variables are discussed in subsequent sections. 3.2. Pool generation A randomly generated pool is used initially. Pilot experimentation revealed a population size of 50 to be appropriate. The gene pool is then modified by the two phases of the hybrid algorithm, i.e. branch and bound and the GA. 556 FRENCH, ROBINSON AND WILSON During the branch and bound phase, a chromosome is constructed using the values of the binary variables at each node. For the branched variables, and those variables that were at integer values even though they had not been branched on, the value of the variable is inserted into the corresponding bit position. A repair procedure is then used to set the value of variables with non-integral values, working on each individual variable as follows: For each unsatisfied clause involving the variable, a satisfying value is determined, i.e. 1 if the variable appears unnegated and 0 if negated. The average satisfying value is then calculated over all unsatisfied clauses and this average rounded to the nearest integer to give the ‘repaired’ value. For example, assume that x1 has a fractional value in the LP-relaxation, and that it appears in the following unsatisfied clauses: (x1 ∨ x2 ∨ x3 ), (x1 ∨ x4 ∨ x5 ), (x1 ∨ x6 ∨ x7 ), (x1 ∨ x8 ∨ x9 ) The respective satisfying values for x1 are 1, 0, 1 and 1 respectively. The average over these clauses is 3/4, and therefore the repaired value for x1 is set to 1. The fitness of the new repaired chromosome, f n say, is compared with the average fitness of the current population, f a say. If f n > f a then the new chromosome replaces a randomly chosen below average fitness chromosome from the population. Details concerning gene pool augmentation during the GA phase are provided later in Section 3.5. 3.3. Fitness measurement Fitness for the GA is measured as the percentage of total clauses satisfied raised to the power of 30, i.e. for a chromosome, C, where SC is the set of clauses satisfied by the variable settings in C: FC = |SC | m 30 (5) Raising to the power of 30 serves to penalize heavily those chromosomes with a higher percentage of unsatisfied clauses. The value of 30 was determined experimentally, although values in the range 20 to 40 are equally robust. 3.4. Switching criteria from branch and bound to GA The criterion for suspending the branch and bound phase, and passing control to the GA uses a measure of progress towards finding a satisfying solution for each node in the branch and bound tree. After each node is added to the branch and bound tree, the following ratio is calculated: P= n−D−I n− D−1 A HYBRID GENETIC-ALGORITHM/BRANCH AND BOUND APPROACH 557 where n is the number of variables (literals), D is the depth of the node in the branch and bound tree, I is the number of non-integral variables in the LP relaxation. A node with relatively few non-integral variables reached after only a small number of branches down the tree is considered good progress towards finding a solution. The branch and bound phase is suspended and control switches to the GA phase when a number (initially three) of consecutive successively worse progress measures (P) is detected. Suspension is only considered after a minimum number of nodes has been added during the branch and bound phase. Experimental evidence suggests that a figure of 100 nodes is appropriate for this. As experiments indicate that the most significant contributions made by the GA phase tends to be early on, an adaptive switching criteria is utilized, viz.: 1. The minimum number of nodes added during the branch and bound phase is increased by 50 (from an initial value of 100) after each invocation of the GA phase. 2. The number of consecutive worse progress measures required to suspend the branch and bound phase is increased by one (using 3 as an initial value) after each invocation of the GA phase. 3. The number of crossover operations performed during the GA phase (see next section) is reduced by 100 after each invocation of the GA phase. 3.5. GA phase The GA phase takes the gene pool left over after the branch and bound phase, and applies genetic operators (crossover and mutation) to produce a new gene pool. A steady state approach is adopted, i.e. parents are selected from the original gene pool, and children of above average fitness replace below average chromosomes in the gene pool. Pilot experiments suggested that 1000 such crossover operations were appropriate. Crossover is performed by a fusion operator to form a single child with the fitter parent contributing more genetic material. The parents are selected by using a binary tournament approach, i.e. two pairs of potential parents are chosen at random and the fitter parent of each pair selected. Let P and Q be the resultant parents, f P and f Q their respective fitness values, and C the child string. Each bit C[i] of C is formed from P[i] and Q[i] as follows: if P[i] = Q[i] then C[i] = P[i] else C[i] = P[i] with probability f P /( f P + f Q ) C[i] = Q[i] with probability f Q /( f P + f Q ) 558 FRENCH, ROBINSON AND WILSON Example Let P = {1, 1, 0, 0, 1, 0, . . . .} and Q = {1, 0, 1, 1, 0, 1, . . .} with P the fitter chromosome. A possible child C is {1, 1, 0, 1, 1, 1, . . .}. In addition, there is limited mutation with each chromosome bit having a probability of 0.01 (again determined by pilot experimentation) of mutation (flipping 0 to 1 and viceversa). Mutation provides a small amount of random search in order to avoid premature convergence by expanding the search space from time to time. Each child C is then considered for addition to the gene pool. If the fitness of C is greater than the average fitness of the gene pool, then a below average fitness chromosome is selected and replaced by C. 3.6. Returning solutions from the GA Upon completion of the crossover and mutation phase, the algorithm grafts the fittest chromosome in the gene pool onto the branch and bound tree, if it corresponds to a better solution than the current best found. The grafting begins at the root of the existing branch and bound tree. The candidate chromosome is used to traverse through the branch and bound tree in order to find the point at which new nodes need to be built. New nodes are built onto the tree by finding variables in the chromosome that have not been branched on already and that do not have integral LP relaxation values. After the chromosome is grafted onto the tree, control passes back to the branch and bound phase, but initially branch and bound is forced to concentrate on the newly added nodes. Once the immediate descendents of each such node are explored, full control is returned to branch and bound. Example. lines. The following tree is used, with the existing branches shown by the unbroken To graft on the solutions (a) = (1, 0, 0, 1, . . . ), (b) = (1, 1, 0, 1, . . . ), (c) = (0, 1, 1, 0, . . . ) the positions shown above are used. A HYBRID GENETIC-ALGORITHM/BRANCH AND BOUND APPROACH 559 4. Computational results The settings suggested in the previous section are now used in the hybrid algorithm, which is systematically examined in results presented. Problems are solved with and without GA in a branching context in which other conditions are more or less equal. Time overheads for the algorithm were negligible compared to the solution time required by the branch and bound engine. 4.1. MAX-SAT test problems The algorithm was tested on many series of satisfiability problems with between 80 and 120 variables and the number of clauses ranging from 400 to 492. Each clause contains 3 variables (or complements of variables) each of which has an equal chance of being selected and the chosen variables are complemented with probability 0.5. Not all problems used were satisfiable. Branch and bound required between approximately 50 and 78000 nodes to solve the problems, which were generated using DIMACS sources. Such problems were felt to be sufficiently ‘testing’ for the algorithm. Table 2 summarizes the range of problems used. For each type of problem, 25 separate problem instances were generated. Due to the stochastic nature of parts of the hybrid, for example the selection of parent chromosome material during crossover, several experiments were performed for each problem. 4.2. Hybrid performance versus clause/literal ratio As the ratio between the number of clauses and literals increases, it becomes more difficult to find satisfying solutions to MAX-SAT problems. This is illustrated in the rightmost columns of Table 2. Figure 1 shows the variation in performance of the hybrid depending on the value of the clause/literal ratio. The vertical axis shows the number of hybrid branch and bound nodes taken on average for each problem as a percentage of the original number of branch and bound nodes, i.e.: B & B Nodes (Hybrid) % of B & B Nodes = average of × 100% B & B Nodes (Original) Table 2. Summary of test problems. Number of problems with MAX-SAT optimal solution = Type A B C D E F Variables (m) 120 100 100 80 85 80 Clauses (n) 492 430 470 400 425 416 Ratio (n ÷ m) 4.1 4.3 4.7 5 5 5.2 0 23 20 1 2 4 11 2 3 1 11 12 8 7 1 8 5 5 1 6 6 3 2 3 4 5 560 FRENCH, ROBINSON AND WILSON Figure 1. Hybrid performance vs. clause/literal ratio. It is apparent from figure 1 that the hybrid performs far better as the ratio between clauses and literals increases. For ratios of 4.3 and below branch and bound outperforms the hybrid. 4.3. Hybrid performance versus MAX-SAT optimal solution Figure 2 shows how the hybrid performs against the optimal solution of MAX-SAT problems. The performance is markedly better for unsatisfiable problems. As the number of unsatisfiable clauses increases the results tend to cluster in the 75% to 100% region. This may be because branch and bound has to spend much of its time proving optimality even after the optimal solution has been found. Thus, the hybrid is capable of finding the optimal solution more quickly than branch and bound, but can provide little or no help in the considerable exercise of subsequently proving optimality. 4.4. Hybrid performance versus branch and bound nodes Figure 3 shows how the hybrid performs against the number of nodes taken by the original non-hybridized branch and bound algorithm. As the number of original branch and bound nodes increases, the tendency is for the hybrid to perform in the 85% to 100% region. For these larger problems, branch and bound is spending much of its effort in trying to improve on an already optimal solution. It is unlikely that the hybrid will be capable of providing much guidance to branch and bound in this activity. The performance of the hybrid on smaller problems is variable, but on average outperforms branch and bound. A HYBRID GENETIC-ALGORITHM/BRANCH AND BOUND APPROACH 561 Figure 2. Hybrid performance vs. MAX-SAT optimal solution. Figure 3. Hybrid performance vs. number of nodes used by original branch and bound. 562 4.5. Hybrid performance versus other factors FRENCH, ROBINSON AND WILSON Other factors such as number of literals and number of clauses were investigated to seek trends in performance, but no discernible patterns were found. This was not unexpected since it is possible to create MAX-SAT problem instances with relatively few literals that are very difficult to solve and conversely MAX-SAT problems with a large number of literals that solve easily. The findings of the results tally very closely with those of Gent and Walsh (1994), i.e. the most telling factor in determining the relative difficulty of solving MAX-SAT problems is the ratio between the number of clauses and literals. 4.6. Within-problem variability The results presented above are all based on average performance for each problem. Due to the stochastic nature of the hybrid algorithm, it is necessary to conduct a number of experiments for each problem. The variability between different experiments showed the occasional large or small observation, but most results were clustered evenly about the mean. Figure 4 shows the variability for each problem of type E (see Table 2). It can be seen that experiments took between 0% and 140% of the number of original branch and bound nodes, but that most experiments were bunched in the 80% to 100% range. 4.7. Suggested use of the hybrid algorithm Of all the results discussed in this section, the only set with any predictive capability are those concerned with the performance of the hybrid against the ratio between clauses and Figure 4. Experimental variation for the 85 literal, 425 clause problems. A HYBRID GENETIC-ALGORITHM/BRANCH AND BOUND APPROACH 563 literals, as this ratio can be calculated in advance. The results presented above suggest that the hybrid should not be used when this ratio is 4.3 and below, but that the hybrid is liable to be of assistance when the ratio is above this value. 5. Conclusions A hybrid algorithm is developed combining a GA with branch and bound and embedding it within a standard piece of IP software. The hybrid algorithm has been extensively tested (10,000’s of runs) and performed well. The hybrid algorithm is still capable of further development, but indications provide considerable hope for solving difficult combinatorial problems, where neither branch and bound nor GA is the ideal method. The combination of the two techniques seems to add power. Some of the results are very good, with both nodes and computation time saved. When the algorithm does not give good results, ‘badness’ could be a factor of 1.65, but obtaining an optimal solution is always guaranteed. References Beasley, J.E. and P.C. Chu. (1996). “A Genetic Algorithm for the Set Covering Problem.” European Journal of Operational Research 94, 392–404. Blair, C., R.G. Jeroslow, and J.K. Lowe. (1988). “Some Results and Experiments in Programming Techniques for Propositional Logic.” Computers and Operations Research 13, 633–645. Cook, S.A. (1971). “The Complexity of Theorem-Proving Procedures.” in Proceedings of the 3rd Annual ACM Symposium on the Theory of Computing, pp. 151–158. Cotta, C., J.F. Aldana, A.J. Nebro, and J.M. Troya. (1995). “Hybridizing Genetic Algorithms with Branch and Bound Techniques for the Resolution of the TSP. ” In D.W. Pearson, N.C. Steele, and R.F. Albrect (eds.), Artificial Neural Nets and Genetic Algorithms. Proceedings of the International Conference on Artificial Neural Nets and Genetic Algorithms. Ales, France, 1995, pp. 277–280. Davis, L.D. (1991). Handbook of Genetic Algorithms. Amsterdam: Van Rostrand Reinhold. Davis, M. and H. Putnam. (1960). “A Computing Procedure for Quantification Theory.” Journal of the ACM 7, 201–215. De Jong, K.A. and W.M. Spears. (1989). “Using Genetic Algorithms to Solve NP-Complete Problems.” In J.J. Grefenstette (ed.), Proceedings of the 3rd International Genetic Algorithms Conference. New Jersey, USA: Lawrence Erlbaum Associates. DIMACS software: ftp://dimacs.edu/pub/challenge/satisfiability/contributed/selman/mwff.c Gent, I.P. and T. Walsh. (1994). “Easy Problems are Sometimes Hard.” Artificial Intelligence 70, 335– 345. Harche, F., J.N. Hooker, and G. Thompson. (1994). “A Computational Study of Satisfiability Algorithms for Propositional Logic.” ORSA Journal on Computing 6, 423–435. Holland, J. (1975). Adaption in Natural and Artificial Systems. Michigan: University of Michigan Press. Hooker, J.N. (1996). “Resolution and the Integrality of Satisfiability Problems.” Mathematical Programming 74, 1–10. Hooker, J.N. and V. Vinay. (1995). “Branching Rules for Satisfiability.” Journal of Automated Reasoning 15, 359–383. Jeroslow, R.G. and J. Wang. (1990). “Solving Propositional Satisfiability Problems.” Annals of Mathematics and Artificial Intelligence 1, 167–187. Land, A.H. and A.G. Doig. (1960). “An Automatic Method for Solving Discrete Programming Problems.” Econometrica 28, 497–520. 564 FRENCH, ROBINSON AND WILSON Loveland, D.W. (1978). Automated Theorem Proving: A Logical Basis. Amsterdam: North-Holland. Nagar, A., S.S. Heragu, and J. Haddock. (1996). “A Combined Branch and Bound and Genetic Algorithm Based for a Flowshop Scheduling Algorithm.” Annals of Operations Research 63, 397–414. Reeves, C.R. (1993). Modern Heuristic Techniques for Combinatorial Problems. Oxford: Blackwell Scientific. Reeves, C. (1996). “Hybrid Genetic Algorithms for Bin-Packing and Related Problems.” Annals of Operations Research 63, 371–396. XPRESS-MP, Dash Associates Ltd., Blisworth, Northamptonshire, England.

Related docs
UPWARD BOUND GRANTEE
Views: 11  |  Downloads: 0
Commercial Net Branch
Views: 10  |  Downloads: 1
FY Grantees Upward Bound Program
Views: 4  |  Downloads: 0
ga divorce
Views: 271  |  Downloads: 3
Eviction Notice In Ga
Views: 3  |  Downloads: 0
Upward Bound Program FY 2002 Grantees (PDF)
Views: 0  |  Downloads: 0
Branch Lease
Views: 0  |  Downloads: 0
G.A. Cohen
Views: 22  |  Downloads: 0
Other docs by Daniel voydge