Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Structure

Project Dependencies

flowchart RL
    initializer[scarlet-queen-initializer] --> core[scarlet-queen-core]
    fitness[scarlet-queen-fitness] --> core[scarlet-queen-core]
    selector[scarlet-queen-selector] --> core[scarlet-queen-core]
    replenisher[scarlet-queen-replenisher] --> core[scarlet-queen-core]
    generation[scarlet-queen-generation] --> core[scarlet-queen-core]
    entrypoint["scarlet-queen-entrypoint (binary crate)"] --> core[scarlet-queen-core]

    generation[scarlet-queen-generation] --> fitness[scarlet-queen-fitness]
    generation[scarlet-queen-generation] --> selector[scarlet-queen-selector]
    generation[scarlet-queen-generation] --> replenisher[scarlet-queen-replenisher]

    entrypoint["scarlet-queen-entrypoint (binary crate)"] --> initializer[scarlet-queen-initializer]
    entrypoint["scarlet-queen-entrypoint (binary crate)"] --> generation[scarlet-queen-generation]

Life Cycle

flowchart LR
    initializer["scarlet-queen-initialize (initializer)"] --> fitness["scarlet-queen-arithmetic of fitness (fitness)"]
    subgraph generation
        fitness["scarlet-queen-arithmetic of fitness (fitness)"] --> selector["scarlet-queen-select (selector)"]
        selector["scarlet-queen-select (selector)"] --> replenisher["scarlet-queen-replenisher (replenisher)"]
        replenisher["scarlet-queen-replenisher (replenisher)"] --> fitness["scarlet-queen-arithmetic of fitness (fitness)"]
    end

Project Structure

scarlet-queen-core (library crate)

Contains the core type definition and logic.

scarlet-queen-initializer (library crate)

Contains the logic for initializing the group (environment).

  • modules
    • random: enables the random initialization.
    • weight: enables the weighted initialization.

scarlet-queen-fitness (library crate)

Contains the fitness evaluation logic.

scarlet-queen-selector (library crate)

Contains the logic for selecting individuals for the next generation.

  • modules
    • random: enables the random selection.
    • roulette: enables the roulette selection.
    • tournament: enables the tournament selection.

scarlet-queen-replenisher (library crate)

Contains the logic for replenishing new individuals.

  • modules
    • random: enables the random generation.
    • novelty: enables the novelty search algorithm.

scarlet-queen-generation (library crate)

Contains the logic for managing the generation process.

scarlet-queen-entrypoint (binary crate)

The binary crate that runs the Scarlet Queen framework.