贪心算法几个经典例子

[背包问题]有一个背包,背包容量是M=150。有7个物品,物品可以分割成任意大小。

要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。

物品 A  B  C  D  E  F  G

重量 35 30 60 50 40 10 25

价值 10 40 30 50 35 40 30

分析:

目标函数:∑pi最大

约束条件是装入的物品总重量不超过背包容量,即∑wi<=M( M=150)

(1)根据贪心的策略,每次挑选价值最大的物品装入背包,得到的结果是否最优?

(2)每次挑选所占重量最小的物品装入是否能得到最优解?

(3)每次选取单位重量价值

贪心算法是很常见的算法之一,这是由于它简单易行,构造贪心策略简单。但是,它需要证明后才能真正运用到题目的算法中。一般来说,贪心算法的证明围绕着整个问题的最优解一定由在贪心策略中存在的子问题的最优解得来的。

对于本例题中的3种贪心策略,都无法成立,即无法被证明。



  • 鎻掑叆鎺掑簭鏄竴绉璐績绠楁硶
    绛旓細鎻掑叆鎺掑簭鐨勫伐浣滄柟寮忔槸閫氳繃鏋勫缓鏈夊簭搴忓垪锛屽浜庢湭鎺掑簭鏁版嵁锛屽湪宸叉帓搴忓簭鍒椾腑浠庡悗鍚戝墠鎵弿锛屾壘鍒扮浉搴斾綅缃苟鎻掑叆銆傝繖涓繃绋嬪氨鏄璐績閫夋嫨鐨勮繃绋嬶紝姣忔閫夋嫨閮芥槸鍦ㄥ綋鍓嶇姸鎬佷笅鏈濂界殑閫夋嫨锛屼篃灏辨槸灏嗘湭鎺掑簭鍏冪礌鎻掑叆鍒板凡鎺掑簭搴忓垪鐨勬纭綅缃備妇涓緥瀛锛屽亣璁炬垜浠湁涓涓棤搴忔暟缁 [5, 3, 6, 7, 1]锛屾彃鍏ユ帓搴忕殑杩囩▼...
  • 绠楁硶鎬庝箞瀛
    绛旓細鐢变簬璐績绠楁硶鐨勮繖涓壒鎬,瀹冨瑙g┖闂存爲鐨勯亶鍘嗕笉闇瑕佽嚜搴曞悜涓,鑰屽彧闇瑕佽嚜鏍瑰紑濮,閫夋嫨鏈浼樼殑璺,涓鐩磋蛋鍒板簳灏卞彲浠ヤ簡銆 璇濅笉澶氳,鎴戜滑鏉ョ湅鍑犱釜鍏蜂綋鐨渚嬪瓙鎱㈡參鐞嗚В瀹: 1.娲诲姩閫夋嫨闂 杩欐槸銆婄畻娉曞璁恒嬩笂鐨勪緥瀛,涔熸槸涓涓潪甯缁忓吀鐨勯棶棰樸傛湁n涓渶瑕佸湪鍚屼竴澶╀娇鐢ㄥ悓涓涓暀瀹ょ殑娲诲姩a1,a2,鈥,an,鏁欏鍚屼竴鏃跺埢鍙兘鐢变竴...
  • python閲岄潰浠涔堟槸璐┆?
    绛旓細Python閲岄潰鐨勮椽濠畻娉曪紙鍙堢О璐績绠楁硶锛夋槸鎸囷紝鍦ㄥ闂姹傝В鏃讹紝鎬绘槸鍋氬嚭鍦ㄥ綋鍓嶇湅鏉ユ槸鏈濂界殑閫夋嫨銆備篃灏辨槸璇达紝/涓嶄粠鏁翠綋鏈浼樹笂鍔犱互鑰冭檻锛屼粬鎵鍋氬嚭鐨勬槸鍦ㄦ煇绉嶆剰涔変笂鐨勫眬閮ㄦ渶浼樿В銆傝椽蹇冪畻娉曚笉鏄鎵鏈夐棶棰橀兘鑳藉緱鍒版暣浣撴渶浼樿В锛屽叧閿槸璐績绛栫暐鐨勯夋嫨锛岄夋嫨鐨勮椽蹇冪瓥鐣ュ繀椤诲叿澶囨棤鍚庢晥鎬э紝鍗虫煇涓姸鎬佷互鍓嶇殑杩囩▼...
  • 璐績娉曠殑姹傝В姝ラ
    绛旓細浠ヤ笂鎴戜滑鍒嗘瀽浜璐績绠楁硶鐨勫ぇ鑷村疄鐜拌繃绋嬶紝浣嗘槸瀹為檯涓婅繕鏄湁闂鐨勩備笉鐭ラ亾澶у鏈夋病鏈夊彂鐜帮紝鐢变簬璐績绠楁硶杩囦簬璐績锛屾瘡涓涓楠ら兘鎯宠鎵惧埌灞閮ㄦ渶浼樿В銆傞偅涔堝亣濡傚湪涓婇潰鐨渚嬪瓙涓紝鎴戜滑娌℃湁1鍧楅挶鐨勯浂閽憋紝涓婅堪浠g爜鐨勮繑鍥炵粨鏋滄槸-1锛屽嵆娌℃湁绗﹀悎鏉′欢鐨勭瓟妗堛備絾鏄疄闄呭苟闈炲姝わ紝涔熷氨鏄5,3,3涔熸槸婊¤冻鏉′欢鐨勶紝浣嗘槸...
  • 璐績绠楁硶閫夋嫨闂
    绛旓細璐績閫夋嫨鎬ц川锛氭墍姹傞棶棰樼殑鏁翠綋鏈浼樿В鍙互閫氳繃涓绯诲垪灞閮ㄦ渶浼樼殑閫夋嫨鏉ュ緱鍒般傚氨鏄锛屼綘闇瑕佽瘉鏄庡綋鍓嶉棶棰樺彲浠ラ氳繃閫夋嫨鏈濂界殑閭d釜鍏冪礌锛堟瘮濡01鑳屽寘锛屾昏兘澶熼氳繃閫夋嫨褰撳墠閲嶉噺鏈灏忕殑鐗╁搧鏉ュ緱鍒版渶浼樿В锛夋潵瑙e喅闂 璇佹槑锛氾紙姣忎竴姝ユ墍鍋氱殑璐績閫夋嫨鏈缁堝鑷撮棶棰樼殑鏁翠綋鏈浼樿В锛//鍩烘湰鎬濊矾锛氳冨療涓涓棶棰樼殑鏈浼樿В锛...
  • 鍏嬮瞾鏂崱灏绠楁硶浠嬬粛
    绛旓細鍏嬮瞾鏂崱灏旂畻娉曪紙Kruskal's Algorithm锛夋槸涓绉嶇敤浜庤В鍐虫渶灏忕敓鎴愭爲闂鐨璐績绠楁硶銆傛渶灏忕敓鎴愭爲闂鏄湪涓涓繛閫氬姞鏉冩棤鍚戝浘涓鎵句竴妫靛寘鍚墍鏈夐《鐐圭殑鏍戯紝鍚屾椂杩欐5鏍戠殑杈规潈鍊间箣鍜屾渶灏忋傚厠椴佹柉鍗″皵绠楁硶鐨勫熀鏈濇兂鏄寜鐓ц竟鐨勬潈鍊间粠灏忓埌澶х殑椤哄簭閫夋嫨杈癸紝骞剁‘淇濋夋嫨鐨勮竟涓嶆瀯鎴愮幆銆傜畻娉曠殑瀹炵幇杩囩▼涓紝鎴戜滑浣跨敤涓涓...
  • 浜斿ぇ甯哥敤绠楁硶涔嬩竴:璐績绠楁硶
    绛旓細浼樺厛瑁呴噸閲忓皬鐨,杩欐牱鐨勯棶棰樺氨鍙互瑙e喅.鎵浠ラ渶瑕佽鏄庣殑鏄紝璐績绠楁硶鍙互涓庨殢鏈哄寲绠楁硶涓璧蜂娇鐢紝鍏蜂綋鐨渚嬪瓙灏变笉鍐嶅涓句簡銆傦紙鍥犱负杩欎竴绫荤畻娉曟櫘鍙婃т笉楂橈紝鑰屼笖鎶鏈惈閲忔槸闈炲父楂樼殑锛岄渶瑕侀氳繃涓浜涘弽渚嬬‘瀹氶殢鏈虹殑瀵硅薄鏄粈涔堬紝闅忔満绋嬪害濡備綍锛屼絾涔熸槸涓嶈兘淇濊瘉瀹屽叏姝g‘锛屽彧鑳芥槸鏋佸ぇ鐨勫嚑鐜囨纭級銆
  • int x=2;z=-x+++1;鍒檟鐨勫间负
    绛旓細int x锛2锛泎锛-x+++1锛涘垯x鐨勫=3銆傜悊鐢辨槸 x++杩欎釜杩愮畻锛屾槸鍦ㄨ祴鍊肩粨鏉熶箣鍚庝細鏈変竴涓嚜鍔犺繍绠椼傚鏋滄槸姹倆鐨勫硷紝鍒欐槸 z=-2+1=-1 璧嬪肩殑鏃跺欒繕娌℃湁鑷姞锛岃祴鍊肩粨鏉熷啀鑷姞銆
  • 鍒嗘瀽鐢ㄥ姩鎬佽鍒掑拰璐績绠楁硶姹傝В鑳屽寘闂鐨勫樊寮
    绛旓細鍔ㄦ佽鍒掓湰璐ㄦ槸浠ョ┖闂存崲鏃堕棿锛岀畻鍑轰簡鎵鏈夊彲琛岃В鐨勫煎煙銆傝璐績绠楁硶锛屾瘡娆¢夊垯鏈浼樼殑锛岃岀粨鏋滄湭蹇呮渶浼樸備妇涓畝鍗渚嬪瓙銆傝儗鍖呰兘瑁8kg,鏈3涓墿鍝侊紝鍒嗗埆涓3kg,4kg,5kg 鍔ㄦ佽鍒掞紝鏄绠楋紝3+4锛 3+5锛屽緱鍑鸿В锛屾渶澶х殑鏄3+5=8kg 璐績绠楁硶锛屾槸閫夋嫨锛岀涓娆¢夋渶澶х殑锛5kg<8kg锛岀浜屾閫夊垯鍓╀笅鐨勬渶澶...
  • 涓轰粈涔璐績绠楁硶涓嶈兘瑙0-1鑳屽寘闂
    绛旓細璐績绠楁硶瑙e喅鑳屽寘闂鏈夊嚑绉嶇瓥鐣ワ細(i)涓绉嶈椽濠噯鍒欎负锛氫粠鍓╀綑鐨勭墿鍝佷腑锛岄夊嚭鍙互瑁呭叆鑳屽寘鐨勪环鍊兼渶澶х殑鐗╁搧锛屽埄鐢ㄨ繖绉嶈鍒欙紝浠峰兼渶澶х殑鐗╁搧棣栧厛琚鍏ワ紙鍋囪鏈夎冻澶熷閲忥級锛岀劧鍚庢槸涓嬩竴涓环鍊兼渶澶х殑鐗╁搧锛屽姝ょ户缁笅鍘汇傝繖绉嶇瓥鐣ヤ笉鑳戒繚璇佸緱鍒版渶浼樿В銆備緥濡傦紝鑰冭檻n=2, w=[100,10,10], p =[20,15,15...
  • 扩展阅读:人工智能十大算法 ... 找零问题 贪心算法 ... 贪心算法最优装载问题 ... 贪心算法实例大全 ... 贪心算法四种思想 ... 贪心算法流程图 ... dijkstra算法详细步骤 ... 贪心算法两个要素 ... 分治算法几个经典例子 ...

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