From cfa6441d87a523548f9700f61862c47515c4c22a Mon Sep 17 00:00:00 2001 From: Ettore Randazzo Date: Fri, 20 Oct 2023 00:23:00 -0700 Subject: [PATCH] Add colab to reproduce the *upcoming* video of Biomaker CA. Add default methods for stringifying classes. Useful for storing metadata. Add utility functions for saving and loading dnas. Add a successful dna for the experiment performed in the colab. PiperOrigin-RevId: 575125094 --- .../biomakerca/agent_logic.py | 7 + .../persistence_1697720583799231923.npy | Bin 0 -> 53372 bytes .../persistence_1697720583799231923.txt | 8 + .../biomakerca/environments.py | 6 + .../notebooks/evolving_in_small_worlds.ipynb | 1623 +++++++++++++++++ .../biomakerca/mutators.py | 4 + self_organising_systems/biomakerca/utils.py | 89 + 7 files changed, 1737 insertions(+) create mode 100644 self_organising_systems/biomakerca/dnalib/persistence_1697720583799231923.npy create mode 100644 self_organising_systems/biomakerca/dnalib/persistence_1697720583799231923.txt create mode 100644 self_organising_systems/biomakerca/examples/notebooks/evolving_in_small_worlds.ipynb diff --git a/self_organising_systems/biomakerca/agent_logic.py b/self_organising_systems/biomakerca/agent_logic.py index c367b4c..1cd354b 100644 --- a/self_organising_systems/biomakerca/agent_logic.py +++ b/self_organising_systems/biomakerca/agent_logic.py @@ -32,6 +32,7 @@ from self_organising_systems.biomakerca.env_logic import SpawnOpData from self_organising_systems.biomakerca.env_logic import ParallelInterface from self_organising_systems.biomakerca.environments import EnvConfig +from self_organising_systems.biomakerca.utils import stringify_class class AgentLogic(ABC): @@ -93,6 +94,9 @@ def repr_f(self, key: KeyType, perc: PerceivedData, params: AgentProgramType """ pass + def __str__(self): + return stringify_class(self) + def clip_residual(s, ds, clip_val): """Correct ds so that the final value of s + ds is within [-clip_val,clip_val]. @@ -190,6 +194,9 @@ def __init__(self, config: EnvConfig, perceive_ids=True, minimal_net=False): axis=-1, ) + def __str__(self): + return stringify_class(self, include_list=["perceive_ids", "minimal_net"]) + def split_params_f( self, params: AgentProgramType ) -> tuple[AgentProgramType, AgentProgramType, AgentProgramType]: diff --git a/self_organising_systems/biomakerca/dnalib/persistence_1697720583799231923.npy b/self_organising_systems/biomakerca/dnalib/persistence_1697720583799231923.npy new file mode 100644 index 0000000000000000000000000000000000000000..8bfef0a25e01d0522013b87099df795626bb4438 GIT binary patch literal 53372 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
ZVD>zM`E<{j&i}>_R{WRng3u+>V~_zZ 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

WACi*EH8f*Jfz!#K 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