资源简介
用动态规划、分支限界、回溯解决01背包、批处理作业调度问题
代码片段和文件信息
#include
#include
using namespace std;
typedef struct treenode{
int weight;
int value;
int level;
int flag;
}treenode;
queue que;
int enQueue(int w int v int level int flag int n int* bestvalue)
{
treenode node;
node.weight = w;
node.value = v;
node.level = level;
node.flag = flag;
if (level == n)
{
if (node.value > *bestvalue)
{
*bestvalue = node.value;
}
return 0;
}
else
{
que.push(node);
}
}
//w为重量数组,v为价值数组,n为物品个数,c为背包容量,bestValue为全局最大价值
int bbfifoknap(int w[] int v[] int n int c int* bestValue)
{
//初始化结点
int i = 1;
treenode tag livenode;
livenode.weight = 0;
livenode.value = 0;
livenode.level = 1;
livenode.flag = 0;//初始为0
tag.weight = -1;
tag.value = 0;
tag.level = 0;
tag.flag = 0;//初始为0
que.push(tag);
while (1)
{
if (livenode.weight + w[i - 1] <= c)
{
enQueue(livenode.weight + w[i - 1] livenode.value + v[i - 1] i 1 n bestValue);
}
enQueue(livenode.weight livenode.value i 0 n bestValue);
livenode = que.front();
que.pop();
if (livenode.weight == -1)
{
if (que.empty() == 1)
{
break;
}
livenode = que.front();
que.pop();
que.push(tag);
i++;
}
}
return 0;
}
void test_bbfifoknap()
{
int w[] = { 16 15 15 };
int v[] = { 45 25 25 };
int n = 3;
int c = 30;
int bestValue = 0;
bbfifoknap(w v n c &bestValue);
printf(“weight[3]= { 16 15 15 };\n“);
printf(“value[3] = { 45 25 25 };\n“);
printf(“c=30;\n“);
cout << “result = “<< bestValue << endl;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1649 2018-03-01 16:08 Algorithm\Algorithm\01_分支限界.cpp
文件 957 2018-03-01 16:09 Algorithm\Algorithm\01_动态规划.cpp
文件 807 2018-03-01 16:08 Algorithm\Algorithm\01_回溯法.cpp
文件 4393 2018-01-17 23:15 Algorithm\Algorithm\Algorithm.vcxproj
文件 1552 2018-01-17 23:15 Algorithm\Algorithm\Algorithm.vcxproj.filters
文件 243027 2018-03-01 16:08 Algorithm\Algorithm\Debug\01_分支限界.obj
文件 136173 2018-03-01 20:21 Algorithm\Algorithm\Debug\01_动态规划.obj
文件 136234 2018-03-01 16:08 Algorithm\Algorithm\Debug\01_回溯法.obj
文件 606 2018-01-17 23:16 Algorithm\Algorithm\Debug\Algorithm.Build.CppClean.log
文件 765 2018-03-30 17:38 Algorithm\Algorithm\Debug\Algorithm.log
文件 157 2018-03-30 17:38 Algorithm\Algorithm\Debug\Algorithm.tlog\Algorithm.lastbuildstate
文件 3702 2018-03-30 17:38 Algorithm\Algorithm\Debug\Algorithm.tlog\cl.command.1.tlog
文件 52778 2018-03-30 17:38 Algorithm\Algorithm\Debug\Algorithm.tlog\CL.read.1.tlog
文件 5568 2018-03-30 17:38 Algorithm\Algorithm\Debug\Algorithm.tlog\CL.write.1.tlog
文件 1780 2018-03-01 20:21 Algorithm\Algorithm\Debug\Algorithm.tlog\li
文件 3458 2018-03-01 20:21 Algorithm\Algorithm\Debug\Algorithm.tlog\li
文件 896 2018-03-01 20:21 Algorithm\Algorithm\Debug\Algorithm.tlog\li
文件 0 2018-03-30 17:38 Algorithm\Algorithm\Debug\Algorithm.tlog\unsuccessfulbuild
文件 168361 2018-03-01 15:34 Algorithm\Algorithm\Debug\mask_分支限界.obj
文件 157850 2018-03-01 16:04 Algorithm\Algorithm\Debug\mask_回溯.obj
文件 379904 2018-03-30 17:38 Algorithm\Algorithm\Debug\vc120.idb
文件 389120 2018-03-30 17:38 Algorithm\Algorithm\Debug\vc120.pdb
文件 2252 2018-01-17 23:15 Algorithm\Algorithm\head.h
文件 615 2018-03-30 17:38 Algorithm\Algorithm\main.cpp
文件 4850 2018-01-17 23:18 Algorithm\Algorithm\mask_分支限界.cpp
文件 1323 2018-03-01 16:04 Algorithm\Algorithm\mask_回溯.cpp
文件 8454144 2018-03-30 17:39 Algorithm\Algorithm.sdf
文件 973 2018-01-17 22:26 Algorithm\Algorithm.sln
..A..H. 29696 2018-03-30 17:39 Algorithm\Algorithm.v12.suo
文件 100352 2018-03-01 20:21 Algorithm\Debug\Algorithm.exe
............此处省略10个文件信息
相关资源
- Reinforcement learning and dynamic programming
- 动态规划算法经典例题
- 树形动态规划详细讲解
- 独立任务最优调度问题+算法设计
- dp进阶之路——邓思雨
- 关于动态规划方面的一些算法
- 算法代码回溯法,动态规划,分治法
- 图的可视化演示程序无向图最短路径
- 动态规划求解最短行驶路线问题[Flo
- 动态规划专题-清华大学IOI金牌讲座
- 最大加权区间调度问题详解
- 最少费用购物问题 动态规划
- 利用动态规划求木桩游戏
- 0-1背包问题动态规划报告.doc
- 实验2. 动态规划法求解最长公共子序
- 算法设计与分析论文动态规划的特点
- 常用动态规划状态转移方程
- 水库调度的动态规划程序
- 动态规划法,回溯法,分支限界法求
- OJ动态规划DP题目列表
- 南邮算法实验之动态规划法
- 0-1背包问题——动态规划
- 动态规划划分最小和
- 树形dp_树形动态规划_讲解PPT
- 哈工程本科算法实验-0-1背包动态规划
- lingo maxmin 动态规划问题
- 水库调度编程.rar
- 随机动态规划
- 用动态规划法解决TSP问题
- 动态规划的算法解决多段图问题
评论
共有 条评论