Sie sind auf Seite 1von 3

ENGR691, Spring 2015, Homework for Lecture

Block 1

1
1

Code Listing

# F i l e Name : Spring2015HW001Sakil

2
3

# The o b j e c t i v e o f t h e program i s t h a t we were g i v e n some randomly


generated
# data o f i n t e r a r r i v a l time and s e r v i c e time o f a q u e u e i n g
system .
# For p a r t ( a ) o f t h e a s s i g n m e n t , we want t o f i n d t h e w a i t i n g time
f o r each
# g i v e n s e t o f v a l u e s by u s i n g t h e g i v e n f o r m u l a i n
Engr691Spring2013HW1dat . t x t .

7
8
9

im po rt numpy a s np
im po rt s y s

10
11
12

13

# We u s e l o a d t x t ( ) t o i mp ort data from t h e g i v e n f i l e .


# we d e c l a r e d 2 a r r a y s f o r i n t e r a r r i v a l time and s e r v i c e time
and were s a v e d
# s e p a r a t e l y . we a l s o change t h e t h r e s h o l d v a l u e s o t h a t we can
p r i n t l a r g e number o f v a l u e s o f a r r a y .

14
15

16

17
18

i n t e r a r r i v a l t i m e = np . l o a d t x t ( Engr691Spring2013HW1dat . t x t ,
s k i p r o w s =1 , u s e c o l s = ( 0 , ) )
s e r v i c e t i m e = np . l o a d t x t ( Engr691Spring2013HW1dat . t x t , s k i p r o w s
=1 , u s e c o l s = ( 1 , ) )
np . s e t p r i n t o p t i o n s ( t h r e s h o l d= nan )
np . s e t p r i n t o p t i o n s ( t h r e s h o l d=np . nan )

19
20
21

# We c a l c u l a t e t h e w a i t i n g time h e r e by u s i n g t h e g i v e n f o r m u l a .
# We s e t w a i t i n g time f o r t h e f i r s t p o i t a s z e r o a s we assume i t
was t h e f i r s t one .

22
23
24
25
26
27
28
29
30
31
32

copy interarrival = interarrival time


a = [0]
arr = interarrival time . size
c o p y s t = np . a r r a y ( s e r v i c e t i m e )
c o p y s t = np . append ( a [ 0 ] , c o p y s t )
c o p y s t = np . d e l e t e ( c o p y s t , a r r , 0 )
p r i n t ( I n t e r a r r i v a l t i m e s : \n )
print ( interarrival time )
p r i n t ( \n S e r v i c e t i m e s : \n )
print ( service time )

33
34
35
36

waiting time = copy st interarrival time


w1 = 0
wait 2 = waiting time

37
38
39
40
41
42
43
44
45
46

f o r i in range ( len ( waiting time ) ) :


i f ( i ==0) :
wait 2 [ i ] = 0;
e l i f ( wait 2 [ i ] < 0) :
w a i t 2 [ i ] =0
w1 = w a i t 2 [ i ]
else :
w a i t 2 [ i ] += w1
w1 = w a i t 2 [ i ]

47
48

waiting time = wait 2

49
50

# Part ( b ) : c a l c u l a t i n g a v e r a g e i n t e r a r r i v a l time , a v e r a g e
s e r v i c e time , and a v e r a g e w a i t i n g time u s i n g t h e np . mean ( )

51
52
53
54

a v g w a i t i n g t i m e = np . mean ( w a i t i n g t i m e )
a v g s e r v i c e t i m e = np . mean ( s e r v i c e t i m e )
a v g i n t e r a r r i v a l t i m e = np . mean ( i n t e r a r r i v a l t i m e )

55
56

57

# Part (C) : we u s e u n i q u e ( ) t o f i n d t h e p r o p o r t i o n o f each u n i q u e


w a i t i n g time
# Thus we can f i n d out what p r o p o r t i o n o f t h e system have w a i t i n g
time 0 , 1 , 2 . . and s o on .

58
59

60
61
62

s o r t w a i t i n g t i m e = unique , c o u n t s = np . u n i q u e ( w a i t i n g t i m e ,
r e t u r n c o u n t s=True )
np . a s a r r a y ( ( unique , c o u n t s ) ) . T
np . put ( w a i t i n g t i m e , [ 0 ] , [ 0 ] )
array size = interarrival time . size

63
64

65

# We s o r t t h e a r r a y based on w a i t i n g time . and d i v i d e i t by


a r r a y s i z e which i s t h e
# t o t a l number o f p o i n t s t o f i n d t h e p r o p o r t i o n o f each w a i t i n g
time ( d i s c r e t e v a l u e )

66
67
68
69
70
71

72

f r e q c o u n t w a i t i n g = np . m a t r i x ( s o r t w a i t i n g t i m e )
p r i n t ( \n Waiting Time ( s o r t e d ) : \n )
print ( freq count waiting )
f r e q c o u n t w a i t i n g [ 1 , : ] /= a r r a y s i z e
np . s a v e t x t ( f r e q c o u n t w a i t i n g . c s v , f r e q c o u n t w a i t i n g , fmt =
%1.4 f )
p r o p o r t i o n w a i t i n g t i m e = np . m a t r i x . round ( f r e q c o u n t w a i t i n g ,
decimals = 5)

73
74
75
76

77
78
79

# we s a v e d t h e data i n s e p a r a t e c s v f i l e .
np . s a v e t x t ( w a i t i n g . c s v , w a i t i n g t i m e , fmt = %1.4 f )
np . s a v e t x t ( p r o p o r t i o n w a i t i n g t i m e . c s v , a , fmt= %10.5 f , d e l i m i t e r
= , )
a = np . a s a r r a y ( p r o p o r t i o n w a i t i n g t i m e )
a = np . t r a n s p o s e ( a )
np . s a v e t x t ( data . c s v , a , fmt= %10.5 f , d e l i m i t e r= , )

F t(t)
2

The graph looks like this:

F t(t)
2

Das könnte Ihnen auch gefallen