1

我的目标是获得一个多面体的所有面(以 A[x,y,z]'>b 的形式)的表示,这是两个凸多面体之间凸差的结果。意思是,找到所有平面的交点,这是 P1 - P2 = { x - y | 的 Minkowski 差异的结果。x \in P1,y \in P2 }。

我正在寻找一个已建立的库(Python?)或如何有效地做到这一点的想法。我想过做一些类似于GJK 算法的事情,但我需要所有的面孔,而不仅仅是快速计算原点是否在里面。此外,在 3D 或更高维度中以方法论方式使用此支持功能似乎效率低下。另外,假设我得到了顶点,我现在是否需要从上面的两个向量与叉积形成平面方程,对于每个面,或者有没有办法从 Minkowski 和本身获得它?(记住对更高维度的需求)。

4

1 回答 1

0

好的,看来我终于能够解决它了,我发帖以防将来有人会感兴趣:

首先,我 pip 安装了pypoman 库。有了它,我们可以轻松地在顶点和面之间移动compute_polytope_halfspaces(也就是多面体的 H 表示)。所以我从顶点得到表示 P_i: H_i x < h_i for i=1,2 (或者如果它已经采用正确的格式,则跳过它)。

现在如果我们设置 P_sum = {[x1;x2] \in R^2n | [H_1 0; 0 H_2] [x1;x2]' < [h_1,h_2]'},注意 Minkowski 和等价于 P1+P2 = [I,I] P_sum(来自本文IV.B 的想法)。所以我可以使用 pypoman 的project_polytope函数来获得原始维度中 H_sum x < h_sum 的 Minkwoski 和。

于 2022-02-11T21:14:33.950 回答