算法---分支限定0/1背包--蚁群算法
用蚁群算法解决01背包问题。
我本以为就是完全的蛮力法,但百度后觉得应该是这个
(4)分支限界-优先队列(STL)
// # 分支限界优先队列法 // 队列中的节点类型 struct NodeType {// 分支限界节点 int no; // 节点编号 int i; // 当前节点在搜索空间的层次 int w; // 当前节点的总重量 int v; // 当前节点的总价值 int x[MAXN]; // 当前节点包含的解向量 double ub; // 上界 bool operator<(const NodeType& node) const {// 优先队列按此方式排序 return ub < node.ub; // ub越大越优先出队 } }; /* 主干 * ->初始化根节点 * ->计算根节点上界及进队 * ->循环遍历队列,条件为非空:出一个节点, 计算左孩子节点剪枝条件,满足的左孩子计算上界及进队; 计算右孩子节点上界,符合上界条件的右孩子进队; (根据容量剪去左孩子,根据上界条件剪去右孩子) * */ void bfs(); // 进队----不是叶子节点就直接进队,是叶子节点则判断是否更优解,是的话则更新最优解 void EnQueue(NodeType e,priority_queue
版权声明:本文为CSDN博主「D丶酒舞」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010323330/article/details/80302227