Babysitter genetic-algorithm-optimizer
Genetic algorithm skill for complex optimization problems with non-linear objectives or discontinuous search spaces
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/domains/business/decision-intelligence/skills/genetic-algorithm-optimizer" ~/.claude/skills/a5c-ai-babysitter-genetic-algorithm-optimizer && rm -rf "$T"
manifest:
library/specializations/domains/business/decision-intelligence/skills/genetic-algorithm-optimizer/SKILL.mdsource content
Genetic Algorithm Optimizer
Overview
The Genetic Algorithm Optimizer skill provides evolutionary computation capabilities for solving complex optimization problems that are difficult for traditional methods. It handles non-linear, non-convex, discontinuous, and multi-objective optimization through biologically-inspired search strategies.
Capabilities
- Chromosome encoding (binary, real, permutation)
- Selection operators (tournament, roulette, rank)
- Crossover and mutation operations
- Multi-objective optimization (NSGA-II, NSGA-III)
- Constraint handling
- Parameter tuning guidance
- Convergence monitoring
- Pareto front visualization
Used By Processes
- Prescriptive Analytics and Optimization
- Strategic Portfolio Optimization
- Design Optimization
Usage
Problem Definition
# Define optimization problem ga_problem = { "name": "Portfolio Optimization", "encoding": "real", # or "binary", "permutation", "integer" "variables": { "asset_weights": { "count": 10, "bounds": [0, 1], "constraint": "sum_to_one" } }, "objectives": [ { "name": "maximize_return", "function": "portfolio_return(weights, expected_returns)", "direction": "maximize" }, { "name": "minimize_risk", "function": "portfolio_volatility(weights, covariance_matrix)", "direction": "minimize" } ], "constraints": [ { "name": "min_diversification", "expression": "max(weights) <= 0.25", "type": "inequality" }, { "name": "sector_limit", "expression": "sum(tech_weights) <= 0.40", "type": "inequality" } ] }
GA Configuration
# Genetic algorithm parameters ga_config = { "population_size": 200, "generations": 500, "selection": { "method": "tournament", "tournament_size": 3 }, "crossover": { "method": "simulated_binary", # for real encoding "probability": 0.9, "eta": 15 # distribution index }, "mutation": { "method": "polynomial", "probability": 0.1, "eta": 20 }, "elitism": 0.05, # preserve top 5% "constraint_handling": "penalty", # or "repair", "feasibility_rules" "termination": { "max_generations": 500, "convergence_threshold": 1e-6, "stall_generations": 50 } }
Multi-Objective Configuration (NSGA-II)
# NSGA-II settings nsga_config = { "algorithm": "NSGA-II", "population_size": 100, "reference_directions": "auto", # for NSGA-III "diversity_mechanism": "crowding_distance", "archive": { "enabled": True, "max_size": 200 } }
Encoding Types
| Encoding | Best For | Operators |
|---|---|---|
| Binary | Feature selection, discrete choices | One-point, two-point crossover |
| Real | Continuous optimization | SBX, polynomial mutation |
| Permutation | Sequencing, TSP | PMX, order crossover |
| Integer | Discrete with ranges | Uniform crossover |
Selection Methods
| Method | Description | Pressure |
|---|---|---|
| Tournament | Random subset competition | Adjustable |
| Roulette | Probability proportional to fitness | High |
| Rank | Probability based on rank | Moderate |
| Stochastic Universal | Even selection distribution | Low |
Input Schema
{ "problem": { "encoding": "string", "variables": "object", "objectives": ["object"], "constraints": ["object"] }, "ga_config": { "population_size": "number", "generations": "number", "selection": "object", "crossover": "object", "mutation": "object" }, "multi_objective": { "algorithm": "NSGA-II|NSGA-III|MOEA/D", "reference_directions": "object" }, "output_options": { "save_history": "boolean", "pareto_front": "boolean", "convergence_plot": "boolean" } }
Output Schema
{ "best_solution": { "variables": "object", "objectives": "object", "constraint_violation": "number" }, "pareto_front": [ { "variables": "object", "objectives": "object" } ], "convergence": { "generations": ["number"], "best_fitness": ["number"], "average_fitness": ["number"], "diversity": ["number"] }, "statistics": { "total_evaluations": "number", "feasible_solutions": "number", "hypervolume": "number (multi-objective)" }, "visualization_paths": ["string"] }
Best Practices
- Start with larger population for complex landscapes
- Balance exploration (mutation) and exploitation (crossover)
- Use problem-specific operators when possible
- Monitor diversity to avoid premature convergence
- Run multiple times with different seeds
- Validate solutions with domain expertise
- Consider hybrid approaches (GA + local search)
Constraint Handling
| Method | Description | Use When |
|---|---|---|
| Penalty | Add penalty term to fitness | Simple constraints |
| Repair | Fix infeasible solutions | Structure known |
| Feasibility Rules | Feasible > infeasible | Many constraints |
| Separate handling | Tournament with constraints | Multi-objective |
Multi-Objective Interpretation
For Pareto-optimal solutions:
- All solutions on the front are non-dominated
- Trade-offs exist between objectives
- Decision-maker selects based on preferences
- Use hypervolume for algorithm comparison
Integration Points
- Feeds into Strategic Options Analyst for strategy optimization
- Connects with Sensitivity Analyzer for robustness testing
- Supports Optimization Specialist agent
- Integrates with Decision Visualization for Pareto fronts