博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第五章上机实践报告
阅读量:4317 次
发布时间:2019-06-06

本文共 817 字,大约阅读时间需要 2 分钟。

  1. 实践题目 (工作分配问题)

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

  3. 算法描述(包括解空间,画出测试样例的解空间树,剪枝(约束函数或限界函数)方法描述)

解空间:解空间为{x1,x2,x3,······,xn},其中xi=1,2,3,4···,n,表示第i个人安排的工作号。

解空间树:测试样例工作数为3,解空间树如下:

剪枝方法:

  约束条件:该工作是否已经被分配。

  限界函数:当前工作花费是否大于最优花费,

代码:

#include
using namespace std;#define N 1000int cost[N][N];int isC[N] = {
0};int n;int scost;void Backstrack(int i, int c) { if(c > scost) return; if(i == n) { if(c < scost) scost=c; return; } for(int j=0;j
>n; for(int i=0;i
>cost[i][j]; } } scost = N; Backstrack(0,0); cout<

 

  心得体会(对本次实践收获及疑惑进行总结)

    正确理解问题涉及的剪枝方法(限界函数,约束条件),回溯法就比较容易解决。不过在做题的时候一下子比较难确定好剪枝方法,或者说,确定之后不怎么会用代码实现。

转载于:https://www.cnblogs.com/fine-five/p/10165188.html

你可能感兴趣的文章
hibernate
查看>>
appium环境安装
查看>>
uva 10859
查看>>
ssm整合-动态项目-day13
查看>>
Visual Studio Debug
查看>>
Souerce 之 图片格式
查看>>
PD 之 连接数据库并导出数据及生成PDM文件
查看>>
Java&nbsp;IO&nbsp;操作
查看>>
SharePoint 2010 Warmup server script
查看>>
单变量微积分笔记6——线性近似和二阶近似
查看>>
补几天前的读书笔记
查看>>
HDU 1829/POJ 2492 A Bug's Life
查看>>
[UOJ UR#16]破坏发射台
查看>>
修改spring boot 启动logo
查看>>
《Android深度探索》第六章心得体会
查看>>
jQuery绑定键盘事件
查看>>
java中的for嵌套(一个好例子)
查看>>
MathML
查看>>
SQL 排名函数
查看>>
IIS与ApplicationPool重启检测自动化解决方案
查看>>