Core

The main package of the EvoGuessAI component. The core describes the logic of interaction of all dependent modules to perform the required task. The main task that the EvoGuessAI component allows to solve is the task of metaheuristic optimization of the target black-box function.

Optimize

This implementation optimizes the fitness function using a metaheuristic algorithm over a set of variables that are defined in search space. Fitness values for potential solutions are computed over a sample of tasks generated by the sampling module and compared according to the rules described in the comparator module. Optimization uses computing resources that are specified in the executor module and limited using the limitation module. The task of optimization is problem. The optimization process is written by logger to a file in the specified format and depends on the following parameters:
  • space – An instance of the Space module.

  • logger – Logger instance in the Output package.

  • problem – Problem instance in the Problem package.

  • executor – Executor instance in the Executor package.

  • sampling – An instance of the Sampling module.

  • function – Function instance in the Function package.

  • algorithm – Algorithm instance in the Algorithm package.

  • comparator – An instance of the Comparator module.

  • limitation – An instance of the Limitation module.

  • random_seed – Random seed to initialize the random state, which generates random seeds used to generate task samples.

from core.impl import Optimize

 solution = Optimize(
     space: Space,
     logger: Logger,
     problem: Problem,
     executor: Executor,
     sampling: Sampling,
     function: Function,
     algorithm: Algorithm,
     comparator: Comparator,
     limitation: Limitation,
     random_seed: Optional[int]
 ).launch()

Combine

This implementation calculates the time or other measure that will be required to solve the original problem using the specified list of backdoors. The combine process depends on the following parameters:
  • logger – Logger instance in the Output package.

  • solver – An instance of the Solver module.

  • measure – An instance of the Measure module.

  • problem – Problem instance in the Problem package.

  • executor – Executor instance in the Executor package.

from core.impl import Combine

 estimation = Combine(
     logger: Logger,
     solver: Solver,
     measure: Measure,
     problem: Problem,
     executor: Executor,
 ).launch(*backdoors)

Core models

Core modules