- 11
- 0
- 约9.31千字
- 约 6页
- 2016-10-16 发布于贵州
- 举报
算法分析与设计第6章实验
西南大学
实 验 报 告
《算法设计与分析》课程
2014-2015学年度第1学期
《算法设计与分析》课程实验报告(五)
实验题目 分支限界法——单源最短路径问题 实验时间 第12周 实验目的及要求
理解分支限界法的剪枝搜索策略;
掌握分支限界法的算法框架;
通过上机操作掌握分支限界法的解题步骤:?在问题的边带权的解空间树中进行广度优先搜索;找一个叶结点使其对应路径的权最小(最大)?;当搜索到达一个扩展结点时,一次性扩展它的所有儿子?;将满足约束条件且最小耗费函数(目标函数限界的儿子,插入活结点表中;?从活结点表中取下一结点同样扩展直到找到所需的解或活动结点表为空为止;?
二、实验内容、过程和结果(实验主要内容的介绍、主要的操作步骤、程序代码和测试数据及实验结果)
问题描述:
在下图所给的有向图G中,每一边都有一个非负边权。,求图G的从源顶点s到目标顶点t之间的最短路径问题;
实验原理:
解单源最短路径问题的优先队列式分支限界法用一极小堆来存储活结点表。其优先级是结点所对应的当前路长,算法从图G的源顶点s和空优先队列开始。结点s被扩展后,它的儿子结点被依次插入堆中,算法每次从堆中取出具有最小当前路长的结点作为当前扩展结点,并依次检查与当前扩展结点相邻的所有顶点,如果从当前扩展结点i到j有边可达,且从源出发,途经i再到j的所相应路径长度,小于当前最优路径长度,则将该顶点作为活结点插入到活结点优先队列中,结点扩展过程一直继续到活结点优先队列为空时为止。
算法实现代码:
#includeiostream
using namespace std;
const int size = 100;
const int inf = 5000; //两点距离上界
//测试参数
const int n = 6; //图顶点个数加1
int prev[n]; //图的前驱顶点
int dist[] = {0,0,5000,5000,5000,5000}; //最短距离数组
int c[n][n] = {{0,0,0,0,0,0},{0,0,2,3,5000,5000}, //图的邻接矩阵
{0,5000,0,1,2,5000},{0,5000,5000,0,9,2},
{0,5000,5000,5000,0,2},{0,5000,5000,5000,5000,0}};
class MinHeapNode
{
public :
int i; //顶点编号
int length; //当前路长
};
//循环队列
class CirQueue
{
private:
int front,rear;
MinHeapNode data[size];
public:
CirQueue()
{
front = rear = 0;
}
//元素入队操作
void queryIn(MinHeapNode e)
{
if((rear +1)%size != front)
{
rear = (rear+1)%size; //队尾指针在循环意义下加1
data[rear] = e; //在队尾插入元素
}
}
//元素出队操作
MinHeapNode queryOut()
{
if(rear != front)
{
front = (front+1)%size; //队列在循环意义下加1
return data[front];
}
}
//读取队头元素,但不出队
MinHeapNode getQuery()
{
if(rear != front)
{
return data[(front+1)%size];
}
}
//判断队列是否为空
bool empty()
{
return front == rear;
}
//判断队列是否为满
bool full()
{
return (rear +1)%size == front;
}
};//CirQueue结束
//图的表示
class Graph
{
public:
//单源最短路径问题的优先队列式分支限界法
void shortestPath(int v)
{//创建队列
CirQueue qq;
//定义源为初始扩展结点
MinHeapNode e;
e.i = v;
e.length = 0;
dist[v] = 0;
您可能关注的文档
- 第四章图形认识步1--3节专项练习六.doc
- 第四章手机功能路分析.doc
- 第四章电子技术验讲义.doc
- 第四章第1节 质跨膜运输实例.doc
- 第四章第一节基指导蛋白质的合成(第1课时)导学案.doc
- 第四章第二节 角函数的图象和性质及三角恒等变换.doc
- 第四章课后习题仅供参考).doc
- 第四篇第二章第节 DPC Immulite 发光免疫分.doc
- 第四节 压制动传动装置.doc
- 第四节 生命中基础有机化学物质.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 毕业论文(设计)-小型液压升降平台机械工程及自动化.doc VIP
- 在线网课学习课堂《现场生命急救知识与技能(南昌大学 )》单元测试考核答案.docx VIP
- 洛可可风格建筑.ppt.ppt VIP
- 鳞状细胞癌学习课件.pptx VIP
- 国企优化整合方案汇编.docx VIP
- 《农机电器设备使用维护》课件——项目一:农机电气系统基础.pptx VIP
- 开工第一课春节复工安全生产培训ppt.pptx VIP
- 宝可梦 Let's Go!皮卡丘1.02版switch大气层系统游戏修改代码.docx VIP
- 《农机电器设备使用维护》课件——农机电气系统的组成及特点.pptx VIP
- 工伤职工停工留薪期分类目录模板范本.pdf VIP
原创力文档

文档评论(0)