问题标签 [isomorphism]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - VF2 算法中的 VF 代表什么?
有谁知道 VF2 算法中的 VF 代表什么?
看起来是个简单的问题,但 Google 和 Google Scholar 都无法告诉我。
我了解到您必须在使用它之前引入一个缩写,但显然每个人都同意在 VF2 中存在一个例外。
python - 用于子图同构的 NetworkX 匹配器
通过NetworkX搜索子图同构时,有没有办法找到节点的映射?例如,
打印{0: 0, 1: 1, 2: 2}
,但事实并非如此。
reactjs - Material ui 没有在我的同构反应应用程序中设置页面样式
我已经按照在同构环境中设置 Material ui 的所有指南进行操作,但我的页面仍然是白色的,文本上没有显示设计。我正在使用 Universal-react-redux-starter-kit。
在 Firefox 中,我在控制台中找到了这个
未知属性'mui-prepared'。声明被放弃。localhost:3000 未知属性'mui-prepared'。声明被放弃。localhost:3000 未知属性'mui-prepared'。声明被放弃。
在 Chrome 中我得到了这个
Uncaught (in promise) TypeError: Request scheme 'chrome-extension' is unsupported at 80235ae9f69d4d5feb32.serviceworker.js:sourcemap:618 at
我的页面看起来像这样
几天来,我一直无法弄清楚这个问题。
client.js 示例
c++ - Usage of boost::graph isomorphism
How do I specify boost::isomorphism_map
when using adjacency_list<vecS, vecS, undirectedS>
?
What I'm trying to complete is marked ?????????
:
python - python中的两个图是否同构,没有导入
我正在编写一个函数is_iso(graph1, graph2)
,它将两个图作为其输入,然后确定这两个图是否同构。
我可以假设这两个图将具有相同数量的顶点,并且顶点上使用的名称将相同。
is_iso({“A” : [“B”, “C”], “B” : [“A”], “C” : [“A”]}, {“A” : [“B”], “B” : [“A”, “C”], “C” : [“B”]})
应该返回True
is_iso({“A” : [“B”, “C”], “B” : [“A”, “C”], “C” : [“A”, “B”]}, {“A” : [“B”, “C”], “B” : [“A”], “C” :[“A”]})
应该返回False
我所有的方法目前都检查度数序列是否相同,但图可以具有相同的度数序列并且不是同构的。我不确定如何从这里完成检查。我不允许导入任何库。任何帮助是极大的赞赏!
python-3.x - 使用 NetworkX 进行图排列和旋转
l 与 Networkx 合作生成某种类型的图。
现在我想置换节点并用(80°,90°,120°度)旋转图形
如何使用 NetworkX 在图上 应用排列和旋转?
编辑_1:
给定一个图的邻接矩阵,我想以保留边和顶点链接的方式旋转图。唯一改变的是节点的位置。
我想做的是将我的图表旋转 90 度。
输入 :
图 G 的邻接矩阵
过程 :
在 G 上旋转 90 度
输出 :
旋转邻接矩阵
这意味着,图保留了它的拓扑结构,并且只保留了改变位置的邻接矩阵的索引。
例如,旋转后索引 0 处的节点 1 将位于索引 4 处。
我试过什么?
1)我照顾numpy.random.permutation()
但它似乎不接受旋转参数。
2)在networkX中,我没有找到任何允许旋转的功能。
EDIT2 给定一个 5*5 的邻接矩阵(5 个节点:
我想在索引之间置换。假设节点 1 代替节点 3,节点 3 代替节点 4,节点 4 代替节点 1。
这只是节点的排列(保留它们的边缘)。
我想将原始索引和排列后的新索引之间的映射保存在字典中。
其次,我想以 90° 的角度应用这个邻接矩阵的排列或旋转。(这就像在图像上应用旋转)。我不确定如何做到这一点。
haskell - 为什么这种类型注释是错误的?
我试图按照Gabriel Gonzalez 的文章进行操作,但遇到了类型不匹配的问题。考虑以下短模块:
它编译得很好。(使用ghc
8.2.2 和 8.4.3。)但是当我在 repl 中戳它时,fw
不要bw
编写:
当我仔细观察时bw
,它所采用和返回的函子的类型似乎是不同的:
— 即使我在类型签名中声明它们应该是相同的!无论我使用什么类型的注释fw
,bw
他们都不想统一。
如果我从中删除类型签名fw
,一切都会顺利进行。特别是,推断的类型签名将是:
forall
因此,量词似乎破坏了事物。但我不明白为什么。它不应该意味着“任何类型a -> a'
都可以,包括a -> a
”?似乎相同的类型同义词在andG f a
的类型签名中以不同的方式起作用!fw
bw
这里发生了什么?
更多实验:
所以(正如@chi 在回答中指出的那样)任何函数都不能用fw
. 但对于bw
. 为什么?
c++ - 如何使用 Boost 的 vf2_subgraph_iso 检测多图上的子图同构?
我正在尝试使用 Boostvf2_subgraph_iso()
来检测子图同构。
我可以在简单图上成功地做到这一点,但不能在多图(允许有多个边的图)上做到这一点。
考虑检测以下 G1 和 G2 之间的子图同构:
G1 是 G2 的子图,我想使用以下代码检测它:
预期结果:
实际结果:
我的代码哪里错了?
对不起我的英语不好。谢谢!
algorithm - 匹配非同构图
我有两个图 G1 和 G2,它们不是同构的。我需要制作一个新图 G1',这样,在 G1 的最小变化下,它将同时具有 G1 和 G2 的节点。例如,假设 G1 中有一个节点 n1,具有三个连接节点 n11、n12、n13。如果现在 G2 中的“对应”节点 n2 有 5 个节点 n21、n22、n23、n24、n25,那么 G1' 中的 n1' 也需要有 5 个节点 n11'、n12'、n13'、n14'、n15'。从 G1 复制的前三个和两个额外的节点将具有三个中最后一个的值。从额外节点发出的树要么是全新创建的,要么将包含来自 G1 的一些额外节点,这些节点在 G2 中没有等效节点(在某种意义上不是“耗尽”)。
问题是 1) 找到最合适的种子作为起点,以便起始视图尽可能相似 2) 从额外的节点构建树,将添加的节点数保持在最低限度
编辑:
我将尝试借助插图进一步解释这一点。我对图论的了解很肤浅,如果有什么听起来很傻,请见谅。
我广泛地想要获得一个图,该图以最少的节点操作数可以采用两个非同构源图之一的形式。
在上面的示例中,图 G' 可以采用两种形式 G 或 H,并带有一定数量的 pf 节点改组。
1)为了使其成为 G,我们将所有橙色节点保持在其位置。虚线节点将“合并”到它们的相邻节点。所以 B21' 将具有 A21 的值并且将在相同的位置(溶解相应的边缘)。B31'-A31、B14'-A15 B25'-B23、A32'-A22 和 A23'-A32 对也会发生同样的情况。使用这种配置,图形将完全类似于 G,没有任何边缘“突出”
2)为了使其与H、A11和A12同构,将A13、A32和A32'的值取A23的值,A23'的值取A22的值。虚线节点将从它们的合并位置“出来”。
问题是找到 G'。也许没有现成的图形操作或者解决方案是不可能的,但是任何能够以任何程度的近似和效率实现这一点的指针都是最受欢迎的。
注意:起始节点 A1 和 B1 是任意的。问题的前半部分是识别这些节点,以便视图尽可能相似。