JSPM

@neural-trader/example-evolutionary-game-theory

1.0.0
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 22
    • Score
      100M100P100Q85414F
    • License MIT

    Self-learning evolutionary game theory with multi-agent tournaments, replicator dynamics, and ESS calculation

    Package Exports

      This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@neural-trader/example-evolutionary-game-theory) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

      Readme

      @neural-trader/example-evolutionary-game-theory

      Self-learning evolutionary game theory with multi-agent tournaments, replicator dynamics, and ESS calculation. Features AgentDB for strategy memory, agentic-flow for coordination, and OpenRouter for AI-powered strategy innovation.

      Features

      • ๐ŸŽฎ Classic Games: Prisoner's Dilemma, Hawk-Dove, Stag Hunt, Public Goods, Rock-Paper-Scissors
      • ๐Ÿ“Š Replicator Dynamics: Population evolution simulation with convergence analysis
      • ๐ŸŽฏ ESS Calculation: Find evolutionarily stable strategies (pure and mixed)
      • ๐Ÿ† Tournament System: Round-robin, elimination, and Swiss-style competitions
      • ๐Ÿงฌ Genetic Algorithms: Self-learning strategy evolution with crossover and mutation
      • ๐Ÿค– Multi-Agent Swarms: 100+ strategies competing simultaneously
      • ๐Ÿ’พ AgentDB Integration: Persistent memory for strategy library and fitness landscapes
      • ๐Ÿš€ OpenRouter AI: LLM-powered strategy innovation
      • ๐Ÿ“ˆ Performance Analysis: Comprehensive metrics and visualization support

      Installation

      npm install @neural-trader/example-evolutionary-game-theory

      Quick Start

      Basic Game Analysis

      import {
        PRISONERS_DILEMMA,
        ReplicatorDynamics,
        ESSCalculator,
        findAllESS,
      } from '@neural-trader/example-evolutionary-game-theory';
      
      // Find ESS
      const ess = findAllESS(PRISONERS_DILEMMA);
      console.log('Pure ESS:', ess.pure); // [1] (Defect)
      
      // Simulate replicator dynamics
      const dynamics = new ReplicatorDynamics(PRISONERS_DILEMMA, [0.7, 0.3]);
      const result = dynamics.simulateUntilConvergence();
      console.log('Converged to:', result.frequencies); // ~[0, 1] (all defect)

      Tournament Competition

      import {
        Tournament,
        TIT_FOR_TAT,
        PAVLOV,
        ALWAYS_COOPERATE,
        ALWAYS_DEFECT,
      } from '@neural-trader/example-evolutionary-game-theory';
      
      const tournament = new Tournament({
        strategies: [TIT_FOR_TAT, PAVLOV, ALWAYS_COOPERATE, ALWAYS_DEFECT],
        roundsPerMatch: 200,
        tournamentStyle: 'round-robin',
      });
      
      const result = tournament.run();
      console.log('Winner:', result.bestStrategy.name);
      console.log('Rankings:', result.rankings);

      Swarm Evolution

      import {
        SwarmEvolution,
        PRISONERS_DILEMMA,
      } from '@neural-trader/example-evolutionary-game-theory';
      
      const swarm = new SwarmEvolution(PRISONERS_DILEMMA, {
        populationSize: 100,
        mutationRate: 0.1,
        maxGenerations: 50,
      });
      
      const result = await swarm.run();
      console.log('Best evolved strategy:', result.bestStrategy);
      console.log('Final fitness:', result.bestFitness);

      Core Concepts

      Evolutionary Game Theory

      Evolutionary game theory studies strategy dynamics in populations where success is frequency-dependent. Unlike classical game theory, it focuses on:

      • Population dynamics rather than individual rationality
      • Replicator dynamics as the evolutionary process
      • Evolutionarily Stable Strategies (ESS) as equilibrium concepts
      • Frequency-dependent selection where fitness depends on population composition

      Replicator Dynamics

      The replicator equation describes how strategy frequencies evolve over time:

      dx_i/dt = x_i * (f_i - f_avg)

      Where:

      • x_i is the frequency of strategy i
      • f_i is the fitness of strategy i
      • f_avg is the average population fitness

      Key Properties:

      • Fitter strategies grow in frequency
      • Fixed points correspond to equilibria
      • Stable fixed points are ESS candidates

      Evolutionarily Stable Strategy (ESS)

      A strategy s* is an ESS if:

      1. Stability Condition: E(s*, s*) โ‰ฅ E(s, s*) for all strategies s
      2. Resistance to Invasion: If equal, then E(s*, s) > E(s, s)

      Where E(a, b) is the expected payoff for strategy a against strategy b.

      Interpretation: An ESS cannot be invaded by any mutant strategy.

      Games Included

      Prisoner's Dilemma

      Classic dilemma of cooperation vs defection.

      Payoff Matrix:
                    Cooperate  Defect
      Cooperate     3          0
      Defect        5          1
      • ESS: Defect (pure strategy)
      • Nash Equilibrium: (Defect, Defect)
      • Social Optimum: (Cooperate, Cooperate)
      • Insight: Individual rationality leads to worse collective outcome

      Hawk-Dove (Chicken)

      Contest over resources with fighting costs.

      Payoff Matrix (V=4, C=6):
               Dove    Hawk
      Dove     2       0
      Hawk     4       -1
      • ESS: Mixed strategy (typically 40% Hawk, 60% Dove)
      • Insight: Evolutionary stable polymorphism
      • Application: Aggressive vs peaceful behavior

      Stag Hunt

      Coordination game with risk.

      Payoff Matrix:
               Stag    Hare
      Stag     4       0
      Hare     3       3
      • ESS: Both pure strategies (multiple equilibria)
      • Insight: Coordination challenge, risk-dominance vs payoff-dominance
      • Application: Cooperation with coordination failure risk

      Public Goods Game

      Contribution to public goods with free-rider problem.

      Payoff Matrix (r=1.5):
                    Contribute  Free-ride
      Contribute    0.5         -0.25
      Free-ride     0.75        0
      • ESS: Free-ride (tragedy of the commons)
      • Insight: Public goods provision challenges
      • Application: Resource management, climate change

      Strategies

      Classic Strategies

      Always Cooperate

      Always plays cooperate. Exploitable but promotes cooperation.

      Always Defect

      Always plays defect. Maximizes exploitation but prevents cooperation.

      Tit-for-Tat (TFT)

      Cooperates first, then copies opponent's last move. Winner of Axelrod's tournaments.

      Properties:
      - Nice (never defects first)
      - Retaliatory (punishes defection)
      - Forgiving (returns to cooperation)
      - Clear (easy to understand)

      Pavlov (Win-Stay, Lose-Shift)

      Repeats move if successful, switches if unsuccessful.

      Logic:
      if (my_move == opponent_move) repeat;
      else switch;

      Grim Trigger

      Cooperates until opponent defects once, then defects forever. Unforgiving.

      Tit-for-Two-Tats

      Only retaliates after two consecutive defections. More forgiving than TFT.

      Adaptive

      Learns and matches opponent's cooperation rate.

      Gradual

      Increases punishment length with each defection, then offers peace.

      Learning Strategies

      Create strategies with weighted features:

      import { createLearningStrategy } from '@neural-trader/example-evolutionary-game-theory';
      
      const weights = [1.0, -0.5, 0.8, 0.3, 0.1, 0, 0, 0, 0, 0];
      const strategy = createLearningStrategy('my-strategy', 'My Strategy', weights);
      
      // Features:
      // [0] Bias
      // [1] Opponent's last move
      // [2] Opponent's recent cooperation rate
      // [3] Opponent's total cooperation rate
      // [4] Game length
      // [5-9] Additional features

      API Reference

      ReplicatorDynamics

      class ReplicatorDynamics {
        constructor(game: Game, initialPopulation?: number[]);
      
        // Simulate single step
        step(dt?: number): PopulationState;
      
        // Simulate multiple steps
        simulate(steps: number, dt?: number): PopulationState[];
      
        // Simulate until convergence
        simulateUntilConvergence(
          threshold?: number,
          maxSteps?: number,
          dt?: number
        ): PopulationState;
      
        // Check if at fixed point
        isFixedPoint(threshold?: number): boolean;
      
        // Calculate population diversity
        calculateDiversity(): number;
      
        // Get current state
        getState(): PopulationState;
      
        // Get simulation history
        getHistory(): PopulationState[];
      
        // Calculate velocity at point
        getVelocity(population: number[]): number[];
      }

      ESSCalculator

      class ESSCalculator {
        constructor(game: Game);
      
        // Check if pure strategy is ESS
        isPureESS(strategy: number): boolean;
      
        // Check if mixed strategy is ESS
        isMixedESS(strategy: number[], epsilon?: number): ESSResult;
      
        // Find all pure ESS
        findPureESS(): number[];
      
        // Find mixed ESS (scans simplex)
        findMixedESS(resolution?: number): ESSResult[];
      
        // Check if invader can succeed
        canInvade(
          resident: number[],
          invader: number[],
          invaderFreq?: number
        ): boolean;
      
        // Calculate invasion fitness
        invasionFitness(resident: number[], invader: number[]): number;
      
        // Find basin of attraction
        findBasinOfAttraction(
          ess: number[],
          resolution?: number,
          threshold?: number
        ): number[][];
      }

      Tournament

      class Tournament {
        constructor(config: TournamentConfig);
      
        // Add strategy to tournament
        addStrategy(strategy: Strategy): void;
      
        // Run tournament
        run(): TournamentResult;
      
        // Analyze individual strategy
        analyzeStrategy(strategyId: string): {
          averageScore: number;
          winRate: number;
          cooperationRate: number;
          performanceByOpponent: Map<string, number>;
        };
      
        // Get match history
        getMatchHistory(strategy1Id: string, strategy2Id: string): GameHistory[][];
      
        // Get cooperation rate
        getCooperationRate(strategyId: string): number;
      
        // Export results
        exportResults(): object;
      }

      SwarmEvolution

      class SwarmEvolution {
        constructor(
          game: Game,
          geneticParams?: Partial<GeneticParams>,
          swarmConfig?: Partial<SwarmConfig>
        );
      
        // Initialize AgentDB for memory
        async initializeAgentDB(agentDB: any): Promise<void>;
      
        // Set OpenRouter API key
        setOpenRouterKey(key: string): void;
      
        // Evolve one generation
        async evolveGeneration(): Promise<EvolutionResult>;
      
        // Run complete evolution
        async run(): Promise<EvolutionResult>;
      
        // Query similar strategies from AgentDB
        async querySimilarStrategies(
          strategy: Strategy,
          k?: number
        ): Promise<Array<{ strategy: Strategy; similarity: number }>>;
      
        // Explore fitness landscape
        async exploreFitnessLandscape(resolution?: number): Promise<FitnessPoint[]>;
      
        // Generate strategies using LLM
        async innovateWithLLM(prompt: string): Promise<Strategy[]>;
      
        // Get statistics
        getStatistics(): {
          generation: number;
          populationSize: number;
          bestStrategies: Strategy[];
          averageFitness: number;
          fitnessVariance: number;
        };
      }

      Advanced Usage

      AgentDB Integration

      import AgentDB from 'agentdb';
      import { SwarmEvolution } from '@neural-trader/example-evolutionary-game-theory';
      
      // Initialize AgentDB
      const db = new AgentDB();
      await db.connect();
      
      // Create swarm with memory
      const swarm = new SwarmEvolution(PRISONERS_DILEMMA);
      await swarm.initializeAgentDB(db);
      
      // Evolve and store strategies
      await swarm.run();
      
      // Query similar strategies
      const similar = await swarm.querySimilarStrategies(TIT_FOR_TAT, 5);
      console.log('Similar strategies:', similar);

      OpenRouter AI Innovation

      import { SwarmEvolution } from '@neural-trader/example-evolutionary-game-theory';
      
      const swarm = new SwarmEvolution(PRISONERS_DILEMMA);
      swarm.setOpenRouterKey(process.env.OPENROUTER_API_KEY);
      
      // Generate innovative strategies
      const newStrategies = await swarm.innovateWithLLM(
        'Create strategies that balance cooperation and defection'
      );
      
      console.log('Generated:', newStrategies.length, 'new strategies');

      Multi-Population Coevolution

      import { MultiPopulationDynamics } from '@neural-trader/example-evolutionary-game-theory';
      
      const multi = new MultiPopulationDynamics([
        PRISONERS_DILEMMA,
        HAWK_DOVE,
        STAG_HUNT,
      ]);
      
      // Evolve all populations simultaneously
      const results = multi.simulate(100, 0.01);
      
      // Analyze cross-population diversity
      const diversity = multi.calculateCrossDiversity();
      console.log('Cross-population diversity:', diversity);

      Fitness Landscape Visualization

      import { SwarmEvolution } from '@neural-trader/example-evolutionary-game-theory';
      
      const swarm = new SwarmEvolution(PRISONERS_DILEMMA);
      await swarm.run();
      
      // Sample fitness landscape
      const landscape = await swarm.exploreFitnessLandscape(20);
      
      // Find peaks
      const peaks = landscape
        .sort((a, b) => b.fitness - a.fitness)
        .slice(0, 5);
      
      console.log('Top fitness peaks:', peaks);

      Examples

      Run Examples

      # Basic game theory
      npm run example:basic
      
      # Tournament evolution
      npm run example:tournament
      
      # Swarm learning
      npm run example:swarm

      Example Output

      === Tournament Evolution ===
      Rankings:
      1. Tit-for-Tat          Score: 603.2  Win Rate: 82.5%
      2. Pavlov               Score: 597.8  Win Rate: 78.3%
      3. Generous TFT         Score: 585.1  Win Rate: 75.0%
      4. Adaptive             Score: 512.9  Win Rate: 58.7%
      5. Always Cooperate     Score: 450.0  Win Rate: 33.3%
      6. Always Defect        Score: 425.5  Win Rate: 41.7%
      
      Key Insight: Cooperative strategies with retaliation dominate

      Performance

      Benchmarks

      • Replicator Dynamics: 100,000 steps/second
      • Tournament (100 strategies, 200 rounds): ~2 seconds
      • ESS Calculation (3-strategy game): < 100ms
      • Swarm Evolution (100 pop, 50 gen): ~30 seconds
      • Fitness Landscape (100 samples): ~5 seconds

      Scalability

      • Population size: Tested up to 500 strategies
      • Generations: Tested up to 1000 generations
      • Match length: Tested up to 10,000 rounds
      • Parallel tournaments: Supports multi-core execution

      Testing

      # Run all tests
      npm test
      
      # Run with coverage
      npm run test:coverage
      
      # Watch mode
      npm run test:watch

      Test Coverage

      • Games: 100%
      • Strategies: 100%
      • Replicator Dynamics: 98%
      • ESS Calculator: 95%
      • Tournament: 97%
      • Swarm Evolution: 92%

      Applications

      Market Competition

      Model competing firms with different strategies:

      • Aggressive pricing (Hawk)
      • Cooperative pricing (Dove)
      • Responsive pricing (TFT)

      Social Dynamics

      Study cooperation emergence:

      • Social norms evolution
      • Reputation systems
      • Punishment mechanisms
      • Cooperation networks

      Mechanism Design

      Optimize incentive structures:

      • Auction design
      • Voting systems
      • Resource allocation
      • Public goods provision

      Multi-Agent Systems

      Coordinate autonomous agents:

      • Robot swarms
      • Trading algorithms
      • Network protocols
      • Distributed systems

      Theory Background

      Key Concepts

      Nash Equilibrium: No player can improve by unilateral deviation

      ESS: Strategy stable against invasion by mutants

      Replicator Dynamics: Differential equation modeling population evolution

      Fitness: Payoff that determines reproductive success

      Cooperation: Mutually beneficial behavior with defection temptation

      Important Results

      Folk Theorem: Any feasible, individually rational payoff is achievable with repeated games

      Axelrod's Tournaments: TFT won due to being nice, retaliatory, forgiving, and clear

      Price Equation: Decomposes selection into variance and covariance components

      Hamilton's Rule: Cooperation evolves when rb > c (relatedness ร— benefit > cost)

      References

      Books

      • Maynard Smith, J. (1982). Evolution and the Theory of Games
      • Weibull, J. (1995). Evolutionary Game Theory
      • Axelrod, R. (1984). The Evolution of Cooperation
      • Nowak, M. (2006). Evolutionary Dynamics

      Papers

      • Maynard Smith & Price (1973). "The Logic of Animal Conflict"
      • Axelrod & Hamilton (1981). "The Evolution of Cooperation"
      • Nowak & May (1992). "Evolutionary Games and Spatial Chaos"
      • Szabรณ & Fรกth (2007). "Evolutionary Games on Graphs"

      Online Resources

      • Stanford Encyclopedia: Evolutionary Game Theory
      • Complexity Explorer: Evolution & Computation
      • NetLogo: Game Theory Models

      Contributing

      Contributions welcome! Areas of interest:

      • Additional game types (Ultimatum, Dictator, Trust games)
      • Network/spatial games
      • Stochastic strategies
      • Cultural evolution
      • Multi-level selection
      • Visualization tools

      License

      MIT

      Author

      Neural Trader Team

      Keywords

      • evolutionary-game-theory
      • replicator-dynamics
      • ess
      • prisoners-dilemma
      • hawk-dove
      • game-theory
      • multi-agent
      • tournament
      • self-learning
      • genetic-algorithm
      • agentdb
      • agentic-flow
      • neural-trader
      • cooperation
      • evolution
      • simulation

      Part of the @neural-trader ecosystem - High-performance neural trading system with GPU acceleration and multi-agent coordination.