拓扑列表#
从C++暴露的拓扑结构#
- class pygmo.unconnected#
未连接的拓扑结构。
这个用户定义的拓扑(UDT)表示一个未连接的图。这是
pygmo.topology使用的默认UDT。另请参阅C++类
pagmo::unconnected的文档。
- class pygmo.ring(n=0, w=1.)#
环形拓扑。
这个用户定义的拓扑(UDT)表示一个双向环(即一个环,其中每个节点都连接到前一个和后一个节点)。
另请参阅C++类
pagmo::ring的文档。- Parameters
- Raises
TypeError – 如果 n 是负数或太大
ValueError – 如果 w 不在 \(\left[0, 1\right]\) 范围内
- add_edge(i, j, w=1.)#
添加一条新边。
此方法将添加一条权重为w的新边,连接i到j。
- Parameters
- Raises
TypeError – 如果 i 或 j 为负数或过大
ValueError – 如果 i 或 j 不小于顶点数,i 和 j 已经相邻,或者 如果 w 不在 \(\left[0, 1\right]\) 范围内
- add_vertex()#
添加一个顶点。
此方法将向拓扑添加一个新顶点。
新添加的顶点将与拓扑中的任何其他顶点不相交(即,新顶点没有连接)。
- are_adjacent(i, j)#
检查两个顶点是否相邻。
如果存在一条从i指向j的有向边,则两个顶点i和j是相邻的。
- get_edge_weight(i, j)#
版本2.15中的新功能。
获取连接i到j的边的权重。
- Parameters
- Returns
连接i到j的边的权重
- Return type
- Raises
TypeError – 如果 i 或 j 为负数或过大
ValueError – 如果 i 或 j 不小于顶点数,或者 i 和 j 不相邻
- remove_edge(i, j)#
移除现有的边。
此方法将移除连接i到j的边。
- Parameters
- Raises
TypeError – 如果 i 或 j 为负数或过大
ValueError – 如果 i 或 j 不小于顶点数,或者 i 和 j 不相邻
- set_all_weights(w)#
此方法将设置拓扑中所有边的权重为w。
- Parameters
w (
float) – 边的权重- Raises
ValueError – 如果 w 不在 \(\left[0, 1\right]\) 范围内
- class pygmo.fully_connected(n=0, w=1.)#
全连接拓扑。
这个用户定义的拓扑(UDT)表示一个完全图(即一个拓扑,其中所有顶点都连接到所有其他顶点)。边的权重在构建时可配置,并且对于拓扑中的所有边都是相同的。
另请参阅C++类
pagmo::fully_connected的文档。- Parameters
- Raises
TypeError – 如果 n 是负数或太大
ValueError – 如果 w 不在 \(\left[0, 1\right]\) 范围内
- class pygmo.free_form(t=None)#
自由形式的拓扑结构。
这个用户定义的拓扑(UDT)表示一个可以自由操作顶点和边的图。这个类的实例可以从以下任一方式构建:
一个
topology,另一个UDT,
一个
networkx.DiGraph,None.
从
None构建将初始化一个没有顶点或边的拓扑结构。从
networkx.DiGraph构建将初始化一个拓扑,其顶点和边由输入图描述。输入图的所有边必须具有一个名为weight的float属性,其值在\(\left[0 , 1\right]\)范围内。当t是
topology或UDT时,构造函数将尝试通过pygmo.topology.to_networkx()方法获取输入对象的NetworkX表示,然后按照上一段中解释的相同方式进行。另请参阅C++类
pagmo::free_form的文档。- Parameters
t – 将用于构造的对象
- Raises
ValueError – 如果输入的
networkx.DiGraph的边不都具有weight属性,或者任何边的权重超出\(\left[ 0, 1 \right]\)范围未指定 – 由
pygmo.topology.to_networkx()抛出的任何异常,或由从UDT构造topology时抛出的任何异常
- add_edge(i, j, w=1.)#
添加一条新边。
此方法将添加一条权重为w的新边,连接i到j。
- Parameters
- Raises
TypeError – 如果 i 或 j 为负数或过大
ValueError – 如果 i 或 j 不小于顶点数,i 和 j 已经相邻,或者 如果 w 不在 \(\left[0, 1\right]\) 范围内
- add_vertex()#
添加一个顶点。
此方法将向拓扑添加一个新顶点。
新添加的顶点将与拓扑中的任何其他顶点不相交(即,新顶点没有连接)。
- are_adjacent(i, j)#
检查两个顶点是否相邻。
如果存在一条从i指向j的有向边,则两个顶点i和j是相邻的。
- get_edge_weight(i, j)#
版本2.15中的新功能。
获取连接i到j的边的权重。
- Parameters
- Returns
连接i到j的边的权重
- Return type
- Raises
TypeError – 如果 i 或 j 为负数或过大
ValueError – 如果 i 或 j 不小于顶点数,或者 i 和 j 不相邻
- remove_edge(i, j)#
移除现有的边。
此方法将移除连接i到j的边。
- Parameters
- Raises
TypeError – 如果 i 或 j 为负数或过大
ValueError – 如果 i 或 j 不小于顶点数,或者 i 和 j 不相邻
- set_all_weights(w)#
此方法将设置拓扑中所有边的权重为w。
- Parameters
w (
float) – 边的权重- Raises
ValueError – 如果 w 不在 \(\left[0, 1\right]\) 范围内