问题标签 [metis]

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.

0 投票
0 回答
910 浏览

angular - 使用 ng-bootstrap 的 metismenu 折叠功能

我在 Angular 4 中使用 metismenu 和 ng-bootstrap。我面临的问题是 aria-expanded 设置不正确。

以下是我在 Angular 中的代码。

下面是第一次加载页面时的html,和预期的一样。

但是当我单击 Menu1 时,菜单会展开。页面变成如下。为什么<a _ngcontent-c2="" aria-expanded="false">Menu1</a>did变为true?

我觉得 metismenu 和 ng-bootstrap 试图同时更新 aria-expanded。这是 metismenu 中的问题还是我在代码中遗漏的任何内容?

请看下面的截图

页面加载时。

在此处输入图像描述

当第一次单击 Menu1 时,菜单展开但 aria-expanded 没有更改为 true <a _ngcontent-c2="" aria-expanded="false">Menu1</a>

在此处输入图像描述

当第二次单击 Menu1 时,菜单折叠和展开非常快。

第三次单击 Menu1 时,菜单无法折叠,但 css 已折叠。

在此处输入图像描述

0 投票
1 回答
506 浏览

cluster-analysis - 用于不平衡聚类的metis中的'ufactor'参数

我一直在使用METIS集群社交媒体用户。

默认情况下,它会输出每边具有相同数量顶点的集群,这在现实世界的场景中并不理想。所以,我试图找到方法来放松“相同数量的顶点”的约束,并以最小的切割值获得可能的不平衡分区。

我在手册中找到了一个ufactor适合(我认为)我的情况的参数,但我没有掌握它的真正作用。我有大图并尝试了一些ufactor. 对于一个数据集ufactor=1000来说效果很好,但对于另一个数据集,它甚至无法对图进行分区。我无法解释这个结果,因为我不明白它到底在做什么。这是我在手册中找到的关于此的内容:

指定分区之间允许的最大负载不平衡。x 值表示允许的负载不平衡为 (1 + x)/1000。第 j 个约束的负载不平衡定义为 max_i(w[j, i])/t[j, i]),其中 w[j, i] 是分配的第 j 个约束的总权重的分数到第 i 个分区,t[j, i] 是第 i 个分区的第 j 个约束的期望目标权重(即,通过 -tpwgts 指定的)。对于-ptype=rb,默认值为1(即负载不平衡1.001),对于-ptype=kway,默认值为30(即负载不平衡1.03)。

有人可以帮我解释一下吗?在这里,什么是jth约束?什么是-ptype=rb/kway

0 投票
1 回答
99 浏览

cluster-analysis - 玩具图聚类中“ufactor”的解释

我正在尝试通过 METIS 进行不平衡分区。我不需要每个集群中相同数量的顶点(这是在 METIS 中默认完成的)。我的图没有约束,它是一个无向无权图。这是一个没有ufactor参数的由 METIS 聚类的示例玩具图。

在此处输入图像描述

然后,我尝试使用不同ufactor的值 143,METIS开始执行预期的集群,如下所示 -

在此处输入图像描述

任何人都可以解释这一点。最终,我想找到一种ufactor从任何不平衡和无向图中猜测 a 的方法,该方法将最小化归一化切割而不必进行任何平衡。

0 投票
2 回答
1238 浏览

menu - MetisMenue 在移动视图 SB Admin 2 上不能很好地折叠

我将“SB Admin 2”主题用于项目。

集成的 Metis 菜单在台式机和平板电脑上也能很好地工作。但是当我用手机访问该页面时,菜单并没有完全隐藏。只有当我滚动页面时。

您可以访问https://blackrockdigital.github.io/startbootstrap-sb-admin-2/pages/index.html进行测试。

如果将浏览器缩小到像移动屏幕一样,菜单不会隐藏。

我试图在我的 index.html 文件的底部这样做,$('#side-menu').metisMenu('collapse');但它不起作用。这也在 sb-admin-2.js 文件中定义。但它也不起作用。

你能帮我把菜单完全隐藏,即使在移动设备上?

0 投票
1 回答
574 浏览

c++ - METIS:对“METIS_WPartGraphRecursive”的未定义引用

我必须编译一个依赖于 METIS 库的软件,但是它的 CMake 东西是通过禁用所有需要 METIS 的地方来编写的。现在,我必须再次重新启用该代码,因此该代码现在取决于 METIS。

我从源代码安装了metis-5.1.0,并编写了一个CMake模块来找到它(实际上我使用了这个)。我相应地修改了CMakeLists.txt,基本上添加了以下几行

最后,

在 cmake 之后,似乎一切都很好,因为 cmake 打印:

但是,在我运行 make 之后,我得到

我该如何解决?

编辑:作为附加信息,当我使用 编译时make VERBOSE=1,链接器似乎在寻找正确的库,因为它包括/usr/local/lib/libmetis.a,它对应于 cmake 指定的位置并且也存在。此外,当我查看带有 的库时nm /usr/local/lib/libmetis.a,我看到:

PS:在 Ubuntu 17.04 中,我尝试过使用 metis-5.1.0、metis-4.0.3 并安装sudo apt-get install libmetis-dev. 在后一种情况下,我发现libmetis.so而不是libmetis.a,但在这种情况下,cmake 正确识别,链接器正确查找,但最后我得到相同的错误。

我也试过sudo apt-get install libmetis-dev,在 Ubuntu 14.04 上从源代码 metis-5.1.0 和 metis-3.0.6 安装,我遇到了同样的问题。这似乎是一个难以解决的错误,因为许多人在 METIS 论坛的这个页面上提出了同样的问题。

我也尝试-lmetis在编译命令的末尾添加,如此处所建议

作为附加信息,我grep WPartGraphKway在 METIS 源文件夹中做了一个。在 5.1.0 版本中没有这样的字符串。在 4.0.3 版本中有。

0 投票
0 回答
116 浏览

mpi - PartMeshDual 的 Parmetis 替代品

我正在尝试在固体力学和波传播中升级我的有限元代码。因为metis/5.1.0没有正确编译我的代码(而metis/4.0.3链接完美),我想切换到ParMETIS

我可以用什么 ParMETIS 函数代替 METIS 函数metis_PartMeshDual

0 投票
1 回答
164 浏览

mpi - ParMetis 是否生成有关处理器邻居的任何信息?

我正在研究移动网格的并行有限元方法。

因此,每次重新划分网格时,我都需要ParMETIS_V3_AdaptiveRepartParMetis调用以执行重新分区。

成功时,该函数仅生成分区信息,即处理器上的元素。

然而,为了构建子网格的幻影层,进程的邻居也很重要。

所以我想知道是否有任何有效的方法来获取有关共享(重叠)实体和邻居的信息,或者 ParMetis 是否真的提供了这些信息?

0 投票
0 回答
148 浏览

graph - 小图的图分区

我正在尝试将一个小的边加权图划分为最大大小的分区。(可能相关或不相关的用例是对并行程序的通信图进行分区以最小化更昂贵的通信成本。)例如,我可能有一个包含 21 个节点的图,我可能希望最大分区大小为 4每个分区的节点(总共 7 个分区);gpmtis 产生一个分区,其中一个分区有 5 个节点(另一个有 3 个节点)。我发现 rb(递归二分法)分区方案往往更适用于较小的图,但它并不总是有效。

我目前正在使用 METIS(gpmtis 工具)来执行此操作,并且在小图上,它有时会创建比我想要的更大的分区。请注意,gpmtis 的参数是分区数,而不是每个分区的最大节点数。

问题:

  1. 为什么会这样?METIS 是否会产生这种结果,因为尽管分区大小不平衡,但它实际上提供了更好的分区?

  2. 有什么方法可以实现最大分区大小的目标(理想情况下使用 METIS,但我愿意使用其他工具)。

0 投票
1 回答
2321 浏览

python - 如何在 Windows 上的 python 中安装 METIS 包?

我目前正在使用 METIS 的 python 中运行源代码。我想使用 Jetbrains PyCharm、conda 解释器来运行它,这些都安装在 Windows 10 上。虽然我已经使用 conda 安装了 METIS,但我无法启用共享库,并且遇到了这个错误:

ModuleNotFoundError:没有名为“metis”的模块

当我尝试在没有 conda 的情况下运行它时,尽管我已将 metis.dll 位置添加到环境变量中,但我遇到了以下错误。

RuntimeError: 无法加载 METIS dll

有人可以帮我吗?

0 投票
1 回答
160 浏览

graph - 图分区后建立新的邻接矩阵

我有一个以 CSR 格式存储的邻接矩阵。例如

我现在正在使用 METIS 对所述图表进行分区。这给了我图的分区向量part。基本上是一个列表,告诉我每个顶点在哪个分区中。有没有一种有效的方法来为这个分区构建新的邻接矩阵,以便我可以再次对新图进行分区?例如一个函数rebuildAdjacency(xadj, adjncy, part)。如果可能的话,重用xadjadjncy.