Java program – M/D/1 queue simulation

by Nideesh C on April 29, 2011 · 0 comments

in Java Programming




public class MD1Queue { 

    public static void main(String[] args) {
        double lambda = Double.parseDouble(args[0]);   // arrival rate
        double mu     = Double.parseDouble(args[1]);   // service rate

        Histogram hist = new Histogram(60 + 1);
        Queue<Double> queue = new Queue<Double>();
        StdDraw.setCanvasSize(700, 500);

        double nextArrival = StdRandom.exp(lambda);    // time of next arrival
        double nextService = nextArrival + 1/mu;       // time of next completed service

        // simulate the M/D/1 queue
        while (true) {

            // next event is an arrival
            while (nextArrival < nextService) {
                queue.enqueue(nextArrival);
                nextArrival += StdRandom.exp(lambda);
            } 

            // next event is a service completion
            double arrival = queue.dequeue();
            double wait = nextService - arrival;

            // update the histogram
            StdDraw.clear();
            hist.addDataPoint(Math.min(60,  (int) (Math.round(wait))));
            hist.draw();
            StdDraw.show(20);

            // update the queue
            if (queue.isEmpty()) nextService = nextArrival + 1/mu;
            else                 nextService = nextService + 1/mu;
        }
    }
} 


/*************************************************************************
 *  Execution:    java MD1Queue lambda mu
 *  Dependencies: Queue.java
 *
 *  Simulate an M/D/1 queue where arrivals obey a Poisson
 *  process with arrival rate lambda, and service times
 *  are deterministic with rate mu.
 *
 *  % java MD1Queue .167 .25
 *
 *  % java MD1Queue .167 .22
 *
 *************************************************************************/

 

Not Satisfied ? Just search & get the result

Related Posts Plugin for WordPress, Blogger...
Be Sociable, Share!

Related posts:

  1. Java program – Histogram
  2. Java program – Visualization client
  3. Java program – Albers squares
  4. Java program – Bouncing ball
  5. Java program – Brownian bridge

Leave a Comment

Previous post:

Next post: