SuperAPI AI 工具集

knapsack-problems

通用与其它

查看项目

更新于 10-15 23:46

技能介绍

用途:本技能面向背包优化与资源分配问题,帮助在重量、体积、预算或其他资源约束下选择最优物品组合,实现价值或利润最大化,同时可处理最小化成本、多目标、必选物品、类别配额、整组全选或全不选等特殊要求。

主要能力:先对问题分类,包括0/1背包(每件最多取一次)、有界背包(每件数量有限)、无界背包(每件数量不限)、多重背包(多个容器或资源)、多维背包(多个容量约束,如重量加体积)、二次背包(价值依赖其他物品是否被选中)。给出0/1背包的数学形式:决策变量x_i∈{0,1},目标为最大化Σ(v_i×x_i),约束为Σ(w_i×x_i)≤W;多维情形为Σ(w_ij×x_i)≤W_j。复杂度为NP完全,存在动态规划伪多项式算法。

使用方式:资料提供Python代码示例,包括0/1背包动态规划(含回溯选品与O(W)空间优化版)、分支限界(按价值重量比排序并用上界剪枝)、贪心近似、有界背包(展开为0/1后还原数量)、无界背包(DP加回溯求各物品数量)、多维背包(贪心加局部搜索近似)、多重背包(用PuLP建模求解)。可按问题类型选择对应算法。

适用场景:项目选择、货物装载、投资组合、库存选取、切割下料、硬币找零、资源采购、多车辆装载、多仓库分配、产品捆绑、多资源项目选择等。

限制:0/1与多维背包为NP完全,精确求解在大规模或大容量时计算开销高;分支限界适合DP过慢或容量较大的情形;贪心与多维背包代码为近似解,不保证最优;资料未提供具体性能评测、收费信息或平台安装方式。