7 research outputs found

    Cutting plane methods for general integer programming

    Get PDF
    Integer programming (IP) problems are difficult to solve due to the integer restrictions imposed on them. A technique for solving these problems is the cutting plane method. In this method, linear constraints are added to the associated linear programming (LP) problem until an integer optimal solution is found. These constraints cut off part of the LP solution space but do not eliminate any feasible integer solution. In this report algorithms for solving IP due to Gomory and to Dantzig are presented. Two other cutting plane approaches and two extensions to Gomory's algorithm are also discussed. Although these methods are mathematically elegant they are known to have slow convergence and an explosive storage requirement. As a result cutting planes are generally not computationally successful

    Capital Budgeting: An Empirical Approach to a Probabilistic Problem

    Get PDF
    Engineerin

    Objective Function Reduction Algorithm for Integer Linear Programming

    Get PDF
    Engineerin

    Some Aspects of Mathematical Programming in Statictics

    Get PDF
    The Almighty has created the Universe and things present in it with an order and proper positions and the creation looks unique and perfect. No one can even think much better or imagine to optimize these further. People inspired by these optimum results started thinking about usage of optimization techniques for solving their real life problems. The concept of constraint optimization came into being after World War II and its use spread vastly in all fields. However, in this process, still lots of efforts are needed to uncover the mysteries and unanswered questions, one of the questions always remains live that whether there can be a single method that can solve all types of nonlinear programming problems like Simplex Method solves linear programming problems. In the present thesis, we have tried to proceed in this direction and provided some contributions towards this area. The present thesis has been divided into five chapters, chapter wise summary is given below: Chapter-1 is an introductory one and provides genesis of the Mathematical Programming Problems and its use in Statistics. Relationship of mathematical programming with other statistical measures are also reviewed. Definitions and other pre-requisites are also presented in this chapter. The relevant literature on the topic has been surveyed. Chapter-2 deals with the two dimensional non-linear programming problems. We develop a method that can solve approximately all type of two dimensional nonlinear programming problems of certain class. The method has been illustrated with numerical examples. Chapter-3 is devoted to the study of n-dimensional non-linear programming problems of certain types. We provide a new method based on regression analysis and statistical distributions. The method can solve n-dimensional non-linear programming problems making use of regression analysis/co-efficient of determination. In chapter-4 we introduce a filtration method of mathematical programming. This method divides the constraints into active and non active and try to eliminate the less important constraints (non-active constraints) and solve the problem with only active constraints. This helps to find solution in less iterations and less in time while retaining optimality of the solution. The final chapter-5 deals with an interesting relationship between linear and nonlinear programming problems. Using this relationship, we can solve linear programming problems with the help of non-linear programming problems. This relationship also helps to find a better alternate solutions to the linear programming problems. In the end, a complete bibliography is provided

    The 1974 NASA-ASEE summer faculty fellowship aeronautics and space research program

    Get PDF
    Research activities by participants in the fellowship program are documented, and include such topics as: (1) multispectral imagery for detecting southern pine beetle infestations; (2) trajectory optimization techniques for low thrust vehicles; (3) concentration characteristics of a fresnel solar strip reflection concentrator; (4) calaboration and reduction of video camera data; (5) fracture mechanics of Cer-Vit glass-ceramic; (6) space shuttle external propellant tank prelaunch heat transfer; (7) holographic interferometric fringes; and (8) atmospheric wind and stress profiles in a two-dimensional internal boundary layer

    Méthodes pour favoriser l’intégralité de l’amélioration dans le simplexe en nombres entiers - Application aux rotations d’équipages aériens

    Get PDF
    RÉSUMÉ : Dans son cadre le plus général, le processus d’optimisation mathématique se scinde en trois grandes étapes. La première consiste à modéliser le problème, c’est-à-dire le représenter sous la forme d’un programme mathématique, ensemble d’équations constitué d’un objectif à minimiser ou maximiser (typiquement, les coûts ou le bénéfice de l’entreprise) et de contraintes à satisfaire (contraintes opérationnelles, convention collective, etc.). Aux décisions à prendre correspondent les variables du problème. S’il est une représentation parfaite de la réalité, ce modèle est dit exact, sinon il reste approximatif. La seconde étape du processus est la résolution de ce programme mathématique. Il s’agit de déterminer une solution respectant les contraintes et pour laquelle la valeur de l’objectif est la meilleure possible. Pour ce faire, on applique généralement un algorithme de résolution, ensemble de règles opératoires dont l’application permet de résoudre le problème énoncé au moyen d’un nombre fini d’opérations. Un algorithme peut être traduit grâce à un langage de programmation en un programme exécutable par un ordinateur. L’exécution d’un tel programme permet ainsi de résoudre le programme mathématique. Enfin, la dernière étape consiste à ajuster la solution obtenue à la réalité. Dans le cas où le modèle n’est qu’approximatif, cette solution peut ne pas convenir et nécessiter d’être modifiée a posteriori afin de s’accorder aux exigences de la réalité concrète. Cette thèse se concentre sur la seconde de ces trois étapes, l’étape de résolution, en particulier sur le développement d’un algorithme de résolution d’un programme mathématique précis, le partitionnement d’ensemble. Le problème de partitionnement d’ensemble permet de modéliser des applications variées : planification d’emplois du temps, logistique, production d’électricité, partage équitable, reconnaissance de forme, etc. Pour chacun de ces exemples l’objectif et les contraintes prennent des significations physiques différentes, mais la structure du modèle est la même. D’un point de vue mathématique, il s’agit d’un programme linéaire en nombres entiers, dont les variables sont binaires, c’est-à-dire qu’elles ne peuvent prendre que les valeurs 0 et 1. Le programme est linéaire car l’objectif et les contraintes sont représentés par des fonctions linéaires des variables. Les algorithmes les plus couramment utilisés pour la résolution de tels problèmes sont basés sur le principe de séparation et évaluation (branch-and-bound). Dans ces méthodes, les contraintes d’intégralité sont d’abord relâchées : les solutions peuvent alors être fractionnaires. La résolution du programme ainsi obtenu – appelé relaxation linéaire du programme en nombres entiers – est bien plus simple que celle du programme en nombres entiers. Pour obtenir l’intégralité, on sépare le problème afin d’éliminer les solutions fractionnaires. Ces séparations donnent naissance à un arbre de branchement où, à chaque noeud, la relaxation d’un problème de partitionnement de la taille du problème original est résolue. La taille de cet arbre, et donc le temps d’exécution, croissent exponentiellement avec la taille des instances. De plus, l’algorithme utilisé pour résoudre la relaxation, le simplexe, fonctionne mal sur des problèmes dégénérés, c’est-à-dire dont trop de contraintes sont saturées. C’est malheureusement le cas de nombreux problèmes issus de l’industrie, particulièrement du problème de partitionnement dont le taux de dégénérescence est intrinsèquement élevé. Une autre approche de ce type de problèmes est celle des algorithmes primaux : il s’agit de partir d’une solution entière non optimale, de trouver une direction qui mène vers une meilleure solution entière, puis d’itérer ce processus jusqu’à atteindre l’optimalité. À chaque étape, un sous-problème d’augmentation est résolu : trouver une direction d’amélioration (ou d’augmentation) ou affirmer que la solution courante est optimale. Les travaux concernant les méthodes primales sont moins nombreux que ceux sur le branch-and-bound, qui représentent depuis quarante ans la filière dominante pour la résolution de problèmes en nombres entiers. Développer une méthode primale efficace en pratique constituerait ainsi un changement majeur dans le domaine. Des travaux computationels sur des algorithmes primaux ressortent deux principaux défis rencontrés lors de la conception et l’implémentation de ces méthodes. D’une part, de nombreuses directions d’amélioration sont irréalisables, c’est-à-dire qu’effectuer un pas, aussi petit soit-il, dans ces directions implique une violation des contraintes du problème. On parle alors de dégénérescence ; c’est par exemple le cas des directions associées à certains pivots de simplexe (pivots dégénérés). Les directions irréalisables ne permettent pas à l’algorithme de progresser et peuvent mettre en péril sa terminaison s’il est impossible de déterminer de direction réalisable. D’autre part, lorsqu’une direction d’amélioration réalisable pour la relaxation linéaire a été déterminée, il est difficile de s’assurer que la solution vers laquelle elle mène est entière. Parmi les algorithmes primaux existants, celui qui apparait comme le plus prometteur est le simplexe en nombres entiers avec décomposition (Integral Simplex Using Decomposition, ISUD) car il intègre au cadre primal des techniques de décomposition permettant de se prémunir des effets néfastes de la dégénérescence. Il s’agit à notre connaissance du premier algorithme de type primal capable de battre le branch-and-bound sur des instances de grande taille ; par ailleurs, la différence est d’autant plus importante que le problème est grand. Bien que fournissant des éléments de réponse à la problématique de la dégénérescence, cette méthode n’aborde pas pour autant la question de l’intégralité lors du passage à une solution de meilleur coût ; et pour qu’ISUD puisse envisager de supplanter les méthodes de type branch-and-bound, il lui faut parcourir cette deuxième moitié du chemin. Il s’agit là de l’objectif de ce doctorat : augmenter le taux de directions entières trouvées par ISUD pour le rendre applicable aux instances industrielles de grande taille, de type planification de personnel. Pour aller dans cette direction, nous approfondissons tout d’abord les connaissances théoriques sur ISUD. Formuler ce dernier comme un algorithme primal, comprendre en quoi il se rattache à cette famille, le traduire pour la première fois dans un langage exclusivement primal sans faire appel à la dualité, constituent le terreau de cette thèse. Cette analyse permet ensuite de mieux décrire la géométrie sous-jacente ainsi que les domaines de réalisabilité des différents problèmes linéaires considérés. Quand bien même ce pan majeur de notre travail n’est pas présenté dans cette thèse comme un chapitre à part entière, il se situe indubitablement à l’origine de chacune de nos idées, de nos approches et de nos contributions. Cette approche de l’algorithme sous un angle nouveau donne lieu à de nombreuses simplifications, améliorations et extensions de résultats déjà connus. Dans un premier temps, nous généralisons la formulation du problème d’augmentation afin d’augmenter la probabilité que la direction déterminée par l’algorithme mène vers une nouvelle solution entière. Lors de l’exécution d’ISUD, pour déterminer la direction qui mènera à la solution suivante, on résout un programme linéaire dont la solution est une direction d’amélioration qui appartient au cône des directions réalisables. Pour s’assurer que ce programme est borné (les directions pourraient partir à l’infini), on lui ajoute une contrainte de normalisation et on se restreint ainsi à une section de ce cône. Dans la version originelle de l’algorithme, les coefficients de cette contrainte sont uniformes. Nous généralisons cette contrainte à une section quelconque du cône et montrons que la direction réalisable déterminée par l’algorithme dépend fortement du choix des coefficients de cette contrainte ; il en va de même pour la probabilité que la solution vers laquelle elle mène soit entière. Nous étendons les propriétés théoriques liés à la décomposition dans l’algorihtme ISUD et montrons de nouveaux résultats dans le cas d’un choix de coefficients quelconques. Nous déterminons de nouvelles propriétés spécifiques à certains choix de normalisation et faisons des recommandations pour choisir les coefficients afin de pénaliser les directions fractionnaires au profit des directions entières. Des résultats numériques sur des instances de planification de personnel montrent le potentiel de notre approche. Alors que la version originale d’ISUD permet de résoudre 78% des instances de transport aérien du benchmark considéré, 100% sont résolues grâce à l’un, au moins, des modèles que nous proposons. Dans un second temps, nous montrons qu’il est possible d’adapter des méthodes de plans coupants utilisés en programmation linéaire en nombres entiers au cas d’ISUD. Nous montrons que des coupes peuvent êtres transférées dans le problème d’augmentation, et nous caractérisons l’ensemble des coupes transférables comme l’ensemble, non vide, des coupes primales saturées pour la solution courante du problème de partitionnement. Nous montrons que de telles coupes existent toujours, proposons des algorithmes de séparation efficaces pour les coupes primales de cycle impair et de clique, et montrons que l’espace de recherche de ces coupes peut être restreint à un petit nombre de variables, ce qui rend le processus efficace. Des résultats numériques prouvent la validité de notre approche ; ces tests sont effectués sur des instances de planification de personnel navigant et de chauffeurs d’autobus allant jusqu’à 1 600 contraintes et 570 000 variables. Sur les instances de transport aérien testées l’ajout de coupes primales permet de passer d’un taux de résolution de 70% à 92%. Sur de grandes instances d’horaires de chauffeurs d’autobus, les coupes prouvent l’optimalité locale de la solution dans plus de 80% des cas. Dans un dernier temps, nous modifions dynamiquement les coefficients de la contrainte de normalisation lorsque la direction trouvée par l’algorithme mène vers une solution fractionnaire. Nous proposons plusieurs stratégies de mise-à-jour visant à pénaliser les directions fractionnaires basées sur des observations théoriques et pratiques. Certaines visent à pénaliser la direction choisie par l’algorithme, d’autres procèdent par perturbation des coefficients de normalisation en utilisant les équations des coupes mentionnées précédemment. Cette version de l’algorithme est testée sur un nouvel ensemble d’instances provenant de l’industrie du transport aérien. À notre connaissance, l’ensemble d’instances que nous proposons n’est comparable à aucun autre. Il s’agit en effet de grands problèmes d’horaires de personnel navigant allant jusqu’à 1 700 vols et 115 000 rotations, donc autant de contraintes et de variables. Ils sont posés sous la forme de problèmes de partitionnement pour lesquels nous fournissons des solutions initiales comparables à celles dont on disposerait en milieu industriel. Notre travail montre le potentiel qu’ont les algorithmes primaux pour résoudre des problèmes de planification de personnel navigant, problèmes clés pour les compagnies aériennes, tant par leur complexité intrinsèque que par les conséquences économiques et financières qu’ils entraînent.----------ABSTRACT : Optimization is a three-step process. Step one models the problem and writes it as a mathematical program, i.e., a set of equations that includes an objective one seeks to minimize or maximize (typically the costs or benefit of a company) and constraints that must be satisfied by any acceptable solution (operational constraints, collective agreement, etc.). The unknowns of the model are the decision variables; they correspond to the quantities the decision-maker wants to infer. A model that perfectly represents reality is exact, otherwise it is approximate. The second step of the optimization process is the solution of the mathematical program, i.e., the determination of a solution that satisfies all constraints and for which the objective value is as good as possible. To this end, one generally uses an algorithm, a self-contained step-by-step set of operating rules that solves the problem in a finite number of operations. The algorithm is translated by means of a programming language into an executable program run by a computer; the execution of such software solves the mathematical program. Finally, the last step is the adaptation of the mathematical solution to reality. When the model is only approximate, the output solution may not fit the original requirements and therefore require a posteriori modifications. This thesis concentrates on the second of these three steps, the solution process. More specifically, we design and implement an algorithm that solves a specific mathematical program: set partitioning. The set partitioning problem models a very wide range of applications: workforce scheduling, logistics, electricity production planning, pattern recognition, etc. In each of these examples, the objective function and the constraints have different physical significations but the structure of the model is the same. From a mathematical point of view, it is an integer linear program whose decision variables can only take value 0 or 1. It is linear because both the objective and the constraints are linear functions of the variables. Most algorithms used to solve this family of programs are based on the principle called branch-and-bound. At first, the integrality constraints are relaxed; solutions may thus be fractional. The solution of the resulting program – called linear relaxation of the integer program – is significantly easier than that of the integer program. Then, to recover integrality, the problem is separated to eliminate fractional solutions. From the splitting a branching tree arises, in which, at each node, the relaxation of a set partitioning problem as big as the original one is solved. The size of that tree, and thus the solving time, grows exponentially with the size of the instance. Furthermore, the algorithm that solves the linear relaxations, the simplex, performs poorly on degenerate problems, i.e., problems for which too many constraints are tight. It is unfortunately the case of many industrial problems, and particularly of the set partitioning problem whose degeneracy rate is intrinsiquely high. An alternative approach is that of primal algorithms: start from a nonoptimal integer solution and find a direction that leads to a better one (also integer). That process is iterated until optimality is reached. At each step of the process one solves an augmentation subproblem which either outputs an augmenting direction or asserts that the current solution is optimal. The literature is significantly less abundant on primal algorithms than on branchand- bound and the latter has been the dominant method in integer programming for over forty years. The development of an efficient primal method would therefore stand as a major breakthrough in this field. From the computational works on primal algorithms, two main issues stand out concerning their design and implementation. On the one hand, many augmenting directions are infeasible, i.e., taking the smallest step in such a direction results in a violation of the constraints. This problem is strongly related to degeneracy and often affects simplex pivots (e.g., degenerate pivots). Infeasible directions prevent the algorithm from moving ahead and may jeopardize its performance, and even its termination when it is impossible to find a feasible direction. On the other hand, when a cost-improving direction has been succesfully determined, it may be hard to ensure that it leads to an integer solution. Among existing primal algorithms, the one appearing to be the most promising is the integral simplex using decomposition (ISUD) because it embeds decomposition techniques that palliate the unwanted effects of degeneracy into a primal framework. To our knowledge, it is the first primal algorithm to beat branch-and-bound on large scale industrial instances. Furthermore, its performances improve when the problem gets bigger. Despite its strong assets to counter degeneracy, however, this method does not handle the matter of integrality when reaching out for the next solution; and if ISUD is to compete with branch-and-bound, it is crucial that this issue be tackled. Therefore, the purpose of this thesis is the following: increasing the rate of integral directions found by ISUD to make it fully competitive with existing solvers on large-scale industrial workforce scheduling instances. To proceed in that direction, we first deepen the theoretical knowledge on ISUD. Formulating it as a primal algorithm, understanding how it belongs to that family, and translating it in a purely primal language that requires no notion of duality provide a fertile ground to our work. This analysis yields geometrical interpretations of the underlying structures and domains of the several mathematical programs involved in the solution process. Although no chapter specifically focuses on that facet of our work, most of our ideas, approaches and contributions stem from it. This groundbreaking approach of ISUD leads to simplifications, strengthening, and extensions of several theoretical results. In the first part of this work, we generalize the formulation of the augmentation problem in order to increase the likelihood that the direction found by the algorithm leads to a new integer solution. In ISUD, to find the edge leading to the next point, one solves a linear program to select an augmenting direction from a cone of feasible directions. To ensure that this linear program is bounded (the directions could go to infinity), a normalization constraint is added and the optimization is performed on a section of the cone. In the original version of the algorithm, all weights take the same value. We extend this constraint to the case of a generic normalization constraint and show that the output direction dépends strongly on the chosen normalization weights, and so does the likelihood that the next solution is integer. We extend the theoretical properties of ISUD, particularly those that are related to decomposition and we prove new results in the case of a generic normalization constraint. We explore the theoretical properties of some specific constraints, and discuss the design of the normalization constraint so as to penalize fractional directions. We also report computational results on workforce scheduling instances that show the potential behind our approach. While only 78% of aircrew scheduling instances from that benchmark are solved with the original version of ISUD, 100% of them are solved by at least one of the models we propose. In the second part, we show that cutting plane methods used in integer linear programming can be adapted to ISUD. We show that cutting planes can be transferred to the augmentation problem, and we characterize the set of transferable cuts as a nonempty subset of primal cuts that are tight to the current solution. We prove that these cutting planes always exist, we propose efficient separation procedures for primal clique and odd-cycle cuts, and we prove that their search space can be restricted to a small subset of the variables making the computation efficient. Numerical results demonstrate the effectiveness of adding cutting planes to the algorithm. Tests are performed on small- and large-scale set partitioning problems from aircrew and bus-driver scheduling instances up to 1,600 constraints and 570,000 variables. On the aircrew scheduling instances, the addition of primal cuts raises the rate of instances solved from 70% to 92%. On large bus drivers scheduling instances, primal cuts prove that the solution found by ISUD is optimal over a large subset of the domain for more than 80% of the instances. In the last part, we dynamically update the coefficients of the normalization constraint whenever the direction found by the algorithm leads to a fractional solution, to penalize that direction. We propose several update strategies based on theoretical and experimental results. Some penalize the very direction returned by the algorithm, others operate by perturbating the normalization coefficients with those of the aforementionned primal cuts. To prove the efficiency of our strategies, we show that our version of the algorithm yields better results than the former version and than classical branch-and-bound techniques on a benchmark of industrial aircrew scheduling instances. The benchmark that we propose is, to the best of our knowledge, comparable to no other from the literature. It provides largescale instances with up to 1,700 flights and 115,000 pairings, hence as many constraints and variables, and the instances are given in a set-partitioning form together with initial solutions that accurately mimic those of industrial applications. Our work shows the strong potential of primal algorithms for the crew scheduling problem, which is a key challenge for large airlines, both financially significant and notably hard to solve
    corecore