A relation can contain two identical elements, as in {0,0}, corresponding to a self-loop in a graph. Starting our first rule from a single self-loop, the self-loop effectively just stays marking the original node:
ResourceFunction[
"WolframModel"][{{{x, y}} -> {{x, y}, {y, z}}}, {{0, 0}},
5]["StatesPlotsList", "MaxImageSize" -> 180]
However, with for example the rule:
{{x, y}} -> {{y, z}, {z, x}}
RulePlot[ResourceFunction[
"WolframModel"][{{x, y}} -> {{y, z}, {z, x}}],
VertexLabels -> Automatic, "RulePartsAspectRatio" -> 0.25]
the self-loop effectively “takes over” the system, “inflating” to a 2n – gon:
ResourceFunction["WolframModelPlot"][#, "MaxImageSize" -> 100] & /@
ResourceFunction[
"WolframModel"][{{x, y}} -> {{y, z}, {z, x}}, {{1, 1}}, 5,
"StatesList"]
The rule can also contain self-loops. An example is
{{x, x}} -> {{y, y}, {y, y}, {x, y}}
represented graphically as:
RulePlot[ResourceFunction[
"WolframModel"][{{x, x}} -> {{x, y}, {y, y}, {y, y}}],
VertexLabels -> Automatic]
Starting from a single self-loop, this rule produces a simple binary tree:
ResourceFunction[
"WolframModel"][{{{x, x}} -> {{y, y}, {y, y}, {x, y}}}, {{1, 1}},
5]["StatesPlotsList", "MaxImageSize" -> 180]