每个贪心算法都有拟阵结构吗?


13

这是公认,对于每个拟阵和任何加权函数,有退出的算法,其返回的最大重量为基础的。那么,反向也是正确的吗?也就是说,如果有一些贪婪算法,那么也必须有一些拟阵结构。MwGreedyBasis(M,w)M


Dijkstra的算法通常被认为是贪婪算法(例如,请参见Kleinberg和Tardos的“算法设计”第4.4节)。我不知道单源最短路径的拟阵解释。
Neal Young

将一组实际间隔划分为最少数量的成对不相交的子集具有一种自然的贪婪算法(按开始时间枚举间隔,如果可能,将每个间隔添加到现有的子集中,否则开始一个新的子集;请参见Kleinberg的第4章和Tardos)。可以将此问题理解为类人机器人吗?
Neal Young,

Answers:


12

实际上,这可以通过一个贪心算法需要解决的问题的全面彻底的描述是一个拟阵嵌入,从而推广拟阵的两个概念,一个的greedoid。答案是否定的-贪婪算法可解决的问题不必具有拟阵结构,但具有拟阵嵌入的结构(可惜,要复杂得多)。

为此的一种心理模型可能是找到最小的生成树。Kruskal算法使用的结构是拟阵,但Prim算法(需要起始节点)使用的不是。(但是,它是一个贪婪的物体,并且是拟似的嵌入物。)

Helman等。(1993),在他们的论文《贪婪结构的精确表征》中,从集合系统的角度定义了贪婪算法的概念,这与拟阵和贪婪的形式主义相同。甲集系统 由一组和收集的子集的,所谓的可行集合。甲基础对于该组系统是一个极大可行集合,即,一组是可行的,但不包含在任何其它可行集合。一个目标函数的每个子集相关联带的值。一个S C S f 2 SR S(S,C)SCS f:2SRS在这种形式主义中,最优化问题在于找到给定集合系统和目标函数的最大目标值的基础。

用这种形式主义定义的贪婪算法非常简单:从空集开始,然后依次添加单个元素,直到达到基础为止,并始终确保(i)您的集在每个步骤中都是可行的,并且( ii)您添加的元素可最大程度地提高结果结果的客观功能wrt。您可能已添加的所有替代元素。(也就是说,从概念上讲,您尝试添加所有可行的替代方案,然后选择产生最高目标值的替代方案。)

您可能会争辩说,可能还有其他形式的贪婪算法,但是关于算法和组合优化的几本教科书将这种基于集合系统的算法描述贪婪算法。我想这并不能阻止您描述不适合的内容,但仍可以称为贪婪。(不过,这盖任何东西,可能有一个拟阵结构,例如,虽然它是比较一般。)

什么Helman等。他们所做的是描述这种算法何时起作用。进一步来说:

  1. 他们表明,对于线性目标函数(目标值是元素权重的总和),贪婪算法将完全在定义为拟阵嵌入的结构上工作;

  2. 对于所谓的瓶颈目标(一组目标值等于各个元素权重中的最小值),它们给出了相似的特征;和

  3. 他们给出了精确的表征,这些目标函数(超越线性函数)是通过对拟阵嵌入的贪婪算法进行优化的。


3
您能解释一下贪婪算法的定义吗?
卡夫2014年

1
扩大了我的答案,以解释他们的形式主义是什么。
Magnus Lie Hetland 2014年

11

贪婪算法不是一个正式定义的概念。有各种模型试图捕捉这种直观的概念,但是对于什么是贪心算法并没有达成共识。除非您对贪婪算法的含义进行正式定义,否则无法将问题回答为是或否。

有一个概括拟阵称为greedoid这是由贪婪算法,你可能想看看有什么启发。


如果我们同意贪婪算法类别的某些属性,则不需要正式定义。例如,如果我们同意每个贪心算法都具有(正式定义的)属性P,并且我们证明满足P的每个算法都可以在拟阵上定义,那么这将为OP的问题提供肯定的答案。类似地,如果我们同意某个算法是贪婪的,并且证明它不是拟阵的贪婪算法,那将产生否定答案。
独立的拉哥尼亚人

2

考虑以下问题:硬币硬币兑换欧元:鉴于有无限数量的1,2,5,10欧元纸币,请使用尽可能少的纸币支付X欧元。这可以通过使用贪婪算法来解决,该算法会尽可能多地注意。但是在这个问题上没有拟阵结构。

孔覆盖:x_1,x_2,...,x_n处有孔。您的贴片长度为10厘米。使用尽可能少的补丁修补孔。同样,这可以用贪婪的方式解决(只要将补丁尽可能地正确放置即可),但是没有拟阵结构。


谢谢,我有所怀疑,但不确定。因此,即使不存在拟阵结构,我们也必须搜索贪婪算法。

1
@ user3373748我通常只是寻找一个动态程序。贪婪是退化的DP。

1
(不要挑剔,但是没有1或2欧元的音符;您可能希望将一组值更改为{
5,10,20,50,100,200

请注意,所描述的硬币兑换算法适用于{1,2,5,10},但可能无法为其他值计算最佳结果。示例:对于{1,3,4},针对6的最优解为[3,3],但是算法将返回[4,1,1]。
索科维

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.