Pushing lines helps: Efficient universal centralised transformations for programmable matter

Published: 2020, Last Modified: 13 May 2025Theor. Comput. Sci. 2020EveryoneRevisionsBibTeXCC BY-SA 4.0
Abstract: In this work, we study a discrete system of entities residing on a two-dimensional square grid. Each entity is modelled as a node occupying a distinct cell of the grid. The set of all n nodes forms initially a connected shape A. Entities are equipped with a linear-strength pushing mechanism that can push a whole line of entities in parallel in a single time-step on one position in a given (one of the four possible) direction of a grid. A target connected shape B is also provided and the goal is to transform A into B via a sequence of line moves. Existing models based on local movement of individual nodes, such as rotating or sliding a single node, can be shown to be special cases of the present model, therefore their (inefficient, Θ(n2)<math><mi mathvariant="normal" is="true">Θ</mi><mo stretchy="false" is="true">(</mo><msup is="true"><mrow is="true"><mi is="true">n</mi></mrow><mrow is="true"><mn is="true">2</mn></mrow></msup><mo stretchy="false" is="true">)</mo></math>-time) universal transformations carry over. Our main goal is to investigate whether the parallelism inherent in this new type of movement can be exploited for efficient, i.e., sub-quadratic worst-case, transformations. This paper provides several solutions for specific and universal centralised transformations in the context of the new model. In particular we first design O(nlog⁡n)<math><mi is="true">O</mi><mo stretchy="false" is="true">(</mo><mi is="true">n</mi><mi mathvariant="normal" is="true">log</mi><mo is="true">⁡</mo><mi is="true">n</mi><mo stretchy="false" is="true">)</mo></math>-time universal transformation without preserving the connectivity of original shape. Then we focus on transformations which preserve the connectivity of the shape throughout its course and develop an O(nn)<math><mi is="true">O</mi><mo stretchy="false" is="true">(</mo><mi is="true">n</mi><msqrt is="true"><mrow is="true"><mi is="true">n</mi></mrow></msqrt><mo stretchy="false" is="true">)</mo></math>-time transformation for the apparently hard instance of transforming a diagonal A into a straight line B.
Loading