最优服务次序问题

设有n个顾客同时等待同一项服务。顾客i需要的服务时间为ti,1<=iv=n 应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间 是n个顾客等待服务时间的总和除以 n。

参考答案

一、最优服务次序问题

二、运行环境(软、硬件环境)

运行软件:Window7 64位

硬件:华硕PC机

编写程序:C++语言

编译环境:VC++6.0

三、算法设计的思想

首先,要使n个顾客平均等待时间最小,即为:让 n个顾客等待服务时间总 和最小。因为,平均等待时间=等待服务时间总和/n。

接着,由于每个顾客i的服务时间为ti,要实现等待服务时间总和最小,应 该尽可能安排ti值小的顾客,进行服务。

因此,本题属于局部最优的设计问题,即为贪心算法。

四、算法的流程图

五、算法设计分析

假设原问题的时间为T,已经知道了某个最优服务系列,最优解为min={t(1), t(2),……,t(n)}(其中t(i)为第i个客户需要的服务时间),那么每个客户需要的 等待是时间为:

T(1)=t(1);

T(2)=t(1)+t(2);

T(n)=t(1)+t(2)+……+t(n);

那么,总的等待时间,即为最优解

T min=n*t(1)+(n-1)*t(2)+(n-2)*t(3)……+(n+1-i)*t(i)+……+2*t( n-1)+1*t( n);

由于,平均等待时间是n个顾客等待时间总和除以n,则本题转化为求使得 顾客等待时间总和最小的服务次序问题。

六、源代码

#includevfstream . h>

#include

#include

#include

long n=-1 ;//顾客数为n

long *wait ;〃顾客各自等待时间wait

void in putData ()

{〃输入数据n,等待时间wait

ifstream fin ;

fin . open(*input . txt ,‘ los::nocreate);

if(!fi n){

cout<< “ File Open ErroF<

return;

}

fin?n ;

wait==new long[n];

for(1ong i=0 ; i

{

fin>>wait[i];

)

fin . close0;

}

void ShellSort(lo ng *x)

(//Shell排序,实现数据从小到大排序

long i , j, temp. gap=n/2;

while(gap>0){

for(i=gap ; i

j=i-gap ;

while(j>=0){

if(x[j]>x[j+gap])

{

temp=x[j] ; x[j]=x[j+gap] ; x[j+gap]=temp ;〃实现大小交换

j=j-gap ;

}

else{j=-1 ; }

}

}

gap=gap/ 2 ;

}

}

/ **

函数名:AveWaitO

描述:计算平均等待时问

参数:各顾客等待时间

** / double AveWait(lo ng *x)

{

double ave=0.0;

ShellSort(x);

for(long i=0 ; i

{

ave+=1.0*( n-i)*x[i];

}

ave/ =n ;〃求平均等待时间

retur n ave;

)

void outputData(double out)

(//输出结果

ofstream fout;

fout. open("output. txt");

fout<

<

fout. close0;

)

void mai n0

{//主调函数

inputData();

if(n !=-1)(

double avewait=AveWait(wait);

outputData(avewait):

}

}

七、运行结果分析

试验结果:

in put. txt:

12 56 22 l9 90 1002 234 33 45 97 810

output. txt:

532. 00

八、收获及体会

本题将顾客平均等待时间最小,转化为服务等待时间总和最小。利用局部最 优,通过贪心算法来解决该题。

通过本题,也更深入了解贪心算法的本质,今后对于其他类似的局部最优问 题、最优子结构问题,都可米用贪心算法解决。

最优服务次序问题算法c语言,《算法分析与设计》最优服务次序问题的答案-20210414020541.docx-原创力文档...相关推荐

  1. 常子楠主编 c语言程序设计答案,4G下的C语言程序设计教学研究-教学研究论文-教育论文(8页)-原创力文档...

    4G下的C语言程序设计教学研究 摘要:普通高等院校本科非计算机专业学生学习C语言程序设计可以培养较好的锻炼逻辑分析能力和计算思维能力.本文分析了4G环境下C语言课程教学中存在的一些问题,结合移动互联网 ...

  2. c语言程序水准路线,C++语言在水准路线简易平差中的应用实例(17页)-原创力文档...

    C语言在水准路线简易平差中的应用实例C语言在水准路线简易平差中的应用实例 PAGE C++语言在水准路线简易平差中的应用实例 [摘 要]:水准测量工作分为野外数据采集和内业计算,白天测得的大量数据,晚 ...

  3. c语言错误stray,C语言20条编程中遇到的错误提示(4页)-原创力文档

    C语言20条编程中遇到的错误提示 代码: 编译器提示错误:error: 'else' without a previous 'if' 错误原因解读:'else'的前面没有匹配的'if' 代码: 编译器 ...

  4. 蓄水池问题c语言编程,基于51单片机的蓄水池自动控制系统(35页)-原创力文档...

    广西民族大学 第二次综合课程设计报告 论文题目 : 基于 51 单片机的蓄水池自动控制系统 学 院: 物理与电子工程学院 专 业 : 自动化 年 级 : 2007 级 学 号 : 1072630101 ...

  5. 文件上传服务器jvm调优,JVM性能调优解决方案(12页)-原创力文档

    精品文档 JVM性能调优解决方案(总结) 一.引言 本文的读者是技术支持人员.阅读本文后,你将理解 jboss 的启动脚本文件 (run.sh )中有一系列的 JVM配置参数的含义,以及如何调整它们, ...

  6. 每个c语言程序写完后 都要按照,c语言基础学习小结(习题总结)(5页)-原创力文档...

    书山有路勤为径 学海无涯苦作舟 一.思考题. 1.你如何向别人解释清楚什么是编程.什么是计算机语言? 2.什么是C语言? 二.解答题. 1.用C语言编写程序:求任意两个整数的和.如果是小数的话,要求输 ...

  7. 设计计算机程序时 要考虑计算的过程,算法和程序设计练习题复习课程(6页)-原创力文档...

    算法和程序设计练习题 一.选择题: 1.使用计算机解题的步骤,以下描述正确的是:__ B__. A .正确理解题意→设计正确算法→寻找解题方法→编写程序→调试运行 B .正确理解题意→寻找解题方法→设 ...

  8. go语言服务器 行情,Go语言在证券期货行情系统中的实践(32页)-原创力文档

    Go语言在证券期货 行情系统中的实践 金大师 张泽武 目录 CONTENTS 项 目故事 行情系统 接入服务 项 目故事 l 项目启动 l 团队组建 l 项目计划 接入二级平台或交易所的数据 启动 提 ...

  9. x_html语言名词解释,第2章++XHTML标记语言(97页)-原创力文档

    第2章 XHTML标签语言 2.1 XHTML基础 2.2 段落和文字标签 2.3 列表标签 2.4 超级链接标签 2.5 插入图片标签 2.6 页面布局标签 2.7 框架标签 2.8 表单标签 2. ...

最新文章

  1. 数字双胞胎技术和物联网如何帮助企业取得成功
  2. Matlab画地球剖面图,分享用matlab显示地震记录的波形变面积图
  3. lunix系统安装及分区补充安装包
  4. Python 的运算符
  5. 深度学总结:CNN Decoder, Upsampling的处理
  6. 数据中心节能制冷---冷却塔帮忙
  7. 下载丨10月数据库技术通讯:HAIP在两个私网网卡上发生互换,导致ASM实例启动失败...
  8. 动态加载网上或者本地场景的后续
  9. 菜鸟学Linux 第079篇笔记 mysql备份lvm
  10. numpy数组及处理:效率对比
  11. java非静态内部类如何创建对象实例
  12. Java HTTPS客户端如何处理证书
  13. c语言 取结构体地址,结构体赋值,对用不用取地址符有些困惑?
  14. dbcp 出现的connection is closed的问题
  15. 深度学习实战-图像风格迁移
  16. Mac中搜狗输入法在各应用中默认中英文状态
  17. java @Scheduled注解执行定时任务
  18. Shell--如何定义及遍历数组、字符串数组【工作笔记】
  19. 如何通过cmd开一个本地服务器
  20. 嵌入式实践教程--ASOC之Codec

热门文章

  1. JSP基础语法-scriptlet(小脚本)
  2. 日记侠:如何快速提升文案写作水平?
  3. P40首发鸿蒙,华为P40 Pro基本确认:2020年的国产之光,首发国产鸿蒙系统
  4. 欧冠比赛数据集(梅西不哭-离开巴萨也可能再创巅峰)
  5. 强制垃圾分类是社会治理的必要手段(转自中国文明网
  6. 2021年R1快开门式压力容器操作考试报名及R1快开门式压力容器操作模拟考试题
  7. PS日期,天数的处理函数
  8. 作为程序员,是选择大厂加班,还是选择小公司摸鱼打卡?
  9. SSE Instructions
  10. GRASP通用职责分配软件模式