570 research outputs found

    The MATSim Network Flow Model for Traffic Simulation Adapted to Large-Scale Emergency Egress and an Application to the Evacuation of the Indonesian City of Padang in Case of a Tsunami Warning

    Get PDF
    The evacuation of whole cities or even regions is an important problem, as demonstrated by recent events such as evacuation of Houston in the case of Hurricane Rita or the evacuation of coastal cities in the case of Tsunamis. This paper describes a complex evacuation simulation framework for the city of Pandang, with approximately 1,000,000 inhabitants. Padang faces a high risk of being inundated by a tsunami wave. The evacuation simulation is based on the MATSim framework for large-scale transport simulations. Different optimization parameters like evacuation distance, evacuation time, or the variation of the advance warning time are investigated. The results are given as overall evacuation times, evacuation curves, an detailed GIS analysis of the evacuation directions. All these results are discussed with regard to their usability for evacuation recommendations.BMBF, 03G0666E, Verbundprojekt FW: Last-mile Evacuation; Vorhaben: Evakuierungsanalyse und Verkehrsoptimierung, Evakuierungsplan einer Stadt - Sonderprogramm GEOTECHNOLOGIENBMBF, 03NAPAI4, Transport und Verkehr: Verbundprojekt ADVEST: Adaptive Verkehrssteuerung; Teilprojekt Verkehrsplanung und Verkehrssteuerung in Megacitie

    Risk Minimizing Evacuation Strategies under Uncertainty

    Get PDF
    This paper presents results on the simulation of the evacuation of the city of Padang with approximately 1,000,000 inhabitants. The model used is MATSim (www.matsim.org). Three different strategies were applied: shortest path solution, user optimum, system optimum, together with a constraint that moves should reduce risk whenever possible. The introduction of the risk minimization increases the overall required safe egress time (RSET). The differences between the RSET for the three risk minimizing strategies are small. Further quantities used for the assessment of the evacuation are the formation of congestion and the individual RSETs (in comparison with the available SET).BMBF, 03G0666E, Verbundprojekt FW: Last-mile Evacuation; Vorhaben: Evakuierungsanalyse und Verkehrsoptimierung, Evakuierungsplan einer Stadt - Sonderprogramm GEOTECHNOLOGIENBMBF, 03NAPAI4, Transport und Verkehr: Verbundprojekt ADVEST: Adaptive Verkehrssteuerung; Teilprojekt Verkehrsplanung und Verkehrssteuerung in Megacitie

    Scrap your boilerplate with object algebras

    Get PDF
    htmlabstractTraversing complex Abstract Syntax Trees (ASTs) typically requires large amounts of tedious boilerplate code. For many operations most of the code simply walks the structure, and only a small portion of the code implements the functional- ity that motivated the traversal in the first place. This paper presents a type-safe Java framework called Shy that removes much of this boilerplate code. In Shy Object Algebras are used to describe complex and extensible AST structures. Using Java annotations Shy generates generic boilerplate code for various types of traversals. For a concrete traversal, users of Shy can then inherit from the generated code and over- ride only the interesting cases. Consequently, the amount of code that users need to write is significantly smaller. Moreover, traversals using the Shy framework are also much more structure shy, becoming more adaptive to future changes or extensions to the AST structure. To prove the effectiveness of the approach, we applied Shy in the implementation of a domain-specific questionnaire language. Our results show that for a large number of traversals there was a significant reduction in the amount of user-defined code

    The Amsterdam Toolkit for Language Archaeology

    Get PDF
    AbstractGRK — the Grammar Recovery Kit — illustrates options for automation and corresponding tool support in the context of developing quality language references that readily cater for the derivation of parsers.GRK provides the proof-of-concept for two notions: (i) semi-automatic grammar recovery; (ii) language-reference re-engineering. GRK's support for semi-automatic grammar recovery means that GRK can be used to obtain a relatively correct and complete as well as implementable grammar from a language reference. GRK's support for language-reference re-engineering means that GRK can be used to update the original language reference such that it reflects the completed and corrected grammar knowledge.As of today, GRK is particularly fit for Cobol archaeology, more specifically for IBM's VS Cobol II. That is, GRK offers a fully mechanised process, where IBM's reference is used as an input, and the output is a transformed language reference whose grammar portions are correct and complete. (The recovery required several hundreds of simple transformation steps in order to deliver a grammar that is fit for parser derivation.) As a byproduct, GRK also generates a slow, Prolog-based parser. Via export to GRK's sibling, GDK (the Grammar Deployment Kit), a reasonably fast, btyacc-based parser can be generated as well. Both parsers accept all of the VS Cobol II code that is at our avail (several millions of lines of code)

    Programming errors in traversal programs over structured data

    Get PDF
    Traversal strategies \'a la Stratego (also \'a la Strafunski and 'Scrap Your Boilerplate') provide an exceptionally versatile and uniform means of querying and transforming deeply nested and heterogeneously structured data including terms in functional programming and rewriting, objects in OO programming, and XML documents in XML programming. However, the resulting traversal programs are prone to programming errors. We are specifically concerned with errors that go beyond conservative type errors; examples we examine include divergent traversals, prematurely terminated traversals, and traversals with dead code. Based on an inventory of possible programming errors we explore options of static typing and static analysis so that some categories of errors can be avoided. This exploration generates suggestions for improvements to strategy libraries as well as their underlying programming languages. Haskell is used for illustrations and specifications with sufficient explanations to make the presentation comprehensible to the non-specialist. The overall ideas are language-agnostic and they are summarized accordingly

    Strongly typed rewriting for coupled software transformation

    Get PDF
    Coupled transformations occur in software evolution when multiple artifacts must be modified in such a way that they remain consistent with each other. An important example involves the coupled transformation of a data type, its instances, and the programs that consume or produce it. Previously, we have provided a formal treatment of transformation of the first two: data types and instances. The treatment involved the construction of type-safe, type-changing strategic rewrite systems. In this paper, we extend our treatment to the transformation of corresponding data processing programs. The key insight underlying the extension is that both data migration functions and data processors can be represented type-safely by a generalized abstract data type (GADT). These representations are then subjected to program calculation rules, harnessed in type-safe, type-preserving strategic rewrite systems. For ease of calculation, we use point-free representations and corresponding calculation rules. Thus, coupled transformations are carried out in two steps. First, a type-changing rewrite system is applied to a source type to obtain a target type together with (representations of) migration functions between source and target. Then, a type-preserving rewrite system is applied to the composition of a migration function and a data processor on the source (or target) type to obtain a data processor on the target (or source) type. All rewrites are type-safe.Fundação para a Ciência e a Tecnologia (FCT) - POSI/ICHS/44304/2002

    Type-safe two-level data transformation

    Get PDF
    A two-level data transformation consists of a type-level transformation of a data format coupled with value-level transformations of data instances corresponding to that format. Examples of two-level data transformations include XML schema evolution coupled with document migration, and data mappings used for interoperability and persistence. We provide a formal treatment of two-level data transformations that is type-safe in the sense that the well-formedness of the value-level transformations with respect to the type-level transformation is guarded by a strong type system. We rely on various techniques for generic functional programming to implement the formalization in Haskell. The formalization addresses various two-level transformation scenarios, covering fully automated as well as user-driven transformations, and allowing transformations that are information-preserving or not. In each case, two-level transformations are disciplined by one-step transformation rules and type-level transformations induce value-level transformations. We demonstrate an example hierarchical-relational mapping and subsequent migration of relational data induced by hierarchical format evolution.Fundação para a Ciência e a Tecnologia (FCT

    Adding superimposition to a language semantics

    Get PDF
    Given the denotational semantics of a programming language, we describe a general method to extend the language in a way that it supports a form of emph{superimposition}~---~just in the sense of aspect-oriented programming. In the extended language, the programmer can superimpose additional or alternative functionality (aka advice) onto points along the execution of a program. Adding superimposition to a language semantics comes down to three steps: (i) the semantic functions are elaborated to carry advice; (ii) the semantic equations are turned into `reflective' style so that they can be altered at will; (iii) a construct for binding advice is integrated. We illustrate the approach by representing semantics definitions as interpreters in Haskell
    • …
    corecore