0/1背包问题能不能使用贪心法解决? 请教我用python的贪心法做0/1背包问题

0-1\u80cc\u5305\u95ee\u9898\u5230\u5e95\u80fd\u7528\u8d2a\u5fc3\u6cd5\u89e3\u51b3\u5417\uff1f

0-1\u80cc\u5305\u95ee\u9898\u4e0d\u80fd\u7528\u8d2a\u5fc3\u6cd5\u89e3\u51b3\uff0c\u4f46\u662f\u90e8\u5206\u80cc\u5305\u95ee\u9898\u53ef\u4ee5\u7528\u8d2a\u5fc3\u6cd5\u89e3\u51b3\u3002\u9996\u51480-1\u80cc\u5305\u662f\u8981\u4e48\u4e0d\u62ff\uff0c\u8981\u62ff\u5c31\u5f97\u628a\u8fd9\u7c7b\u7269\u54c1\u5168\u90e8\u62ff\u5b8c\u3002\u7f51\u9875\u94fe\u63a5\u53ef\u4ee5\u53c2\u8003\u8fd9\u4e2a\u770b\u770b

\u52a8\u6001\u89c4\u5212\uff0c\u53ef\u4ee5\u7ed9\u4f60\u8bf4\u4e0b\u601d\u8def\u3002
\u6211\u4eec\u7528\u4e00\u4e2a\u4e8c\u7ef4\u7684\u77e9\u9635A\u6765\u5b58\u50a8\u4e2d\u95f4\u7ed3\u679c\uff0cA[i][j]\u4ee3\u8868\u524di\u4e2a\u7269\u4f53\u88c5\u5165\u5bb9\u91cf\u4e3aj\u7684\u80cc\u5305\u65f6\u53ef\u4ee5\u5f97\u5230\u7684\u6700\u4f18\u89e3\uff0c\u76f8\u5f53\u4e8e\u662f\u539f\u95ee\u9898\u7684\u4e00\u4e2a\u5b50\u95ee\u9898\uff0c\u7136\u540e\u6211\u4eec\u5c31\u53ef\u4ee5\u5199\u51fa\u9012\u63a8\u5f0f\u6765\u66f4\u65b0\u8fd9\u4e2a\u77e9\u9635\uff0c\u5177\u4f53\u53ef\u4ee5\u53c2\u8003\u4e0b\u8be6\u7ec6\u7684\u8bb2\u89e3\uff0c\u7f51\u4e0a\u7684\u535a\u5ba2\u975e\u5e38\u591a\u4e0d\u7528\u6211\u518d\u5199\u4e00\u904d\u3002

\u6bd4\u5982\u8fd9\u79cd\uff1ahttp://zh.wikipedia.org/zh-cn/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98
\u5148\u81ea\u5df1\u8bfb\u4e00\u904d\u5427\uff0c\u6709\u95ee\u9898\u53ef\u4ee5\u518d\u95ee\u3002

贪心算法解决背包问题有几种策略:
(i)一种贪婪准则为:从剩余的物品中,选出可以装入背包的价值最大的物品,利用这种规则,价值最大的物品首先被装入(假设有足够容量),然后是下一个价值最大的物品,如此继续下去。这种策略不能保证得到最优解。例如,考虑n=2, w=[100,10,10], p =[20,15,15], c = 105。当利用价值贪婪准则时,获得的解为x= [ 1 , 0 , 0 ],这种方案的总价值为2 0。而最优解为[ 0 , 1 , 1 ],其总价值为3 0。
(ii)另一种方案是重量贪婪准则是:从剩下的物品中选择可装入背包的重量最小的物品。虽然这种规则对于前面的例子能产生最优解,但在一般情况下则不一定能得到最优解。考虑n= 2 ,w=[10,20], p=[5,100], c= 2 5。当利用重量贪婪策略时,获得的解为x =[1,0], 比最优解[ 0 , 1 ]要差。
(iii)还有一种贪婪准则,就是我们教材上提到的,认为,每一项计算yi=vi/si,即该项值和大小的比,再按比值的降序来排序,从第一项开始装背包,然后是第二项,依次类推,尽可能的多放,直到装满背包。
有的参考资料也称为价值密度pi/wi贪婪算法。这种策略也不能保证得到最优解。利用此策略试解n= 3 ,w=[20,15,15], p=[40,25,25], c=30 时的最优解。虽然按pi /wi 非递(增)减的次序装入物品不能保证得到最优解,但它是一个直觉上近似的解。
而且这是解决普通背包问题的最优解,因为在选择物品i装入背包时,可以选择物品i的一部分,而不一定要全部装入背包,1≤i≤n。

不能。

首先你得会区分0-1背包问题背包问题的区别,

然后,回到问题中来,前者是不能用贪心算法求解的,但是后者可以用。


但是,0-1背包问题可以用动态规划、回溯法和分支限界法这三种任一一种算法策略来求解。



  • 0,鐨勬剰鎬濇槸浠涔?
    绛旓細0鏄病鏈夈佽櫄鏃犮佸紑濮嬨佽捣鐐广侀浂纰庛佸綊闆剁瓑鎰忔濄 0鏄粙浜-1鍜1涔嬮棿鐨勬暣鏁帮紝鏄渶灏忕殑鑷劧鏁帮紝涔熸槸鏈夌悊鏁般傛爣鍑嗙殑0杩欎釜鏁板瓧鐢卞彜鍗板害浜哄湪绾﹀叕鍏5涓栫邯鏃跺彂鏄庛備粬浠渶鏃╃敤榛戠偣琛ㄧず闆锛屽悗鏉ラ愭笎鍙樻垚浜嗏0鈥濄0琛ㄨ揪鐨勬剰鎬濇湁寰堝锛屾瘮濡傦細娌℃湁銆佽櫄鏃犮佸紑濮嬨佽捣鐐广侀浂纰庛佸綊闆剁瓑銆0鏄粙浜-1鍜1涔嬮棿鐨勬暣鏁帮紝...
  • 0鏄暣鏁板悧?
    绛旓細闆鏄暣鏁帮紝鏄嚜鐒舵暟锛屾棦涓嶆槸姝f暟锛屼篃涓嶆槸璐熸暟锛屽畠鏄粙浜-1鍜1涔嬮棿鐨勬暟銆傚啓浣滐細0锛岃浣滐細闆躲傞浂娌℃湁鍊掓暟銆0鏄粙浜-1鍜1涔嬮棿鐨勬暣鏁般0鏃笉鏄鏁颁篃涓嶆槸璐熸暟锛岃屾槸姝f暟鍜岃礋鏁扮殑鍒嗙晫鐐广0娌℃湁鍊掓暟锛0鐨勭浉鍙嶆暟鏄0锛0鐨勭粷瀵瑰兼槸0锛0鐨勫钩鏂规牴鏄0,0鐨勭珛鏂规牴鏄0锛0涔樹换浣曟暟閮界瓑浜0銆0涓嶈兘浣滀负鍒...
  • 0鏄笉鏄竴涓暟鍟?
    绛旓細0鏄竴涓暟銆0鐨勫肩浉褰撲簬鏃狅紝0鍦ㄦ暟閲忎笂琛ㄧず涓涓篃娌℃湁銆0鏄粙浜-1鍜1涔嬮棿鐨勬暣鏁帮紝涓嶄粎鏄渶灏忕殑鑷劧鏁帮紝涔熸槸鏈夌悊鏁般0鐨勭粷瀵瑰兼槸0锛0鐨勫钩鏂规牴鏄0锛0鐨勭珛鏂规牴鏄0銆0鐨勫巻鍙 鍏充簬0杩欎釜鏁板瓧姒傚康鍦ㄥ叾瀹冨湴鍖哄緢鏃╁氨鏈夈傜帥闆呮枃鏄庢渶鏃╁彂鏄庣壒鍒瓧浣撶殑0銆傜帥闆呮暟瀛椾腑0浠ヨ礉澹虫ā鏍风殑璞″舰绗﹀彿浠h〃銆傛爣鍑嗙殑0杩欎釜...
  • 0鏄粈涔堟暟?
    绛旓細0鏄暣鏁般傛暣鏁板垎涓轰笁澶х被 锛1銆佹鏁存暟锛屽嵆澶т簬0鐨勬暣鏁板锛1,2,3路路路鐩村埌n锛2銆0鏃笉鏄鏁存暟锛屼篃涓嶆槸璐熸暣鏁帮紝瀹冩槸浠嬩簬姝f暣鏁板拰璐熸暣鏁扮殑鏁帮紱3銆佽礋鏁存暟锛屽嵆灏忎簬0鐨勬暣鏁板锛-1,-2,-3路路路鐩村埌-n銆傛敞锛氱幇涓鏁板鏁欐潗涓瀹氾細闆跺拰姝f暣鏁颁负鑷劧鏁般
  • 0琛ㄧず浠涔堟剰鎬?
    绛旓細0鏄粙浜-1鍜1涔嬮棿鐨勬暣鏁帮紝鏄渶灏忕殑鑷劧鏁帮紝涔熸槸鏈夌悊鏁般0鏃笉鏄鏁颁篃涓嶆槸璐熸暟锛岃屾槸姝f暟鍜岃礋鏁扮殑鍒嗙晫鐐广0娌℃湁鍊掓暟锛0鐨勭浉鍙嶆暟鏄0锛0鐨勭粷瀵瑰兼槸0锛0鐨勫钩鏂规牴鏄0锛0鐨勭珛鏂规牴鏄0锛0涔樹换浣曟暟閮界瓑浜0锛岄櫎0涔嬪浠讳綍鏁扮殑0娆℃柟绛変簬1銆0涓嶈兘浣滀负鍒嗘瘝鍑虹幇锛0鐨勬墍鏈夊嶆暟閮芥槸0锛0涓嶈兘浣滀负闄ゆ暟銆
  • 0灞炰簬浠涔堟暟
    绛旓細0灞炰簬鑷劧鏁般0鏃笉鏄鏁颁篃涓嶆槸璐熸暟锛岃屾槸姝f暟鍜岃礋鏁颁箣闂寸殑涓涓暟銆0鍙堟槸浠嬩簬-1鍜+1涔嬮棿鐨勬暣鏁般傛眽瀛楄鍋氣闆鈥濇垨鑰呮槸鈥溿団濓紝鏄嚜鐒舵暟銆0鏄伓鏁帮紝鏄暣鏁颁篃鏄 瀹炴暟銆0涓嶆槸璐ㄦ暟锛屼篃涓嶆槸鍚堟暟銆0鏄粙浜-1鍜1涔嬮棿鐨勬暣鏁帮紝鏄渶灏忕殑鑷劧鏁帮紝涔熸槸鏈夌悊鏁般0鏃笉鏄鏁颁篃涓嶆槸璐熸暟锛岃屾槸姝f暟鍜岃礋鏁扮殑...
  • 鏁板瓧闆鐨勬纭殑鍐欐硶搴旇鏄粈涔?
    绛旓細鏁板瓧0鐨勬纭啓娉曟槸 "0"銆傚畠閫氬父琛ㄧず闆銆佹病鏈夋暟閲忔垨绌洪泦銆傛暟瀛0鏄暣鏁扮郴缁熶腑鐨勫熀纭鏁板瓧锛屽畠鍙互浣滀负鍗曚綅鐨勮捣鐐广佽〃绀虹┖鍊兼垨浣滀负璁℃暟鏁板瓧鐨勪竴閮ㄥ垎銆傚湪澶у鏁板浗瀹跺拰鏂囧寲涓紝鏁板瓧0鐨勫舰鐘舵槸涓涓渾褰㈡垨妞渾褰傝娉ㄦ剰锛屽湪涓浜涘瓧浣撲腑锛屾暟瀛0鍙兘涓庡瓧姣 "O"锛堝ぇ鍐欐垨灏忓啓锛夌浉浼硷紝浣嗗畠浠叿鏈変笉鍚岀殑璇箟鍜岀敤閫...
  • 0绠楁暣鏁板悧?
    绛旓細0鏄暣鏁帮紝鏄粙浜-1鍜1涔嬮棿鐨勬暣鏁帮紝鏄渶灏忕殑鑷劧鏁帮紝涔熸槸鏈夌悊鏁般0鏃笉鏄鏁颁篃涓嶆槸璐熸暟锛岃屾槸姝f暟鍜岃礋鏁扮殑鍒嗙晫鐐广0娌℃湁鍊掓暟锛0鐨勭浉鍙嶆暟鏄0锛0鐨勭粷瀵瑰兼槸0锛0鐨勫钩鏂规牴鏄0锛0鐨勭珛鏂规牴鏄0锛0涔樹换浣曟暟閮界瓑浜0锛岄櫎0涔嬪浠讳綍鏁扮殑0娆℃柟绛変簬1銆0涓嶈兘浣滀负鍒嗘瘝鍑虹幇锛0鐨勬墍鏈夊嶆暟閮芥槸0锛0涓嶈兘浣滀负...
  • 0鏄暣鏁板悧
    绛旓細0鏄暣鏁般0鏄-1涓1涔嬮棿鐨勬暣鏁般0鏃笉鏄鏁帮紝涔熶笉鏄礋鏁;0涓嶆槸璐ㄦ暟銆傚湪鏁拌涓紝0灞炰簬鑷劧鏁帮紝0娌℃湁鍊掓暟锛0鐨勭浉鍙嶆暟鏄0锛涘湪闆嗗悎璁哄拰璁$畻鏈虹瀛︿腑锛0灞炰簬鑷劧鏁般0鍦ㄦ暣鏁般佸疄鏁板拰鍏朵粬鐨勪唬鏁扮粨鏋勪腑閮芥湁鐫鍗曚綅鍏冭繖涓緢閲嶈鐨勬ц川銆0鏄瀬涓洪噸瑕佺殑鏁板瓧锛0鐨勫彂鐜拌绉颁负浜虹被浼熷ぇ鐨勫彂鐜颁箣涓銆0鍦ㄦ垜鍥...
  • 0琛ㄧず浠涔堟剰鎬
    绛旓細0閫氬父琛ㄧず闆銆佺┖缂恒佹棤銆佷笉瓒崇瓑
  • 扩展阅读:cf3到7背包多少钱永久 ... 背包带太长了怎么处理 ... 不能延长补票 让下车的 ... 双肩背包带长了怎么办 ... 21式突击背包里的塑料架子 ... 背包容量计算公式 ... 部队打背包多长时间合格 ... 背包问题动态规划 ... 背包问题 贪心算法 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网