数据结构课程设计报告设计题目:学校超市选址问题专业班级学生学号指导教师起止时间 2009
28~2009
31 2009 年秋季学期《数据结构》课程设计第 1 页1 1、问题描述对于某一学校超市,其他各单位到其的距离不同,同时各单位人员去超市的频度也不同
请为超市选址,要求实现总体最优
2、需求分析核心问题 :求最短路径 ( 选址的要求就是超市到各单位权值之和最少) 数据模型(逻辑结构):带权有向图 ( 权值计算 : 距离 * 频度 ) 存储结构 : typedef struct { string vexs[MAX_VERTEX_SIZE]; int arcs[MAX_VERTEX_SIZE][MAX_VERTEX_SIZE]; int vexnum;// ,arcnum; }MGraph; 核心算法 : Floyd算法 (弗洛伊德算法 - 每一对顶点之间的最短路径) 输入数据 :各单位名称,距离,频度,单位个数.输出数据 :所选单位名称.总体思路 :如果超市是要选在某个单位,那么先用 floyd算法得出各顶点间的最短距离/ 最小权值
假设顶点个数有n 个,那么就得到n*n 的一张表格, arcs(i,j)表示 i 单位到 j 单位的最短距离/ 最小权值 , 这张表格中和最小的那一行(假设为第 t 行) ,那么超市选在t 单位处就是最优解
3、开发环境1
硬件环境: PC兼容机2
软件环境: DEV-C++53
操作系统: Windows XP4、算法设计思想Floyd 算法利用动态规划思想,通过把问题分解为子问题来解决任意两点间的最短路径问题
设G=(V, E, w)是一个带权有向图,其边V={v1, v2, ⋯, vn}
对于 k≤n,考虑其结点V 的一个子集
对于 V 中任何两个结点vi 、vj ,考虑从 vi 到 vj 的中间结点都在vk 中的所有路径