【问题标题】:Solving a LP feasibility using CGAL使用 CGAL 解决 LP 可行性
【发布时间】:2014-05-20 11:25:00
【问题描述】:

我们能否使用CGAL解决下面提到的形式的线性规划可行性问题(如果没有,请提出替代方案):

v.x_a > c 和,

v.x_b = c

其中v,x_a,x_b,c分别是向量、向量、向量和标量。我想为给定的一组xx_ax_bx 的元素)找到一个满足这个不等式的元组(v,c)

我见过documentation,但允许的形式是Ax(relation operator)b,其中relation operator 可以是>=、A 和b 都是已知的,而x 是未知的但我的要求是相反的,即我有x,但我想确定是否存在满足不等式的元组(A,b)

背景: 我正在尝试实现一个 3D 网格生成器,我需要测试一条边(连接两个 3D 顶点)是否是 Delaunay。 Delaunay 边定义为:一条边是 Delaunay,当且仅当存在一个其端点的外球面,其中不包含任何其他顶点。

我的问题是基于here所描述的方法

【问题讨论】:

  • 如果您选择v = c = 0,不等式不是很简单吗?甚至只是c = -infinity
  • 好吧,我猜在 David Eppstein 算法的上下文中,对于集合中的特定 x,您有额外的限制 v != 0c = v.x
  • @NiklasB。谢谢,我已经相应地更新了问题。
  • 还有一个简单的解决方案,v=1; c=-inf。您应该更新问题以消除歧义

标签: algorithm linear-programming cgal


【解决方案1】:

根据 David Eppstein 在链接问题中描述的结构,ij 是固定的,我们有额外的限制 v.xi = v.xj = c。于是问题就变成了:

找到一个向量v != 0,使得v.xk >= v.xi 代表所有k 和v.xi = v.xj

这可以转化为

找到一个向量 v != 0 使得所有 k 和 (xi - xj).v >= 0-(xi - xj).v >= 0(xk - xi).v >= 0

通过将A 定义为所有k、xi - xjxj - xi 的行xk - xi 的矩阵,我们得到

找到一个向量v != 0 使得Av >= 0

它有你需要的形式。您可以通过暴力破解非零组件来强制执行v != 0。对于每个组件i 并尝试添加条件vi >= 1vi <= -1 并检查生成的系统的可解性。由于平面的法向量可以任意缩放,所以如果任何结果程序是可解的,则有一个解(如果dv 的维数,则有2d)。

【讨论】:

  • 我觉得Av>=0; v!=0 似乎更完整。
  • @Pranav 我只是使用 Eppstein 的定义,仅此而已。根据他的描述,一个条件是v.xi = v.xj = c。这意味着xi和xj对应的两个点实际上位于超平面上
  • 同意,Eppstein 的表述没有强加v!=0。关于 xi,xj 躺在平面上,已经在Av>=0 中处理过了,就像你定义矩阵A 一样,对吧。
  • @Pranav 哦,现在我明白你的意思了。更新
  • @Pranav 我刚刚注意到平面的方向实际上很重要,因此您需要检查vi >= 1vi <= -1 的每个组件i
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-11
  • 2019-06-16
相关资源
最近更新 更多