《算法设计》课程报告最小重量机器设计问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《算法设计》课程报告
课题名称:算法设计
课题负责人名(学号): --- 同组成员名单(角色): ---
指导教师: ---
评阅成绩:
评阅意见:
提交报告时间:2014年 6 月 17 日
最小重量机器设计问题
计算机科学与技术专业
学生-- 指导老师---
[题目描述] 设某一机器由n 个部件组成,每一种部件都可以从m 个不同的供应商处购得。

高wij 是从供应商j 处购得的部件i 的重量,cij 是相应的价格。

试设计一个算法,给出总价格不超过 c 的最小重量机器设计。

编程任务:对于给定的机器部件重量和机器部件价格,编程计算总价
格不超过 d 的最小重量机器设计。

数据输入:由文件给出输入数据。

第一行有 3 个正整数n,
m 和d。

接正业的2n 行,每行n 个数。

前n 行是c,后n 行是w。

结果输出:将计算出的最小重量,以及每个部件的供应商输出到文件。

输入文件示例输出文件示例
3 3
4 4
1 2 3 1 3 1
3 2 1
2 2 2
1 2 3
3 2 1
2 2 2
[算法分析]
采用回溯算法和分支定界法分别实现,对于回溯法,采用深度优先搜索对子集树进行剪枝,剪枝条件是当前的总费用不超过总费用;对于分支定界法,采用按照层次遍历对子集树进行剪枝,并将每层的结点按照重量由小到大进行排序,将相应下标保存在二维数组s中,以便构造最优解。

两种算法是时间复杂度都是O(m^n) ,空间复杂度均为O(nm),但由于分支定界法在已经排好序的序列中查找,因此查找到的第一个解即为最优解,理论上来说,时间效率会比回溯法高。

[程序实现]
回溯法代码
#include <iostream>
#include <>
#include <fstream>
#include <vector>
#include <>
#include <>
using namespace std;
#define INF 9
#define MAXSIZE 100+1
int cur_solution[MAXSIZE];
int solution[MAXSIZE];
int w[MAXSIZE][MAXSIZE];
算机算法设计与分析.--3版.--北京:电子工业出版社。

相关文档
最新文档