37,912 research outputs found

    Approaches to integrated strategic/tactical forest planning

    Get PDF
    Traditionally forest planning is divided into a hierarchy of planning phases. Strategic planning is conducted to make decisions about sustainable harvest levels while taking into account legislation and policy issues. Within the frame of the strategic plan, the purpose of tactical planning is to schedule harvest operations to specific areas in the immediate few years and on a finer time scale than in the strategic plan. The operative phase focuses on scheduling harvest crews on a monthly or weekly basis, truck scheduling and choosing bucking instructions. Decisions at each level are to a varying degree supported by computerized tools. A problem that may arise when planning is divided into levels and that is noted in the literature focusing on decision support tools is that solutions at one level may be inconsistent with the results of another level. When moving from the strategic plan to the tactical plan, three sources of inconsistencies are often present; spatial discrepancies, temporal discrepancies and discrepancies due to different levels of constraint. The models used in the papers presented in this thesis approaches two of these discrepancies. To address the spatial discrepancies, the same spatial resolution has been used at both levels, i.e., stands. Temporal discrepancies are addressed by modelling the tactical and strategic issues simultaneously. Integrated approaches can yield large models. One way of circumventing this is to aggregate time and/or space. The first paper addresses the consequences of temporal aggregation in the strategic part of a mixed integer programming integrated strategic/tactical model. For reference, linear programming based strategic models are also used. The results of the first paper provide information on what temporal resolutions could be used and indicate that outputs from strategic and integrated plans are not particularly affected by the number of equal length strategic periods when more than five periods, i.e. about 20 year period length, are used. The approach used in the first paper could produce models that are very large, and the second paper provides a two-stage procedure that can reduce the number of variables and preserve the allocation of stands to the first 10 years provided by a linear programming based strategic plan, while concentrating tactical harvest activities using a penalty concept in a mixed integer programming formulation. Results show that it is possible to use the approach to concentrate harvest activities at the tactical level in a full scale forest management scenario. In the case study, the effects of concentration on strategic outputs were small, and the number of harvest tracts declined towards a minimum level. Furthermore, the discrepancies between the two planning levels were small

    Programming with global analysis

    Get PDF
    Global data-flow analysis of (constraint) logic programs, which is generally based on abstract interpretation [7], is reaching a comparatively high level of maturity. A natural question is whether it is time for its routine incorporation in standard compilers, something which, beyond a few experimental systems, has not happened to date. Such incorporation arguably makes good sense only if: • the range of applications of global analysis is large enough to justify the additional complication in the compiler, and • global analysis technology can deal with all the features of "practical" languages (e.g., the ISO-Prolog built-ins) and "scales up" for large programs. We present a tutorial overview of a number of concepts and techniques directly related to the issues above, with special emphasis on the first one. In particular, we concéntrate on novel uses of global analysis during program development and debugging, rather than on the more traditional application área of program optimization. The idea of using abstract interpretation for validation and diagnosis has been studied in the context of imperative programming [2] and also of logic programming. The latter work includes issues such as using approximations to reduce the burden posed on programmers by declarative debuggers [6, 3] and automatically generating and checking assertions [4, 5] (which includes the more traditional type checking of strongly typed languages, such as Gódel or Mercury [1, 8, 9]) We also review some solutions for scalability including modular analysis, incremental analysis, and widening. Finally, we discuss solutions for dealing with meta-predicates, side-effects, delay declarations, constraints, dynamic predicates, and other such features which may appear in practical languages. In the discussion we will draw both from the literature and from our experience and that of others in the development and use of the CIAO system analyzer. In order to emphasize the practical aspects of the solutions discussed, the presentation of several concepts will be illustrated by examples run on the CIAO system, which makes extensive use of global analysis and assertions

    Constructive Cardinality

    Get PDF
    We describe a set of necessary conditions that are useful for generating propagation algorithms for the cardinality operator as well as for over-constrained problems with preferences. Constructive disjunction as well as the entailments rules originally proposed for the cardinality operator can be seen as simple cases of these necessary conditions. In addition these necessary conditions have the advantage of providing more pruning

    Finite domain constraint programming systems

    Get PDF
    Tutorial at CP'2002, Principles and Practice of Constraint Programming. Powerpoint slides.</p

    The CIAO Multi-Dialect Compiler and System: An Experimentation Workbench for Future (C)LP Systems

    Full text link
    CIAO is an advanced programming environment supporting Logic and Constraint programming. It offers a simple concurrent kernel on top of which declarative and non-declarative extensions are added via librarles. Librarles are available for supporting the ISOProlog standard, several constraint domains, functional and higher order programming, concurrent and distributed programming, internet programming, and others. The source language allows declaring properties of predicates via assertions, including types and modes. Such properties are checked at compile-time or at run-time. The compiler and system architecture are designed to natively support modular global analysis, with the two objectives of proving properties in assertions and performing program optimizations, including transparently exploiting parallelism in programs. The purpose of this paper is to report on recent progress made in the context of the CIAO system, with special emphasis on the capabilities of the compiler, the techniques used for supporting such capabilities, and the results in the áreas of program analysis and transformation already obtained with the system

    Abstract verification and debugging of constraint logic programs

    Get PDF
    The technique of Abstract Interpretation [13] has allowed the development of sophisticated program analyses which are provably correct and practical. The semantic approximations produced by such analyses have been traditionally applied to optimization during program compilation. However, recently, novel and promising applications of semantic approximations have been proposed in the more general context of program verification and debugging [3],[10],[7]

    Efficient structural symmetry breaking for constraint satisfaction problems

    Get PDF
    Symmetry breaking for constraint satisfaction problems (CSPs) has attracted considerable attention in recent years. Various general schemes have been proposed to eliminate symmetries. In general, these schemes may take exponential space or time to eliminate all the symmetries. We identify several classes of CSPs that encompass many practical problems and for which symmetry breaking for various forms of value and variable interchangeability is tractable using dedicated search procedures or symmetry-breaking constraints that allow nogoods and their symmetrically equivalent solutions to be stored and checked efficiently

    Hump Yard Track Allocation with Temporary Car Storage

    Get PDF
    In rail freight operation, freight cars need to be separated and reformed into new trains at hump yards. The classification procedure is complex and hump yards constitute bottlenecks in the rail freight network, often causing outbound trains to be delayed. One of the problems is that planning for the allocation of tracks at hump yards is difficult, given that the planner has limited resources (tracks, shunting engines, etc.) and needs to foresee the future capacity requirements when planning for the current inbound trains. In this paper, we consider the problem of allocating classification tracks in a rail freight hump yard for arriving and departing trains with predetermined arrival and departure times. The core problem can be formulated as a special list coloring problem. We focus on an extension where individual cars can temporarily be stored on a special subset of the tracks. An extension where individual cars can temporarily be stored on a special subset of the tracks is also considered. We model the problem using mixed integer programming, and also propose several heuristics that can quickly give feasible track allocations. As a case study, we consider a real-world problem instance from the Hallsberg Rangerbangård hump yard in Sweden. Planning over horizons over two to four days, we obtain feasible solutions from both the exact and heuristic approaches that allow all outgoing trains to leave on time

    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
    corecore