第四章离散事件系统.docx

上传人:b****7 文档编号:8741123 上传时间:2023-02-01 格式:DOCX 页数:33 大小:245.01KB
下载 相关 举报
第四章离散事件系统.docx_第1页
第1页 / 共33页
第四章离散事件系统.docx_第2页
第2页 / 共33页
第四章离散事件系统.docx_第3页
第3页 / 共33页
第四章离散事件系统.docx_第4页
第4页 / 共33页
第四章离散事件系统.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

第四章离散事件系统.docx

《第四章离散事件系统.docx》由会员分享,可在线阅读,更多相关《第四章离散事件系统.docx(33页珍藏版)》请在冰豆网上搜索。

第四章离散事件系统.docx

第四章离散事件系统

第四章离散事件系统

如前所述,根据变量的性质,可分为连续事件系统和离散事件系统。

连续事件系统的状态变量随时间连续变化,其主要特征可通过微分方程描述。

离散事件系统的状态仅在离散的时间点上发生变化,而这些离散时间点一般不确定,即离散事件系统内部的状态变化是随机的,同一内部状态可以向多种状态转变,这种变化只在随机时间点发生,且在一段时间内保持不变。

系统内部状态的变化虽然遵循一定的统计规律,却很难用函数描述。

因此,离散事件系统的建模有其独特性,本章讨论离散事件系统模型及其建模方法。

第一节离散事件系统模型

一、离散事件系统的基本要素

离散事件系统的类型虽然多种多样,但它们的主要组成要素基本相同。

从仿真的角度,离散事件系统由实体(entity)、活动(activity)、资源(resource)以及控制(control)等基本要素构成(见图4-1-1)。

(一)实体(entity)

构成系统的各种成分称为实体。

实体是经过系统处理的事项。

例如产品、顾客、文件等等。

实体用诸如成本、形状、优先权、质量等特征予以定义。

实体可分为:

1.生命体(如顾客、病人等);

2.无生命体(如文件、纸币、帐单等);

3.无法感知的事物或无形物(如电话、电子邮件等)。

与实体相关的一个重要概念是属性(attributes),属性反映实体的某些性质,其集合描述实体的状态。

例如,在超市服务系统中,顾客是一个实体,性别、身高、年龄、到达时间、服务时间和离开时间等是他的属性。

一个客观实体有很多属性,对特定系统而言,并非所有属性与所研究问题有关,如顾客的性别、身高、年龄与超市服务的关系不大,则不必作为顾客的一个属性,而顾客到达时间、服务时间和离开时间是研究超市服务效率的重要依据,则是超市服务系统中的顾客属性。

(二)活动(activity)

导致系统状态发生变化的过程称为活动。

例如,对顾客的服务、对设备的一次大修、更换设备某一部件,在仿真中均属于一项活动。

活动占用一定时间和资源,直接或间接地涉及到实体。

活动可分为:

1.实体过程(如登记验票、手术、检验、装配等);

2.实体或资源运动(如铲车装卸货物、乘电梯等);

3.资源的调节、维护和补给(如机器的调试、零配件的准备等)。

(三)资源(resource)

资源是与系统状态发生变化有关的因素,是活动得以实现的资料。

资源为实施活动提供设施、设备和人员。

资源丰裕可推进实体进程。

反之,资源不足则会限制过程发生的速率而减缓进程。

资源用容量、速度、周期及可靠性等描述。

与实体一样,资源也可分为:

1.生命资源(操作人员、医生、维护保养人员等);

2.无生命资源(设备、工具、楼层、空间等);

3.无形资源(信息、电能等)。

(四)控制(control)

控制就是规定活动由何人在何时何地实施(即how,when,where),是强制系统接受指令。

控制有不同的控制水平。

从最高水平来看,控制由计划、方案和策略构成;从最低水平而言,控制规定书写程序的格式及机器控制的逻辑。

总之,控制给定系统如何运作的信息和决策逻辑。

工作顺序、生产计划、工作时间表、控制软件、任务的先后次序以及指令等均是控制的例。

二、离散事件仿真模型的结构

(一)有关术语

在系统建模与仿真中,除上述基本要素外,还将要用到一些基本术语,现分别说明如下:

1.系统状态(systemstate)

系统状态是指在某时间点对系统所有的实体、属性和活动的描述。

在仿真模型中,用一组系统状态变量描述系统在不同时刻的状态。

2.事件(event)

事件是引起系统状态发生变化的行为,可以是某个实体的产生或消失,系统实体的属性值的改变,或者是一项活动的开始或结束。

事件可分为时间事件和状态事件,前者是指依照系统的作业规则在预定时间发生的时间;后者则是指系统状态符合某种条件而发生的事件。

3.进程(process)

进程由和某类实体相关的事件及若干活动组成。

一个进程描述它所包括的事件及活动之间的相互逻辑关系和时序关系。

例如,一位顾客到达系统→排队→接受服务→服务完毕后离开系统的过程,顾客的来到,系统增加一个实体,顾客来到至接受服务前的排队导致队长的变化,接受服务的时间又因顾客的不同而不尽相同,这一切均引起系统状态的变化,因此可视为一个进程。

在此,顾客的到达、服务的开始和结束是事件,而排队及接受服务是活动,由为可见进程与事件、活动密切相关,其间的关系可用图(图4-1-2)表示。

4.仿真时钟(simulatoinclock)

仿真时间并非仿真过程的时间长度,而是系统运行所需要时间在仿真过程的表示。

仿真时钟用于表示仿真时间的变化,控制仿真过程的时序。

在连续仿真中,将连续模型离散化后,仿真事件的变化由仿真步长确定,步长可固定不变(定步长)也可变化(变步长)。

离散事件系统的状态本来就是在离散点上发生变化。

仿真时钟的推进方式(timeadvencemechanism)可分为:

固定步长时间推进机制(fixed-incrementtimeadvencemechanism)和下次事件时间推进机制(nexteventtimeadvencemechanism)。

5.规则(rule)

系统实体间、实体与仿真时钟间的相互作用或影响有一定的规则。

例如,超市服务系统中,顾客是主动实体,收银员是被动实体,服务员的状态受顾客的影响(作用),作用的规则是:

若收银员处于空闲状态,顾客到收款处则改变当前状态,使其由空闲转为忙;若收银员忙,则不对收银员起作用,而对自身起作用——顾客进入排队状态。

以上是主动实体与被动实体的作用规则。

事实上,主动实体之间、被动实体实体之间也可能产生作用。

6.环境

7.模型校核(verificationofmodel)

模型校核是确定仿真系统准确代表开发者的概念描述和涉及的过程,其目的是确保对概念模型的翻译过程的正确性。

模型校核关心设计人员是否将问题的描述转化为对模型的阐述,是否按照仿真系统应用目标和功能需求的要求正确地设计出仿真系统的模型,是否按照提供的模型正确地实现了模型。

8.模型验证(validationofmodel)

模型验证是从仿真系统应用目的出发,确定仿真系统代表真实世界的正确程度的过程,即确定系统模型是否正确描述现实系统。

模型验证关心的则是仿真系统在具体应用中有多大程度反映真实世界。

(二)离散事件仿真模型的部件

尽管真实系统千差万别决定仿真模型的多样性,但仿真模型仍有许多是相同、通用的部件。

在实际研究中,使用时间推进的离散事件仿真模型,大都有下列部件:

1.仿真时钟

仿真时钟是离散事件系统仿真的基本组成部分,是随机仿真的进程不断更新的时间推进机构。

离散事件仿真的时钟推进方式有面向事件和面向时间间隔两种,据此离散事件仿真系统的仿真时钟可分为:

(1)面向事件的仿真时钟。

仿真时钟按照预计下一离散事件将要发生的时刻,以不同的时间间隔向前推进,即仿真时钟每次都跳跃性地推进倒下一事件发生的时刻。

为此,必须将各事件按事件发生的时间先后次序排列,仿真时钟则按事件顺序发生的时刻推进。

(2)面向时间间隔的仿真时钟。

仿真时钟按照足够小的时间间隔等距推进,使每个时间间隔中基本上不会出现两个或两个以上离散事件。

为此,每次时间推进均需扫描所有活动的完成时刻,以检查在此时间间隔中有无时间发生。

一般而言,面向事件的仿真时钟多用于离散事件系统仿真,而面向时间间隔的仿真时钟既可用于连续系统仿真,也可用于离散事件系统仿真。

两者的区别主要在于仿真的效率不同。

两种时钟推进方式,可由下例说明。

【例4.1.1】某超市的收银台由两个并行窗口组成,缴款顾客按一定概率分布(如泊松分布)的时间间隔到达窗口,若两个收款窗口均空闲,则顾客任选一窗口办理缴款;若一窗口已有顾客在缴款,则到另一空闲的窗口缴款;若两个窗口均处于忙态,则刚到的顾客排入队列等待。

由于两名收款员的工作效率不同,收款的时间也不相同,为不同概率分布的的随机变量。

这是典型的并行随机服务系统,结构如图4-1-3所示。

设顾客按泊松流来到,其到达的时间间隔为A1,A2,…,Ak,…,相应的到达事件为EA1,EA2,…,EAk,…。

在收银台I和收银台II的服务时间分别为:

SW11,SW12,…,SW1k,…和SW21,SW22,…,SW2k,…,相应的服务完毕事件为EW11,EW12,…,SW1k,…和EW21,EW22,…,SW2k,…。

其中Ai,SW1i和SW2i(i=1,2,3,…)是在仿真过程中,按其概率分布产生的随机时间,因此,各项事件发生时刻均有随机性。

超市收银台服务系统中的事件及系统状态可用表4.1.1来表示:

表4.1.1超市收银台服务系统的事件及状态

事件发生时刻

离散事件

系统状态

队长(QL)

收银台I状态(EW1)

收银台II状态(EW2)

0

0

0

0

t1

EA1

0

1

0

t2

EA2

0

1

1

t3

EW11

0

0

1

t4

EA3

0

1

1

t5

EW21

0

1

0

t6

EA4

0

1

1

t7

EA5

1

1

1

t8

EA6

2

1

1

t9

EW12

1

1

1

t10

EA7

2

1

1

t11

EW22

1

1

1

以上随机服务系统的仿真,既可用面向时间的时间推进仿真时钟,也可用面向时间间隔推进的仿真时钟。

图4-1-4给出超市收银服务系统的两种仿真时钟推进方式。

对面向事件的时钟推进方式,令TNOW为仿真时间当前值,Wi为第i个顾客的排队等待时间。

仿真开始时置TNOW=0,服务台处于空闲状态,第一个顾客的到达间隔时间由仿真系统按到达过程的概率分布随机产生,若到达事件EA1的发生时刻为A1,则仿真时钟被推进到TNOW=TNOW+A1=tA1。

第一个顾客的来到将触发第二个顾客到达的事件EA2,以及第一顾客服务完毕事件EW11。

若第二名顾客到达的间隔时间为A2,则事件EA2的发生时

刻tA2=TNOW+A2。

如果第一名顾客到达后按优先规则选择收银台I付款,则W1=0,收银台I由空闲状态转为“忙态”。

第一名顾客的服务时间SW11可由收银台I的概率分布随机产生,事件EW11的发生时刻为tW11=TNOW+SW11。

可见第一个顾客到达的事件可引起两个新的未来事件EA2及EW11。

仿真时钟将推进到下一个紧接发生事件的时刻,即TNOW=min{tA2,tW11}=tA2,即EA2先发生。

类似地,事件EA2将引起事件EA3和EW21,tA3=TNOW+A3。

因为收银台II此时处于“闲态”,而收银台I处于“忙态”,因此顾客直接进入收银台II付款,收银台II由“闲态”转为“忙态”。

第二名顾客离开收银台的时间为tW21=TNOW+SW21。

随后,仿真时钟推进到下一个紧接事件的时刻,即TNOW=min{tW11,tA3,tW21}=tW11。

下一个发生的离散事件将是EW11,又将触发新的离散事件。

如此不断更新仿真时钟的当前值,使仿真时钟按照系统中随机事件发生时刻的先后顺序,跳跃前进,从而构成离散事件系统仿真中面向事件的时钟推进方式。

面向时间间隔的时钟推进方式,开始时置TNOW=0,按顾客到达过程随机产生第一个顾客到达的时间tA1,同时时钟按固定步长Δt推进,每推进一个Δt,系统扫描所有正在执行

的活动,若在此时间间隔无事件发生,则系统再推进Δt。

若在第n个Δt时间间隔有事件(就

本例而言是EA1)发生,则置TNOW=nΔt=tA1。

同样地,事件EA1的发生将触发新的事件EA2和EW11。

而仿真时钟继续以步长Δt向前推进,并不断扫描正在执行的各项活动,当有

事件发生时,将TNOW推进到该事件相应的时刻。

2.事件表(eventlist)

仿真的过程是事件的发生以及由此引起的相应活动的执行,随着仿真时钟的推进,某一随机事件的发生,必然导致系统状态发生变化,同时将引发新的未来事件。

按时间顺序可将所发生的事件类型和时间对应关系排列成一张表格,称此表为事件表。

当事件表由事件发生的时间大于当前值TNOW的事件构成时,则称为未来事件表。

未来事件表既是仿真时钟推进的依据,又是保证系统未来事件严格按时间顺序正确排列的工具。

未来事件表是离散事件系统仿真的基本组成部分。

【例4.1.2】一个单服务台排队系统(图4-1-5),顾客的来到为泊松流,服务时间为负指数分布的随机变量变量,顾客在系统中的排队规则为先到先服务(FCFS),排队长度不限。

作为一个典型的M/M/1排队系统,有两类随机离散事件:

顾客的到达事件EA和服务完成事件ED。

设当前时间为TNOW,事件产生与系统状态变化的逻辑关系,可用表4.1.2表示如下:

表4.1.2未来事件产生的逻辑关系

当前事件

系统状态

触发产生的新未来事件

未来事件时间

发生一个到达事件

顾客到达事件

服务完成事件

a

s

TNOW+a

TNOW+s

顾客到达事件

a

TNOW+a

发生一个服务事件

Q≥1

服务完成事件

s

TNOW+s

Q=0

3.计数器

仿真过程中每一事件的发生,事件发生后系统状态变量的变化,进入系统的实体数量等信息均需统计,为此在计算机仿真中经常设计一些工作单元用于统计中的计数,这些工作单元称为统计计数器。

4.时间推进子程序

仿真中下一事件的确定,以及将仿真时钟推进到该事件发生的时刻,需要有一个程序驱动,这一程序称为时间推进子程序,也称时间推进子例程。

5.初始化子程序

仿真开始时对系统进行初始化工作的程序,称为初始化子程序。

6.事件子程序

处理相应事件的发生,并更新系统状态的程序,称为事件子程序,也称事件例程。

7.仿真报告子程序

在仿真结束时,计算、打印仿真结果的程序称为仿真报告子程序。

8.主程序

调用定时子程序,控制系统仿真过程,确定下一事件,传递控制各事件子程序以更新系统状态的程序称为主程序。

(三)离散事件仿真模型的总体结构

离散事件仿真模型由以上部件构成,其总体结构如图4-1-6所示。

仿真开始时,主程序调用初始化子程序,将仿真时钟设置为0,同时将系统状态、统计计数器和事件表初始化。

然后,调用定时子程序确定最初发生的事件,仿真时钟推进到相应时间;再调用事件子程序,执行事件,收集有关信息并统计分析,更新系统状态,产生未来事件;检查是否应终止仿真。

如此反复循环,直至满足停止条件。

三、离散事件仿真模型的分类

根据工作机理或侧重与处理事件、活动和过程的不同,离散事件模型可分为:

1.以事件为基础的离散事件仿真模型;

2.以活动扫描为基础的离散事件仿真模型;

3.以过程为基础的离散事件仿真模型。

第二节理论模型的建模方法

离散事件数学模型有理论模型和仿真模型两种。

理论模型的建模方法有:

实体流图法、活动周期法、Petri网等。

本节讨论实体流图法、活动周期法介绍Petri网。

一、实体流图法(entityflowchart,EFC)

实体流图法建立系统的实体和工作流程间的逻辑关系,简便易行,是一种最基本的建模方法。

实体流图法涉及实体,实体又可分为临时实体和永久实体两大类。

临时实体是按一定规律从系统外部进入系统,按一定的流程在系统中活动,接受服务,最后离开系统。

例如,流水线上被加工的工件、来银行的储户、到超市购物的顾客、交通路口的车辆等均属临时实体。

临时实体只在系统中存在一段时间即退出。

永久实体是永久驻留在系统中的实体,是完成系统功能的必要条件。

系统对临时实体的作用,必须有永久实体的活动,因此必须有永久实体。

例如,生产线上的设备、交通路口的信号灯、服务窗口的工作人员等都是永久实体。

实体流图法的符号和原理与程序流程图类似,表示事件、状态变化以及实体间相互作用的逻辑关系。

以下,我们举例说明实体流图法的步骤。

【例4.2.1】研究只有一个理发师的理发店,顾客来到时若有其他顾客正在理发,就坐在一边等候,按先来先理发的原则为每一位顾客服务,只要有顾客理发师就工作。

建模的目的是研究顾客来到的间隔时间及理发时间按一定分布时,理发师忙闲的情况。

建模的步骤是:

1.识别系统实体

本例是一个典型的单服务台服务系统,理发师、顾客及顾客队列是系统中的实体,其中理发师是永久实体,顾客是临时实体,顾客队列为特殊实体;

2.分析实体的状态和活动

理发师有“理发”和“休息”两个活动,对应着“忙”和“空闲”两种状态。

临时实体顾客与永久实体理发师协同完成理发活动,顾客或“接受服务”或在队列中“等待服务”,顾客的这两种状态与理发师的“忙”和“空闲”相对应。

队列的状态用“队长”来标识。

3.分析实体状态的变化

某顾客来到理发点时,若理发师“忙”,则该顾客进入“等待服务”状态;不然,该顾客进入“接受服务”状态。

处于排队等候状态的顾客,一旦理发师完成对迁移顾客的服务,则进入“接受服务”状态,否则仍处于“等待服务”状态。

理发师完成对一位顾客的服务,若队列处于“非零”状态,则立即开始服务,理发师与排在等候队列的首位的顾客协同完成服务活动;否则,进入“空闲”状态。

4.分析引起状态变化的事件

“顾客到达”、“顾客结束排队”和“顾客理完离开”可导致“服务”活动的开始或结束,因此上述三者均可看成事件。

显然,事件“顾客结束排队”是以理发师处于“闲”状态为条件,是条件事件;队列为“非零”时理发师状态为“闲”的条件是事件“顾客理完离开”。

这两个条件又是顺序的,且互为因果关系。

因此,将事件“顾客结束排队”并入事件“顾客理发完毕离开”,不单独考虑,合并条件事件是实体流图法建模的一个原则。

“顾客到达”将使理发师由“闲”变为“忙”,或者使“队列长度”加1。

“顾客理完离开”将使理发师由“忙”变“闲”,或使“队列长度”减1。

5.分析队列实体的操作

一个队列的服务系统队列规则较简单,不存在换队等特殊的队列操作。

6.画系统实体流程图

在分析实体活动和相应事件的基础上画流程图。

这里双线的框“顾客排队等候”是临时实体顾客的活动。

7.确定模型参数

需要给出的变量有:

顾客到达的时间,理发师给顾客理发所需要的时间。

这两个随机变量的值可通过给定分布的函数中随机抽取。

8.给出排队规则

排队的规则是先来先服务(FIFO)。

实体流程图以临时实体的产生、流动、消亡以及经历永久实体服务的过程为线索,描述系统中实体与工作流程间的逻辑关系。

二、活动周期图法(activitycyclediagramACD)

在系统中,实体的行为表现出一定周期形式,例如,理发店问题中的理发师总是在“忙”和“闲”两种状态交替变换;顾客总是在“来到”和“离开”间周而复至的变化。

活动周期图法就是基于这一思想形成的一种离散事件系统建模方法。

活动周期图法将实体分为“静寂”(dead)和“激活”(active)两种状态,用相应的符号表示(图4-2-2)。

静寂状态通常表示无活动发生,是实体等待参加某一活动是的状态,其持续时间一般无法事先确定,取决于等待进入的活动发生时刻和忙期。

激活状态对应实体的活动,因此有时也称实体的激活状态为实体的活动。

我们通过举例来说明ACD的建模步骤。

【例4.2.2】一个由一位工人看管若干数控机床的加工车间。

工人的任务是:

(1)若刀具完好,则安装工件按运行按钮;

(2)若若刀具损坏或需要更新,则先重装刀具,然后按运行按钮。

上述工作仅当机床完成一次自动加工工序并停止运行时工人才能执行。

假定7每台机床均可加工个钟工件,不会发生刀具、工件短缺现象。

希望通过建模仿真来研究工人的忙闲率。

(1)识别实体和属性

这一系统有两个实体:

①工人。

工人的活动有“安装工件(RESET)”、“安装刀具(RETOOL)”和“其它活动(AWAY)”,虽然工人做“其它活动”时不能照看机床,以上三种活动均为“激活”状态;除此之外,工人处于“等待”状态。

②机床。

机床也有三种激活状态:

“安装刀具”、“安装工件”和“加工(RUNNING)”。

(2)画实体活动周期图

图4-2-3是工人活动周期图,由图可见RESET、RETOOL和AWAY三项活动之间并不存在必然的逻辑关系,工人完成一件工作都进入等待状态,然后再开始下一项活动。

图4-2-4是机床活动周期图。

由图可见激活状态有静寂状态相隔,符合交替原则。

实体活动周期图是系统活动周期图的基础。

绘制实体活动周期图必须遵循以下两个原则:

①交替原则,即激活状态与静寂状态交替出现。

若实际系统中某一活动结束后另一活动立即开始(后继活动称为直联活动),则规定在两个活动间插入虚拟的静寂状态,如机床活动周期图中的STOPPED和READY均为虚拟的静寂状态,因此他们与激活状态用虚线连接;②闭合原则,要求每类实体的活动周期图必须闭合,临时实体的活动周期图表示临时实体从产生到消亡的循环过程,而永久实体的活动周期图则表示实体被占用和释放的循环过程。

此外,除协同活动对应的激活状态外,激活状态是属于唯一实体的唯一标识。

如图中,RETOOL、RESET是与实体工人与机床协同活动相对应的激活状态,而AWAY是工人的激活状态,RUNNING是机床的激活状态。

(3)系统活动周期图

根据临时实体与永久实体之间的协同活动,将各实体活动周期图合并,即得系统活动周期图(图4-2-5)。

(4)增加必要的虚拟实体

当工人未“安装工件”和“安装刀具”(处于等待状态)时,可从事“其它活动”,如“休息饮茶”。

“等待”是“其它活动”的唯一前置状态,假如企业规定工作2小时后,有15分钟供工人休息饮茶。

引入虚拟实体“权力”,协同工人实体完成“休息饮茶”活动,在其生命周期中还要完成“计时”(RECORD)活动。

为遵循交替原则,增添“有权”(YES)和“无权”(NO)两个静寂状态。

增添虚拟实体后的活动周期图见图4-2-6。

在活动周期图中,一个激活状态对应的活动,只有在该激活状态的所有前置静寂状态都取非零值(队列不空时)时才可能发生。

利用这一特性,可增添若干必要的虚拟实体,并假定它们与系统中实体协同完成某项活动。

用这种办法可以为实体活动的发生附加某种条件,实现“隔时发生”的建模效果。

(5)确定模型的参变量和属性描述变量

模型应将“机床数量”作为参数,而每台机床的“累计加工的工件数”和“累计加工时

间”则应是模型的参变量,以判断当机床处于“停机”状态,工人处于“等待”状态时,机床是否需要重换刀具,从而决定是“安装刀具”还是“安装工件”。

属性变量有“加工工件时间”、“安装刀具时间”、“安装工件时间”、“饮茶时间”(15分钟)和规定的“工间休息时间”(2小时)。

在服务规则中应明确规定:

假定权力处于“有权”状态的同时机床处于“停机”状态时,工人处于“等待”状态,是选择先“饮茶”还是先工作。

具体的选择取决于模型参数值,比如“累计加工工件数”,也可以引入虚拟实体的方法来处理。

以上是画加工系统ACD的过程。

一般说来,ACD的建模应当包括以下步骤:

(1)识别实体和属性;

(2)分析各类实体的活动与状态及其变化的顺序;

(3)画出个实体的ACD;

(4)将实体ACD连接成系统ACD;

(5)增添必要的虚拟实体;

(6)表明活动发生的约束条件和占用资源的数量;

(7)给出模型参数、参变量计算方法及属性描述变量取值方法模型,以及排队规则。

根据所研究问题的实际情况,可适当合并简化。

三、Petri网

Petri网是1962年德国学者CarlA.Petri提出一种描述事件和条件关系的网络,由于直观、易懂和易用,在建模中得以应

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1