数学建模社区-数学中国

标题: 【源码】GA算法求解经典背包问题 [打印本页]

作者: qq_1537237806    时间: 2021-1-1 09:08
标题: 【源码】GA算法求解经典背包问题
背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。相似问题经常出现在商业、组合数学,计算复杂性理论、密码学和应用数学等领域中。也可以将背包问题描述为决定性问题,即在总重量不超过W的前提下,总价值是否能达到V?它是在1978年由Merkle和Hellman提出的。
# }+ ^! g1 l' Y! b' S& v5 x
! K4 D4 q: m. X1998年的石溪布鲁克大学算法库的研究表明,在75个算法问题中,背包问题是第18个最受欢迎,第4个最需要解决的问题(前三为后kd树,后缀树和bin包装问题)。 [3]. I9 ^5 X5 i6 I9 o
背包问题出现在各种领域的现实世界的决策过程中,例如寻找最少浪费的方式来削减原材料, [4] 选择投资和投资组合, [5] 选择资产支持资产证券化 [6] ,和生成密钥为Merkle-Hellman [7] 和其他背包密码系统。
8 Y7 {' Z- W3 _1 ]; d$ D$ v  V背包算法的一个早期应用是在测试的构建和评分中,测试者可以选择他们回答哪些问题。对于小例子来说,这是一个相当简单的过程,为测试者提供这样的选择。例如,如果考试包含12个问题,每个问题的价值为10分,测试者只需回答10个问题即可获得100分的最高分。然而,在点值的异质分布的测试 - 即不同的问题值得不同的点值 - 更难以提供选择。 Feuerman和Weiss提出了一个系统,其中学生被给予一个异质测试,共有125个可能的点。学生被要求尽可能回答所有的问题。在总点数加起来为100的问题的可能子集中,背包算法将确定哪个子集给每个学生最高的可能得分。 [8]1 s9 ^7 A- _5 T% G1 W8 \2 O
" r6 M' h* k' Y/ M, s
/ J% a' t) ^0 q# u  ~' B3 i) N6 d

9 y6 B5 T, g/ b

knapsack_all.zip

2.34 KB, 下载次数: 2, 下载积分: 体力 -2 点






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5