线性程序的中点解决方案


9

有一个线性程序,我不仅要寻求一个解决方案,而且要拥有一个假定最小值的多面体表面尽可能中心的解决方案。

先验地,由于各种原因,我们期望最小化的面应该是高维的,包括最小化的目标函数是许多约束的最大值:

最小化 ϵ 服从 fi(x¯)ϵ<0fi 线性和 xi>0 对所有人 iixi=1

当然,我们永远不会从单纯形算法中获得任何类似集中性的属性。但是,任何常规的内部点算法都具有这种特性吗?甚至可以保证尽可能避免顶点或低尺寸的面吗?


实际上,我可能很满足于一个简单的二次程序,该程序可以找到整个多面体的中点,因为中心性比最小性更重要,只是模糊地好奇其他线性编程算法是否提供相关的属性。

更新:我已将基本问题简化为一个可通过拉格朗日乘法器解决的简单约束最小化问题,但是上述问题仍然很有趣。


2
不完全是您的问题,而是:计算质心是#P-hard;我不确定最好的近似值是什么,但是对于某些应用程序,将多面体置于各向同性的位置,并从(变换后的)多面体中取多项式的均值样本的平均值就足够了。请参阅以下注释,例如引理15:cc.gatech.edu/~vempala/acg/notes.pdf
Sasho Nikolov

这是理论上还是实践上的问题?生成最佳面的所有顶点,然后使用它们的一些合适的凸组合也许是可行的。
匿名

Answers:


4

我的一些观察意见太久了,无法发表评论。这是一个摘要。

  1. 可以完全解决您的问题的任何算法都可以用来精确地解决线性程序(即,在Sariel的解决方案中使用的“强线性编程”,目前没有多项式时间算法)。

  2. 自然的跟进是如果近似解(即“弱线性编程”)可以提供一个解决方案。尽管答案是肯定的,但看来该程序的停止条件需要的数量据我所知无法在多项式时间内计算。(即,该算法找到了不错的方法,但是很难证明这一点。)我的主要建议是对“ϵ-“最佳解决方案”,在这种情况下,这种方法很容易解决。(这种策略有效地排除了多面体的细小表面。)

总的来说,在考虑您目前对问题的陈述时,我一直在考虑效率问题。但这有一个合理的直觉:我们要抛出的对象(顶点,面等)是离散的,并且呈指数级增长。

(1.) 假设我们有一种可以完全解决您的问题的算法。请注意,包含提供的中点的任何面的任何裸露点将是原始线性程序的精确解决方案。因此,请执行以下操作。添加一个新的线性约束,说原始目标值必须等于最优目标值(现在我们知道),并设置一个新的目标约束,以最大化解的第一个坐标。对每个维度重复一次此过程,每次添加一个约束并选择一个新坐标以最大化。此过程将每次减小解决方案的规模;必然,当过程完成时,我们有一个0维仿射集,意味着一个点。因此与O(d) 中点求解算法的迭代(并且仅将问题描述增加一个数量多项式, d每次),解决了强大的线性规划问题。这表明,尽管Sariel的解决方案需要强大的线性编程,但无法完全解决您的问题。(编辑:请注意,我的证明假设一个紧凑的多面体(多面体)作为输入;否则它必须更努力地找到顶点。)

(2.)这是一个迭代方案,在每次迭代中使用完整的凸凸求解器,其求解将收敛为中点解的温和概念。选择一个正但递减的惩罚参数序列{λi}i=10; 使这些几何形状下降是合理的,即λi=2i。现在,对于每个i,大约最小化凸函数

c,xλij=1mln(aj,xb),

哪里 c,x 是您最初的目标,并且 j 范围超过 m原始约束,现在通过对数障碍放置在物镜中(请注意,这是标准的)。现在,如果我们考虑最小化多面体的面(最大尺寸),请注意λi 和宽容 τ对于凸选择黑盒子,您的最佳近似值将接近此面,但是障碍会将其推向尽可能远的其他约束。换句话说,λi 如果减小,则原始线性物镜最终将主导一些使您远离适当面孔的挑剔障碍,但不会影响使您远离其他边界(尤其是目标面孔的边界)的障碍。

在理想的世界中,我们会坐下来分析确定理想的价值 λ,或者至少是一个停止时间,因此您不必解决无限多个问题。不幸的是,这似乎很难。例如,一种想法是确定任何尺寸大于0的面的最小宽度;这是一个明确定义的最小化问题,具有正最优值,因为存在有限的多个面(并且相对于每个面计算宽度)。这样,我们可以设置λ很小,以至于障碍物的影响在每个面的中心都很小。不幸的是,可能存在成倍的面孔,因此计算此数量是胡说八道。

我能想到的所有停止条件都具有这些计算困难。(此外,可以再次使用许多方法将其变成强大的线性规划求解器。)

出于这个原因,我的建议是构造一个``ϵ-close最佳中点'',然后通过选择解决 λ 和您的凸选择黑匣子公差 τ适当地。我认为这是一个合理的选择,因为您可能真的不关心最多最多有最大宽度的脸ϵ

(一些最终意见。)似乎“中点”的概念至关重要。Sasho的评论指出,质心(质心?)是一个非常困难的问题,而要找到最大的内接球则很容易。我上面建议的对数壁垒通常不会与这些中点概念中的任何一个保持一致。另一方面,对于障碍物和球,您可以得出从质心到脸部相对边界的距离的下限;也许这对您更有用?

最后,根据您的描述,我相信您是指“目标面”具有尽可能大的尺寸?这是明确定义的,但是对于所有可能的较小尺寸,也都有解决方案面。无论如何,Sariel的方法和上述障碍方法都将在最大范围内起作用。


是的,我考虑过这种技巧,但最终我还是尽量减少了 ifi(x)2+jxj2 服从 jxj=1使用拉格朗日乘数。它产生弱的中心性x在对角线上,可能不是最小化表面,但肯定是永远不会移动的约束表面之一。一旦约束停止发展,我只是运行一个单独的线性程序,而我实际上需要ϵ。最终没有必要保持ϵ最小化以帮助约束更快地发展。不过谢谢!:)
杰夫·伯奇斯

Ahh#2看起来很有趣,而不是我最初认为的那样。可爱!正如我所说,我原谅x只要它在合理的地方快速移动就不会降落在最小化的脸上。我会在某个时候玩这个。实际上,由于我已经找到了使目标双线性而不是线性的原因,因此无论如何我都需要阅读凸优化。
杰夫·伯奇斯

我不了解“强线性编程”的要点,而且我从未听说过这种表达方式。未知如何在强多项式时间内求解LP。但是在输入描述中(即弱多项式时间)求解时间多项式中的LP当然是众所周知的。如果OP希望算法在弱多项式时间内运行,那么Sariel的解决方案+多重时间内点算法将能胜任,不是吗?
Sasho Nikolov 2012年

@SashoNikolov,这是我目前的理解。任何现有的(弱多项式)求解器都将具有公差τ 作为输入,并返回 τ-最佳解决方案。同时,Sariel的解决方案关键取决于精确的解决方案:特别是,内部点方法将返回相对内部的近似最优值,这意味着识别所需最优面的仿射外壳的步骤实际上将挑选出所有可行的外壳组。我同意我应该修改我写的关于强/弱的文章,其中关键的问题实际上是以任何方式获得确切的解决方案。
2012年

@SashoNikolov,现在我考虑一下,可以将相同的最佳化概念(具有相同的问题)应用于Sariel的解决方案中,例如,通过处理在很小的公差范围内的约束来使其变得严格,并适当地调整该值。今晚我将更新解决方案。
2012年

6

首先找到最优解,然后添加线性约束,使该解必须具有等于所需最优值的值,然后将LP重新声明为在可行区域内寻找最大球的LP。解决此修改后的LP,您将拥有所需的东西。

为什么使用LP可以解决第二个问题是计算几何中的一个标准可爱问题...

==============

更正式地讲,您会找到跨越包含最佳解的可行点的仿射子空间。因此,假设最优解位于超平面上hcx=α (即 mincx是原始的LP目标函数)。如果是原始LP的可行区域,则我们正在寻找的最大球。为此,我们需要计算包含此集合的最小维仿射子空间。找到该子空间后,请更改变量,以便仅考虑该仿射子空间。现在,您的多态性是完全二维的,您可以使用如上所述的第二个LP。PPh

因此,令为第一个LP计算的顶点。考虑所有相邻顶点。考虑的仿射子空间及其所有具有相同目标值(即)的邻居。不难看出,该仿射子空间是所需的子空间。vvvα

因此,总结一下:(A)解决LP以发现最佳值。(B)计算包含最优解的可行解的最小维子空间。(C)在该仿射子空间中重写原始LP(即删除所有不相关的尺寸),添加变量,然后将其转换为LP,以在该多面体内部找到最大的球。


不是全尺寸的多面体中的“最大的球”是什么意思?
Kristoffer Arnsfelt Hansen 2012年

@KristofferArnsfeltHansen多面体肯定是一个凸集,它位于某个维的仿射子空间中。
Sasho Nikolov 2012年

为此,您需要指定一个限制条件,将您限制为在第一步中找到的面孔。您还需要知道该解决方案在整个面孔上都是恒定的(大概是互补的懈怠将揭示这一点)
Suresh Venkat 2012年

在多项式时间中的初始优化之后,有什么方法可以执行这些步骤?如所写,似乎需要考虑目标面中的所有顶点,其中所有顶点可能呈指数增长。
2012年

1
比这容易得多-您只需要考虑与最佳顶点相邻的顶点-最多与相邻,并且可以在多项式时间内对其进行计算...。要了解其真性,请考虑仿射子空间-它被位于该仿射子空间上的的邻居所覆盖,但是这些是原始多面体中与v相邻的顶点的子集。是的-我花了很多时间才能看到。dv
Sariel Har-Peled
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.