Скачать

Иммитационное моделирование работы магазина

Тема контрольной работы по дисциплине «Компьютерное моделирование процессов и систем» «Иммитационное моделирование работы магазина».

Разработчикам и пользователям вычислительных систем (ВС) приходится решать задачи оценки различных вариантов организации вычислительного процесса в ВС, поиска оптимальной структуры ВС, состава и конфигурации оборудования и операционной системы (ОС) при различных потоках заявок на оборудование. Аналитические методы подобных расчетов базируются на упрощенных математических моделях и позволяют определить только порядок результатов. Поэтому сейчас все шире распространяются методы имитационного программирования. Построение имитационных моделей ВС требует, с одной стороны, детального знания их структуры и функциональных особенностей, а с другой - наличия подходящих средств их отражения в модели.

Наиболее удобными и эффективными для целей моделирования представляются специализированные языки, предоставляющие разработчику модели широкий выбор средств описания моделей, а также сервисных средств, что облегчает конструирование модели и эксперименты с ней.

Цель контрольной работы состоит в углублении практических навыков в области имитационного моделирования систем с использованием языка GРSS. Этот язык предназначен для моделирования преимущественно дискретных систем массового обслуживания, к которым относятся и ВС.

Основная цель работы: научиться решать задачи моделирования систем массового обслуживания средней сложности.


1. Задание

Выполнить моделирование работы магазина, торгующего 20 видами товаров. Для каждого вида товаров, средний интервал прихода покупателей равномерно распределен в интервале от 20 до 70 минут. Среднее количество денег, расходуемых на каждый вид товаров, равномерно распределено в интервале от 1 до 10 гривен.

Поступление каждого вида товаров имеет средний интервал в 100 раз больший, чем интервал прихода покупателей за этим товаром, а средняя величина поставки товара (в гривнах), в 100 раз больше, средней цены покупки этого вида товара.

Промоделировать обслуживание заданного числа покупателей, например, 15000.

Реальные интервалы прихода покупателей за товаром, распределены по экспоненциальному закону относительно средней величины. Реальные интервалы поставки распределены по равномерному закону с заданным средним значением, и отклонением в 20% от среднего.

Реальные затрата на покупку и поставку складывается из половины от среднего и добавки еще в половину, распределенную по экспоненциальному закону. Определить суммарную стоимость всех покупок и всех поступлений, а также разницу между ними.


2. Текст модели

Текст модели может выглядеть следующим образом:

baseintp equ 1000

basenum equ 2000

basenummag equ 3000

; shop

;покупатели

generate 0,0,0,20

assign intp,(uniform(1,20,70))

assign num,(uniform(1,1,10))

savevalue tmp+,1

assign tip,X$tmp

savevalue (baseintp+X$tmp),(p$intp#100)

savevalue (basenum+X$tmp),(p$num#100)

rret advance (exponential(1,0,p$intp))

split 1,rret

assign 1,(basenummag+p$tip)

assign 2,(exponential(1,p$num/2,P$num/2))

test le p2,x*1,next

savevalue p1-,p2

savevalue sumout+,p$num

next buffer

savevalue delta,(x$sumin-x$sumout)

terminate 1

; завоз

generate 0,0,0.1,20

savevalue tmp1+,1

assign 1,(baseintp+x$tmp1)

assign 2,(basenum+x$tmp1)

assign intp,(x*1)

assign num,x*2

assign tip,X$tmp1

rret1 advance (exponential(1,0,p$intp))

split 1,rret1

assign 1,(basenummag+p$tip)

assign 2,(exponential(1,p$num/2,P$num/2))

savevalue p1,(x*1+p2)

buffer

savevalue sumin+,p2

terminate

start 15000

reset

start 15000

reset

start 15000

reset

start 15000


3. Последняя статистика по модели

Последняя статистика по модели будет выглядеть следующим образом:

GPSS World Simulation Report - sample.32.4

Friday, May 14, 2004 07:33:25

START TIME END TIME BLOCKS FACILITIES STORAGES

95636.524 127422.725 32 0 0

NAME VALUE

BASEINTP 1000.000

BASENUM 2000.000

BASENUMMAG 3000.000

DELTA 10008.000

INTP 10003.000

NEXT 15.000

NUM 10004.000

RRET 8.000

RRET1 25.000

SUMIN 10009.000

SUMOUT 10010.000

TIP 10006.000

TMP 10005.000

TMP1 10007.000

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 0 0 0

2 ASSIGN 0 0 0

3 ASSIGN 0 0 0

4 SAVEVALUE 0 0 0

5 ASSIGN 0 0 0

6 SAVEVALUE 0 0 0

7 SAVEVALUE 0 0 0

RRET 8 ADVANCE 15020 20 0

9 SPLIT 15000 0 0

10 ASSIGN 15000 0 0

11 ASSIGN 15000 0 0

12 TEST 15000 0 0

13 SAVEVALUE 13669 0 0

14 SAVEVALUE 13669 0 0

NEXT 15 BUFFER 15000 0 0

16 SAVEVALUE 15000 0 0

17 TERMINATE 15000 0 0

18 GENERATE 0 0 0

19 SAVEVALUE 0 0 0

20 ASSIGN 0 0 0

21 ASSIGN 0 0 0

22 ASSIGN 0 0 0

23 ASSIGN 0 0 0

24 ASSIGN 0 0 0

RRET1 25 ADVANCE 192 20 0

26 SPLIT 172 0 0

27 ASSIGN 172 0 0

28 ASSIGN 172 0 0

29 SAVEVALUE 172 0 0

30 BUFFER 172 0 0

31 SAVEVALUE 172 0 0

32 TERMINATE 172 0 0

SAVEVALUE RETRY VALUE

1001 0 6404.955

1002 0 2111.915

1003 0 5940.275

1004 0 4172.845

1005 0 6817.275

1006 0 4649.720

1007 0 5588.615

1008 0 5273.505

1009 0 5506.080

1010 0 6828.505

1011 0 4461.570

1012 0 5484.610

1013 0 5590.495

1014 0 2543.760

1015 0 2567.830

1016 0 4634.950

1017 0 5193.640

1018 0 6260.355

1019 0 2040.820

1020 0 4638.690

2001 0 334.444

2002 0 953.733

2003 0 660.581

2004 0 937.454

2005 0 324.653

2006 0 163.080

2007 0 594.535

2008 0 772.295

2009 0 331.157

2010 0 238.095

2011 0 746.220

2012 0 164.759

2013 0 351.530

2014 0 891.475

2015 0 471.646

2016 0 810.014

2017 0 966.023

2018 0 133.113

2019 0 739.168

2020 0 956.109

3001 0 1771.310

3002 0 3118.466

3003 0 1011.787

3004 0 4530.221

3005 0 357.841

3006 0 1392.925

3007 0 1973.228

3008 0 5053.080

3009 0 552.172

3010 0 0.598

3011 0 3937.707

3012 0 935.779

3013 0 625.270

3014 0 4736.679

3015 0 10033.071

3016 0 0.618

3017 0 4395.957

3018 0 601.167

3019 0 4198.037

3020 0 11921.806

TMP 0 20.000

TMP1 0 20.000

DELTA 0 60938.868

SUMIN 0 399641.893

SUMOUT 0 338703.025

FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

60677 0 127423.320 3 8 9

INTP 21.119

TIP 2.000

NUM 9.537

60673 0 127427.925 13 8 9

INTP 54.846

NUM 1.648

TIP 12.000

60661 0 127432.117 12 8 9

INTP 44.616

TIP 11.000

NUM 7.462

60669 0 127433.071 10 8 9

INTP 55.061

NUM 3.312

TIP 9.000

60670 0 127440.907 20 8 9

INTP 20.408

TIP 19.000

NUM 7.392

60675 0 127441.767 9 8 9

INTP 52.735

NUM 7.723

TIP 8.000

60660 0 127446.699 21 8 9

INTP 46.387

NUM 9.561

TIP 20.000

60658 0 127449.963 15 8 9

INTP 25.438

NUM 8.915

TIP 14.000

60674 0 127453.320 1 8 9

INTP 64.050

NUM 3.344

TIP 1.000

60638 0 127453.990 18 8 9

INTP 51.936

NUM 9.660

TIP 17.000

60659 0 127457.240 8 8 9

INTP 55.886

NUM 5.945

TIP 7.000

60671 0 127457.864 19 8 9

INTP 62.604

TIP 18.000

NUM 1.331

60644 0 127475.255 5 8 9

INTP 41.728

TIP 4.000

NUM 9.375

60678 0 127480.770 6 8 9

INTP 68.173

NUM 3.247

TIP 5.000

60676 0 127482.678 16 8 9

INTP 25.678

NUM 4.716

TIP 15.000

60665 0 127494.309 11 8 9

INTP 68.285

NUM 2.381

TIP 10.000

60649 0 127498.513 17 8 9

INTP 46.349

NUM 8.100

TIP 16.000

60633 0 127499.227 14 8 9

INTP 55.905

TIP 13.000

NUM 3.515

57089 0 127503.863 38 25 26 1 1018.000

2 2018.000

INTP 6260.355

TIP 18.000

NUM 133.113

60583 0 127509.408 4 8 9

INTP 59.403

NUM 6.606

TIP 3.000

60672 0 127589.550 7 8 9

INTP 46.497

NUM 1.631

TIP 6.000

60282 0 127967.620 22 25 26 1 1002.000

2 2002.000

INTP 2111.915

NUM 953.733

TIP 2.000

47507 0 128140.437 36 25 26 1 1016.000

2 2016.000

INTP 4634.950

TIP 16.000

NUM 810.014

60155 0 128992.238 35 25 26 1 1015.000

2 2015.000

INTP 2567.830

NUM 471.646

TIP 15.000

60326 0 129127.090 34 25 26 1 1014.000

2 2014.000

INTP 2543.760

TIP 14.000

NUM 891.475

58659 0 129370.529 27 25 26 1 1007.000

2 2007.000

INTP 5588.615

TIP 7.000

NUM 594.535

60146 0 130053.205 24 25 26 1 1004.000

2 2004.000

INTP 4172.845

TIP 4.000

NUM 937.454

59945 0 130360.030 29 25 26 1 1009.000

2 2009.000

INTP 5506.080

NUM 331.157

TIP 9.000

47089 0 130437.748 30 25 26 1 1010.000

2 2010.000

INTP 6828.505

NUM 238.095

TIP 10.000

60563 0 130704.906 39 25 26 1 1019.000

2 2019.000

INTP 2040.820

TIP 19.000

NUM 739.168

59842 0 131372.702 37 25 26 1 1017.000

2 2017.000

INTP 5193.640

TIP 17.000

NUM 966.023

59850 0 132168.432 33 25 26 1 1013.000

2 2013.000

INTP 5590.495

NUM 351.530

TIP 13.000

58645 0 132253.017 2 25 26 1 1001.000

2 2001.000

INTP 6404.955

TIP 1.000

NUM 334.444

55442 0 132525.520 32 25 26 1 1012.000

2 2012.000

INTP 5484.610

TIP 12.000

NUM 164.759

57722 0 132939.817 26 25 26 1 1006.000

2 2006.000

INTP 4649.720

TIP 6.000

NUM 163.080

59207 0 134420.835 31 25 26 1 1011.000

2 2011.000

INTP 4461.570

TIP 11.000

NUM 746.220

57466 0 134731.483 28 25 26 1 1008.000

2 2008.000

INTP 5273.505

TIP 8.000

NUM 772.295

57039 0 134861.994 23 25 26 1 1003.000

2 2003.000

INTP 5940.275

NUM 660.581

TIP 3.000

58047 0 135849.297 40 25 26 1 1020.000

2 2020.000

INTP 4638.690

NUM 956.109

TIP 20.000

55932 0 136006.464 25 25 26 1 1005.000

2 2005.000

INTP 6817.275

NUM 324.653

TIP 5.000


Выводы

Для построения модели понадобилось 3 группы X – параметров, по 20 параметров каждая. Эти параметры сохраняют средний интервал поступления каждого товара, среднюю сумму поставки, и текущее количество каждого товара. Эти группы параметров используются как массивы. После того, как решение о структуре данных принято, фактически, несложно написать текст самой модели.

Результаты моделирования подтверждают правильность работы модели.


Литература

1. Советов Б.Я., Яковлев С.А. Моделирование систем. - М.: Высшая школа, 1985.- 271 с.

2. Советов Б.Я., Яковлев С.А. Моделирование систем, лабораторный практикум М.: Высшая школа, 1989.- 80 с.

3. Советов Б.Я., Яковлев С.А. Моделирование систем, курсовое проектирование, учебное пособие для вузов. - М.: Высшая школа, 1988.-136 с.

4. Голованов О.В. и др. Моделирование сложенных дискретных систем на ЭВМ третьего поколения. - М.: Энергия, 1978. - 160 с.

5. Шрайбер Т. Дж. Моделирование на GРSS/ Перевод с англ. - М.: Машиностроение, 1980.- 592 с.