81 research outputs found

    Asynchronous Silent Programmable Matter Achieves Leader Election and Compaction

    Get PDF
    We study models and algorithms for Programmable Matter (PM), that is matter with the ability to change its physical properties (e.g., shape or optical properties) in a programmable fashion. PM can be implemented by assembling a system of weak self-organizing computational elements, called particles, that can be programmed via distributed algorithms to collectively achieve some global task. Recent advances in the production of nanotechnologies have rendered such systems increasingly possible in practice, thus triggering research interests from many areas of computer science. The most established models for PM assume that particles: are modeled as finite state automata; are all identical, executing the same algorithm based on local observation of the surroundings; live and operate in the cells of a hexagonal grid; can move from one cell to another by repeatedly alternating between a contracted state (a particle occupies one cell) and an expanded state (a particle occupies two neighboring cells). Given these elementary features, it is rather hard to design distributed algorithms even for basic tasks and, in fact, all existing solutions to solve fundamental problems via PM have resorted to endowing PM systems with various capabilities to overcome such hardness, thus assuming quite unrealistic features. In this paper, we move toward more realistic computational models for PM. Specifically, we first introduce, a new modeling approach that relaxes several assumptions used in previous ones. Second, we present a distributed algorithm to solve, in the model, a foundational primitive for PM, namely Leader Election. This algorithm works in O(n) rounds for all initial configurations of n particles that are both connected (i.e. particles induce a connected graph) and compact (i.e. without holes, that is no empty cells surrounded by particles occur). As usual in asynchronous contexts, a round is intended as the time within which all particles have been activated at least once. Third, we show that, if the initial configuration admits holes, it is impossible to achieve leader election while preserving connectivity. Finally, by slightly empowering the robots, we design an algorithm to handle initial configurations admitting holes that in O(n2) rounds solves the leader election problem while obtaining also compaction

    The Canonical Amoebot Model: Algorithms and Concurrency Control

    Get PDF
    The amoebot model abstracts active programmable matter as a collection of simple computational elements called amoebots that interact locally to collectively achieve tasks of coordination and movement. Since its introduction (SPAA 2014), a growing body of literature has adapted its assumptions for a variety of problems; however, without a standardized hierarchy of assumptions, precise systematic comparison of results under the amoebot model is difficult. We propose the canonical amoebot model, an updated formalization that distinguishes between core model features and families of assumption variants. A key improvement addressed by the canonical amoebot model is concurrency. Much of the existing literature implicitly assumes amoebot actions are isolated and reliable, reducing analysis to the sequential setting where at most one amoebot is active at a time. However, real programmable matter systems are concurrent. The canonical amoebot model formalizes all amoebot communication as message passing, leveraging adversarial activation models of concurrent executions. Under this granular treatment of time, we take two complementary approaches to concurrent algorithm design. Using hexagon formation as a case study, we first establish a set of sufficient conditions for algorithm correctness under any concurrent execution, embedding concurrency control directly in algorithm design. We then present a concurrency control framework that uses locks to convert amoebot algorithms that terminate in the sequential setting and satisfy certain conventions into algorithms that exhibit equivalent behavior in the concurrent setting. Together, the canonical amoebot model and these complementary approaches to concurrent algorithm design open new directions for distributed computing research on programmable matter

    "Semi-Asynchronous": A New Scheduler in Distributed Computing

    Get PDF
    The study of mobile entities that based on local information have to accomplish global tasks is of main interest for the scientific community. Classic models for the activation and synchronization of mobile entities are the fully-synchronous (FSync), semi-synchronous (SSync), and asynchronous (Async) models, where entities alternate between active and inactive states with different timing. According to the assumed synchronization model, very different results have been achieved in the field of distributed computing. One of the main outcomes is the big gap between the Async and the other models in terms of manageability and algorithm design. In fact, there are still many problems for which it is not known whether synchronicity is crucial for designing resolution algorithms or not. In order to better understand the Async case, here we propose a further model referred to as the semi-asynchronous (SAsync). This slightly deviates from SSync. In fact, like in SSync (and FSync), the duration of the activation of an entity is kept of fixed time whereas, like in Async, the starting instant of the activation is not fully synchronized with the possible activation of other entities. We show that for entities moving on graphs, the SSync model allows accomplishing more tasks than the SAsync that in turn allows accomplishing more tasks than the Async. Furthermore, our results show that, especially to tackle problems in the Euclidean plane, the SAsync model is already quite challenging, therefore there is no need to get involved with complications arising in the Async model

    How To Touch a Running System

    Get PDF
    The increasing importance of distributed and decentralized software architectures entails more and more attention for adaptive software. Obtaining adaptiveness, however, is a difficult task as the software design needs to foresee and cope with a variety of situations. Using reconfiguration of components facilitates this task, as the adaptivity is conducted on an architecture level instead of directly in the code. This results in a separation of concerns; the appropriate reconfiguration can be devised on a coarse level, while the implementation of the components can remain largely unaware of reconfiguration scenarios. We study reconfiguration in component frameworks based on formal theory. We first discuss programming with components, exemplified with the development of the cmc model checker. This highly efficient model checker is made of C++ components and serves as an example for component-based software development practice in general, and also provides insights into the principles of adaptivity. However, the component model focuses on high performance and is not geared towards using the structuring principle of components for controlled reconfiguration. We thus complement this highly optimized model by a message passing-based component model which takes reconfigurability to be its central principle. Supporting reconfiguration in a framework is about alleviating the programmer from caring about the peculiarities as much as possible. We utilize the formal description of the component model to provide an algorithm for reconfiguration that retains as much flexibility as possible, while avoiding most problems that arise due to concurrency. This algorithm is embedded in a general four-stage adaptivity model inspired by physical control loops. The reconfiguration is devised to work with stateful components, retaining their data and unprocessed messages. Reconfiguration plans, which are provided with a formal semantics, form the input of the reconfiguration algorithm. We show that the algorithm achieves perceived atomicity of the reconfiguration process for an important class of plans, i.e., the whole process of reconfiguration is perceived as one atomic step, while minimizing the use of blocking of components. We illustrate the applicability of our approach to reconfiguration by providing several examples like fault-tolerance and automated resource control
    • …
    corecore