Skip to content

EpsilonGreedyCandidateSelector

gepa.strategies.candidate_selector.EpsilonGreedyCandidateSelector(epsilon: float, rng: random.Random | None)

Bases: CandidateSelector

Source code in gepa/strategies/candidate_selector.py
def __init__(self, epsilon: float, rng: random.Random | None):
    assert 0.0 <= epsilon <= 1.0
    self.epsilon = epsilon
    if rng is None:
        self.rng = random.Random(0)
    else:
        self.rng = rng

Attributes

epsilon = epsilon instance-attribute

rng = random.Random(0) instance-attribute

Functions

select_candidate_idx(state: GEPAState) -> int

Source code in gepa/strategies/candidate_selector.py
def select_candidate_idx(self, state: GEPAState) -> int:
    assert len(state.program_full_scores_val_set) == len(state.program_candidates)
    if self.rng.random() < self.epsilon:
        return self.rng.randint(0, len(state.program_candidates) - 1)
    else:
        return idxmax(state.program_full_scores_val_set)