杂项#

class pygmo.thread_safety#

线程安全级别。

此枚举定义了一组值,可用于指定问题、算法等的线程安全性。

注意

出于安全原因,pygmo目前不允许为任何在Python中实现的用户定义对象设置高于none的线程安全级别。也就是说,只有在C++中实现的问题、算法等才能具有一定的线程安全性。

成员:

none : 无线程安全 - 对不同对象的并发操作是不安全的(值 = 0)

基本:基本线程安全 - 对不同对象的并发操作是安全的(值 = 1)

常量 : 常量线程安全 - 对同一对象的常量(即只读)并发操作是安全的(值 = 2)


class pygmo.evolve_status#

进化状态。

此枚举包含用于表示异步进化/优化当前状态的状态标志,这些标志用于pygmo.islandpygmo.archipelago

成员:

空闲:没有正在进行的异步操作,并且过去没有由异步操作生成的错误(值 = 0)

忙碌:异步操作正在进行中,并且过去没有由异步操作产生错误(值 = 1)

idle_error : 没有正在进行的异步操作,但过去由异步操作生成了错误 (值 = 2)

busy_error : 异步操作正在进行中,并且过去由异步操作生成了错误 (值 = 3)


class pygmo.migration_type#

迁移类型。

此枚举表示在archipelago中可用的迁移策略:

  • 使用点对点迁移策略时,在迁移过程中,一个岛屿只会考虑来自其中一个连接岛屿的个体;

  • 使用广播迁移策略时,在迁移过程中,一个岛屿会考虑来自所有连接岛屿的个体。

成员:

p2p : 点对点迁移 (值 = 0)

广播 : 广播迁移 (值 = 1)


class pygmo.migrant_handling#

移民处理政策。

此枚举表示在archipelago中可用的移民处理策略。

在迁移过程中, 个体从岛屿中被选中并复制到迁移数据库中,其他岛屿可以从该数据库中获取这些个体。 此策略确定了当目标岛屿获取了数据库中的迁移者后,迁移者的处理方式:

  • 使用保留策略时,候选迁移者的副本将保留在数据库中;

  • 使用驱逐策略,候选迁移者将从数据库中移除。

成员:

preserve : 在数据库中保留移民 (value = 0)

evict : 从数据库中驱逐移民 (value = 1)


pygmo.set_serialization_backend(name)#

设置pygmo的序列化后端。

此函数允许指定pygmo内部用于(反)序列化pythonic用户定义实体(例如,用户定义的pythonic问题、算法等)的序列化后端。

默认情况下,pygmo 使用 cloudpickle 模块,该模块扩展了标准 pickle 模块的功能,支持在 __main__ 模块中交互式定义的 lambda、函数和类等。

然而,在某些特定情况下,不同的序列化后端可能比cloudpickle效果更好,因此pygmo为有经验的用户提供了切换到另一个序列化后端的可能性。

有效的后端有:

  • 'pickle'(即标准的Python pickle 模块),

  • 'cloudpickle'.

警告

设置序列化后端不是线程安全的:不要在从另一个线程同时设置/获取它时设置序列化后端,或者在异步进化/优化正在进行时设置。

Parameters

name (str) – 所需后端的名称

Raises
  • TypeError – 如果 name 不是 str

  • ValueError – 如果 name 不是 ['pickle', 'cloudpickle'] 中的一个

pygmo.get_serialization_backend()#

获取pygmo的序列化后端。

此函数将返回pygmo的当前序列化后端(有关可用后端的解释,请参见 set_serialization_backend())。

Returns

当前的序列化后端(作为Python模块)

Return type

types.ModuleType