148,300 research outputs found
Improving the Parallel Execution of Behavior Trees
Behavior Trees (BTs) have become a popular framework for designing
controllers of autonomous agents in the computer game and in the robotics
industry. One of the key advantages of BTs lies in their modularity, where
independent modules can be composed to create more complex ones. In the
classical formulation of BTs, modules can be composed using one of the three
operators: Sequence, Fallback, and Parallel. The Parallel operator is rarely
used despite its strong potential against other control architectures as Finite
State Machines. This is due to the fact that concurrent actions may lead to
unexpected problems similar to the ones experienced in concurrent programming.
In this paper, we introduce Concurrent BTs (CBTs) as a generalization of BTs in
which we introduce the notions of progress and resource usage. We show how CBTs
allow safe concurrent executions of actions and we analyze the approach from a
mathematical standpoint. To illustrate the use of CBTs, we provide a set of use
cases in robotics scenarios
Analysing Mutual Exclusion using Process Algebra with Signals
In contrast to common belief, the Calculus of Communicating Systems (CCS) and
similar process algebras lack the expressive power to accurately capture mutual
exclusion protocols without enriching the language with fairness assumptions.
Adding a fairness assumption to implement a mutual exclusion protocol seems
counter-intuitive. We employ a signalling operator, which can be combined with
CCS, or other process calculi, and show that this minimal extension is
expressive enough to model mutual exclusion: we confirm the correctness of
Peterson's mutual exclusion algorithm for two processes, as well as Lamport's
bakery algorithm, under reasonable assumptions on the underlying memory model.
The correctness of Peterson's algorithm for more than two processes requires
stronger, less realistic assumptions on the underlying memory model.Comment: In Proceedings EXPRESS/SOS 2017, arXiv:1709.0004
Recommended from our members
Deriving real-time action systems with multiple time bands using algebraic reasoning
The verify-while-develop paradigm allows one to incrementally develop programs from their specifications using a series of calculations against the remaining proof obligations. This paper presents a derivation method for real-time systems with realistic constraints on their behaviour. We develop a high-level interval-based logic that provides flexibility in an implementation, yet allows algebraic reasoning over multiple granularities and sampling multiple sensors with delay. The semantics of an action system is given in terms of interval predicates and algebraic operators to unify the logics for an action system and its properties, which in turn simplifies the calculations and derivations
Time-Efficient Read/Write Register in Crash-prone Asynchronous Message-Passing Systems
The atomic register is certainly the most basic object of computing science.
Its implementation on top of an n-process asynchronous message-passing system
has received a lot of attention. It has been shown that t \textless{} n/2
(where t is the maximal number of processes that may crash) is a necessary and
sufficient requirement to build an atomic register on top of a crash-prone
asynchronous message-passing system. Considering such a context, this paper
visits the notion of a fast implementation of an atomic register, and presents
a new time-efficient asynchronous algorithm. Its time-efficiency is measured
according to two different underlying synchrony assumptions. Whatever this
assumption, a write operation always costs a round-trip delay, while a read
operation costs always a round-trip delay in favorable circumstances
(intuitively, when it is not concurrent with a write). When designing this
algorithm, the design spirit was to be as close as possible to the one of the
famous ABD algorithm (proposed by Attiya, Bar-Noy, and Dolev)
Reversibility in Massive Concurrent Systems
Reversing a (forward) computation history means undoing the history. In
concurrent systems, undoing the history is not performed in a deterministic way
but in a causally consistent fashion, where states that are reached during a
backward computation are states that could have been reached during the
computation history by just performing independent actions in a different
order.Comment: Presented at MeCBIC 201
Liveness of Randomised Parameterised Systems under Arbitrary Schedulers (Technical Report)
We consider the problem of verifying liveness for systems with a finite, but
unbounded, number of processes, commonly known as parameterised systems.
Typical examples of such systems include distributed protocols (e.g. for the
dining philosopher problem). Unlike the case of verifying safety, proving
liveness is still considered extremely challenging, especially in the presence
of randomness in the system. In this paper we consider liveness under arbitrary
(including unfair) schedulers, which is often considered a desirable property
in the literature of self-stabilising systems. We introduce an automatic method
of proving liveness for randomised parameterised systems under arbitrary
schedulers. Viewing liveness as a two-player reachability game (between
Scheduler and Process), our method is a CEGAR approach that synthesises a
progress relation for Process that can be symbolically represented as a
finite-state automaton. The method is incremental and exploits both
Angluin-style L*-learning and SAT-solvers. Our experiments show that our
algorithm is able to prove liveness automatically for well-known randomised
distributed protocols, including Lehmann-Rabin Randomised Dining Philosopher
Protocol and randomised self-stabilising protocols (such as the Israeli-Jalfon
Protocol). To the best of our knowledge, this is the first fully-automatic
method that can prove liveness for randomised protocols.Comment: Full version of CAV'16 pape
- âŠ