Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 为什么这是一个贪婪的算法?_Algorithm - Fatal编程技术网

Algorithm 为什么这是一个贪婪的算法?

Algorithm 为什么这是一个贪婪的算法?,algorithm,Algorithm,我的课本里有一个问题: “假设我们有一系列活动要安排在一个大的团队中 演讲厅的数量,任何活动都可以在任何演讲厅进行。我们希望使用尽可能少的演讲厅安排所有活动。给出一个高效的贪婪算法来确定哪些活动应该使用哪个演讲厅。” 答案如下: (firs解决方案) 我的答案是,为什么这个算法是贪婪算法 我认为这是因为它做出了(贪婪的?)选择,你总是把一个活动放到一个演讲厅,那里已经有一个或多个活动(如果可能的话),而不是把活动放到一个新的空演讲厅。但我不确定 贪婪意味着你不重新考虑你的选择。这使得我们很难找

我的课本里有一个问题:

“假设我们有一系列活动要安排在一个大的团队中 演讲厅的数量,任何活动都可以在任何演讲厅进行。我们希望使用尽可能少的演讲厅安排所有活动。给出一个高效的贪婪算法来确定哪些活动应该使用哪个演讲厅。”

答案如下:

(firs解决方案)

我的答案是,为什么这个算法是贪婪算法


我认为这是因为它做出了(贪婪的?)选择,你总是把一个活动放到一个演讲厅,那里已经有一个或多个活动(如果可能的话),而不是把活动放到一个新的空演讲厅。但我不确定

贪婪意味着你不重新考虑你的选择。这使得我们很难找到一个最优的解决方案,并且它描述了其中的算法。

这是因为在考虑问题的其余部分之前,你对第一讲堂做的最多。从这个意义上讲,第一讲堂是“贪婪的”。

贪婪算法的定义是,它在每一步都采取明显的最佳选择,而不是考虑前面的几个步骤。这样就可以找到搜索空间的局部极小值(梯度下降可能值得一点谷歌搜索)。一个象棋程序就是一个很好的例子,贪心算法总是会做出最有力的直接动作(取一个段落,最大化块开发),但不会考虑未来的几个动作。
不幸的是,我似乎无法打开您目前包含的链接。但是我可以很好地猜测这个算法是贪婪的,因为一旦它将一个事件安装到大厅中,它就不会重新考虑这个决定(此时回溯可能值得快速搜索)。

我不知道是否存在一个关于“贪婪”的正式定义,但对我来说,贪婪的解决方案是将问题归结为一系列局部最优解的选择,希望当它们组合在一起时,它们接近整体最优解。(有时这种希望比希望更重要。)

既“贪婪”又“高效”。。huh@Bragby:实际上,这取决于他们所指的“效率”。也许这是计算效率(即速度)而不是找到有效解决方案的能力……是的,事实上,有时贪婪算法也被称为“短视”,因为他们对这个问题视而不见维基百科对贪婪算法有着深刻的理解。