{"id":1032,"date":"2024-04-01T11:35:19","date_gmt":"2024-04-01T18:35:19","guid":{"rendered":"https:\/\/labs.engineering.asu.edu\/sops\/?page_id=1032"},"modified":"2024-04-01T11:35:19","modified_gmt":"2024-04-01T18:35:19","slug":"energy-distribution","status":"publish","type":"page","link":"https:\/\/labs.engineering.asu.edu\/sops\/energy-distribution\/","title":{"rendered":"Bio-Inspired Energy Distribution for Programmable Matter"},"content":{"rendered":"\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Joshua J. Daymude, Andr\u00e9a W. Richa, and Jamison W. Weber.<br><br>[<a href=\"https:\/\/arxiv.org\/abs\/2007.04377\">arXiv<\/a>] [<a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/3427796.3427835\">Online<\/a>] \u2013 Conference paper at the\u00a0<em>22nd\u00a0International Conference on Distributed Computing and Networking (ICDCN \u201921)<\/em>,\u00a0pp. 86\u201395, 2021.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Abstract<\/h2>\n\n\n\n<p>In systems of&nbsp;<em>active programmable matter<\/em>, individual modules require a constant supply of energy to participate in the system\u2019s collective behavior. These systems are often powered by an&nbsp;<em>external energy source<\/em>&nbsp;accessible by at least one module and rely on&nbsp;<em>module-to-module power transfer<\/em>&nbsp;to distribute energy throughout the system. While much effort has gone into addressing challenging aspects of power management in programmable matter hardware, algorithmic theory for programmable matter has largely ignored the impact of energy usage and distribution on algorithm feasibility and efficiency. In this work, we present an algorithm for&nbsp;<em>energy distribution<\/em>&nbsp;in the&nbsp;<em>amoebot model<\/em>&nbsp;that is loosely inspired by the growth behavior of&nbsp;<a href=\"https:\/\/www.nature.com\/articles\/nature14660\"><em>Bacillus subtilis<\/em>&nbsp;bacterial biofilms<\/a>. These bacteria use chemical signalling to communicate their metabolic states and regulate nutrient consumption throughout the biofilm, ensuring that all bacteria receive the nutrients they need. Our algorithm similarly uses communication to inhibit energy usage when there are starving modules, enabling all modules to harvest sufficient energy to meet their demands. As a supporting but independent result, we extend the amoebot model\u2019s well-established&nbsp;<em>spanning forest primitive<\/em>&nbsp;so that it self-stabilizes in the presence of crash failures. We conclude by showing how this self-stabilizing primitive can be leveraged to compose our energy distribution algorithm with existing amoebot model algorithms, effectively generalizing previous work to also consider energy constraints.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Overview<\/h2>\n\n\n\n<p>In short, individual bacterium that are metabolically stressed (lacking in nutrients) catalyze a wave of chemical signaling that inhibits the rest of the biofilm\u2019s nutrient uptake. This allows more nutrients to flow to the stressed bacteria, effectively solving the energy distribution problem. We model energy constraints in the amoebot model by giving each particle a battery for storing energy that it can transfer to its neighbors or spend to perform actions. We assume at least one particle in the system has access to an&nbsp;<em>external energy source<\/em>&nbsp;from which it can harvest energy. The goal of our energy distribution algorithm is to coordinate the transfer of energy between particles so that all particles meet their actions\u2019 energy demands and at least one particle can actually perform its action within a bounded amount of time. After some initial setup, our&nbsp;<strong>Energy-Sharing<\/strong>&nbsp;algorithm works in the following phases repeated by each particle individually:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Communication.&nbsp;<\/em>Particles propagate \u201cstress\u201d and \u201cinhibition\u201d signals to communicate the energy states of starving particles throughout the system.<\/li>\n\n\n\n<li><em>Sharing.<\/em>&nbsp;Particles attempt to harvest energy they lack from an external source (if they have access to one) and transfer energy to neighbors that need it.<\/li>\n\n\n\n<li><em>Usage.<\/em>&nbsp;Particles that are not inhibited spend their stored energy to perform actions, participating in the collective behavior.<\/li>\n<\/ul>\n\n\n\n<p>We prove that the&nbsp;<strong>Energy-Sharing<\/strong>&nbsp;algorithm enables a system of&nbsp;<strong>n<\/strong>&nbsp;particles to meet its energy demands every&nbsp;<strong>O(n)<\/strong>&nbsp;asynchronous rounds, where&nbsp;<strong>n<\/strong>&nbsp;is the number of particles in the system. We also prove that this is asymptotically optimal when the number of particles with access to the external energy sources is a fixed constant. A simulation of the&nbsp;<strong>Energy-Sharing&nbsp;<\/strong>algorithm can be seen below, corresponding to Figure 2 in the paper. All particles are initially idle, with the exception of the root (with external energy access) shown with a gray\/black ring. The setup phase establishes the spanning forest (or tree, in this case) rooted at particle(s) with energy access; a particle\u2019s parent direction is shown as an arc. Since all particles start with empty batteries, stress flags (shown as red rings) quickly propagate throughout the system and inhibit flags soon follow. As energy is harvested by the root and shared throughout the system, some particles (shown with yellow rings) receive sufficient energy to meet the demand for their next action but remain inhibited from using it. This inhibition remains until all stressed particles in the system receive sufficient energy to meet their demands, at which point particles (shown with green rings) can reset their inhibit flags and use their energy. After using energy, these particles may again become stressed and trigger another stage of inhibition.<\/p>\n\n\n\n<div style=\"height:29px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"904\" height=\"660\" src=\"https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/energysim.gif\" alt=\"\" class=\"wp-image-734\"\/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>When communication of the stress\/inhibit flags is disabled, the energy distribution strategy in\u00a0<strong>Energy-Sharing<\/strong>\u00a0fails (just as the bacterial biofilms fail to feed all bacteria when their signal relays are disabled). A simulation of this setting is shown below, corresponding to Figure 3 in the paper. Without the communication phase to inhibit particles from using energy while those that are stressed recharge, particles continuously share any energy they have with their descendants in the spanning forest. Thus, while the leaves of the spanning forest occasionally meet their energy demands (seen as the flickering darker green particles), even after 1000 rounds most particles have still not met their energy demand even once.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"904\" height=\"660\" src=\"https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/nocommsim.gif\" alt=\"\" class=\"wp-image-735\"\/><\/figure>\n\n\n\n<div style=\"height:29px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>As an independent but supporting result, we present the&nbsp;<strong>Forest-Prune-Repair<\/strong>&nbsp;algorithm that enables a spanning forest of particles to self-repair in the presence of&nbsp;<em>crash failures&nbsp;<\/em>so long as the set of non-faulty particles remains connected and there is at least one non-crashed root. We prove that this algorithm stabilizes in a spanning forest rooted at root particles in at most&nbsp;<strong>O(m^2)&nbsp;<\/strong>asynchronous rounds, where&nbsp;<strong>m<\/strong>&nbsp;is the number of particles that are severed from the spanning forest by crash failures.<\/p>\n\n\n\n<p>The\u00a0<strong>Energy-Sharing<\/strong>\u00a0algorithm relies on an underlying spanning forest structure to communicate its stress\/inhibition signals. However, if particles move as they often do in collective behaviors, this disrupts the communication structure. Thus, the\u00a0<strong>Forest-Prune-Repair\u00a0<\/strong>algorithm can be used as an underlying primitive in\u00a0<strong>Energy-Sharing<\/strong>\u00a0so that\u00a0<strong>Energy-Sharing<\/strong>\u00a0can be composed with existing amoebot model algorithms, extending them to consider energy constraints. Below is an example of\u00a0<strong>Energy-Sharing<\/strong>\u00a0composed with\u00a0<a href=\"https:\/\/sops.engineering.asu.edu\/simulations\/#hexagonformation\"><strong>Basic Shape Formation<\/strong><\/a>, corresponding to Figure 5 in the paper.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"904\" height=\"660\" src=\"https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/compsim.gif\" alt=\"\" class=\"wp-image-736\"\/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Since\u00a0<strong>Energy-Sharing\u00a0<\/strong>meets the system\u2019s energy demands every\u00a0<strong>O(n)<\/strong>\u00a0asynchronous rounds and\u00a0<strong>Forest-Prune-Repair<\/strong>\u00a0repairs any disruptions to the communication structure as particles move, a composed algorithm will not be impeded by the underlying energy distribution primitive, but may add significant overhead to its runtime. However, we observe reasonable performance in practice: for example, since hexagon formation terminates in\u00a0<strong>O(n)<\/strong>\u00a0rounds, our proven bounds suggest that the composed algorithm could terminate in time\u00a0<strong>O(n^2)<\/strong>\u00a0or worse but the graph below demonstrates an overhead that appears asymptotically sublinear. With the addition of more energy roots, the composed algorithm is dramatically faster, approaching the runtime achieved without energy constraints.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1500\" height=\"1138\" src=\"https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/compgraph_time-1500x1138.png\" alt=\"\" class=\"wp-image-738\" srcset=\"https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/compgraph_time-1500x1138.png 1500w, https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/compgraph_time-500x379.png 500w, https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/compgraph_time-1000x759.png 1000w, https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/compgraph_time-1536x1165.png 1536w, https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/compgraph_time.png 1745w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1500\" height=\"1161\" src=\"https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/compgraph_root-1500x1161.png\" alt=\"\" class=\"wp-image-739\" srcset=\"https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/compgraph_root-1500x1161.png 1500w, https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/compgraph_root-500x387.png 500w, https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/compgraph_root-1000x774.png 1000w, https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/compgraph_root-1536x1189.png 1536w, https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/compgraph_root.png 1724w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"904\" height=\"660\" src=\"https:\/\/labs.engineering.asu.edu\/sops\/wp-content\/uploads\/sites\/181\/2020\/07\/growthsim.gif\" alt=\"\" class=\"wp-image-737\"\/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Resources<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[<a href=\"https:\/\/github.com\/SOPSLab\/AmoebotSim\/commit\/e097a2011e73e5df4dce7d08594945059a591c34\">GitHub<\/a>] Simulations of the Energy-Sharing algorithm are available as part of&nbsp;<a href=\"https:\/\/github.com\/SOPSLab\/AmoebotSim\">AmoebotSim<\/a>.<\/li>\n\n\n\n<li>[<a href=\"https:\/\/www.dropbox.com\/sh\/j0ymii7hhv1671b\/AABBboeXVxZH-gtZhrbspcMta?dl=0\">Talk Slides<\/a>] [<a href=\"https:\/\/www.youtube.com\/watch?v=-Gwe32nr8K4&amp;list=PLfbUnQeVu_r1Q6d5N1zaPQm-C0jB7HZla&amp;index=11\">Video<\/a>] Bio-Inspired Energy Distribution for Programmable Matter. Joshua J. Daymude and Jamison W. Weber.&nbsp;<em>International Conference on Distributed Computing and Networking 2021 (<a href=\"http:\/\/www.icdcn2021.net\/\">ICDCN \u201921<\/a>)<\/em>, Nara, Japan (Virtual Event). January 6, 2021.<\/li>\n\n\n\n<li>[<a href=\"https:\/\/www.dropbox.com\/sh\/59zmntcu9wezesp\/AADwHKuU3DQyIv_-C9EsY2fca?dl=0\">Poster<\/a>] Bio-Inspired Energy Distribution for Programmable Matter. Joshua J. Daymude and Jamison W. Weber.&nbsp;<em>26th International Conference on DNA Computing and Molecular Programming (<a href=\"http:\/\/dna26.iopconfs.org\/home\">DNA \u201920<\/a>)<\/em>, Virtual Event. September 17, 2020.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Press<\/h2>\n\n\n\n<p>None.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">BibTeX<\/h2>\n\n\n\n<p>@Unpublished{Daymude2020-energydistribution, <br>Title = {Bio-Inspired Energy Distribution for Programmable Matter}, <br>Author = {Daymude, Joshua J. and Richa, Andr\\'{e}a W. and Weber, Jamison W.}, <br>Year = {2020}, <br>Note = {Available online at \\url{https:\/\/arxiv.org\/abs\/2007.04377}} }<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p class=\"mb-2\">Joshua J. Daymude, Andr\u00e9a W. Richa, and Jamison W. Weber. [arXiv] [Online] \u2013 Conference paper at the\u00a022nd\u00a0International Conference on Distributed Computing and Networking (ICDCN \u201921),\u00a0pp. 86\u201395, 2021. Abstract In systems of&nbsp;active programmable matter, individual modules require a constant supply of energy to participate in the system\u2019s collective behavior. These systems are often powered by an&nbsp;external&#8230;<\/p>\n","protected":false},"author":338,"featured_media":0,"parent":0,"menu_order":7,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1032","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/labs.engineering.asu.edu\/sops\/wp-json\/wp\/v2\/pages\/1032","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/labs.engineering.asu.edu\/sops\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/labs.engineering.asu.edu\/sops\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/labs.engineering.asu.edu\/sops\/wp-json\/wp\/v2\/users\/338"}],"replies":[{"embeddable":true,"href":"https:\/\/labs.engineering.asu.edu\/sops\/wp-json\/wp\/v2\/comments?post=1032"}],"version-history":[{"count":0,"href":"https:\/\/labs.engineering.asu.edu\/sops\/wp-json\/wp\/v2\/pages\/1032\/revisions"}],"wp:attachment":[{"href":"https:\/\/labs.engineering.asu.edu\/sops\/wp-json\/wp\/v2\/media?parent=1032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}