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.

Zur Installation springen

Quellinformationen

Repository
hiyenwong/ai_collection
Letzte Quellaktivität
4. Juni 2026 um 13:32
Erkannte Sprache von SKILL.md
Englisch
Sterne
2
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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
Auf GitHub ansehen