235 research outputs found
Bottom-Up Grounding in the Probabilistic Logic Programming System Fusemate
This paper introduces the Fusemate probabilistic logic programming system.
Fusemate's inference engine comprises a grounding component and a variable
elimination method for probabilistic inference. Fusemate differs from most
other systems by grounding the program in a bottom-up way instead of the common
top-down way. While bottom-up grounding is attractive for a number of reasons,
e.g., for dynamically creating distributions of varying support sizes, it makes
it harder to control the amount of ground clauses generated. We address this
problem by interleaving grounding (along program stratification) with a
query-guided relevance test. This test prunes ground rules whose heads are
inconsistent with the query dynamically extended by the ground rules so far. We
present our method in detail and demonstrate it with examples that involve
``time'', such as (hidden) Markov models. Our experiments demonstrate
competitive or better performance compared to a state-of-the probabilistic
logic programming system, in particular for high branching problems
Finite-State Abstractions for Probabilistic Computation Tree Logic
Probabilistic Computation Tree Logic (PCTL) is the established temporal
logic for probabilistic verification of discrete-time Markov chains. Probabilistic
model checking is a technique that verifies or refutes whether a property
specified in this logic holds in a Markov chain. But Markov chains are often
infinite or too large for this technique to apply. A standard solution to
this problem is to convert the Markov chain to an abstract model and to
model check that abstract model. The problem this thesis therefore studies
is whether or when such finite abstractions of Markov chains for model
checking PCTL exist.
This thesis makes the following contributions. We identify a sizeable fragment
of PCTL for which 3-valued Markov chains can serve as finite abstractions;
this fragment is maximal for those abstractions and subsumes many
practically relevant specifications including, e.g., reachability. We also develop
game-theoretic foundations for the semantics of PCTL over Markov
chains by capturing the standard PCTL semantics via a two-player games.
These games, finally, inspire a notion of p-automata, which accept entire
Markov chains. We show that p-automata subsume PCTL and Markov
chains; that their languages of Markov chains have pleasant closure properties;
and that the complexity of deciding acceptance matches that of probabilistic
model checking for p-automata representing PCTL formulae. In addition,
we offer a simulation between p-automata that under-approximates
language containment. These results then allow us to show that p-automata
comprise a solution to the problem studied in this thesis
The Magic of Logical Inference in Probabilistic Programming
Today, many different probabilistic programming languages exist and even more
inference mechanisms for these languages. Still, most logic programming based
languages use backward reasoning based on SLD resolution for inference. While
these methods are typically computationally efficient, they often can neither
handle infinite and/or continuous distributions, nor evidence. To overcome
these limitations, we introduce distributional clauses, a variation and
extension of Sato's distribution semantics. We also contribute a novel
approximate inference method that integrates forward reasoning with importance
sampling, a well-known technique for probabilistic inference. To achieve
efficiency, we integrate two logic programming techniques to direct forward
sampling. Magic sets are used to focus on relevant parts of the program, while
the integration of backward reasoning allows one to identify and avoid regions
of the sample space that are inconsistent with the evidence.Comment: 17 pages, 2 figures, International Conference on Logic Programming
(ICLP 2011
Correct Probabilistic Model Checking with Floating-Point Arithmetic
Probabilistic model checking computes probabilities and expected values
related to designated behaviours of interest in Markov models. As a formal
verification approach, it is applied to critical systems; thus we trust that
probabilistic model checkers deliver correct results. To achieve scalability
and performance, however, these tools use finite-precision floating-point
numbers to represent and calculate probabilities and other values. As a
consequence, their results are affected by rounding errors that may accumulate
and interact in hard-to-predict ways. In this paper, we show how to implement
fast and correct probabilistic model checking by exploiting the ability of
current hardware to control the direction of rounding in floating-point
calculations. We outline the complications in achieving correct rounding from
higher-level programming languages, describe our implementation as part of the
Modest Toolset's 'mcsta' model checker, and exemplify the tradeoffs between
performance and correctness in an extensive experimental evaluation across
different operating systems and CPU architectures
Probabilistic Programming Concepts
A multitude of different probabilistic programming languages exists today,
all extending a traditional programming language with primitives to support
modeling of complex, structured probability distributions. Each of these
languages employs its own probabilistic primitives, and comes with a particular
syntax, semantics and inference procedure. This makes it hard to understand the
underlying programming concepts and appreciate the differences between the
different languages. To obtain a better understanding of probabilistic
programming, we identify a number of core programming concepts underlying the
primitives used by various probabilistic languages, discuss the execution
mechanisms that they require and use these to position state-of-the-art
probabilistic languages and their implementation. While doing so, we focus on
probabilistic extensions of logic programming languages such as Prolog, which
have been developed since more than 20 years
Search and Result Presentation in Scientific Workflow Repositories
We study the problem of searching a repository of complex hierarchical
workflows whose component modules, both composite and atomic, have been
annotated with keywords. Since keyword search does not use the graph structure
of a workflow, we develop a model of workflows using context-free bag grammars.
We then give efficient polynomial-time algorithms that, given a workflow and a
keyword query, determine whether some execution of the workflow matches the
query. Based on these algorithms we develop a search and ranking solution that
efficiently retrieves the top-k grammars from a repository. Finally, we propose
a novel result presentation method for grammars matching a keyword query, based
on representative parse-trees. The effectiveness of our approach is validated
through an extensive experimental evaluation
- …