拓扑列表#

从C++暴露的拓扑结构#

class pygmo.unconnected#

未连接的拓扑结构。

这个用户定义的拓扑(UDT)表示一个未连接的图。这是pygmo.topology使用的默认UDT。

另请参阅C++类pagmo::unconnected的文档。


class pygmo.ring(n=0, w=1.)#

环形拓扑。

这个用户定义的拓扑(UDT)表示一个双向环(即一个环,其中每个节点都连接到前一个和后一个节点)。

另请参阅C++类pagmo::ring的文档。

Parameters
  • n (int) – 所需的顶点数量

  • w (float) – 边的权重

Raises
  • TypeError – 如果 n 是负数或太大

  • ValueError – 如果 w 不在 \(\left[0, 1\right]\) 范围内

add_edge(i, j, w=1.)#

添加一条新边。

此方法将添加一条权重为w的新边,连接ij

Parameters
  • i (int) – 第一个顶点索引

  • j (int) – 第二个顶点索引

  • w (float) – 边的权重

Raises
  • TypeError – 如果 ij 为负数或过大

  • ValueError – 如果 ij 不小于顶点数,ij 已经相邻,或者 如果 w 不在 \(\left[0, 1\right]\) 范围内

add_vertex()#

添加一个顶点。

此方法将向拓扑添加一个新顶点。

新添加的顶点将与拓扑中的任何其他顶点不相交(即,新顶点没有连接)。

are_adjacent(i, j)#

检查两个顶点是否相邻。

如果存在一条从i指向j的有向边,则两个顶点ij是相邻的。

Parameters
  • i (int) – 第一个顶点索引

  • j (int) – 第二个顶点索引

Returns

True 如果 ij 是相邻的,False 否则

Return type

bool

Raises
  • TypeError – 如果 ij 为负数或过大

  • ValueError – 如果 ij 不小于顶点数

get_edge_weight(i, j)#

版本2.15中的新功能。

获取连接ij的边的权重。

Parameters
  • i (int) – 源顶点索引

  • j (int) – 目标顶点索引

Returns

连接ij的边的权重

Return type

float

Raises
  • TypeError – 如果 ij 为负数或过大

  • ValueError – 如果 ij 不小于顶点数,或者 ij 不相邻

get_weight()#
Returns

用于构建此拓扑的权重 w

Return type

float

num_vertices()#
Returns

拓扑中的顶点数量

Return type

int

remove_edge(i, j)#

移除现有的边。

此方法将移除连接ij的边。

Parameters
  • i (int) – 第一个顶点索引

  • j (int) – 第二个顶点索引

Raises
  • TypeError – 如果 ij 为负数或过大

  • ValueError – 如果 ij 不小于顶点数,或者 ij 不相邻

set_all_weights(w)#

此方法将设置拓扑中所有边的权重为w

Parameters

w (float) – 边的权重

Raises

ValueError – 如果 w 不在 \(\left[0, 1\right]\) 范围内

set_weight(i, j, w)#

设置边的权重。

此方法将设置连接ij的边的权重为w

Parameters
  • i (int) – 第一个顶点索引

  • j (int) – 第二个顶点索引

  • w (float) – 所需的权重

Raises
  • TypeError – 如果 ij 为负数或过大

  • ValueError – 如果 ij 不小于顶点数,ij 不相邻,或者 如果 w 不在 \(\left[0, 1\right]\) 范围内


class pygmo.fully_connected(n=0, w=1.)#

全连接拓扑。

这个用户定义的拓扑(UDT)表示一个完全图(即一个拓扑,其中所有顶点都连接到所有其他顶点)。边的权重在构建时可配置,并且对于拓扑中的所有边都是相同的。

另请参阅C++类pagmo::fully_connected的文档。

Parameters
  • n (int) – 所需的顶点数量

  • w (float) – 边的权重

Raises
  • TypeError – 如果 n 是负数或太大

  • ValueError – 如果 w 不在 \(\left[0, 1\right]\) 范围内

get_weight()#
Returns

用于构建此拓扑的权重 w

Return type

float

num_vertices()#
Returns

拓扑中的顶点数量

Return type

int


class pygmo.free_form(t=None)#

自由形式的拓扑结构。

这个用户定义的拓扑(UDT)表示一个可以自由操作顶点和边的图。这个类的实例可以从以下任一方式构建:

None构建将初始化一个没有顶点或边的拓扑结构。

networkx.DiGraph构建将初始化一个拓扑,其顶点和边由输入图描述。输入图的所有边必须具有一个名为weightfloat属性,其值在\(\left[0 , 1\right]\)范围内。

ttopology或UDT时,构造函数将尝试通过pygmo.topology.to_networkx()方法获取输入对象的NetworkX表示,然后按照上一段中解释的相同方式进行。

另请参阅C++类pagmo::free_form的文档。

Parameters

t – 将用于构造的对象

Raises
add_edge(i, j, w=1.)#

添加一条新边。

此方法将添加一条权重为w的新边,连接ij

Parameters
  • i (int) – 第一个顶点索引

  • j (int) – 第二个顶点索引

  • w (float) – 边的权重

Raises
  • TypeError – 如果 ij 为负数或过大

  • ValueError – 如果 ij 不小于顶点数,ij 已经相邻,或者 如果 w 不在 \(\left[0, 1\right]\) 范围内

add_vertex()#

添加一个顶点。

此方法将向拓扑添加一个新顶点。

新添加的顶点将与拓扑中的任何其他顶点不相交(即,新顶点没有连接)。

are_adjacent(i, j)#

检查两个顶点是否相邻。

如果存在一条从i指向j的有向边,则两个顶点ij是相邻的。

Parameters
  • i (int) – 第一个顶点索引

  • j (int) – 第二个顶点索引

Returns

True 如果 ij 是相邻的,False 否则

Return type

bool

Raises
  • TypeError – 如果 ij 为负数或过大

  • ValueError – 如果 ij 不小于顶点数

get_edge_weight(i, j)#

版本2.15中的新功能。

获取连接ij的边的权重。

Parameters
  • i (int) – 源顶点索引

  • j (int) – 目标顶点索引

Returns

连接ij的边的权重

Return type

float

Raises
  • TypeError – 如果 ij 为负数或过大

  • ValueError – 如果 ij 不小于顶点数,或者 ij 不相邻

num_vertices()#
Returns

拓扑中的顶点数量

Return type

int

remove_edge(i, j)#

移除现有的边。

此方法将移除连接ij的边。

Parameters
  • i (int) – 第一个顶点索引

  • j (int) – 第二个顶点索引

Raises
  • TypeError – 如果 ij 为负数或过大

  • ValueError – 如果 ij 不小于顶点数,或者 ij 不相邻

set_all_weights(w)#

此方法将设置拓扑中所有边的权重为w

Parameters

w (float) – 边的权重

Raises

ValueError – 如果 w 不在 \(\left[0, 1\right]\) 范围内

set_weight(i, j, w)#

设置边的权重。

此方法将设置连接ij的边的权重为w

Parameters
  • i (int) – 第一个顶点索引

  • j (int) – 第二个顶点索引

  • w (float) – 所需的权重

Raises
  • TypeError – 如果 ij 为负数或过大

  • ValueError – 如果 ij 不小于顶点数,ij 不相邻,或者 如果 w 不在 \(\left[0, 1\right]\) 范围内