基于C语言的仓库订货系统的仿真.docx
《基于C语言的仓库订货系统的仿真.docx》由会员分享,可在线阅读,更多相关《基于C语言的仓库订货系统的仿真.docx(19页珍藏版)》请在冰豆网上搜索。
基于C语言的仓库订货系统的仿真
本科毕业论文(设计、创作)
题目:
基于C语言的仓库订货系统的仿真
学生姓名:
姜明学号:
0321002013
所在系院:
信息与通信技术系专业:
电子信息工程
入学时间:
2010年9月
导师姓名:
傅有亮//朱亮职称/学位:
副教授/硕士//讲师/硕士
导师所在单位:
完成时间:
2014年5月
安徽三联学院教务处制
基于C语言的仓库订货系统的仿真
摘要:
考虑日益复杂的库存管理成本的问题,文中运用计算机C语言仿真的方法来仿真离散的库存订货系统。
首先,该建模方法的特点是离散事件模拟系统,研究事件规划;其次,模型创建随机存储系统,基于问题的完整描述,建立一个目标函数,并给出了解决涉及随机变量的方法体系;最后,仿真造型设计,包括事件的定义,参数描述,建模的主要设计。
这篇文章的主要内容是适用于物流企业的发展和政策,以降低成本,提高盘点的效率是很重要的。
随着科学技术的不断提高,计算机科学不断发展,其强大的功能已经被人们深刻认识,它已经进入了人类社会的各个领域并发挥着越来越重要的作用。
因此,开发一个仓库订货系
统是很有必要的,具有其特有的技术意义和管理意义。
关键词:
离散系统;仿真;订货
ThesimulationofwarehouseordersystembasedonClanguage
Abstract:
Considerincreasinglyissuesofmanagementcosts,thepaper'suseofcomputersimulationmethodsinClanguageanddiscretesystemsimulationsysteminventoryorderingsystem.First,thecharacteristicsofthemodelingapproachisadiscreteeventsimulationsystemtostudyeventplanning;Second,createarandomstoragemodel,basedonacompletedescriptionoftheproblem,theestablishmentofanobjectivefunction,andgivesasolutioninvolvingrandomvariablesmethodology;Finally,simulationdesign,includingthedefinitionoftheevent,parameterdescriptions,maindesignmodeling.Themaincontentofthisarticleisapplicabletothedevelopmentoflogisticsenterprisesandpoliciestoreducecosts,improveinventoryefficiencyisveryimportant.Withthecontinuousimprovementofscienceandtechnology,computersciencecontinuestodevelop,itspowerfulfeatureshavebeendeeplyunderstandthatithasenteredintovariousfieldsofhumansocietyandplayanincreasinglyimportantrole.Therefore,thedevelopmentofawarehouseorderingsystemisnecessary,withitsuniquetechnologyandmanagerialimplications.
Keywords:
Thediscretesystem;simulation;placeanorder
目录
第一章引言1
1.1先进的国外仿真软件应用概述1
1.2所研究问题的提出2
1.3与存储相关的费用3
第二章离散随机库存系统模型4
2.1库存系统分析6
2.2参变量描述7
2.3仿真主程序设计8
2.4库存管理费的计算8
第三章系统详细设计11
3.1仿真模型与仿真流程图11
3.2程序清单13
3.3C语言编写的方案程序13
3.4输出结果16
第四章结论及展望17
致谢18
参考文献19
第一章引言
随着科学技术、信息和计算机技术尤其是快速发展的发展,数学“建模”技术的概念在不断发展和完善,从而给建模的一个明确定义也不是那么难。
但如果研究的目的不同,也就有不同形式的模型。
因此,适当的建模方法也不尽相同,分别对应于时间连续和时间离散系统的仿真建模系统。
离散变化的事件系统指的是系统中的发生的物理条件在一个随机的时间
。
两者主要的区别在于,连续系统:
每时每刻都可计算状态的变化。
离散系统的状态变化是随机的。
离散系统的状态,主要是发生在随机的时间点,而该事件的变量是离散时间变量。
该系统的动态特性不能用这种类型的数学方程微分方程来描述。
但可以用活动图或流程图来描述这类系统地行为。
所以,离散事件系统仿真的目的是系统事件本事,而不是用连续系统特性来分析物理系统的状态轨迹。
随着现代科学技术不断进步,以及科计算机软件和硬件的高速发展,仿真技术已成为分析各类现实系统地有力工具,特别是有很多有效的研究方法和强大的研发工具系统,承担不可或缺的作用。
C语言计算机仿真(Clanguagecomputersimulation)是指利用C语言术进行计算机仿真,其功能和作用是对系统进行动态仿真。
仿真中的效率模型的重复性,效益性,安全性,可靠性,控制性,可用性等性能,已经用在分析,设计,测试,评估等许多复杂的系统中
。
1.1先进的国外仿真软件应用概述
自上世纪60年代初就有国家开始开发语言建模,比较著名的有GPSS、GASP、SLAM和SIMAN等仿真语言。
近1990年以来,比较显著的建模可视化,编程和虚拟现实技术,由此开发了很多功能强大和可观的仿真软件。
我国的仿真研究和应用起于上世纪50年代左右,如今已经成功地应用于生产自动控制,物理化学的基础研究和物流系统的分析等社会的各个领域。
下面是已有仿真软件的建模主要特征:
(1)一个更好的人机界面,提供了基本的项目管理功能和输入功能;
(2)建立系统模型,逻辑和设备参数,并保存为模型文件;
(3)随机变量的输入产生、调用以及存储;
(4)最主要的仿真程序核心,包括编程和运行;
(5)模型的图形显示;
(6)数据分析和统计;
(7)仿真结果输出。
最近仿真软件充分吸收了方法学、自动控制、系统工程、计算机、人工智能等技术的优秀成果,进而得到很大的突破发展。
在运行速度,存储容量,面向对象设计,可视化和图形化界面,以及开放式的结构等都取得了巨大的进步,对系统仿真技术亦相应地产生了广泛与深刻的影响,重要模块的解决方向,计算机辅助建模,可视化、仿真系统图形界面和与其他系统面向对象的集成问题将接踵而至。
1.2所研究问题的提出
由于产品流动性很强,商业部门大多不愿意有太多的库存而影响资金流通,而且产品到货与销售不同步、不同量,因此出于客观条件约束,总要保持一定的库存储备。
如果仓库存货过多就会占用额外的存储费用;如果库存过少,就会对生产或销售造成影响,从而引起赤字问题
。
因此一个良好的库存订货系统是解决供需的一个很好的工具。
由于供给和需求是随机的,不平衡的,这就造成库存问题更加繁琐复杂化。
那么,在所需要资金最少的情况下,如何选择适当的库存方案,那就需要设计一个库存系统来解决此问题
。
以下几个方面是应用系统仿真技术针对库存系统进行的研究:
(1)在规划和系统设计中,仿真分析是通过规划和设计系统模型完成的,要关注质量评价的规划并及时调整和修改,降低系统实施风险。
(2)物料库存的控制:
通过对系统状态的物流系统仿真的各个方面的库存,动态模拟出入库和库存水平的实际情况分析,有利于实现库存系统的合理控制,科学地掌握入库和出库的时机和数量。
(3)库存成本的评估:
制造库存系统是一个复杂的动态过程,通过对整个库存过程仿真系统的仿真技术,准确地计算出的库存系统的成本,也可以建立物流,库存管理,运输政策库存成本以及控制和规划之间的联系。
(4)以某家电瓶车商店为例,仓库经理采取一种简单的订货方案,当库存量降到p台时(p称为定货点),就要向生产厂家定电瓶车,定货量为Q台(Q称为定货量)但是当某一天的需求量大于库存量时,电瓶车商店就会遭受销售损失和信誉损失。
而且如果库存量过多,将会引起保管费增加,资金流动慢,造成商店供过于求等问题。
因此如何选择一个合适的库存策略,使库存量最小,但又不会影响销售,这是在库存系统解决的主要问题。
如果现在有以下五种存货方案表示,尽量选择一个方案,使库存总成本最低。
如表1方案 。
表1.仿真中用的五种订货方案
方案编号
订货点p/辆
订货量Q/辆
方案1
125
100
方案2
150
250
方案3
125
150
方案4
175
250
方案5
175
300
这个问题的已知条件为:
A.从发出定货到收到货物需要三天时间
B.设电瓶车保管费为2.50/辆,每辆电瓶车的缺货损失为5.00元/天,每次订货费为75元。
C.假如电瓶车需求量是从0开始到99之间的随机数,且分布均匀。
D.假使原始电瓶车库存为115辆,且在第一天不需要订货。
1.3与库存相关的费用
(1)库存费:
货物从进入仓库储存开始到卖出去这段时间内所产生的费用。
(2)缺货费:
仓库由于缺货对销售的影响所产生的费用。
它的多少与缺货时间和缺货量多少有密切关系。
第二章离散随机库存系统模型
在本文中,系统仓库订货,库存变化是由于到达离散客户的需求是随机的,因此可以使用一个离散事件系统仿真方法进行分析。
离散时间系统是指离散系统状态变化的系统发生在一个有限或可数点
。
这将导致行为的状态改变被称为“事件”,并且,这样的系统是由事件驱动的,另外“事件常常发生在随机时间”,也可以被叫做随机事件,这通常是离散事件系统的随机特性
。
而建模已经应用到广泛的实际系统中,但一个离散事件模拟模型中的每个部件是相似的,这些组件具有一个逻辑结构。
在这种情况下,有助于程序编写和调试。
离散事件系统仿真技术是具有事件时间推进和事件时间安排的基本仿真机制。
如下图1所示:
系统状态:
是用特定时间来描述此系统的专题变量集。
仿真时钟:
仿真时间变量的当前值。
事件表:
在发生各类事件时,是用来储存下一次事件发生时间以及事件的属性表。
计数器:
用来储存有相关性能统计数据的各个变量。
初始化子程序:
初定仿真时间为零,仿真开始时将仿真模型初始化的子程序。
时钟推进子程序:
从事件表中确定下次事件,然后将仿真时钟推进到该事件发生的时刻。
事件处理子程序:
在事件发生时,改变系统状态、更新计数器的值,策划新的未来事件,并把新的未来事件放入事件表中的子程序
。
报告子程序:
用来计算各种所期望的性能测度的量,并在仿真结束时输出结果。
2.1库存系统分析
随机存储系统被用来研究对随机的需求,或已知问题的概率分布。
由于需求是随机的,会导致销售损失,由于缺货损失,如果商品的库存较多,造成存储成本较高,因此需要存储策略的制定科学。
有三种存储方案:
一是订货是定期的,即订货时间是每隔一段时间,并且由上期末剩余数量确定本期订货量;二是定点订货,是指库存降到确定数量时开始订货,不考虑时间周期,并且每次订货量是不变的;三是把定期订货与定点订货两者结合起来,每隔一定时间检查一次库存,看库存量还有多少,如果存储量大于s则不订货,储存量小于s则订货,订货后使得储存量达到S,也称此种策略为(s,S)策略。
随机库存系统又分为单和多时期随机库存系统两种。
单时期库存系统在单个周期只订货一次,销售不佳的情况下,若发生滞销,未售出的产品应在最后予以考虑。
在订货量与销售量相互保持独立前提下,此类订货可以反复运行。
多期库存系统是在单周期内订货多次,设当前库存量I,库存上限S,库存下限s,Z为订货量。
当前库存量超过库存下限(I>s)时,不订货(Z=0);当前库存量低于库存下限(I<s)时,订货量为Z=S-I,即货物到达后在仓库中能容得下
。
模型示意图如图所示。
图2中,1期订货,2期不订货,3期订货。
文中对多期随机库存系统进行仿真。
图2.多周期随机库存系统示意图
其订货策略为:
Z=0,I≥s
Z=S-I,I<s
式中:
z为订货量;
S为临界库存量,当S
I为月初的实际库存标准。
交货所需时间为半个月到一个月之间的随机变量,且分布是均匀的。
通常一个仿真系统存在多类事件,如果在仿真过程中同时出现多类事件发生的情况下,就执行高级别的事件过程,则不再执行低级别的事件。
本仿真系统事件级别由高到低分为4类
(1)“仿真结束”事件。
仿真周期时间不能是无限的,总有一个开始时间和结束时间,当“实验结束”事件发生后,不再检测其他事件。
(2)“订货到达”事件。
由于货物到达仓库,引起库存增加。
(3)“需求到达”事件。
用户提出货物需求,引起库存减少。
(4)“订货”事件。
每隔一定的时间间隔(本例是周,也可以是日、旬、月等)进行库存检查,决定是否订货,该事件是条件事件,只有当前库存量低于库存下限(I<s)时,才订货。
2.2.参变量描述
(1)仿真参量。
指在仿真程序开始运行时向系统输入的参数,在系统每次运行过程中这些参量的值不变,用户可根据实际情况调整这些参量的值并重新运行系统。
在程序编写过程中可作为常量处理,也可作为变量处理。
为了程序的灵活性和通用性,每次运行时输入这些参量的值,因此建议作为变量处理。
(2)仿真变量。
在程序运行过程中流程的控制、中间的结果存放以及临时结果变量。
2.3仿真主程序设计
最优订货方案的随机库存系统仿真程序是相当大的,在程序的主程序流程图设计中,实际建议分为6个子程序,即:
①仿真参数输入子程序,完成仿真变量输入;②仿真变量定义及初始化子程序,完成仿真变量的定义及初始化;③“仿真结束”事件处理子程序,完成了总成本的模拟仿真结果对事件的处理输出的计算“模拟的结束”④“订货到达”事件处理子程序,完成更新库存量、计算订货费用等有关订货到达事件的处理;⑤“需求到达”事件处理子程序,完成计算缺货损失费用、更新库存量等需求到达事件的处理;⑥“订货”事件处理子程序,完成计算货物到达时间等有关订货事件的处理
。
图3是这类库存系统图解。
图3.一个随机库存订货系统示意图
I(t)称为库存水平,即时间库存量
订货策略:
定期订货
订货量:
补足库存容量(S)
库存保证:
最低安全库存(s)
2.4库存管理费的计算
在库存系统,涉及到订货成本(用CD表示)、存储的费用(Cp表示)、缺货损失费用(以CS表示),但目标实施总成本(用CT表示),最低的目标。
总费用为各分项费用之和,公式表示如下:
CT=CD+Cp+CS
(2)各分项费用说明如下:
(1)订货费用。
订货费用包括固定费用和变动费用两部分。
固定成本是指每个订单必须支付和订单数量的独立成本,记为K;变动成本是指每件货物的成本需要支付额外的费用,由m表示,然后为每个阶段的成本,记为:
CD=K+mZ
(2)存储费用。
存储费用是指维持仓库货物的费用,它包含几个方面,占用的资金、存储费用、维护和管理费用等。
每件货物每期的存储费用,可以用h表示,只有当I(t)>0时才需要计算其存储费用是多少,计算公式为:
Cp=
(3)因缺货损失的费用。
缺货损失成本是指发生缺货情况下引起的费用,包括有利润损失的可能性,以及对顾客丧失信誉的主观费用等【3】。
每件缺货损失费用为p,只有当I(t)小于零时才可以计算因缺失损失的费用:
CS=
。
模型中各类事件的解释见表2.
表2.模型中事件和时间的定义
序号
事件名称
事件约定
仿真记录内容
1
订货到达
订货到达,库存量得到补充
订货到达时间
2
顾客需求
顾客到达的间隔时间、需求量
顾客按一定规律从库中取货
顾客到达时间周期
3
仿真结束
按照规定的仿真结束时间引发仿真的结束
仿真结束时间
4
盘点订货
对库存进行统计,并按照约束条件发出订货量,该订货量在“订货到达”事件中补充库存
盘点时间
下面三个随机变量是关于本系统的仿真
1)需求时间随机变量是指用户对商品的时间需求,根据统计数据,平均周指数分布,概率密度函数为间隔时间的变量。
2)需求量随机变量:
是指用户需求量是离散型随机变量的。
3)订货延迟时间随机变量:
是指从订货到货物入库所需要的时间
第三章系统详细设计
详细设计阶段的主要目的,以确定哪些需要是要实现一个特定的系统,在这个阶段设计工作的,必须到目标系统的精确描述。
从而编码阶段的词可以直接翻译成一个用于编写程序的编程语言的描述。
详细设计阶段的任务不是专门写程序,而是设计一个程序的“蓝图”,然后根据蓝图程序员编写实际的程序代码。
详细设计的目标不仅仅是逻辑上实现每个模块的功能,更重要的是设计一个过程,而且此过程应该尽可能简明易懂。
3.1仿真模型与仿真流程图
用计算机对每一种方案各仿真五个月,然后进行比较,从中选出费用最少的最佳库存订货方案。
仿真从第一天开始,然后一天一天地仿真,使用循环算法直到仿真150天为止。
仿真流程:
以一天时间进行仿真为例,其工作流程是货物早晨到、销售为全天、晚上开始订货。
第一,检查这天是否是预定到货日期,如果是,则现有库存量加Q,并且把预定到货量清零;否则不变。
第二,仿真随机需求量,用随机函数使新库存量变为零,将缺货损失加在总费用上。
最后,判断库存量与预定到货量总和是否低于重新订货点p,低于就需要重新订货,这时就再加一次订货费。
库存问题的仿真流程:
Y
N
Y
N
NY
图4:
.库存问题的仿真流程
3.2程序清单
先给出程序中各变量说明:
S产品库存量
Z 产品总费用
p 重新订货点
Q重新订货量
I日期
按照流程图编写程序,上机运行后得到五种库存策略的总费用
3.3C语言编写的方案程序
程序如下:
#include
#include
voidmain(void)
{
floatP[5]={125,125,150,175,175};
floatQ[5]={100,150,250,250,300};
floatS[5]={115,115,115,115,115};
floatZ[5]={0,0,0,0,0};
intT=0;
int,day[5]={0,0,0,0,0};
intx;
inti;
intYD[5]={0,0,0,0,0};
randomize();
do{
T+=1;
for(i=0;i<5;i++)
if(day[i]==T)
S[i]+=Q[i],YD[i]=0;
x=random(100);
for(i=0;i<5;i++)
{Z[i]+=0.75*S[i];
if(!
(x<=S[i]))
{Z[i]+=(x-S[i])*1.8;
S[i]=0;}
elseS[i]-=x;
if(S[i]+YD[i]<=P[i])
{YD[i]=Q[i],day[i]=T+3;
Z[i]+=75.0;
}
}
}
while(!
(T>150));
for(i=0;i<5;i++)
Printf(“%d%.2f\n”,i+1,Z[i]);
}
仿真程序清单如图5图6所示。
图5.仿真程序清单1
图6.仿真程序清单2
3.4输出结果
按照流程图编写程序,上机运行后得到五种库存策略的总费用如下所示
C程序软件对五种订货方案的仿真结果如表3所示:
表3.五种订货方案的仿真结果
方案编号
总费用/元
方案1
25040.25
方案2
17191.50
方案3
22658.25
方案4
24974.70
方案5
26793.90
比较以上五种方案的总费用,可以看出方案2最好,费用相对其他方案最低,即库存管理人员应取得每次订150辆、最低订发点为125辆电瓶车的方案。
程序运行结果的屏幕截图如图7所示。
图7.程序运行结果的屏幕截图
第四章结论及展望
本文研究了基于C语言仓库订货系统的建模仿真。
在本次论文工作期间,通过傅廷亮老师和朱老师的指导,先后查阅了有关仓库订货系统仿真的文献,对现有的订货仿真系统进行了分析。
由于需求量和需求时间均为随机变量,并且基于离散事件系统仿真原理,以事件调度法推进仿真时钟,建立了库存系统的仿真模型。
使用面向对象的开发工具C语言实现仿真,开发出相应的仓库订货仿真系统。
在库存订货的各个方面仿真技术都起着重要的作用。
一方面,在研究方面,它有助于库存模型的分析理解及建模。
由于建立的仿真模型要考虑多种复杂因素,例如参数和结构上的随机性,对评价现有策略具有很大适用性,并且还可以解决其它研究方法相对较困难的问题。
另一方面,就是在实际应用中,对自己设计的方案可以进行仿真,并根据仿真结果进行优化设计,得到最优的仓库订货方案。
另外库存系统仿真具有很好的动态适应性,可以解决系统不确定和复杂的因素,有利于降低供应链的管理成本,提高仓库订货效率,因此无论在理论研究还是在实际应用中都具有很大作用。
致谢
本课题及论文是在老师们的热情悉心指导和帮助下完成的,在设计期间老师帮助我收集诸多实用的文献资料,理清设计思路,指导操作方法,并对我所做的课题提出有效的改进方案。
老师热爱学生、充满智慧、负责的态度和在自己领域内的专业精神让我收获颇多。
同时,我要感谢学校为我们提供了这么好的学习环境,提供实验室和机器,搭建了一个完美的实验平台,为我们安排指导老师,使我们能够在老师的指导帮助下完成设计。
更要感谢学院与老师我的毕业设计所提供的巨大帮助和关爱。
最后,感谢同学们对于我生活、学习上的帮助,以及毕业设计论文写作过程中的指导和意见。
最后,要谢谢家人给我的无条件的支持,使我能安心完成学业。
参考文献
[1]傅廷亮--计算机仿真技术中国科学技术大学出版社
[2]吴重光---仿真技术京:
化学工业出版社,2000
[3]杨肇夏.计算机模拟及其应用[M].北京:
中国铁道出版社,1999
[4]王子才.仿真科学的发展及形成[J].系统仿真学报,20055
(2):
4