evox.core.components

模块内容

Algorithm

所有算法的基类

Problem

所有问题的基类

Workflow

工作流的基类。

Monitor

监视器基类。

API

class evox.core.components.Algorithm[源代码]

Bases: evox.core.module.ModuleBase, abc.ABC

所有算法的基类

初始化

初始化 ModuleBase。

参数:
  • *args -- 可变长度参数列表,传递给父类的初始化函数。

  • **kwargs -- 任意关键字参数,传递给父类初始化器。

Attributes: static_names (list): A list to store static member names.

step() None[源代码]

执行算法过程的一步。

init_step() None[源代码]

初始化算法并执行算法过程的第一步。

final_step() None[源代码]

执行算法流程的最终步骤。

abstract evaluate(pop: torch.Tensor) torch.Tensor[源代码]

在给定点评估适应度。这个函数是由工作流设置的 Problem.evaluate 的代理函数。默认情况下,这个函数会引发 NotImplementedError

参数:

pop -- 种群。

返回:

适应度。

record_step() None[源代码]

记录当前步骤。

class evox.core.components.Problem[源代码]

Bases: evox.core.module.ModuleBase, abc.ABC

所有问题的基类

初始化

初始化 ModuleBase。

参数:
  • *args -- 可变长度参数列表,传递给父类的初始化函数。

  • **kwargs -- 任意关键字参数,传递给父类初始化器。

Attributes: static_names (list): A list to store static member names.

evaluate(pop: torch.Tensor) torch.Tensor[源代码]

在给定点评估适应度

参数:

pop -- 种群。

返回:

适应度。

注意

如果此函数包含无法通过 torch.compile 编译的外部评估,请使用 torch.compiler.disable 将其包裹,或者使用 evox.utils.register_vmap_op 将外部函数注册为操作符。

class evox.core.components.Workflow(*args, **kwargs)[源代码]

Bases: evox.core.module.ModuleBase, abc.ABC

工作流的基类。

初始化

初始化 ModuleBase。

参数:
  • *args -- 可变长度参数列表,传递给父类的初始化函数。

  • **kwargs -- 任意关键字参数,传递给父类初始化器。

Attributes: static_names (list): A list to store static member names.

init_step() None[源代码]

用于让工作流执行一步的函数。

step() None[源代码]

基本功能以逐步执行工作流。

final_step() None[源代码]

执行工作流的最终优化步骤。

class evox.core.components.Monitor(*args, **kwargs)[源代码]

Bases: evox.core.module.ModuleBase, abc.ABC

监视器基类。

监视器用于监控进化过程。它们包含一组回调,这些回调将在工作流执行的特定时刻被调用。Monitor 本身位于主工作流之外,因此不需要 jit。

要实现一个监视器,您需要实现自己的回调并重写 hooks 方法。hooks 方法应返回一个字符串列表,这些字符串是回调的名称。目前支持的回调有:

post_askpre_evalpost_evalpre_tell

初始化

初始化 ModuleBase。

参数:
  • *args -- 可变长度参数列表,传递给父类的初始化函数。

  • **kwargs -- 任意关键字参数,传递给父类初始化器。

Attributes: static_names (list): A list to store static member names.

set_config(**config) evox.core.components.Monitor[源代码]

根据 config 设置静态变量。

参数:

config -- 配置。

返回:

此模块。

record_auxiliary(aux: Dict[str, torch.Tensor]) None[源代码]

记录辅助信息。

参数:

aux -- 辅助信息。

post_ask(candidate_solution: torch.Tensor) None[源代码]

解决方案转换前执行的钩子函数。

参数:

candidate_solution -- 种群(候选解)的初始演化状态

pre_eval(transformed_candidate_solution: Any) None[源代码]

解决方案转换后执行的钩子函数。

参数:

transformed_candidate_solution -- 经过解的转换后的种群(候选解)。

post_eval(fitness: torch.Tensor) None[源代码]

在适应度转换之前执行的钩子函数。

参数:

fitness -- 在适应度转换之前的适应度。

pre_tell(transformed_fitness: torch.Tensor) None[源代码]

在适应度转换后要执行的钩子函数。

参数:

transformed_fitness -- 适应度变换后的适应度值。