Query Optimizer (Implementation)#
alts.modules.query.query_optimizer
- class GAQueryOptimizer[source]#
Bases:
QueryOptimizer
DescriptionThe Genetic Algortihm Query Optimizer tries to maximize the query scores through Differential Evolution
- class MCQueryOptimizer(query_sampler, num_tries=100)[source]#
Bases:
QueryOptimizer
DescriptionThe Monte Carlo Query Optimizer works by samplingnum_tries
many times and choosing one of those (asbtract class).- Parameters:
query_sampler (QuerySampler) – The query sampler to use
num_tries (int) – Amount of samples to get (default=100)
- num_tries: int = 100#
- query_sampler: QuerySampler = NOTSET#
- class MaxMCQueryOptimizer(query_sampler, num_tries)[source]#
Bases:
MCQueryOptimizer
DescriptionThe Maximizing Monte Carlo Query Optimizer samplesnum_tries
many times and then chooses the best queries.- Parameters:
query_sampler (QuerySampler) – The query sampler to use
num_tries (int) – Amount of samples to get (default= 100)
- class NoQueryOptimizer(selection_criteria, query_sampler)[source]#
Bases:
QueryOptimizer
DescriptionSelects the first queries from the query sample.- Parameters:
selection_criteria (SelectionCriteria) – Scores the queries for the optimizer
query_sampler (QuerySampler) – Samples queries to work with
- query_sampler: QuerySampler = NOTSET#
- select(self) queries, scores [source]#
- DescriptionSelects the first sampled queries regardless of score
- Returns:
queries and associated scores scores
- Return type:
queries, NDArray[float]
- class ProbWeightedMCQueryOptimizer(query_sampler, num_tries)[source]#
Bases:
MCQueryOptimizer
DescriptionThe Probabilistic Weighted Monte Carlo Query Optimizer selects samples randomly with highly scored queries having a higher probability.- Parameters:
query_sampler (QuerySampler) – The query sampler to use
num_tries (int) – Amount of samples to get (default= 100)
- select(self) queries, scores [source]#
- DescriptionGives each query a relative weight exponential to their score.If the value of any weight is NaN, selects
`num_queries`
queries randomly with equal probability distribution.Otherwise, selects`num_queries`
queries randomly with a probability distribution equal to their weights.