www.prismmodelchecker.org

Wireless Communication Cell

(Haring, Marie, Puigjaner and Trivedi)

Contents

Introduction

This case study is based on a single cell in a wireless communication network. It is taken from [HMPT00]. The model includes the phenomenon of hand off which we now explain.

When a mobile station moves across a cell boundary the channel in the earlier cell is released and an idle channel is required in the target cell. If an idle channel is available in the target cell the hand off is resumed and otherwise the hand off is dropped.

Since dropping of a hand off is generally considered more serious than blocking, to reduce the probability of a hand off being dropped, a guarded channel scheme (GCS) is used: a fixed number of channels (called guarded channels) are reserved exclusively for the hand off calls.

The model is represented as a CTMC. We use N to denote the number of channels in the cell and suppose that the number of guarded channel is 20% of the total number of channels. The PRISM source code for this case study is given below.

// single cell in wireless communication network [HMPT01]
// gxn/dxp 5/3/01

ctmc

const int N; // N - number of channels
const double lambda1=49; // arrival rate of new calls
const double lambda2=21; // arrival rate of hand-off calls
const double mu=1; // departure rate of calls

module cell
	
	n : [0..N]; // number of calls in the cell
	
	// arrival of new call
	[] (n<N*0.8) -> lambda1 : (n'=n+1);
	// arrival of hand of call
	[] (n<N) -> lambda2 : (n'=n+1);
	// completion of call or mobile departs cell
	[] (n>0) -> n*mu : (n'=n-1);
	
endmodule

// rewards - number calls in the cell
rewards "calls"
	true : n;
endrewards
View: printable version          Download: cell.sm

Extensions to this model include:

  • For a fixed number of channels, vary the number of guarded channels and analyse the differences in performance.
  • Consider a network of the above cells under different topologies.
  • Add a control channel to a cell which is used for transmitting control messages to the system.
  • Add failures and recoveries to all of the above.

Model Statistics

The table below shows statistics for each model we have built. It gives information about the CTMC representing the model: the number of states and the number of non zeros (transitions).

N:   Model:
States: NNZ:
50 51 100
100101200
150151300
200201400
250251500
300301600
350351700
400401800
450451900
5005011,000

Note that the above statistics are independent of the number of guarded channels.

Model Construction Times

The table below gives the times taken to construct the models. This process involves first building a CTMC (represented as an MTBDD) from the system description (in our module based language), and then computing the reachable states using a BDD based fixpoint algorithm. The total time required and the number of fixpoint iterations are given below.

N:   Construction:
Time (s): Iter.s:
50 0.05851
1000.093101
1500.128151
2000.139201
2500.188251
3000.269301
3500.245351
4000.296401
4500.345451
5000.425501

Model Checking

We now report on the model checking results obtained using PRISM when verifying the following CSL properties.

const double T; // time bound

// the maximum probability that a hand off call can be dropped within t time units (assuming a guarded channel is free)
P=?[ true U<=T (n=N) {n<N}{max} ]

// the maximum probability that a call can be dropped within t time units (assuming a non-guarded channel is free)
P=?[ true U<=T (n>=N*0.8) {n<N*0.8}{max} ]

// the minimum probability that a cell will be accepted within T time units (assuming no channels are free)
P=?[ true U<=T (n<N*0.8) {n=N}{min} ]

// the expected number of calls at time T
R{"calls"}=? [ I=T ]

// the probability that in the long run any call can be dropped
S=? [ n<N*0.8 ]

// the expected number calls in the cell in the long run
R{"calls"}=? [ S ]


View: printable version          Download: cell.csl

All experiments were carried out on a 2.0GHz PC with 512 Gb memory running Linux and in all iterative methods we stop iterating when the relative error between subsequent iteration vectors is less than 1e-6, that is:

relative error equation
  • The maximum probability that a hand off call can be dropped within t time units (assuming a guarded channel is free): the table and graph below presents the statistics and results for the model checking process.

    c:   T=0.5:
    Iters: Time per iter: (s)
    MTBDD Sparse Hybrid
    50 2270.000793< 0.00001< 0.00001
    1002470.002186< 0.00001< 0.00001
    1502680.0003700.0000370.000037
    2002880.0002500.0000350.000035
    2503090.0002270.0000320.000065
    3003350.0003570.0000900.000090
    3503600.0007410.0001110.000083
    4003860.0007700.0001550.000130
    4504110.0008700.0001700.000146
    5004370.0009700.0001830.000206

    plot:  maximum probability that a hand off call can be dropped within t time units (assuming a guarded channel is free)
  • The maximum probability that a call can be dropped within t time units (assuming a non-guarded channel is free): the graph below presents the results for this property.

    plot: maximum probability that a call can be dropped within t time units (assuming a non-guarded channel is free)
  • The minimum probability that a cell will be accepted within T time units (assuming no channels are free): the graph below presents the results for this property.

    plot: minimum probability of leaving a situation where the second queue is fully occupied within T time units
  • The expected number of calls in the cell at time T: the table and graph below presents the model checking statistics for this property.

    c:   T=1:
    Iters: Time per iter: (s)
    MTBDD Sparse Hybrid
    50 216 0.000880< 0.00001< 0.00001
    100551 0.0017600.000018< 0.00001
    150669 0.002661< 0.00001< 0.00001
    200790 0.003557< 0.000010.000013
    250913 0.0045450.0000110.000011
    3001,0600.0055190.0000090.000019
    3501,2060.0066500.0000080.000017
    4001,3510.0076460.0000070.000022
    4501,4940.0089630.0000070.000027
    5001,6370.0095050.0000120.000024

    plot: expected number of calls in the cell at time T
  • Lon run average properties: the table below gives the model checking statistics when computing the steady state probabilities for both the JOR and SOR methods when using PRISM's different engines.

    c:   JOR:   SOR:
    Iters: Time per iter: (s) Iters: Time per iter: (s)
    MTBDD Sparse Hybrid Sparse Hybrid
    50 301 0.001018< 0.00001< 0.00001173 < 0.00001< 0.00001
    1001,4000.001960< 0.00001< 0.00001771 < 0.000010.000013
    1501,8940.0028290.000005 0.000011 1,1390.000009 0.000018
    2002,2540.0037450.000004 0.000009 1,2980.000015 0.000023
    2502,4910.0051220.000008 0.000012 1,4190.000021 0.000028
    3002,6860.0054810.000007 0.000011 1,5200.000020 0.000033
    3502,8590.0057260.000010 0.000017 1,6110.000019 0.000037
    4003,0200.0059150.000013 0.000017 1,6960.000024 0.000041
    4503,1710.0063460.000013 0.000019 1,7760.000028 0.000056
    5003,3160.0082010.000015 0.000021 1,8540.000032 0.000054

    In the graphs below we have plotted the result for the probability that in the long run any call can be dropped and the expected number of calls in the cell in the long run.

    plot: the probability that in the long run a call can be dropped
    plot: expected number of calls in the cell

Case Studies