450 likes | 542 Views
Experiments with a universal constructor in the DigiHive environment. Rafał Sienkiewicz Gdansk University of Technology, Gdańsk, Poland. Agenda. The DigiHive environment Physics Embedded programs A universal constructor Design Experiments Conclusion. The DigiHive environment.
E N D
Experimentswith a universalconstructorintheDigiHive environment Rafał Sienkiewicz GdanskUniversity of Technology, Gdańsk, Poland
Agenda • TheDigiHive environment • Physics • Embeddedprograms • A universalconstructor • Design • Experiments • Conclusion
TheDigiHive environment Mainfeatures, physics, programs…
Basic features • An abstract environment designed for artificial life simulations • 2 dimensionallatticewithperiodicboundaryconditions • Largenumber of entitiescalledparticles • Particlescanbondtogether forming a complex of particles • At a higherlevel, thecomplexes of particlesmay be interpreted as a program
Physics - particles • Particlesare of 256 types, eachparticleisrelated to a set of attributes (e.g. mass) • Particlesaremarkedwithvelocity and position • Moving and collidingaccording to simplifiedNewtonianmechanics (conservation of energy and momentum) • Eitherelasticorinelasticcollisions
Physics - complexes • Twoormoreparticles form a complex of particles. • Eachparticlecan bind bothhorizontally (6 directions) and verticallywithotherparticles
Physics - complexes • Twoormoreparticles form a complex of particles. • Eachparticlecan bind bothhorizontally (6 directions) and verticallywithotherparticles
Physics - complexes • Twoormoreparticles form a complex of particles. • Eachparticlecan bind bothhorizontally (6 directions) and verticallywithotherparticles
Example – jetpropulsionengine Complex of particles Particles
Programs • Thestructure of a complexisinterpreted as a program writtenin a declarativelanguage (simplified Prolog)
Programs • A program isable to selectivelycreate and removebondsbetweenparticlesinitsneighbourhood • Stage1: searching - askingaboutthetype of particle and state of itswalls (isitbound, isitadjacent) • Possibility of checking an optionalcondition of nonexistence of a particularcomplexorparticles (reaction inhibitor) • Stage 2: acting - creating and removingbondsbetweenfoundparticles
Programs • Declarativelanguageprovides ”softness” – smallchangesin program codeshouldresultinsmallchangesin program activity • No high levelsearch and action instructions • Thereare no global rulesgoverningtheprograms (e.g. no fitness functionspecified)
Program example program():–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)
Program example program():–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)
Program example program():–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)
Levels of simulation • According to environment settings: • Particlesbehavelike an ideal gas • Particles form random structures (complexes) • Somecomplexesareinterpreted as thedeclarativeprograms, whichareable to selectivelycreateorremovebondsintheirnearestspace
Theuniversalconstructor • Constructsvarious (but not anypossible) structuresbased on itsdescriptionfrom an informationstring (stack of particles) • Consistent set of programsbeingable to: • Find a validinformationstringinthenearestspace • Connectitselfintothestring and start thetranslation • Sequentiallyprocessthestring, buildingthedesiredstructure (describedintheinformationstring)
Theuniversalconstructor • Works as an interpreter of simplelanguage, withthefollowinginstructions (containedintheinformationstring): • PUT: adds specified particle to the stack, • SPLIT: splitsthecurrentlybuiltstackintotwohorizontallyconnectedstacks of particles • NEW: begins construction of a newcomplex, withoutdisconnectingtheconstructorfromthecurrentlyprocessedinformationstring, • END: disconnectstheuniversalconstructorfromtheinformationstring, and stopsthetranslation
Constructor program example PUT(01010101) PUT(01010101) SPLIT(NE) PUT(01010101) END
Constructor program example PUT(01010101) PUT(01010101) SPLIT(NE) PUT(01010101) END
Constructor program example PUT(01010101) PUT(01010101) SPLIT(NE) PUT(01010101) END
Constructor program example PUT(01010101) PUT(01010101) SPLIT(NE) PUT(01010101) END
Constructor program example PUT(01010101) PUT(01010101) SPLIT(NE) PUT(01010101) END
Constructor program example PUT(01010101) PUT(01010101) SPLIT(NE) PUT(01010101) END
Simulationexample Informationstring Universal constructor Particles
Achievingthefulluniversality Strategy 1 Strategy 2
Snowflake – strategy 1 • Theshape of the ”snowflake” cannot be built by theconstructor • Theshapecan be obtained as a result of activity of a set of 6 buildingprograms • The set of buildingprogramscan be build by theconstructor
Snowflake – strategy 1 Informationstring Universal constructor
Constructorduplication – strategy 2 • It is impossible to encode the constructor’sstructure 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 • Thebestapproachis to usethesecondstrategy
Constructorduplication – strategy 2 Informationstring Universal constructor
Furtherresearch • Acceleration of execution • Fullself-reproduction • Comparingvariousstrategies of self-reproduction • Allowing random changes (physics, programs, …) • …
Thankyou! Pleasevisit: http://www.digihive.pl/