提问者:小点点

C++Boost图库:具有边性质的同构


boost图库有一个同构函数,有一个非常小的例子:

https://www.boost.org/doc/libs/1_68_0/libs/graph/example/isomorphism.cpp

我需要找到两个具有极小扩展的图之间的同构,即每条线有两个性质,可以用整数值表示。 我猜这相当于一个砝码。

我一生都无法理解属性地图的作用,也无法理解如何将它们结合起来。 有人可以给我一个相关的例子,这样我就可以看到这是如何工作的?


共1个答案

匿名用户

boost.graph使用“属性映射”将数据与不同的图元素(即顶点,边或整个图)关联起来。 属性映射只是一个容器,它可以将图的内部描述符类型与一些其他数据相关联。 这里和这里可以找到几个例子。

我假设您已经看到了同构函数的文档。 因此,在您的示例中,每个图都有一个用于边权重的属性映射,然后在调用同构函数以控制行为和/或获取额外数据时,您可以选择提供更多的属性映射。 但是,我看不出有任何方法可以提供一个谓词来验证边缘权重是否匹配; 您可能必须自己处理(例如,首先运行函数检查“纯”同构,然后遍历一个图的边,并使用输出isomorphism_map在第二个图中找到相应的边并检查相等性)

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(c++boost|图库|具|有边|性质|同构)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?