Algorithm 证明或给出这个贪婪算法的反例

Algorithm 证明或给出这个贪婪算法的反例,algorithm,theory,greedy,Algorithm,Theory,Greedy,我在这个家庭作业问题上遇到了麻烦。我认为主要的困惑来自于没有确定反例的依据 让P1Pnbe存储在磁盘上的程序。程序Pi需要 SiMB存储空间,磁盘容量为D 兆字节。其中D小于存储的兆字节之和 (a) 最大化磁盘上保存的程序数。证明或给出一个反例:按顺序选择程序的贪婪算法 增加Si (b) 尽可能多地使用磁盘的容量。证明或给出一个反例:贪心算法,它在 递减顺序Si 编辑: 对不起,没有澄清 对于第(a)部分,我最初的尝试是假设它不按增加Si的顺序选择程序。选择Pa、Pb和PcwhereSaa)

我在这个家庭作业问题上遇到了麻烦。我认为主要的困惑来自于没有确定反例的依据

P1
Pn
be存储在磁盘上的程序。程序
Pi
需要
Si
MB存储空间,磁盘容量为
D
兆字节。其中
D
小于存储的兆字节之和

  • (a) 最大化磁盘上保存的程序数。证明或给出一个反例:按顺序选择程序的贪婪算法 增加
    Si

  • (b) 尽可能多地使用磁盘的容量。证明或给出一个反例:贪心算法,它在 递减顺序
    Si

编辑: 对不起,没有澄清

对于第(a)部分,我最初的尝试是假设它不按增加
Si
的顺序选择程序。选择
Pa
Pb
Pc
where
Saa)定理:按所需磁盘空间的递增顺序运行程序可确保尽可能多的程序运行。证明:证明是矛盾的。假设有其他选择程序的方法,允许运行更多的程序。然后,该方法必须至少在一种情况下选择一组不同的程序;也就是说,它必须选择至少一个比未选择的程序需要更多空间的程序。然而,该方法也可以选择需要较少空间的程序,而不是另一个与贪婪算法所做选择不同的程序。这与该方法优于贪婪方法的假设相矛盾。因此,没有任何方法比贪婪方法更好:它是最优的


b) 定理:按所需磁盘空间的降序运行程序并不能确保使用尽可能多的磁盘空间。证据:证据是通过例子来证明的。考虑大小为10的磁盘和需要磁盘空间6, 5和5的程序。按所需磁盘空间的降序排列的程序只允许我们使用10个可用存储单元中的6个,而我们可能会使用两个程序,每个程序需要5个单元,总共10个单元。因此,贪婪方法并不是在所有情况下都能给出最佳结果。

你能更具体地说明你在问什么吗?问题是给出一个贪婪算法,该算法总是能找到最大子集(最大子集是其中程序数量最大的一个)。同时也要证明算法给出的是最优解。你至少自己尝试过解决这个问题吗?你能告诉我们你做了什么来解决这个问题吗?对不起,请检查编辑。