1 / 44

Experiments with a universal constructor in the DigiHive environment

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.

dacian
Download Presentation

Experiments with a universal constructor in the DigiHive environment

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Experimentswith a universalconstructorintheDigiHive environment Rafał Sienkiewicz GdanskUniversity of Technology, Gdańsk, Poland

  2. Agenda • TheDigiHive environment • Physics • Embeddedprograms • A universalconstructor • Design • Experiments • Conclusion

  3. TheDigiHive environment Mainfeatures, physics, programs…

  4. 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

  5. Physics

  6. 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

  7. Physics - complexes • Twoormoreparticles form a complex of particles. • Eachparticlecan bind bothhorizontally (6 directions) and verticallywithotherparticles

  8. Physics - complexes • Twoormoreparticles form a complex of particles. • Eachparticlecan bind bothhorizontally (6 directions) and verticallywithotherparticles

  9. Physics - complexes • Twoormoreparticles form a complex of particles. • Eachparticlecan bind bothhorizontally (6 directions) and verticallywithotherparticles

  10. Example – jetpropulsionengine Complex of particles Particles

  11. Example – jetpropulsionengine

  12. Programs

  13. Programs • Thestructure of a complexisinterpreted as a program writtenin a declarativelanguage (simplified Prolog)

  14. 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

  15. Programs • Declarativelanguageprovides ”softness” – smallchangesin program codeshouldresultinsmallchangesin program activity • No high levelsearch and action instructions • Thereare no global rulesgoverningtheprograms (e.g. no fitness functionspecified)

  16. 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)

  17. Program example

  18. 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)

  19. 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)

  20. Levels of simulation • According to environment settings: • Particlesbehavelike an ideal gas • Particles form random structures (complexes) • Somecomplexesareinterpreted as thedeclarativeprograms, whichareable to selectivelycreateorremovebondsintheirnearestspace

  21. Example of simulation

  22. Example of simulation

  23. Theuniversalconstructor

  24. 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)

  25. 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

  26. Constructor program example PUT(01010101) PUT(01010101) SPLIT(NE) PUT(01010101) END

  27. Constructor program example PUT(01010101) PUT(01010101) SPLIT(NE) PUT(01010101) END

  28. Constructor program example PUT(01010101) PUT(01010101) SPLIT(NE) PUT(01010101) END

  29. Constructor program example PUT(01010101) PUT(01010101) SPLIT(NE) PUT(01010101) END

  30. Constructor program example PUT(01010101) PUT(01010101) SPLIT(NE) PUT(01010101) END

  31. Constructor program example PUT(01010101) PUT(01010101) SPLIT(NE) PUT(01010101) END

  32. Simulationexample Informationstring Universal constructor Particles

  33. Simulationexample

  34. Limitations

  35. Achievingthefulluniversality Strategy 1 Strategy 2

  36. 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

  37. Snowflake – strategy 1 Informationstring Universal constructor

  38. Snowflake – strategy 1

  39. 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

  40. Constructorduplication – strategy 2 Informationstring Universal constructor

  41. Constructorduplication – strategy 2

  42. Furtherresearch…

  43. Furtherresearch • Acceleration of execution • Fullself-reproduction • Comparingvariousstrategies of self-reproduction • Allowing random changes (physics, programs, …) • …

  44. Thankyou! Pleasevisit: http://www.digihive.pl/

More Related