Experiments with a universal constructor in the DigiHive environment
description
Transcript of Experiments with a universal constructor in the DigiHive environment
![Page 1: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/1.jpg)
1
Experiments with a universal constructor in the DigiHive environment
Rafał Sienkiewicz
Gdansk University of Technology, Gdańsk, Poland
![Page 2: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/2.jpg)
2
Agenda The DigiHive environment
Physics Embedded programs
A universal constructor Design Experiments
Conclusion
![Page 3: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/3.jpg)
3
The DigiHive environment
Main features, physics, programs…
![Page 4: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/4.jpg)
4
Basic features
An abstract environment designed for artificial life simulations
2 dimensional lattice with periodic boundary conditions
Large number of entities called particles Particles can bond together forming a
complex of particles At a higher level, the complexes of
particles may be interpreted as a program
![Page 5: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/5.jpg)
5
Physics
![Page 6: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/6.jpg)
6
Physics - particles Particles are of 256 types, each particle is
related to a set of attributes (e.g. mass) Particles are marked with velocity and position Moving and colliding according to simplified
Newtonian mechanics (conservation of energy and momentum)
Either elastic or inelastic collisions
![Page 7: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/7.jpg)
9
Physics - complexes
Two or more particles form a complex of particles.
Each particle can bind both horizontally (6 directions) and vertically with other particles
![Page 8: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/8.jpg)
10
Physics - complexes
Two or more particles form a complex of particles.
Each particle can bind both horizontally (6 directions) and vertically with other particles
![Page 9: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/9.jpg)
11
Physics - complexes
Two or more particles form a complex of particles.
Each particle can bind both horizontally (6 directions) and vertically with other particles
![Page 10: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/10.jpg)
12
Example – jet propulsion engine
Particles
Complex of particles
![Page 11: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/11.jpg)
13
Example – jet propulsion engine
![Page 12: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/12.jpg)
16
Programs
![Page 13: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/13.jpg)
17
Programs The structure of a complex is interpreted as a
program written in a declarative language (simplified Prolog)
![Page 14: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/14.jpg)
18
Programs A program is able to selectively create and
remove bonds between particles in its neighbourhood
Stage1: searching - asking about the type of particle and state of its walls (is it bound, is it adjacent) Possibility of checking an optional condition of
nonexistence of a particular complex or particles (reaction inhibitor)
Stage 2: acting - creating and removing bonds between found particles
![Page 15: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/15.jpg)
19
Programs Declarative language provides ”softness” –
small changes in program code should result in small changes in program activity
No high level search and action instructions There are no global rules governing the
programs (e.g. no fitness function specified)
![Page 16: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/16.jpg)
20
Program exampleprogram():– search(), action().
search():– structure(0).
structure(0):– exists([0,0,0,0,0,0,×,×], mark V1), exists([1,1,1,1,1,1,1,1] bound to V1 on N, mark V2), exists([0,0,0,0,0,0,0,0], mark V5), not(structure(1)), not(structure(2)).
structure(1):– exists([1,1,1,1,0,0,0,0] bound to V2 on NW, mark V3), exists([1,1,1,1,0,0,0,0] bound to V3 on SW, mark V4), not(structure(3)).
structure(3):– exists([0,0,0,0,1,1,1,1] bound to V4 in S).
structure(2):– exists([1,0,1,0,1,0,1,0]).
action():– bind(V2 to V5 in SW)
![Page 17: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/17.jpg)
21
Program example
![Page 18: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/18.jpg)
22
Program exampleprogram():– search(), action().
search():– structure(0).
structure(0):– exists([0,0,0,0,0,0,×,×], mark V1), exists([1,1,1,1,1,1,1,1]
bound to V1 in N, mark V2), exists([0,0,0,0,0,0,0,0], mark V5), not(structure(1)), not(structure(2)).
structure(1):– exists([1,1,1,1,0,0,0,0]
bound to V2 on NW, mark V3), exists([1,1,1,1,0,0,0,0]
bound to V3 on SW, mark V4), not(structure(3)).
structure(3):– exists([0,0,0,0,1,1,1,1] bound to V4 in S).
structure(2):– exists([1,0,1,0,1,0,1,0]).
action():– bind(V2 to V5 in SW)
![Page 19: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/19.jpg)
23
Program exampleprogram():– search(), action().
search():– structure(0).
structure(0):– exists([0,0,0,0,0,0,×,×], mark V1), exists([1,1,1,1,1,1,1,1]
bound to V1 in N, mark V2), exists([0,0,0,0,0,0,0,0], mark V5), not(structure(1)), not(structure(2)).
structure(1):– exists([1,1,1,1,0,0,0,0]
bound to V2 on NW, mark V3), exists([1,1,1,1,0,0,0,0]
bound to V3 on SW, mark V4), not(structure(3)).
structure(3):– exists([0,0,0,0,1,1,1,1] bound to V4 in S).
structure(2):– exists([1,0,1,0,1,0,1,0]).
action():– bind(V2 to V5 in SW)
![Page 20: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/20.jpg)
37
Levels of simulation According to environment settings:
Particles behave like an ideal gas Particles form random structures (complexes) Some complexes are interpreted as the
declarative programs, which are able to selectively create or remove bonds in their nearest space
![Page 21: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/21.jpg)
38
Example of simulation
![Page 22: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/22.jpg)
39
Example of simulation
![Page 23: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/23.jpg)
40
The universal constructor
![Page 24: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/24.jpg)
41
The universal constructor Constructs various (but not any possible)
structures based on its description from an information string (stack of particles)
Consistent set of programs being able to: Find a valid information string in the nearest space Connect itself into the string and start the
translation Sequentially process the string, building the
desired structure (described in the information string)
![Page 25: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/25.jpg)
42
The universal constructor Works as an interpreter of simple language,
with the following instructions (contained in the information string): PUT: adds specified particle to the stack, SPLIT: splits the currently built stack into two
horizontally connected stacks of particles NEW: begins construction of a new complex,
without disconnecting the constructor from the currently processed information string,
END: disconnects the universal constructor from the information string, and stops the translation
![Page 26: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/26.jpg)
50
Constructor program example
PUT(01010101)PUT(01010101)SPLIT(NE)PUT(01010101)END
![Page 27: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/27.jpg)
51
Constructor program example
PUT(01010101)PUT(01010101)SPLIT(NE)PUT(01010101)END
![Page 28: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/28.jpg)
52
Constructor program example
PUT(01010101)PUT(01010101)SPLIT(NE)PUT(01010101)END
![Page 29: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/29.jpg)
53
Constructor program example
PUT(01010101)PUT(01010101)SPLIT(NE)PUT(01010101)END
![Page 30: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/30.jpg)
54
Constructor program example
PUT(01010101)PUT(01010101)SPLIT(NE)PUT(01010101)END
![Page 31: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/31.jpg)
55
Constructor program example
PUT(01010101)PUT(01010101)SPLIT(NE)PUT(01010101)END
![Page 32: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/32.jpg)
56
Simulation example
Universal constructor
Information string
Particles
![Page 33: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/33.jpg)
57
Simulation example
![Page 34: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/34.jpg)
58
Limitations
![Page 35: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/35.jpg)
59
Achieving the full universality
Strategy 2
Strategy 1
![Page 36: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/36.jpg)
60
Snowflake – strategy 1 The shape of the
”snowflake” cannot be built by the constructor The shape can be obtained
as a result of activity of a set of 6 building programs
The set of building programs can be build by the constructor
![Page 37: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/37.jpg)
61
Snowflake – strategy 1
Information string
Universal constructor
![Page 38: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/38.jpg)
62
Snowflake – strategy 1
![Page 39: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/39.jpg)
63
Constructor duplication – strategy 2 It is impossible to encode the constructor’s
structure of bonds The structure being built should not manifest
any activity before it is completely finished The universal constructor should not
recognize the structure being built as a part of itself
The best approach is to use the second strategy
![Page 40: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/40.jpg)
64
Constructor duplication – strategy 2
Information string
Universal constructor
![Page 41: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/41.jpg)
65
Constructor duplication – strategy 2
![Page 42: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/42.jpg)
66
Further research…
![Page 43: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/43.jpg)
67
Further research Acceleration of execution Full self-reproduction Comparing various strategies of self-
reproduction Allowing random changes (physics, programs,
…) …
![Page 44: Experiments with a universal constructor in the DigiHive environment](https://reader037.fdocuments.us/reader037/viewer/2022110103/56814341550346895dafb6f2/html5/thumbnails/44.jpg)
68
Thank you!
Please visit: http://www.digihive.pl/