1. 请用反证法证明“删数问题”的算法满足贪心选择性质:
假设最优解不包含贪心选择(假设在给定的数字和需要删除的个数下,存在一个最优解X,它不包含贪心策略的选择)。
也就是说,在某一步中,贪心策略选择删除了一个数字a,而X选择保留了a,并在后续的步骤中通过不同的选择得到一个看似更小的数字序列X。根据贪心策略,我们从左到右扫描数字,选择第一个满足a>b(其中b是a右边的数字)进行删除,从而使剩下的数字更小。
然而,由于X和X’的不同点在于X选择保留了a,而X’选择删除了a,并且a>b,那么X中的保留操作会导致后续的数字整体排列不如X’小。即如果我们在X中改为删除a,则可以得到一个新的解X’,由于X’采用了贪心策略删除a,其后续的数字排列与X’一致或更小。因此,X’会比X小或相等,但绝不会更大。所以,假设不成立,即最优解必须包含贪心选择。
2. 结合本章的学习,总结你对贪心法的体会和思考:
贪心法的核心在于局部最优选择,即在每一步选择中都做出当前看似最好的决策,而不考虑未来的影响,目的是通过局部最优来逐步构建全局最优解。在“删数问题”中,贪心策略通过从左到右逐步删除较大的数字,以确保每一步都尽可能减少数字的大小,最终得到最小的结果。但并不是适用于所有问题,只有在满足贪心选择性质和最优子结构的情况下,才能保证贪心策略能得到全局最优解。并且贪心法的一个关键特性是它不回溯。这使得贪心法在某些情况下并不适用,因为如果局部选择错了,可能会导致全局解的失败。因此,在应用贪心法时,需要仔细分析问题是否符合贪心选择性质。贪心算法通常结构简单,容易理解和实现。这使得它在处理一些实际问题时非常有效和高效。然而,也需要注意其局限性,避免在不适用的情况下使用贪心法。