
Коллектив ученых из Германии и США разработал алгоритм, который позволяет программируемой материи (например, рою примитивных роботов) в кратчайшее время облепить ровным слоем любую заданную поверхность. При этом все роботы могут быть одинаковыми, им не нужна иерархия или центральное управление — достаточно обмениваться информацией с ближайшими соседями. Препринт с исследованием выложен на arXiv.org.Авторы решали следующую задачу: пусть дан объект любой сложной формы (например, лопасти промышленного ветряка), который надо покрыть тонким слоем условной «умной краски». Ученые поясняют, что с точки зрения алгоритма совершенно не важно, как именно реализована такая краска, она лишь должна отвечать ряду требований: каждая «частица» может независимо перемещаться, обмениваться небольшим количеством информации с ближайшими соседями, а также чувствовать поверхность, которую им нужно покрыть. В основе алгоритма лежат так называемые «жалобы», которые посылают частицы, находящиеся вдали от поверхности. Такая жалоба распространяется по цепочке дальше, и если ее получает частица на поверхности, у которой рядом есть незанятое место, она туда сдвигается. После этого все частицы, которые участвовали в передаче жалобы, тоже сдвигаются на одну позицию по цепочке. Таким образом, когда в рое перестали появляться жалобы — алгоритм заканчивается. Если остались лишние частицы, они могут точно так же создать второй и последующие слои.
