Results 1 to 6 of 6
- 01-04-2013, 02:45 PM #1
Member
- Join Date
- Jan 2013
- Posts
- 2
- Rep Power
- 0
help me to simulate single queue in java
hello my friends, i have a problem in java, i have a programm and it runs successfully, but it doesnt make any outputs!
can u help me please?
its necessary.
.gif)
this is my project, please tell me what can i do?
public class Sim {
// Class Sim variables
static double Clock, MeanInterArrivalTime, MeanServiceTime, SIGMA,
LastEventTime,
TotalBusy, MaxQueueLength, SumResponseTime;
static long NumberOfCustomers, QueueLength, NumberInService,
TotalCustomers, NumberOfDepartures, LongService;
final static int arrival = 1;
final static int departure = 2;
static EventList FutureEventList;
static Queue Customers;
static Random stream;
static void main(String argv[]) {
MeanInterArrivalTime = 4.5; MeanServiceTime = 3.2;
SIGMA = 0.6; TotalCustomers = 1000;
long seed =1000; //Long.parseLong(argv[0]);
stream = new Random(seed); // initialize rng stream
FutureEventList = new EventList();
Customers = new Queue();
Initialization();
// Loop until first "TotalCustomers" have departed
while(NumberOfDepartures < TotalCustomers ) {
Event evt = (Event)FutureEventList.getMin(); // get imminent event
FutureEventList.dequeue(); // be rid of it
Clock = evt.get_time(); // advance simulation time
if( evt.gettype() ==arrival ) ProcessArrival(evt);
else ProcessDeparture(evt);
}
ReportGeneration();
}
// seed the event list with TotalCustomers arrivals
static void Initialization() {
Clock = 0.0;
QueueLength = 0;
NumberInService = 0;
LastEventTime = 0.0;
TotalBusy = 0 ;
MaxQueueLength = 0;
SumResponseTime = 0;
NumberOfDepartures = 0;
LongService = 0;
// create first arrival event
Event evt = new Event(arrival, exponential(stream, MeanInterArrivalTime));
FutureEventList.enqueue( evt );
}
static void ProcessArrival(Event evt) {
Customers.enqueue(evt);
QueueLength++;
// if the server is idle, fetch the event, do statistics
// and put into service
if( NumberInService == 0) ScheduleDeparture();
else TotalBusy += (Clock - LastEventTime); // server is busy
// adjust max queue length statistics
if (MaxQueueLength < QueueLength) MaxQueueLength =
QueueLength;
// schedule the next arrival
Event next_arrival = new Event(arrival,
Clock+exponential(stream, MeanInterArrivalTime));
FutureEventList.enqueue( next arrival );
LastEventTime = Clock;
}
static void ScheduleDeparture() {
double ServiceTime;
// get the job at the head of the queue
while (( ServiceTime = normal(stream, MeanServiceTime, SIGMA)) < 0 );
Event depart = new Event(departure,Clock+ServiceTime);
FutureEventList.enqueue( depart );
NumberInService = 1;
QueueLength--;
}
static void ProcessDeparture(Event e) {
// get the customer description
Event finished = (Event) Customers.dequeue();
// if there are customers in the queue then schedule
// the departure of the next one
if( QueueLength > 0 ) ScheduleDeparture();
else NumberInService = 0;
// measure the response time and add to the sum
double response = (Clock - finished.get_time());
SumResponseTime += response;
if( response > 4.0 ) LongService++; // record long service
TotalBusy += (Clock -LastEventTime );
NumberOfDepartures++;
LastEventTime = Clock;
}
static void ReportGeneration() {
double RHO = TotalBusy/Clock;
double AVGR = SumResponseTime/TotalCustomers;
double PC4 = ((double)LongService)/TotalCustomers;
System.out.println( "SINGLE SERVER QUEUE SIMULATION -GROCERY STORE CHECKOUT COUNTER ");
System.out.println( "\tMEAN INTERARRIVAL TIME "+ MeanInterArrivalTime );
System.out.println( "\tMEAN SERVICE TIME "+ MeanServiceTime );
System.out.println( "\tSTANDARD DEVIATION OF SERVICE TIMES+ SIGMA );
System.out.println( "\tNUMBER OF CUSTOMERS SERVED"+ TotalCustomers );
System.out.println();
System.out.println( "\tSERVER UTILIZATION+ RHO );
System.out.println( "\tMAXIMUM LINE LENGTH" + MaxQueueLength );
System.out.println( "\tAVERAGE RESPONSE TIME" + AVGR + " MINUTES" );
System.out.println( "\tPROPORTION WHO SPEND FOUR ");
System.out.println( "\t MINUTES OR MORE IN SYSTEM" + PC4 );
System.out.println( "\tSIMULATION RUNLENGTH" + Clock + " MINUTES" );
System.out.println( "\tNUMBER OF DEPARTURES" + TotalCustomers );
}
static double exponential(Random rng, double mean) {
return -mean*Math.log( rng.nextDouble() );
}
static double SaveNormal;
static int NumNormals = 0;
static final double PI = 3.1415927 ;
static double normal(Random rng, double mean, double sigma) {
double ReturnNormal; // should we generate two normals?
if(NumNormals == 0 ) {
double r1 = rng.nextDouble();
double r2 = rng.nextDouble();
ReturnNormal = Math.sqrt(-2*Math.log(r1))*Math.cos(2*PI*r2);
SaveNormal = Math.sqrt(-2*Math.log(r1))*Math.sin(2*PI*r2);
NumNormals = 1;
} else {
NumNormals = 0;
ReturnNormal = SaveNormal;
}
return ReturnNormal*sigma + mean ;
}
- 01-04-2013, 03:00 PM #2
Re: help me to simulate single queue in java
Please do not privately message users asking them to help you.
If you want help, you'll have to do a few things first: use code tags, tell us what you've done and where the code breaks, and ask a more specific technical question. You're going to have to do some debugging, by stepping through this with a debugger or at least adding some print statements. When does the program's execution differ from what you expect?How to Ask Questions the Smart Way
Static Void Games - Play indie games, learn from game tutorials and source code, upload your own games!
- 01-04-2013, 03:42 PM #3
- 01-04-2013, 03:49 PM #4
Re: help me to simulate single queue in java
Really?
http://www.mi.fu-berlin.de/inf/group...ulation/03.pdf page 46
http://ce.sharif.edu/courses/89-90/1.../Chapter04.pdf page 24
http://www-i4.informatik.rwth-aachen.../slides/03.pdf page 44
http://www-i4.informatik.rwth-aachen.../slides/03.pdf page 37
http://www.ie.bilkent.edu.tr/~ie324/...tioninJava.ppt slide 12
dbWhy do they call it rush hour when nothing moves? - Robin Williams
- 01-04-2013, 05:13 PM #5
Member
- Join Date
- Jan 2013
- Posts
- 2
- Rep Power
- 0
Re: help me to simulate single queue in java
excuse me , this is a project that i wanna work on it, ok?
and i wanted help, what are u doing is not helping me!
it doesnt work, and i want it to print outputs, can any body help?
- 01-04-2013, 05:43 PM #6
- Join Date
- Sep 2008
- Location
- Voorschoten, the Netherlands
- Posts
- 11,376
- Blog Entries
- 7
- Rep Power
- 17
Re: help me to simulate single queue in java
The last link supplied by Darryl (the one from France) contains exacly the same Java code (incorrect capitalization and all); can't you contact the author for an explanation of the code; reverse engineering is not my hobby.
kind regards,
JosWhen people rob a bank they get a penalty; when banks rob people they get a bonus.
Similar Threads
-
How to Simulate Deadlock Prevention in Java?
By phaulyne08 in forum Threads and SynchronizationReplies: 1Last Post: 03-10-2012, 02:32 PM -
Servlet, Glassfish JMS java.lang.IllegalArgumentException: MQ:Queue:Invalid Queue Nam
By akasozi in forum Java ServletReplies: 0Last Post: 05-27-2011, 08:46 AM -
Single thread to handle queue based logging
By impacted in forum Threads and SynchronizationReplies: 5Last Post: 04-28-2011, 10:28 PM -
Single thread to handle queue based logging
By impacted in forum New To JavaReplies: 4Last Post: 04-28-2011, 10:25 PM -
Simulate a Network using Java
By fung1223 in forum New To JavaReplies: 0Last Post: 01-13-2010, 10:46 AM


1Likes
LinkBack URL
About LinkBacks
Reply With Quote

Bookmarks