161,694 research outputs found
A Generic Module System forWeb Rule Languages: Divide and Rule
An essential feature in practically usable programming languages is
the ability to encapsulate functionality in reusable modules. Modules make large
scale projects tractable by humans. For Web and Semantic Web programming,
many rule-based languages, e.g. XSLT, CSS, Xcerpt, SWRL, SPARQL, and RIF
Core, have evolved or are currently evolving. Rules are easy to comprehend
and specify, even for non-technical users, e.g. business managers, hence easing
the contributions to the Web. Unfortunately, those contributions are arguably
doomed to exist in isolation as most rule languages are conceived without modularity,
hence without an easy mechanism for integration and reuse. In this paper
a generic module system applicable to many rule languages is presented. We
demonstrate and apply our generic module system to a Datalog-like rule language,
close in spirit to RIF Core. The language is gently introduced along the
EU-Rent use case. Using the Reuseware Composition Framework, the module
system for a concrete language can be achieved almost for free, if it adheres to
the formal notions introduced in this paper
Towards a Generic Trace for Rule Based Constraint Reasoning
CHR is a very versatile programming language that allows programmers to
declaratively specify constraint solvers. An important part of the development
of such solvers is in their testing and debugging phases. Current CHR
implementations support those phases by offering tracing facilities with
limited information. In this report, we propose a new trace for CHR which
contains enough information to analyze any aspects of \CHRv\ execution at some
useful abstract level, common to several implementations. %a large family of
rule based solvers. This approach is based on the idea of generic trace. Such a
trace is formally defined as an extension of the semantics of
CHR. We show that it can be derived form the SWI Prolog CHR trace
A Survey of Languages for Specifying Dynamics: A Knowledge Engineering Perspective
A number of formal specification languages for knowledge-based systems has been developed. Characteristics for knowledge-based systems are a complex knowledge base and an inference engine which uses this knowledge to solve a given problem. Specification languages for knowledge-based systems have to cover both aspects. They have to provide the means to specify a complex and large amount of knowledge and they have to provide the means to specify the dynamic reasoning behavior of a knowledge-based system. We focus on the second aspect. For this purpose, we survey existing approaches for specifying dynamic behavior in related areas of research. In fact, we have taken approaches for the specification of information systems (Language for Conceptual Modeling and TROLL), approaches for the specification of database updates and logic programming (Transaction Logic and Dynamic Database Logic) and the generic specification framework of abstract state machine
A GPU-enabled solver for time-constrained linear sum assignment problems
This paper deals with solving large instances of the Linear Sum Assignment Problems (LSAPs) under realtime constraints, using Graphical Processing Units (GPUs). The motivating scenario is an industrial application for P2P live streaming that is moderated by a central tracker that is periodically solving LSAP instances to optimize the connectivity of thousands of peers. However, our findings are generic enough to be applied in other contexts. Our main contribution is a parallel version of a heuristic algorithm called Deep Greedy Switching (DGS) on GPUs using the CUDA programming language. DGS sacrifices absolute optimality in favor of a substantial speedup in comparison to classical LSAP solvers like the Hungarian and auctioning methods. We show the modifications needed to parallelize the DGS algorithm and the performance gains of our approach compared to a sequential CPU-based implementation of DGS and a mixed CPU/GPU-based implementation of it
Constraints in Genetic Programming
Genetic programming refers to a class of genetic algorithms utilizing generic representation in the form of program trees. For a particular application, one needs to provide the set of functions, whose compositions determine the space of program structures being evolved, and the set of terminals, which determine the space of specific instances of those programs. The algorithm searches the space for the best program for a given problem, applying evolutionary mechanisms borrowed from nature. Genetic algorithms have shown great capabilities in approximately solving optimization problems which could not be approximated or solved with other methods. Genetic programming extends their capabilities to deal with a broader variety of problems. However, it also extends the size of the search space, which often becomes too large to be effectively searched even by evolutionary methods. Therefore, our objective is to utilize problem constraints, if such can be identified, to restrict this space. In this publication, we propose a generic constraint specification language, powerful enough for a broad class of problem constraints. This language has two elements -- one reduces only the number of program instances, the other reduces both the space of program structures as well as their instances. With this language, we define the minimal set of complete constraints, and a set of operators guaranteeing offspring validity from valid parents. We also show that these operators are not less efficient than the standard genetic programming operators if one preprocesses the constraints - the necessary mechanisms are identified
Black-hole kicks from numerical-relativity surrogate models
Binary black holes radiate linear momentum in gravitational waves as they
merge. Recoils imparted to the black-hole remnant can reach thousands of km/s,
thus ejecting black holes from their host galaxies. We exploit recent advances
in gravitational waveform modeling to quickly and reliably extract recoils
imparted to generic, precessing, black hole binaries. Our procedure uses a
numerical-relativity surrogate model to obtain the gravitational waveform given
a set of binary parameters, then from this waveform we directly integrate the
gravitational-wave linear momentum flux. This entirely bypasses the need of
fitting formulae which are typically used to model black-hole recoils in
astrophysical contexts. We provide a thorough exploration of the black-hole
kick phenomenology in the parameter space, summarizing and extending previous
numerical results on the topic. Our extraction procedure is made publicly
available as a module for the Python programming language named SURRKICK. Kick
evaluations take ~0.1s on a standard off-the-shelf machine, thus making our
code ideal to be ported to large-scale astrophysical studies.Comment: More: https://davidegerosa.com/surrkick - Source:
https://github.com/dgerosa/surrkick - pypi:
https://pypi.python.org/pypi/surrkick - Published in PR
Algebraic specialization of generic functions for recursive types
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerplate. This code simply traverses non-interesting parts of the data, and rapidly becomes a maintainability problem. Many generic programming libraries have been proposed to address this issue. Most of them allow the user to specify the behavior just for the interesting bits of the structure, and provide traversal combinators to “scrap the boilerplate”. The expressive power of these libraries usually comes at the cost of efficiency, since runtime checks are used to detect where to apply the type-specific behavior.
In previous work we have developed an effective rewrite system for specialization and optimization of generic programs. In this paper we extend it to also cover recursive data types. The key idea is to specialize traversal combinators using well-known recursion patterns, such as folds or paramorphisms. These are ruled by a rich set of algebraic laws that enable aggressive optimizations. We present a type-safe encoding of this rewrite system in Haskell, based on recent language extensions such as type-indexed type families
Recommended from our members
Full report on challenges with learning to program and problem solve: an analysis of first year undergraduate Open University distance learning students' online discussions
Students who study problem solving and programming (in a language such as Python) at University level encounter a range of challenges, from low-level issues with code that won't compile to misconceptions about the threshold concepts and skills. The current study complements existing findings on errors, misconceptions, difficulties and challenges obtained from students after-the-fact through instruments such as questionnaires and interviews. In our study, we analysed the posts from students of a large cohort (1500) of first-year University distance learning students to an online 'Python help forum' - recording issues and discussions as the students encountered specific challenges. Posts were coded in terms of topics, and subsequently thematically grouped into python-related, problem solving/generic programming related, and module specific. This report documents the full set of topics and the statistics for each of them. We also provide examples from the forum discussions which illustrate the topics that were identified
- …