算法设计与分析

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

《算法设计与分析》课程报告

课题名称:工作分配问题算法

课题负责人名(学号): XX

同组成员名单(角色):

指导教师: XX

评阅成绩:

评阅意见:

提交报告时间:2013年6 月18 日

工作分配问题算法

计算机科学与技术专业

学生XX 指导老师XX

[摘要]回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。

用回溯算法解决问题的一般步骤:

1 针对所给问题,定义问题的解空间,它至少包含问题的一个(最优)解。

2 确定易于搜索的解空间结构,使得用回溯算法方便地搜索整个解空间。

3 以深度优先的方式搜索解空间,并且在搜索过程中用剪枝函数避免无效搜索。

关键词:工作分配问题回溯算法

问题描述:设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。试设计一个算法,为每一个人都分配1 件不同的工作,并使总费用达到最小。设计一个算法,对于给定的工作费用,计算最佳工作分配方案,使总费用达到最小。

由文件input.txt给出输入数据。第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费用。将计算出的最小总费用输出到文件output.txt。例如:

input.txt output.txt

3 9

10 2 3

2 3 4

3 4 5

代码:

#include

#include

using namespace std;

ifstream fin("e:\\gongzuofenpei\\input.txt");

ofstream fout("e:\\gongzuofenpei\\output.txt");

int **cost;

bool *body;

int cur_cost;//当前花费

int min_cost;//最小花费

int n;

int output()

{

fout<

system("pause");

return 1;

}

//实现回溯

int backtrack(int t)

{

if(t>n)

{

if(cur_cost

min_cost=cur_cost;

}

else

{

for(int i=1;i<=n;i++)

{

if(body[i])

{

body[i] = false;

swap(cost[t][1],cost[t][i]);

cur_cost+=cost[t][1];

if(cur_cost

cur_cost-=cost[t][1];

body[i] = true;

swap(cost[t][1],cost[t][i]);

}

}

}

system("pause");

return 1;

}

//主函数

int main()

{

fin>>n;

cost = new int*[n+1];

for (int i=1;i<=n;i++)

cost[i] = new int[n+1];

for (int i=1;i<=n;i++)//第i个任务

for(int j=1;j<=n;j++)//第j个人

fin>>cost[i][j];

body = new bool[n+1];

for (int i=1;i<=n;i++)

body[i] = true;

//分配min_cost初值,为第i个任务分配给第i个人的总花费

min_cost = 0;

for(int i=1;i<=n;i++)

min_cost += cost[i][i];

cur_cost=0;

backtrack(1);

output();

for(int i=1;i<=n;i++)

delete cost[i];

delete cost,body;

fin.close();

fout.close();

system("pause");

return 1;

}

input.txt文件:

output.txt文件

改革开放以来,我国国民经济正逐步向着健康、……(正文用小四号宋体。行距20磅,每行34个汉字。16开纸打印。微软word软件排版。)

参考文献

[1] 张繁,蔡家楣.电子政务系统中动态工作流技术的应用.计算机工

程,2003,29(12):72-74

[2] 黎连业.网络综合布线系统与施工技术.机械工业出版社,2002

[3] 思科公司./global/CN/Products/si/casi/ca3500,

2003

[4] 联想公司./Products/channel,2003

[5] 北京领先时代科技发展有限公司./product

_silcon.htm,2003

(“参考文献”与上文空一行。“参考文献”四个字用小四号黑体。“参考文献”的正文用五号宋体。所有引用文献必须在正文中按引用顺序标引出来。)

相关文档
最新文档