Формат представления распределенных систем. Отображение бинарных связей

в 0:08, , рубрики: Peer-to-Peer, взаимодействие систем, распределённая система, метки: ,

Рассмотрим полносвязный ориентированный граф. Каждый узел связан со всеми.
Матрица графа будет заполнена единицами. В том числе и главная диагональ, так как каждый узел связан и собой тоже.
Если в определеный момент какая-то связь разрывается, то граф превращается в подграф полносвязного. У каждого узла есть программа, по которой он работает: двоичная память, адрес соответствует входящим связям, значение по адресу — исходящим. Для каждого узла программа своя.
Это представление эквивалентно машине Тьюринга, так легко может быть получено на клеточном автомате, у которого все элементы друг другу соседи. Для этого нужно состояние элемента сделать составным, каждую часть отнести к одной из исходящих связей. Таким образом, каждое из состояний зависит от входящих связей и соответствует какому-то подмножеству исходящих.
Можно также через отображение бинарных связей выразить бинарный клеточный автомат. Достаточно, чтобы все выходные связи были равны.
Также можно выразить и работающие параллельно n элементарных процессоров следующего вида: М — двоичная n-разрядная память, X — адрес, Y — значение по адресу. Начальное состояние X0. Первый шаг: X := X0; Y := M[X]. Следующие шаги: X := Y; Y := M[X]. Итак, чтобы выразить, нужно чтобы каждое второе отображение каждого элемента было эквивалентным. На одном шаге, будет получаться следующее состояние элементарного процессора в качестве исходного подмножества, на втором шаге это же множество без изменений отобразиться обратно в качестве входящего подмножества.
Эквивалентность параллельным невзаимодействующим процессорам, означает что если заменить эквивалентное отображение на другое, получим модель синхронно попеременно работающих автономно и взаимодействующих процессоров. А поскольку мы рассматриваем половину шагов как автономную, а вторую как синхронизирующую, можно видеть двойственность подобного представления в зависимости от того, какую из половин шагов как рассматривать. Другими словами, целая система может противоречить одному узлу, на каждом шаге изменяя его программу на противоположную. Значит, система допускает диалектичность поведения.

Элементарный процессор может быть представлен бинарной матрицей, тогда адрес будет соответствовать номеру столбца, значение номеру строки, в котором находится единственная в столбце единица. То есть восьмиразрядный элементарный процессор будет соответствовать матрице 256 на 256. А поскольку, узлом служит бинарная память, то чтобы получить систему с отображением связей, достаточно соединить элементарные процессоры особым образом, а именно каждый с каждым.
Вариант обучения системы с отображением связей.
Вначале сеть не имеет программы, непосредственно запрограммировать синхронно работающие взаимодействующие процессоры трудно. Но есть несколько очевидных простых вариантов программы узла:

  • рандом — реагирует произвольным образом;
  • источник — не реагирует, все исходящие активны;
  • поглотитель — не реагирует, исходящие отсутствуют;
  • зеркало — реагирует, исходящие — это те, которые на предыдущем шаге были входящими.

Но все они не удобны для обучения, однако если выйти за рамки самой программы, то узел легко обучится со следующей «программой»:

  • оракул — реагирует так же как зеркало, но с опережением на один шаг(или несколько шагов).

Итак, имеем очередную вариацию машины Тьюринга, помесь клеточного автомата с сетью процессоров. Единственная ее особенность в том, что она допускает обман, так как узел видит не абсолютное состояние других узлов, а предназначенную только ему версию. А значит, возможно образование кластеров, объединенных общей версией и их конфликт. Своеобразной деградацией такой системы будет либо превращение в клеточный автомат — утрата «лицемерности»(единый кластер), либо — в систему невзаимодействующих процессоров — утрата «диалектичности»(полная виртуализация узлов).

Автор: dtestyk

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js