"매 life 의 본질 의 digital code 의 recreate". 매 simple rule 의 interaction → 매 emergent intelligence. 매 swarm AI / NPC behavior / evolutionary algorithm / open-ended learning 의 foundation.
📖 핵심
매 3 분류 (Langton)
Soft ALife: 매 software simulation. 매 Conway's Life, 매 Tierra, 매 Avida.
Hard ALife: 매 robot. 매 BEAM robotics, 매 swarm robot.
Wet ALife: 매 synthetic biology. 매 protocell, 매 artificial chemistry.
매 핵심 concept
Emergence: 매 simple rule → 매 complex pattern. (vs reductionism)
Self-organization: 매 central control X.
Adaptation: 매 environment 의 fit.
Reproduction: 매 self-replication (von Neumann).
Evolution: 매 mutation + selection.
Open-ended evolution: 매 stop X.
Landmark systems
Conway's Game of Life (1970): 매 cellular automata.
Tierra (Ray, 1991): 매 self-replicating program 의 evolution.
Avida: 매 digital organism 의 lab.
Karl Sims' Evolved Creatures (1994): 매 morphology + behavior 진화.
NEAT (Stanley): 매 neural network 의 evolve.
POET / Open-Ended ALife: 매 무한 challenge generation.
Boids (Reynolds 1987)
매 simple 3 rule:
Separation: 매 collision 회피.
Alignment: 매 neighbor 의 average heading.
Cohesion: 매 neighbor 의 center.
→ 매 flocking / schooling / swarm.
Multi-agent emergence
매 ant colony 의 pheromone trail.
매 stigmergy: 매 environment 의 indirect communication.
매 termite mound 의 collective construction.
Evolutionary computation
Genetic Algorithm (GA): 매 chromosome + crossover + mutation.
Genetic Programming (GP): 매 program tree 의 evolve.
Neuroevolution (NEAT, HyperNEAT): 매 NN 의 evolve.
Evolution Strategy (ES, CMA-ES): 매 continuous parameter.
Quality-Diversity (MAP-Elites, Novelty Search): 매 diversity 의 explicit.
매 modern AI 의 응용
NPC behavior (game): 매 boids 기반 swarm enemy.
Robotics: 매 swarm robot, 매 self-assembly.
Open-ended ML: 매 POET, 매 OMNI 의 curriculum.
Procedural generation: 매 cellular automata (cave, dungeon).
Drug discovery: 매 evolutionary search.
Architecture / design: 매 evolutionary design.
💻 패턴
Boids (flocking)
importnumpyasnpdefboid_step(positions,velocities,perception=10,sep=2):foriinrange(len(positions)):neighbors=[jforjinrange(len(positions))ifi!=jandnp.linalg.norm(positions[i]-positions[j])<perception]ifnotneighbors:continue# 매 alignmentalign=np.mean([velocities[j]forjinneighbors],axis=0)-velocities[i]# 매 cohesioncohesion=np.mean([positions[j]forjinneighbors],axis=0)-positions[i]# 매 separationseparation=sum((positions[i]-positions[j])/np.linalg.norm(positions[i]-positions[j])**2forjinneighborsifnp.linalg.norm(positions[i]-positions[j])<sep)velocities[i]+=0.05*align+0.01*cohesion+0.1*separationpositions[i]+=velocities[i]returnpositions,velocities
defmap_elites(grid_size,generations=1000):archive={}# 매 (behavior_descriptor) → best (fitness, genome)forgeninrange(generations):ifnotarchive:genome=random_genome()else:parent=random.choice(list(archive.values()))genome=mutate(parent[1])fitness,descriptor=evaluate(genome)cell=discretize(descriptor,grid_size)ifcellnotinarchiveorarchive[cell][0]<fitness:archive[cell]=(fitness,genome)returnarchive
→ 매 single best X — 매 diverse 의 set.
🤔 결정 기준
문제
Tool
Game NPC swarm
Boids
Optimization (discrete)
GA / GP
NN architecture
NEAT
Continuous param
CMA-ES
Diversity 필요
MAP-Elites / Novelty
Procedural map
Cellular automata
Multi-agent emergence
NetLogo / mesa
기본값: 매 specific objective = GA. 매 diversity = MAP-Elites. 매 NN = NEAT or RL.
언제: 매 NPC swarm design. 매 procedural generation. 매 evolutionary optimization. 매 emergent behavior research.
언제 X: 매 supervised learning 의 substitute. 매 explainability 가 필수.
❌ 안티패턴
GA 의 small population: 매 premature convergence.
No diversity preservation: 매 monoculture.
Boids 의 ignore neighbor distance: 매 unrealistic flock.
Evolution 의 short generation: 매 emergence X.
Wet ALife 의 ethics 무시: 매 synthetic biology biosecurity.