- 0
- 0
- 约8.27千字
- 约 10页
- 2016-10-10 发布于贵州
- 举报
软件工程课程设报告背包问题11
2012-2013学年第1学期“软件工程”课程设计报告
学院/系 信息工程学院计算机科学系 专业 计算机科学与技术 班级 项目名称 背包问题算法演示软件设计 组长 王帅 小组成员 王帅、张宇波、
田方、胡应国 王帅(2402090218) 主要负责代码的编写 张宇波(2402090218) 主要负责报告的书写 田方(2402090227) 主要负责报告的书写 胡应国(2402090209) 主要负责系统的测试
一、问题描述及分类
0-1背包问题:给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大?
多重背包问题:有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。
完全背包问题:有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大
我们这次课程设计要研究的内容是 0-1背包问题:在选择装入背包的物品时,对每种物品i只有两种选择,即装入背包或不装入背包。不能将物品装入背包多次,也不能只装入部分的物品。背包问题是一个特殊的整数规划问题
二、简介
它的主要思路是假定某人拥有大量物品,重量各不同。此人通过秘密地选择一部分物品并将它们放到背包中
来加密消息。背包中的物品总重量是公开的,所有可能的物品也是公开的,但背包中的物品是保密的。附加一定的限制条件,给出重量,而要列出可能的物品,在计算上是不可实现的。基本思路
最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。
图1
模块调用关系图如下图2
图2
流程图如下图图3:
图3
四、算法:
关键数据结构:
一个数组,一个栈。一个整型变量。
int PerWeight;// 代表每个物品的质量。
pStack pMyStack; // 回溯法时所用到的栈。
int k; // 整个运算过程中数组的索引。
关键的算法代码:
do
{
while (m_BagWeight 0 km_Count) //遍历整个数组把符合条件的数压入栈中
{
if (m_BagWeight - PerWeight[k] = 0)
{
PushStack(k);
m_BagWeight = m_BagWeight - PerWeight[k];
}
k++;
}
if (m_BagWeight == 0) //找到合适的解后进行显示处理
{
i = 0;
pNode pNodeTemp = pTop;
while (pNodeTemp != pBase) //遍历整个栈把数据得到
{
c[i] = PerWeight[pNodeTemp-DataTemp.num];
i++;
pNodeTemp = pNodeTemp-pNext;
if (pNodeTemp == NULL)
{
exit(0);
}
}
str.Format(L第%d组解:,nIndex+1);
m_List.InsertItem(nIndex,str);
CString str1;
if (i == 4)
{ str1.Format(_T(%d %d %d %d),c[i-4],c[i-3],c[i-2],c[1]);
}
if (i == 3)
{
str1.Format(_T(%d %d %d),c[i-3],c[i-2],c[i-1]);
}
if (i == 2)
{
str1.Format(_T(%d %d),c[i-2],c[i-1]);
}
//把所得的数据显示到前台List框
m_List.SetItemText(nIndex,1,str1);
memset(c,sizeof(int)*10,0);
nIndex++;
}
k = PopStack(); //把不符合的数据弹出栈。
int temp = PerWeig
您可能关注的文档
最近下载
- 黑龙江省哈尔滨市中考数学总复习二次函数.pdf VIP
- 部编人教版八年级下册语文全册课件.pptx
- 2022民用建筑暖通空调设计技术措施.docx
- 2025年江苏医药职业学院单招《数学》试题附答案详解【黄金题型】.docx VIP
- 党支部书记2025年度组织生活会个人对照检查发言材料(五个方面).docx VIP
- GTCC-009-2019 弹条Ⅰ型、Ⅱ型扣件 弹条.docx VIP
- 平面向量的坐标运算 课件.ppt VIP
- 2024年石嘴山市直遴选笔试真题汇编含答案解析(夺冠).docx VIP
- D-Z-T 0327-2019 海洋地质取样技术规程(正式版).docx VIP
- 北京北大方正软件职业技术学院《康复生理学》2025-2026学年期末试卷.doc VIP
原创力文档

文档评论(0)