【qt小系统】通过qt折线图实现论文内容-快餐店排队效能分析

news2024/12/25 10:59:08

在这里插入图片描述

摘要:
商户收银需求与收银能力不匹配,是一个普遍问题,高峰不足/平常过剩。参考论文《混合制排队模型下中式快餐店排队系统的优化_荣艳蕊.pdf》,本文主要使用QT5、QtChart等完成了基于以上论文模型的关于排队模型优化的图表对比功能,其中涉的数据公式计算使用C++完成。
运用运筹学中混合制排队模型对某中式快餐店排队系统进行优化, 在常规优化方案的基础上 提出进一步的优化方案。
通过优化不仅使该店降低了服务成本, 提高了服务效率, 而且增强了顾客满意度, 增加了经济效益。
根据运筹学中的排队论对中式快餐店作出的技术性定量分析, 通过建立数学模型来减少平均等待时间。
实现了以较低投入成本获得较高顾客满意度的排队优化目标, 从而带来直接的经济效益, 为饭店顾客排队系统优化提供了一个思路。
文中源码文件【获取方式】:关注公众号:利哥AI实例探险, 给公众号发送 “qt折线图”
获取下载方式,关注发送关键字即可获取下载方式,无套路。由于本人能力有限,难免有疏漏之处。

原文链接:通过qt折线图实现论文内容-快餐店排队效能分析

1. 系统演示

请添加图片描述

2. 基本介绍

排队论是研究排队系统( 又称随机服务系统) 的数学理论和方法, 是运筹学的一个重要分支。 它是通过研究各种服务系统的排队现象, 解决服务系统最优设计和最优化控制的一门科学。
根据运筹学中的排队论对中式快餐店作出的技术性定量分析, 通过建立数学模型来减少平均等待时间。 实现了以较低投入成本获得较高顾客满意度的排队优化目标, 从而带来直接的经济效益, 为饭店顾客排队系统优化提供了一个思路。
[图片]

可根据以下公式计算出排队系统的服务指标( 其中λ为单位时间内平均的顾客数即平均到达率, μ为单位时间内服务完的顾客数即平均服务率, P0 为系统服务台空闲的概率, PK 为系统处于K 状态顾客不能再进入的概率即顾客损失率, λe 为实际平均到达率即单位时间内实际可进入系统的顾客平均数) :
[图片]

3. 理论模型

适用运筹学中排队论中的:混合制 M/M/n/m/∞ 模型,n=收银台数,m=座位人数

  • 假设条件:
    1. 菜品性价比高、顾客流量充足,高峰期明显。客流分布:泊松,收银分布:负指数。
    2. λ=平均到达率(顾客到达量 人/分)。μ=平均服务率(收银速度 人/分 );平均客单价KD。
    3. ρ = λ/μ,收银台空闲概率 Pk =ρ^k* (1- ρ) / [1-ρ^(m+1)] ; k=0,1,2, ; 收银员成本CB。
    4. 排队长度 Lq = ρ /(1-ρ ) - (m+1)*ρ((m+1)]/【1-ρ)(m+1)】- (1-P0);
    5. 顾客等待时间 Wq = Lq/ [λ (1-Pm)];当Wq超过T(10分钟)时,顾客就会流失。
  • 问题:配备多少收银台n,商户利润是最大化的?
    商户案例:
  • 相关参数:
    • 高峰期(11:30–12:30)60分,m=35桌*4人/桌=140人,打包比例7.8%。平均排队6分钟,最长48人。
    • 顾客买单后堂食时间18.4分钟(翻台率3.3次/60分),λ = 16人/分,平均客单价KD=22.1元。
    • 收银员:收银速度 RS = 3.5人/分, 收银员数量 RN人=1.3(0.3为经理),工资 GZ = 5000元/月。
    • 机器:收银速度 JS = 2.6人/分,机器人数量 JN台=2,租金 ZJ = 2500元/月,人工协助率 α= 20%。
    • μ = RS( RN - JNα)+ JS*JN = 8.35
  • 测算结果:平均排队等待时间 8.4分钟,排队长度70人,与实际检验结果相近。

4. 核心代码

可以根据核心代码自行编码调试,或下载源码修改调试:

void Init(){
        chart = new QChart();
    chart->setTitle("横轴: 店面桌数(按4人/桌计), 纵轴: 排队等待时间(分钟)");
    axisX = new QValueAxis;
    axisX->setRange(12, 50); //设置范围
    axisX->setLabelFormat("%u"); //设置刻度的格式
    axisX->setGridLineVisible(true); //网格线可见
    axisX->setTickCount(50-12); //设置多少格
    axisX->setMinorTickCount(1); //设置每格小刻度线的数目
    //
    axisY = new QValueAxis;
    axisY->setRange(0, 60); //设置范围
    axisY->setLabelFormat("%u"); //设置刻度的格式
    axisY->setGridLineVisible(true); //网格线可见
    axisY->setTickCount(7); //设置多少格
    axisY->setMinorTickCount(10); //设置每格小刻度线的数目
    //
    chartView = new QChartView(chart);
    chartView->setRenderHint(QPainter::Antialiasing);
    ui->horizontalLayout->addWidget(chartView);
    //
    ui->lineEdit_ftl->setPlaceholderText("翻台率");
    ui->lineEdit_dbl->setPlaceholderText("1-打包比例");
    //
    QLineSeries *seriesLine = new QLineSeries();
    seriesLine->setName("分割线");
    seriesLine->setColor(QColor(255, 255, 0));
    for(int i=12; i<=50; i++){
        seriesLine->append(i, 10);
    }
    chart->addSeries(seriesLine);
    chart->setAxisX(axisX, seriesLine);
    chart->setAxisY(axisY, seriesLine);
}
void Dialog::on_pushButton_clicked()
{
    double rgsd = ui->lineEdit_rgsd->text().toDouble();
    double rgsl = ui->lineEdit_rgsl->text().toDouble();
    double jqsd = ui->lineEdit_jqsd->text().toDouble();
    double jqrsl = ui->lineEdit_jqrsl->text().toDouble();
    double rgxzl = ui->lineEdit_rgxzl->text().toDouble();
    double miu = rgsd*(rgsl - jqrsl * rgxzl) + jqsd*jqrsl;

    double ftl = ui->lineEdit_ftl->text().toDouble(); //翻台率3
    double dbl = ui->lineEdit_dbl->text().toDouble(); //除了打包率
    int gfq = ui->lineEdit_gfq->text().toDouble(); //高峰期时间

    int RobotCount = jqrsl;

    int nRowCount = ui->tableWidget->rowCount();
    QLineSeries *series = new QLineSeries();
    series->setName(QString("%1台").arg(RobotCount));
    QString Log;
    for(int i=0; i<nRowCount; i++){
        int zhuoshu = ui->tableWidget->item(i, 0)->text().toInt();
        int m = zhuoshu*4;

        double lamada = m*ftl/dbl/gfq;

        double rou = lamada/miu;
        double P0 = (1 - rou) / (1 - pow(rou, m+1));
        double Pm = pow(rou, m) * P0;
        Pm = QString::number(Pm, 'f', 2).toDouble();
        double lamada_shiji = (1 - Pm)*lamada;
        double duichangL = rou/(1 - rou) - (m + 1) * pow(rou, m+1) / (1 - pow(rou, m+1));
        double pduichangL = fabs(duichangL - (1 - P0));
        double dengdaijiashouyinshijian = duichangL / lamada_shiji;
        double dengdaishijian = pduichangL / lamada_shiji;
        QString Wq = QString::number(dengdaishijian, 'f', 2);
        qDebug() << "桌数=" << zhuoshu << "台数=" << RobotCount
                 << lamada << miu << rou << P0 << Pm << lamada_shiji << duichangL
                 << pduichangL << dengdaijiashouyinshijian << dengdaishijian
                 << Wq;
        QString szLog = QString("%1,%2").arg(zhuoshu).arg(Wq);
        Log.append(szLog).append("\n");

        series->append(zhuoshu, Wq.toDouble());
    }
    chart->addSeries(series);
    chart->setAxisX(axisX, series);
    chart->setAxisY(axisY, series);
//    chart->createDefaultAxes();
    ui->textEdit->setText(Log);
}

往期文章回顾

【深度学习】物体检测/实例分割/物体追踪/姿态估计/定向边框/图像分类检测演示系统【含源码】【深度学习】YOLOV8数据标注及模型训练方法整体流程介绍及演示
【深度学习】行人跌倒行为检测软件系统【深度学习】火灾检测软件系统
【深度学习】吸烟行为检测软件系统【深度学习】数竹签演示软件系统
【深度学习】菜品目标检测软件系统QT5集成FTP实现文件及文件夹的下载
QT集成开源日志库示例python源码加密之Cython方案简单示例
【python源码加密】Cython针对python工程多层级目录处理办法http服务网络请求如何确保数据安全(含python示例源码)
http请求数据传输时确保完整性和保密性方案(含源码)QT集成百度在线地图JS API实现交互及特定效果
【qt小游戏】小老鼠闯迷宫小游戏(附源码)【qt小系统】传感器云平台3D散点图(附源码)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2036392.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

精品UI资源下载分享类响应式模板素材资源下载站源码

在其他网站看到的这个源码&#xff0c;感觉UI挺漂亮的&#xff0c;就搬来了。 感兴趣的自己下载后搭建下看看&#xff0c;个人感觉UI很漂亮 2024/8/10修复&#xff1a; 标签页面显示的文章跳转链接不正确 源码下载&#xff1a;https://download.csdn.net/download/m0_66047…

开源免费的表单收集系统TDuck

TDuck&#xff08;填鸭表单&#xff09;是一款开源免费的表单收集系统&#xff0c;它基于Apache 2.0协议开源&#xff0c;用户可以随时下载源码&#xff0c;自由修改和定制&#xff0c;也可以参与到项目的贡献和反馈中。TDuck表单系统不仅支持私有化部署&#xff0c;还提供了丰…

uniapp预览图片uni.previewImage图片放大

<image v-if"file.image!" :src"file.image" click"previewImage(file.image)"></image>file: {image: ,status: 1}, // 预览 图片previewImage() {uni.previewImage({current: 1,urls: [this.img] // 是个 数组 单张的&#xff08…

【产品那些事】什么是应用程序安全态势管理(ASPM)?

文章目录 前言当前应用安全(AppSec)推进遇到的问题关于ASPM的定义 为什么需要ASPM&#xff1a;B端客户核心需求ASPM产品关键策略理想状态下的ASPMASPM与CSPM的区别国内外产品参考 前言 随着现代软件开发实践的快速演变&#xff0c;特别是在敏捷开发和 DevOps 的推动下&#xf…

与人工智能相比,人类智能里包含有信仰

信仰是人类智能的一个重要方面&#xff0c;它影响我们的意图、动机、决策和行为。 人类智能中信仰是一种独特的因素&#xff0c;影响我们如何看待世界、做决定以及形成价值观。与此相比&#xff0c;人工智能虽然可以处理大量数据并模拟决策过程&#xff0c;但它不具备信仰、情感…

哈尔滨等保测评的政策解读与最佳实践分享

哈尔滨&#xff0c;这座北方城市&#xff0c;在数字化转型的浪潮中&#xff0c;对网络安全的重视程度日益提升。其中&#xff0c;等保测评&#xff08;等级保护测评&#xff09;作为信息安全领域的基石政策&#xff0c;正引领企业构建坚不可摧的安全防线。今天&#xff0c;就让…

[Qt][对话框][下]详细讲解

目录 1.Qt内置对话框0.有哪些1.消息对话框 QMessageBox2.颜色对话框 QColorDialog3.⽂件对话框 QFileDialog4.字体对话框 QFontDialog5.输⼊对话框 QInputDialog6.进度条对话框 QProgressDialog 1.Qt内置对话框 0.有哪些 Qt提供了多种可复⽤的对话框类型&#xff0c;即Qt标准…

媒体邀约新闻稿宣发的意义和作用?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体邀约新闻稿的宣发对于企业活动来说具有重要的意义和作用。这不仅能够提升企业的知名度和形象&#xff0c;还能扩大活动的影响力&#xff0c;增加媒体报道的机会&#xff0c;并建立积…

【基础解读】神奇宝贝多分类——Classification:Probabilistic Generative Model

背景 问题定义 尝试用Regression的方法解决Classification 尝试用概率的方式解决Classification 求一个个体被选中并来自于某一类的概率——贝叶斯 进行Classification 结果分析 模型调整——共用convariance matrix 结果分析 总结

Unity动画模块 之 简单创建一个序列帧动画

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正​ 1.什么是序列帧动画 序列帧动画简单来讲就是通过连续播放一系列静态图像&#xff0c;形成动态视觉效果的过程&#xff…

Godot《躲避小兵》实战之设置项目

通过之前的学习我们已经基本了解了godot的界面&#xff0c;知道如何创建项目以及节点。那么&#xff0c;从这一章节我们将进入godot官方给我们提供的一个2D游戏开发的小教程进行入手&#xff0c;这个游戏并不是我自己的作品&#xff0c;而是我通过学习完之后&#xff0c;对其进…

Linux-软件管理

文章目录 19. 软件管理19.1 linux软件介绍19.2 RPM包概述19.3 RPM软件包安装19.4 RPM软件包依赖问题19.5 DPKG软件包19.6 linux 软件包前端工具19.7 windows 前端工具winget19.8 linux 前端工具yum概述19.9 设置yum远程仓库19.10 yum 软件包管理19.11 epel软件仓库19.12 yum本地…

机器学习中的距离概念

距离在机器学习中应用广泛&#xff0c;包括欧式距离、曼哈顿距离、内积距离和KL距离。 下面总结一下。 机器学习中的距离 欧式距离曼哈顿距离内积距离KL距离距离作为损失函数(MSE/MAE...)欧式距离与内积距离的联系☆距离的有效性 欧式距离 欧式距离&#xff08;Euclidean Dis…

数学建模——评价决策类算法Python版(灰色关联分析、主成分分析)

一、灰色关联分析 模型原理 解题步骤 例题 某公司考虑在几个候选城市中开设新的零售店。公司收集了以下数据&#xff0c;包括候选城市的GDP、人口、交通便利程度、商业发展水平等指标。公司希望使用灰色关联分析法来评估这些指标与零售店成功可能性之间的关系&#xff0c;以…

sql注入绕过+rce

目录 1、mysql编码绕过 1.1、环境搭建 1.1.1、源码 1.1.2、数据库 1.1.3、检测环境 1.2、绕过技巧 1.2.1、直接使用admin&#xff0c;查询数据&#xff0c;发现权限被拒绝 1.2.2、加上单引号绕过了&#xff0c;但是查询不到数据 1.2.3、试试其他特殊字符&#xff0c;发…

python循环——九九乘法表(更加轻松的理解循环结构)

感受 首先&#xff0c;得明确意识到这个问题&#xff0c;就是我的循环结构学的一塌糊涂&#xff0c;完全不能很好的使用这个循环来实现各种九九乘法表达输出&#xff0c;这样的循环结构太差了&#xff0c;还需要我自己找时间来补充一下循环的使用&#xff0c;来拓宽自己的思考方…

【开端】Java 分页工具类运用

一、绪论 Java系统中&#xff0c;分页查询的场景随处可见&#xff0c;本节介com.baomidou.mybatisplus.core.metadata.IPage;来分页的工具类 二、分页工具类 public class PageUtils implements Serializable { private static final long serialVersionUID 1L; /**…

服务器安装哪吒面板详细教程

本文长期更新地址&#xff1a; 服务器安装哪吒面板详细教程-星零岁的博客https://blog.0xwl.com/13568.html 注&#xff1a;本文中部分内容源自网络&#xff0c;第四步中部分来自本人曾经文章&#xff1a;云服务器安装配置宝塔面板并安装基础运行环境教程-星零岁的博客 今天来讲…

Dubbo 快速掌握 这篇就够了

1. Dubbo概述 Dubbo 是一款高性能、轻量级的开源Java RPC框架&#xff0c;由阿里巴巴公司开发并在2011年开源。它主要用于解决分布式系统中服务之间的通信问题&#xff0c;支持多种协议&#xff0c;如Dubbo、HTTP、Hessian等&#xff0c;具有服务注册、服务发现、负载均衡、故…

基于大语言模型抽取文本中的实体和关系

在基于大语言模型图数据库存储中&#xff0c;要从文本中提取实体&#xff0c;实体属性和关系。 实体关系抽取是从文本中的句子里抽取出一对实体并给出实体间关系的任务。 该任务的输入是一句话&#xff0c;输出是一个spo三元组&#xff08;subject-predicate-object&#xff…