杂项#
- class pygmo.thread_safety#
线程安全级别。
此枚举定义了一组值,可用于指定问题、算法等的线程安全性。
注意
出于安全原因,pygmo目前不允许为任何在Python中实现的用户定义对象设置高于
none的线程安全级别。也就是说,只有在C++中实现的问题、算法等才能具有一定的线程安全性。成员:
none : 无线程安全 - 对不同对象的并发操作是不安全的(值 = 0)
基本:基本线程安全 - 对不同对象的并发操作是安全的(值 = 1)
常量 : 常量线程安全 - 对同一对象的常量(即只读)并发操作是安全的(值 = 2)
- class pygmo.evolve_status#
进化状态。
此枚举包含用于表示异步进化/优化当前状态的状态标志,这些标志用于
pygmo.island和pygmo.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'(即标准的Pythonpickle模块),'cloudpickle'.
警告
设置序列化后端不是线程安全的:不要在从另一个线程同时设置/获取它时设置序列化后端,或者在异步进化/优化正在进行时设置。
- Parameters
name (str) – 所需后端的名称
- Raises
ValueError – 如果 name 不是
['pickle', 'cloudpickle']中的一个
- pygmo.get_serialization_backend()#
获取pygmo的序列化后端。
此函数将返回pygmo的当前序列化后端(有关可用后端的解释,请参见
set_serialization_backend())。- Returns
当前的序列化后端(作为Python模块)
- Return type