- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分派问题的回溯算法与实现
期
末
考
查
设计科目: 算法设计与分析
设计名称: 分派问题的回溯算法与实现
姓名:
学号:
序号:
班级:
分派问题的回溯算法与实现
一、 期末考查题目
分派问题: 给n个人分派n件工作, 把工作j分派给第i个人的成本cost(i, j), 设计、编程、测试回溯算法, 在给每个人分派一件不同工作的情况下使得总成本最小。
二、问题分析
回溯法原理分析
回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再的技术为回溯法可用回溯法求解的问题P,通常要能表达为:对于已知的由n元组(x1,x2,…xn)组成的一个状态空间E={(x1,x2,…,xn)∣xi∈Si ,i=1,2,…,n},给定关于n元组中的一个分量的一个约束集D,要求E中满足D的全部约束条件的所有n元组。其中Si是分量xi的定义域,且 |Si| 有限,i=1,2,…,n。我们称E中满足D的全部约束条件的任一n元组为问题P的一个解。
功能:用回溯法得可行解并选最优解。
树中的节点:求解过程的一个状态
树中的边:标示 xi 的一个可能的值
解向量: 由根节点到任意叶节点的路径定义
解空间:由根节点到所有叶节点的路径定义
答案节点:求出最优解的状态
回溯法求解的基本思想:
基本任务:
1) 根据问题特点设计状态空间树
2) 逐个地生成问题状态
3) 确定问题状态是否是解状态
4) 确定解状态是否是答案状态
规范函数:
int FIND(int k)
{ int i;
for(i=0; ik; i++)
if(x[i]==x[k])
return 0;
return 1;
}
搜索过程:
先深度搜索记录搜索的各节点的成本和s再与os比较如果s比os小,将s赋值给os,并将搜索到的节点赋给y[i],当深度搜索结束,返回上一个节点继续搜索;如此循环,直到搜索搜索结束。Y[i]即为所求的答案节点。
1、主要数据类型与变量
int sum; // 表示在分派任务过程中每成功分派一个累计成本;
int x[n]; // 记录每成功分派任务给的人员;
int y[n]; // 记录分派任务时任务分派所给的人员所得最小成本;
int SACNF();// 输入人员和任务表
int PRINTF();//输出人员和任务表
int FIND(int k) //规范函数,判断任务k是否可以分给x[k]号人员。
void TASK() //用回溯法得可行解并选最优解。
int ARRANGE();//输出查找后分配的对应表
2、源程序
#includestdio.h
#define N 5
int a[N][N];
int x[N],y[N];
int min=100;
SCANF()
{ int i,j;
for(i=0;iN;i++)
{
for(j=0;jN;j++)
{
scanf(%d,a[i][j]);
}
}
}
PRINTF()
{
int i,j;
for(i=0;iN;i++)
{
for(j=0;jN;j++)
{
printf(%d ,a[i][j]);
}
printf(\n);
}
}
FIND(k)
{ int i;
for(i=0; ik; i++)
if(x[i]==x[k]) return 0;
return 1;
}
TASK()
{ int k=0,sum,i;
x[k]=-1;
while(k=0)
{ x[k]++;
while((x[k]N) (!FIND(k)))
x[k]++;
if(x[k]N)
{
if(kN-1)
{
k=k+1;
x[k]=-1;
您可能关注的文档
- 六11_1DCGY.ppt
- 六5下期班队工作计划.doc
- 六安红街市场调查方案.doc
- 公民政治参与的制度化分析.doc
- 党员远程教育卫星模式站点培训教程.doc
- 六年级上册期末复习(三).doc
- 六年级数学质量检测2.doc
- 六年级第一学期数学易错题汇编.doc
- 六年级期中试卷(白沙).doc
- 六年级数学(上)综合练习.doc
- FAIR 数据共享指导原则详解 _ 【官网】探码科技.pdf
- 非结构化数据管理与 AI Ready 数据准备白皮书预览版 _ Baklib.pdf
- 广东省惠阳市马安中学2023-2024学年中考数学五模试卷含解析.doc
- 广东省广州四中学2023-2024学年中考三模数学试题含解析.doc
- 广东省东莞市虎门汇英校2024年中考联考数学试题含解析.doc
- 广东省佛山市顺德区市级名校2023-2024学年中考数学适应性模拟试题含解析.doc
- 广东省高州市九校联考2024年毕业升学考试模拟卷数学卷含解析.doc
- 广东省东莞市五校2024届中考数学仿真试卷含解析.doc
- 广东省惠州光正实验2023-2024学年中考数学适应性模拟试题含解析.doc
- 广东省东莞市中学堂星晨校2024届中考联考数学试卷含解析.doc
文档评论(0)