Monday 28 October 2013

To create simulation of Queuing System in java

import java.util.*;
public class QueueingSystem
{
public static void main(String[] args)
{
int inter_arrival_time[]={0,2,4,1,2,6};
int service_time[]={2,1,3,2,1,4};
int i;
int arrival_time[]=new int[inter_arrival_time.length];
int service_start[]=new int[inter_arrival_time.length];
int service_end[]=new int[inter_arrival_time.length];
int idle[]=new int[inter_arrival_time.length];
int waiting[]=new int[inter_arrival_time.length];
float avgidle=0;
for(i=0;i<inter_arrival_time.length;i++)
{
System.out.println(" "+inter_arrival_time[i]);
for(int j=0;j<=i;j++)
arrival_time[i]=arrival_time[i]+inter_arrival_time[j];
}
System.out.println("Arrival time is ");
for(i=0;i<inter_arrival_time.length;i++)
System.out.println(arrival_time[i]);
service_start[0]=0;
for(i=0;i<inter_arrival_time.length;i++)
{
if(i==0)
{
service_end[0]=service_time[0]+arrival_time[0];
service_start[0]=arrival_time[0];
idle[0]=0;
waiting[0]=0;
}
else
{
if(service_end[i-1]==arrival_time[i])
{
service_start[i]=arrival_time[i];
service_end[i]=service_start[i]+service_time[i];
idle[i]=arrival_time[i]-service_end[i-1];
waiting[i]=service_end[i-1]-arrival_time[i];
}
else if(service_end[i-1]>arrival_time[i])
{
service_start[i]=service_end[i-1];
waiting[i]=service_end[i-1]-arrival_time[i];
idle[i]=0;
service_end[i]=service_time[i]+service_start[i];      
}
else if(service_end[i-1]<arrival_time[i])
{
service_start[i]=arrival_time[i];
idle[i]=arrival_time[i]-service_end[i-1];
avgidle+=idle[i];
service_end[i]=service_start[i]+service_time[i];
waiting[i]=0;
}
}
}
System.out.println("Service end time");
for(i=0;i<inter_arrival_time.length;i++)
System.out.println(service_end[i]);
System.out.println("Idle time");

for(i=0;i<inter_arrival_time.length;i++)
System.out.println(idle[i]);
System.out.println("Waiting time  time");

for(i=0;i<inter_arrival_time.length;i++)
System.out.println(waiting[i]);
System.out.println(avgidle/inter_arrival_time.length);
}
}

Simulation of a quality control system.

        GENERATE  (Exponential(1,0,30))
        ASSIGN    1,FN$Process    ;Process time in P1
Stage1  SEIZE     Machine1
        ADVANCE   P1              ;Process 1
        RELEASE   Machine1
        ADVANCE   2               ;Inspection
        TRANSFER  .200,,Rework1   ;20% Need rework
*****************************************************************
Stage2  SEIZE     Machine2
        ADVANCE   15,6            ;Process 2
        RELEASE   Machine2
        ADVANCE   2               ;Inspection
        TRANSFER  .150,,Rework2   ;15% Need rework
*****************************************************************
Stage3  SEIZE     Machine3
        ADVANCE   (Normal(1,24,4)) ;Process 3
        RELEASE   Machine3
        ADVANCE   2               ;Inspection 3
        TRANSFER  .050,,Rework3   ;5% need rework
        TABULATE  Transit         ;Record transit time
        TERMINATE 1
*****************************************************************
Rework1 TRANSFER  .400,,Stage1
        TERMINATE
Rework2 TRANSFER  .400,,Stage2
        TERMINATE
Rework3 TRANSFER  .400,,Stage3
        TERMINATE

Manufacturing System

generate 5;
advance 4,3;
transfer 0.100,ACC,REJ;
ACC Terminate 1;

REJ Terminate 1;

Television Shop

NORMSERV  GENERATE 300,60,,,10;
          QUEUE NORM;
          QUEUE ALLJ;
          SEIZE MAN;
          DEPART NORM;
          DEPART ALLJ;
          ADVANCE 120,30;
          RELEASE MAN;
          TERMINATE 1;
ONTHESPOT GENERATE 90,10,,,5;
          QUEUE SPOT;
          QUEUE ALLJ;
          PREEMPT MAN;
          DEPART SPOT;
          DEPART ALLJ;
          ADVANCE 15,5;
          RETURN MAN;
          TERMINATE 1;
OVERHAUL  GENERATE 2400,480,,,1;
          QUEUE OVER;
          QUEUE ALLJ;
          PREEMPT MAN;
          DEPART OVER;
          DEPART ALLJ;
          ADVANCE 600,60;
          RETURN MAN;
          TERMINATE 1;
          GENERATE 2400;
          TERMINATE 1;
OVER QTABLE OVER,100,10,20
SPOT QTABLE SPOT,100,10,20
NORM QTABLE NORM,100,10,20
ALLJ QTABLE ALLJ,100,10,20    

Telephone

sets storage 2;
transit table m1,5,1,10;
generate 1.667,1;
Again gate SNF sets,occupied;
enter sets;
advance 3,1;
leave sets;
tabulate transit;
terminate 1;
occupied advance 5,1;

transfer ,Again

Sm- Football

generate 7,7 ;arrive
queue turn ; enter queue
seize turn ; acquire turnstile
depart turn ; depart queue
advance 5,3 ;use imiting service
release turn ; leave turnstile

terminate 1 ; one spectator enters