. , , ,

,,,

 


, . , (). (, , , ), . , , , . .

, , (). - . , : - ( , ), .

, ( , , ..) , . :

  (), .. , ;

  (Q), .. , ;

  ();

  (k);

  ();

  ();

  ();

  ();

  , ;

  ;

  , ..

2 : (). , , , , (, , , ). , , , , .

. , , . . , . , .. .


1. C

 

1.1

, . , .

, . , .

.

, , .

. , . . 1.


. 1.

, .

λ , .

, .

, . , : .

, , .., , .

, , , , .

( ), , .

 

1.2

. , , , , . , . , , . , .. . , .

: . , , , , .

, , . 1, :


.. 1 1 , , , ,

,

,

. (1.2.1)

, (1.2.1).

, .. .

 

1.3

 

( ) , , , .. . , . , , ..


, .

.. , .

, , . , , . , , ( 2).

. 2.

, , , . , . 2, . :



(n+1) , . , .

,

,

.

, , .

 

1.4

, . :

  (), .. , ;

  (Q), .. , ;

  (), .. , ;

  (k);

  ();

  ();

  () ;

  ();

  ();

  ()

  (), .. , ;

  , ;

  ;

  , ..

, , , , () (), , ..

(1.4.1)

(1.4.2)

(1.4.1) (1.4.2) . , , , , , .. .

. 1.


1.

,

 

1.5

.

.

, , . , ,

(1.5.1)

, , .

- , , . , (1.5.1)

 

 


1.6

. , , . .

. , , , .

, . ( ), , ( , ). , , , . , , . , 1. 1, .

. , , ..

, . .

, , .

, , .

, :

1) . , , .

2) N , , , . , . , . N , :


, , .. ,

( ),

,

, ,

N , , .


2.

2.1

(n = 2) (m = 4). λ = 4,8 . μ = 2 .

7 , :

S0 , ;

S1 1 , ;

S2 2 , ;

S3 2 , 1 ;

S4 2 , 2 ;

S5 2 , 3 ;

S6 2 , 4 ;

S0, S1, S2, , S6 0, 1, 2, , 6.

. , .

. 3.


:

:

( ) Maple 11 (. 1).

 


- , , n=6.

(1)

. , , . . N (1) , . 4.

:


. 4.

P0

 

P5

 

P4

 

P3

 

P2

 

P1

 
2.2

 

() , , , .. . , , , ..

.. 0, 0. .


Maple 11 (. 1).

:

, , , :

.. . .

2.3

.

:

1) , .. , . , 2 , (.. 4 ), S6. .. S6 6,

2) , .

3) , .

4) , .. , .

5) :

6) :


3.

3.1 ( )

(n = 2) (m = 4). λ = 4,8 . μ = 2 .

. . , , , .

(). () (), ..

, (3.1.1)

(3.1.1) .

. , .

. , , : . , , , , , , .

isRequested(). 0,0001, 10000. , , .

 

bool isRequested()

{

double r = R. NextDouble();

if (r < (timeStep * lambda))

{return true;}

return false;

}

. , . GetServiceTime().

double GetServiceTime()

{

double r = R. NextDouble();

return (-1/mu*Math. Log (1-r, Math.E));

}

. () dt, . ( , ), , isRequested(), , .

, , , GetServiceTime() . , 4, , 4, .

, , , , . , . dt.

, .., , .

 

 


3.2 -

- , , . 5.


. 5. -

.

1. .

Random R; //

public uint maxQueueLength; //

public uint channelCount; //

public double lambda; //

public double mu; //

public double timeStep; //

public double[] timeOfFinishProcessingReq; //

public double[] timeInQueue; //

public double processingTime; //

public double totalProcessingTime; //

public uint requestEntryCount; //

public uint declinedRequestCount; //

public uint acceptedRequestCount; //

uint queueLength; //  //

,

enum SysCondition {S0, S1, S2, S3, S4, S5, S6};

SysCondition currentSystemCondition; //

. 2- 7 : S0, S1. S6. S0, ; S1 ; S2, , ; S6 , (queueLength = 4).

GetCondition()

SysCondition GetCondition()

{

SysCondition p_currentCondit = SysCondition.S0;

int k = 0;

int busyChannelCount = 0;

for (int i = 0; i < channelCount; i++)

{

if (timeOfFinishProcessingReq[i] > 0)

{

k = 1;

busyChannelCount++;

}

else

{k = 0;}

p_currentCondit += k * (i + 1);

}

if (busyChannelCount > 1)

{p_currentCondit ++;}

return p_currentCondit + (int) QueueLength;

}

1, 2,3,4. :

if (queueLength > 0)

{

timeInQueue [queueLength 1] += timeStep;

if (queueLength > 1)

{timeInQueue [queueLength 2] += timeStep;}

}

, . , , , timeOfFinishProcessingReq [i] <= 0 ( ), , .. .

for (int i = 0; i < channelCount; i++)

{

if (timeOfFinishProcessingReq [i] <= 0)

{

timeOfFinishProcessingReq [i] = GetServiceTime();

totalProcessingTime+= timeOfFinishProcessingReq [i];

break;

}

}

:

for (int i = 0; i < channelCount; i++)

{

if (timeOfFinishProcessingReq [i] > 0)

{

timeOfFinishProcessingReq [i] -= timeStep;

}

}

C#.

 

3.3

 

, :

1) , .. , . , 2 , (.. 4 ). 4 .

2) , .

3) , .


4) , .. . . .

5)

6) :

7) , ,

8)


3.4

 

.. , . , . 20 .

,

,

( ),

,

,

,

 

N=20 ,

. N=20 .

. 6.


. 6.

, , .

2.

(. )

0,174698253017626 0,158495148639101 0,246483801571923

0,825301746982374 0,753516198428077 0,841504851360899

3,96144838551539 3,61687775245477 4,03922328653232

1,68655313447018 1,62655862750852 2,10148609204869
0,4242558575 0,351365236347954 0,338866380730942 0,437809602510145

1,9807241927577 1,80843887622738 2,01961164326616

. 2 , , , , . .., , , .

 

 

.

4 , , . .

. C# , . , .

.


1.    ..  . .: , 2004. 208 .

2.    ..,  ..  . .: .- . .. , 2002. 435 .

3.    ..,  ..,  ..  . .: .- . .. , 2000. 447 .

4.    ..  . .: , 1979. 400 .

5.    ..  . .: , 2004. 772 .

6.   / . .. . .: , 2004. 407 .

7.    ..  . .: , 2005. 902 .

8.    ..,  ..,  .. . . : , 1997. 288 .

,

 

 

 

! , , , .
. , :