20 research outputs found

    Solving the Resource Constrained Project Scheduling Problem with Generalized Precedences by Lazy Clause Generation

    Full text link
    The technical report presents a generic exact solution approach for minimizing the project duration of the resource-constrained project scheduling problem with generalized precedences (Rcpsp/max). The approach uses lazy clause generation, i.e., a hybrid of finite domain and Boolean satisfiability solving, in order to apply nogood learning and conflict-driven search on the solution generation. Our experiments show the benefit of lazy clause generation for finding an optimal solutions and proving its optimality in comparison to other state-of-the-art exact and non-exact methods. The method is highly robust: it matched or bettered the best known results on all of the 2340 instances we examined except 3, according to the currently available data on the PSPLib. Of the 631 open instances in this set it closed 573 and improved the bounds of 51 of the remaining 58 instances.Comment: 37 pages, 3 figures, 16 table

    Linear-time filtering algorithms for the disjunctive constraint and a quadratic filtering algorithm for the cumulative not-first not-last

    Get PDF
    We present new filtering algorithms for Disjunctive and Cumulative constraints, each of which improves the complexity of the state-of-theart algorithms by a factor of log n. We show how to perform TimeTabling and Detectable Precedences in linear time on the Disjunctive constraint. Furthermore, we present a linear-time Overload Checking for the Disjunctive and Cumulative constraints. Finally, we show how the rule of Not-first/Not-last can be enforced in quadratic time for the Cumulative constraint. These algorithms rely on the union find data structure, from which we take advantage to introduce a new data structure that we call it time line. This data structure provides constant time operations that were previously implemented in logarithmic time by the Θ-tree data structure. Experiments show that these new algorithms are competitive even for a small number of tasks and outperform existing algorithms as the number of tasks increases. We also show that the time line can be used to solve specific scheduling problems

    Solving resource-constrained shceuling problems with exact methods

    Get PDF
    Scheduling problems mainly consist in finding an assignment of execution times (a schedule) to a set of activities of a project that optimizes an objective function. There are many constraints imposed over the activities that any schedule must satisfy. The most usual constraints establish precedence relations between activities, or limit the amount of some resources that the activities can consume. There are many scheduling problems in the literature that have been and are currently still being studied. A paradigmatic example is the Resource-Constraint Project Scheduling Problem (RCPSP). It consists in finding a start time for each one of the activities of a project, respecting pre-defined precedence relations between activities and without exceeding the capacity of a set of resources that the activities consume. The goal is to find a schedule with the minimum makespan (total execution time of the project). The RCPSP has many generalizations, one of which is the Multimode Resource-Constrained Project Scheduling Problem (MRCPSP). In this variation, each activity has several available execution modes that differ in the duration of the activity or the demand of resources. A solution for the MRCPSP determines the start times of the activities and also an execution mode for each one. These problems are NP-hard, and are known in the literature to be especially hard, with moderately small instances of 50 activities that are still open. There are many approaches to solving RCPSP and MRCPSP in the literature. They are often tackled with metaheuristics due to their high complexity, but there are also some exact approaches, including Mixed Integer Linear Programming (MILP), Branch-and-Bound algorithms or Boolean Satisfiability (SAT), which have shown to be competitive and in many cases even better than metaheuristics. One of the exact methods that is growing in use in the field of constrained optimization is SAT Modulo Theories (SMT). This thesis is the continuation of previous works carried out in the Logic and Programming (L ∧ P) group of Universitat de Girona, which used SMT to tackle RCPSP and MRCPSP. Excluding these, there have not been any other attempts to use SMT to solve the MRCPSP. SMT solvers (like other generic methods such as SAT or MILP) do not know which is the problem they are dealing with. It is the work of the modeler to provide a representation of the problem (i.e. an encoding) in the language that the solver admits. The main goal of this thesis is to use SMT to solve the Multimode Resource-Constraint Project Scheduling Problem. We focus on two already existing encodings for the MRCPSP, namely the time encoding and the task encoding. We use some existing preprocessing methods that contribute to the formulation of time and task, and present new preprocessings. Most of them are based on the idea of incompatibility between two activities, i.e., the impossibility that two activities run at the same time instant. These incompatibilities let us discharge some con- figurations of the solutions prior to encode the problem. Consequently, the use of preprocessings helps to reduce the size of the encodings in terms of variables and clauses. Another contribution of this work is the study of the time and task encodings and the differences that they present. We refine these encodings to provide more compact versions. Moreover, two new versions of these encodings are presented, which mainly differ in the codification of the constraints over the use of resources. One of them is based on Linear Integer Arithmetic expressions, and the other one in Pseudo-Boolean constraints and Integer Difference Logic. Another contribution of this work is the presentation of an ad-hoc optimization algorithm based on a linear search that mainly consists in three steps. First of all it simplifies the problem to efficiently ensure or discharge the feasibility of the instance, then it finds a first non-optimal solution by using a quick heuristic method, and finally it optimizes the problem making use of the knowledge acquired with the preprocessings to boost the search. We also present an initial work on a more intrusive approach consisting in modifying the internal heuristic of the SMT solver for the decision of literals. This work involves the study of a state-of-the-art implementation of an SMT solver, and its modification to include a framework to specify heuristics related with the encoding of the problem. We give some initial results on custom heuristics for the time and task encodings of the MRCPSP. Finally, we test our system with the benchmark sets of instances for the MRCPSP available in the literature, and compare our performance with a state-of-the-art exact solver for the MRCPSP. The results show that we are able to solve the major part of the benchmark sets. Moreover, we show to be competitive with the state-of-the-art solver of Vílim et. al. for the MRCPSP, being our system slower in solving the easiest benchmark instances, but outperforming the solver of Vílim et. al. in solving the hardest instance

    Survey on Combinatorial Register Allocation and Instruction Scheduling

    Full text link
    Register allocation (mapping variables to processor registers or memory) and instruction scheduling (reordering instructions to increase instruction-level parallelism) are essential tasks for generating efficient assembly code in a compiler. In the last three decades, combinatorial optimization has emerged as an alternative to traditional, heuristic algorithms for these two tasks. Combinatorial optimization approaches can deliver optimal solutions according to a model, can precisely capture trade-offs between conflicting decisions, and are more flexible at the expense of increased compilation time. This paper provides an exhaustive literature review and a classification of combinatorial optimization approaches to register allocation and instruction scheduling, with a focus on the techniques that are most applied in this context: integer programming, constraint programming, partitioned Boolean quadratic programming, and enumeration. Researchers in compilers and combinatorial optimization can benefit from identifying developments, trends, and challenges in the area; compiler practitioners may discern opportunities and grasp the potential benefit of applying combinatorial optimization

    Ordonnancement de tùches sous contraintes sur des métiers à tisser

    Get PDF
    Dans une usine de production de textile, il y a des mĂ©tiers Ă  tisser. Ces mĂ©tiers Ă  tisser peuvent ĂȘtre configurĂ©s de diffĂ©rentes façons. Des tĂąches doivent ĂȘtre exĂ©cutĂ©es sur ces mĂ©tiers Ă  tisser et le temps d’exĂ©cution d’une tĂąche est fonction du mĂ©tier sur lequel elle est effectuĂ©e. De plus, chaque tĂąche est seulement compatible avec les mĂ©tiers Ă  tisser Ă©tant configurĂ©s de certaines façons. Un temps de mise en course peut permettre de configurer ou prĂ©parer un mĂ©tier Ă  tisser pour l’exĂ©cution d’une tĂąche. Le temps de mise en course est dĂ©pendant de la tĂąche qui prĂ©cĂšde et de celle qui suit. Nous souhaitons alors crĂ©er un horaire pour minimiser les temps de fabrication et les retards. Toutefois, certaines contraintes doivent ĂȘtre respectĂ©es. Lorsque des prĂ©parations surviennent sur des mĂ©tiers diffĂ©rents en mĂȘme temps, le nombre d’employĂ©s doit ĂȘtre suffisant. Un mĂ©tier ne peut faire qu’une seule action Ă  la fois. L’ordonnancement d’une seule machine est un problĂšme NP-Difficile. Dans ce projet, il faut ordonnancer environ 800 tĂąches sur 90 machines dans un horizon de deux semaines, tout en respectant les contraintes de personnel. Des Ă©vĂšnements stochastiques doivent ĂȘtre pris en compte pour obtenir un meilleur horaire. Le bris d’un fil n’étant pas un Ă©vĂšnement rare, l’occurrence des bris est donnĂ©e sous la forme d’une loi de Poisson. Nous proposons alors une approche de rĂ©solution utilisant une heuristique de branchement basĂ©e sur le problĂšme du commis voyageur. Cette approche permet d’obtenir de bonnes solutions pour le problĂšme d’ordonnancement explorĂ©. Les solutions trouvĂ©es sont 5 Ă  30% meilleures en termes de fonction objectif qu’une heuristique semblable Ă  celle utilisĂ©e par l’équipe de planification de notre partenaire industriel. Nous prĂ©sentons aussi un algorithme pour garantir la robustesse d’un horaire. Notre algorithme permet de gĂ©nĂ©rer des horaires plus rĂ©alistes et qui rĂ©sistent bien aux Ă©vĂšnements imprĂ©vus. La combinaison de ces deux pratiques mĂšne Ă  l’intĂ©gration et l’utilisation du produit final par notre partenaire industriel.In a textile factory, there are looms. Workers can configure the looms to weave different pieces of textiles. A loom can only weave a piece of textiles if the piece of textiles is compatible with its loom configuration. To change its configuration, a loom requires a setup. The setups are performed manually by workers. There are also sequence-dependent setups to prepare a loom for the upcoming piece of textiles. We wish to minimize the setups duration and the lateness. A solution must satisfy some constraints. The problem is subject to cumulative resources. The quantity of workers simultaneously configuring machines can’t exceed the total number of employees. A loom can only weave a piece of textiles at a time. Scheduling tasks on a single loom is an NP-Hard problem. In this project, we must schedule tasks an average of 800 tasks on 90 looms with a two-week horizon. Stochastic events might occur and must be accounted for. We must design an algorithm to create robust schedules under uncertainty. As a thread breaking during the weaving process isn’t a rare occurrence, a better schedule could greatly impact the performances of a company when applying the schedule to a real situation. We formulate that the number of breaks per task follows a Poisson distribution. First, we propose a branching heuristic based on the traveling salesperson problem in order to leverage computation times. The solutions found are 5 to 30% better according to their objective function than the ones of a greedy heuristic similar to what our industrial partner uses. We also present a filtering algorithm to guarantee robustness of solutions in respect to a confidence level. This algorithm improves robustness and creates more realist schedules. The algorithm is also efficient in computation time by achieving bound consistency in linear time. Combining both these techniques leads to the integration of our research in the decision system of our industrial partner

    Algorithmic Developments in Two-Stage Robust Scheduling

    Get PDF
    This thesis considers the modelling and solving of a range of scheduling problems, with a particular focus on the use of robust optimisation for scheduling in two-stage decision-making contexts. One key contribution of this thesis is the development of a new compact robust counterpart for the resource-constrained project scheduling problem with uncertain activity durations. Resource conflicts must be resolved under the assumption of budgeted uncertainty, but start times can be determined once the activity durations become known. This formulation is also applied to the multi-mode version of this problem. In both cases, computational results show the clear dominance of the new formulation over the prior decomposition-based state-of-the-art methods. This thesis also demonstrates the first application of the recoverable robust framework to single machine scheduling. Two variants of this problem are considered, in which a first-stage schedule is constructed subject to uncertain job processing times, but can be amended in some limited way following the realisation of these processing times. The first of these problems is considered under general polyhedral uncertainty. Key results concerning the second-stage subproblem are derived, resulting in three formulations to the full problem which are compared computationally. The second of these problems considers interval uncertainty but allows for a more general recovery action. A 2-approximation is derived and the performance of a proposed greedy algorithm is examined in a series of computational experiments. In addition to these results on two-stage robust scheduling problems, a new deterministic resource-constrained project scheduling model is developed which, for the first time, combines both generalised precedence constraints and flexible resource allocation. This model is introduced specifically for the application of scheduling the decommissioning of the Sellafield nuclear site. A genetic algorithm is proposed to solve this model, and its performance is compared against a mixedinteger programming formulation

    Automated Deduction – CADE 28

    Get PDF
    This open access book constitutes the proceeding of the 28th International Conference on Automated Deduction, CADE 28, held virtually in July 2021. The 29 full papers and 7 system descriptions presented together with 2 invited papers were carefully reviewed and selected from 76 submissions. CADE is the major forum for the presentation of research in all aspects of automated deduction, including foundations, applications, implementations, and practical experience. The papers are organized in the following topics: Logical foundations; theory and principles; implementation and application; ATP and AI; and system descriptions

    Embedded System Design

    Get PDF
    A unique feature of this open access textbook is to provide a comprehensive introduction to the fundamental knowledge in embedded systems, with applications in cyber-physical systems and the Internet of things. It starts with an introduction to the field and a survey of specification models and languages for embedded and cyber-physical systems. It provides a brief overview of hardware devices used for such systems and presents the essentials of system software for embedded systems, including real-time operating systems. The author also discusses evaluation and validation techniques for embedded systems and provides an overview of techniques for mapping applications to execution platforms, including multi-core platforms. Embedded systems have to operate under tight constraints and, hence, the book also contains a selected set of optimization techniques, including software optimization techniques. The book closes with a brief survey on testing. This fourth edition has been updated and revised to reflect new trends and technologies, such as the importance of cyber-physical systems (CPS) and the Internet of things (IoT), the evolution of single-core processors to multi-core processors, and the increased importance of energy efficiency and thermal issues

    Embedded System Design

    Get PDF
    A unique feature of this open access textbook is to provide a comprehensive introduction to the fundamental knowledge in embedded systems, with applications in cyber-physical systems and the Internet of things. It starts with an introduction to the field and a survey of specification models and languages for embedded and cyber-physical systems. It provides a brief overview of hardware devices used for such systems and presents the essentials of system software for embedded systems, including real-time operating systems. The author also discusses evaluation and validation techniques for embedded systems and provides an overview of techniques for mapping applications to execution platforms, including multi-core platforms. Embedded systems have to operate under tight constraints and, hence, the book also contains a selected set of optimization techniques, including software optimization techniques. The book closes with a brief survey on testing. This fourth edition has been updated and revised to reflect new trends and technologies, such as the importance of cyber-physical systems (CPS) and the Internet of things (IoT), the evolution of single-core processors to multi-core processors, and the increased importance of energy efficiency and thermal issues
    corecore