Query Optimizer (Implementation)#

alts.modules.query.query_optimizer
class GAQueryOptimizer[source]#

Bases: QueryOptimizer

Description
The Genetic Algortihm Query Optimizer tries to maximize the query scores through Differential Evolution
select(self) queries, scores[source]#
Description
Tries to find the score maximizing queries through heuristic methods.
Returns:

queries, scores

Return type:

NDArrays, NDArrays

class MCQueryOptimizer(query_sampler, num_tries=100)[source]#

Bases: QueryOptimizer

Description
The Monte Carlo Query Optimizer works by sampling num_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#
post_init(self) None[source]#
Description
Initializes the query sampler
query_sampler: QuerySampler = NOTSET#
class MaxMCQueryOptimizer(query_sampler, num_tries)[source]#

Bases: MCQueryOptimizer

Description
The Maximizing Monte Carlo Query Optimizer samples num_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)

select(self) queries, scores[source]#
Description
Selects the `num_queries` queries among `num_tries` samples with the highest score.
Returns:

Queries, scores

Return type:

NDArrays, NDArrays

class NoQueryOptimizer(selection_criteria, query_sampler)[source]#

Bases: QueryOptimizer

Description
Selects the first queries from the query sample.
Parameters:
post_init(self) None[source]#
Description
Initializes the query_sampler
query_sampler: QuerySampler = NOTSET#
select(self) queries, scores[source]#
Description
Selects 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

Description
The 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]#
Description
Gives 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.
Returns:

Queries, scores

Return type:

NDArrays, NDArrays