Skip to main content

geno-synthetic-coevolution-optimization

Geno-Synthetic Algorithm: type-factored coevolutionary optimization for heterogeneous genotypes and assembled phenotypes. Use when: coevolutionary algorithms, heterogeneous genotype optimization, assembled phenotype synthesis, evolutionary computation, neural architecture search, modular evolutionary design. Activation: geno-synthetic, coevolutionary optimization, heterogeneous genotype, assembled phenotype, type-factored evolution, modular evolutionary algorithm.

Aller à l'installation

Informations de source

Dépôt
hiyenwong/ai_collection
Dernière activité de la source
4 juin 2026 à 13:32
Langue détectée de SKILL.md
anglais
Étoiles
2
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
geno-synthetic-coevolution-optimization
description
Geno-Synthetic Algorithm: type-factored coevolutionary optimization for heterogeneous genotypes and assembled phenotypes. Use when: coevolutionary algorithms, heterogeneous genotype optimization, assembled phenotype synthesis, evolutionary computation, neural architecture search, modular evolutionary design. Activation: geno-synthetic, coevolutionary optimization, heterogeneous genotype, assembled phenotype, type-factored evolution, modular evolutionary algorithm.
# Geno-Synthetic Coevolutionary Optimization > Type-factored coevolutionary optimization framework for heterogeneous genotypes that assemble into composite phenotypes, enabling modular evolutionary search across distinct genetic spaces. ## Metadata - **Source**: arXiv:2605.13365 - **Authors**: Alex Bogdan - **Published**: 2026-05-14 - **Categories**: cs.NE (Neural and Evolutionary Computing) ## Core Methodology ### Key Innovation The Geno-Synthetic Algorithm introduces a novel decomposition of evolutionary search: 1. **Type-factored genotypes** — genetic representation split into heterogeneous sub-genomes, each governing a different aspect of the phenotype 2. **Coevolutionary optimization** — each sub-genome evolves semi-independently while cooperating to produce a unified phenotype 3. **Assembled phenotypes** — composite organisms/structures built from the contributions of multiple genotype types This approach addresses the combinatorial explosion in evolutionary search by: - Decomposing the search space into coordinated sub-problems - Allowing specialized evolution within each genetic subspace - Maintaining inter-type cooperation through shared fitness evaluation ### Technical Framework **Genotype Decomposition**: ``` Genotype = {Type₁: genome₁, Type₂: genome₂, ..., Typeₙ: genomeₙ} ``` Each type represents a distinct "layer" or "module" of genetic information: - Structural genes (morphology, topology) - Behavioral genes (control policies, activation functions) - Meta-genes (hyperparameters, learning rules) **Coevolutionary Dynamics**: - Each genotype type maintains its own population - Individuals are sampled from each population to assemble candidate phenotypes - Fitness is evaluated on the assembled phenotype - Fitness is propagated back to contributing genotypes (credit assignment) - Sub-populations evolve cooperatively **Assembly Function**: ``` Phenotype = Assemble(genome₁, genome₂, ..., genomeₙ) ``` The assembly function maps heterogeneous genetic contributions into a unified functional organism/structure. ### Search Advantages 1. **Reduced search space** — Each sub-population searches a lower-dimensional space 2. **Specialized operators** — Each genotype type can use tailored mutation/crossover 3. **Parallel exploration** — Sub-populations explore independently 4. **Compositional creativity** — Novel combinations from mixing evolved components 5. **Scalability** — Adding new genotype types doesn't multiply the full search space ## Implementation Guide ### Prerequisites - Evolutionary computation framework (DEAP, PyGAD, or custom) - Well-defined phenotype assembly function - Fitness evaluation environment ### Step-by-Step 1. **Identify genotype types** — Decompose the problem into heterogeneous genetic subspaces 2. **Define genotype representations** — Each type gets its own encoding (binary, real-valued, tree-based, etc.) 3. **Design assembly function** — Map genetic contributions to unified phenotype 4. **Initialize sub-populations** — Each genotype type gets its own population 5. **Define fitness function** — Evaluate on assembled phenotype, not individual genotypes 6. **Implement credit assignment** — Propagate fitness from phenotype to contributing genotypes 7. **Apply genetic operators** — Type-specific mutation and crossover within each sub-population 8. **Sample and assemble** — Each generation: sample from each sub-population, assemble, evaluate 9. **Iterate** — Repeat until convergence or budget exhaustion ### Code Example (Conceptual) ```python class GenoSyntheticAlgorithm: def __init__(self, genotype_types, pop_size, assembly_fn, fitness_fn): self.types = genotype_types # e.g., ["structure", "behavior", "meta"] self.populations = {t: initialize_population(t, pop_size) for t in genotype_types} self.assemble = assembly_fn self.fitness = fitness_fn def evolve(self, generations): for gen in range(generations): # Sample from each sub-population candidates = [] for _ in range(pop_size): genomes = {t: random.choice(self.populations[t]) for t in self.types} phenotype = self.assemble(genomes) fit = self.fitness(phenotype) candidates.append({"genomes": genomes, "fitness": fit}) # Credit assignment: accumulate fitness per genotype fitness_per_genome = defaultdict(list) for c in candidates: for t, g in c["genomes"].items(): fitness_per_genome[(t, id(g))].append(c["fitness"]) # Selection and variation per sub-population for t in self.types: pop = self.populations[t] avg_fitness = {id(g): np.mean(fitness_per_genome.get((t, id(g)), [0])) for g in pop} selected = tournament_selection(pop, avg_fitness, pop_size // 2) offspring = crossover_and_mutate(selected, type=t) self.populations[t] = offspring # Track best best = max(candidates, key=lambda c: c["fitness"]) return best ``` ## Applications - **Neural architecture search** — Separate genotypes for topology, weights, activation functions - **Robot design** — Morphology genes + controller genes coevolving - **SNN evolution** — Neuron parameters, connectivity, learning rules as separate types - **Modular software synthesis** — Components evolving independently, assembled into system - **Multi-task learning** — Different genotypes for different task specializations ## Pitfalls - **Credit assignment difficulty** — Hard to attribute phenotype fitness to specific genotypes - **Genotype-phenotype mapping** — Assembly function must be meaningful, not arbitrary - **Population coordination** — Sub-populations may diverge, losing cooperative potential - **Evaluation cost** — Each candidate requires assembling and evaluating a full phenotype - **Hyperparameter tuning** — Population sizes, selection pressure per type need careful calibration ## Related Skills - evolutionary-snn-classifier - neuroplastic-plasticity-optimizer - multi-objective-quantum-workflow
Voir sur GitHub