# `Jido.Evolve.Mutation.Permutation`
[🔗](https://github.com/agentjido/jido_evolve/blob/v1.0.0/lib/jido_evolve/mutation/permutation.ex#L1)

Mutation strategies for permutation genomes.

Supports three mutation modes:
- `:swap` - Swap two random positions
- `:inversion` - Reverse a random segment
- `:insertion` - Remove an element and insert it elsewhere

## Options

- `:mode` - Mutation mode (default: `:swap`)
- `:rate` - Mutation rate (default: from config)

## Examples

    # Swap mutation
    mutate([0, 1, 2, 3, 4], 1.0, mode: :swap)
    # => [0, 3, 2, 1, 4]

    # Inversion mutation
    mutate([0, 1, 2, 3, 4], 1.0, mode: :inversion)
    # => [0, 3, 2, 1, 4]

    # Insertion mutation
    mutate([0, 1, 2, 3, 4], 1.0, mode: :insertion)
    # => [0, 1, 3, 4, 2]

# `mutate_with_feedback`

Default implementation of mutate_with_feedback/3 that ignores feedback.

# `mutation_strength`

Default mutation strength that decreases linearly with generation.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
