hallo Jungs für die Simulation der Warteschlange Sperrzeit für eine M/M/1 Ich kam mit dieser Lösung, aber es ist leider nicht objektorientiert, auch das Problem ist, ich möchte es mit M/M/2-System zu simulieren Zum Beispiel habe ich Lambda mit 19 und mu mit 20 initialisiert, nur um die Berechnung zu erleichtern. Jede Lösung, jeder Hinweis, jedes Codebeispiel wird sehr geschätzt.Wie verarbeitet man die Sperrzeit einer simulierten Queue in Java für ein M/M/2-System?
public class Main {
public static void main(String[] args) {
final int MAX_ENTITY = 100000;
final int SYSTEM_CAPACITY = 5;
final int BUSY = 1;
final int IDLE = 0;
double lambda = 19, mu = 20;
int blocked = 0;
int queue_length = 0;
int server_state = IDLE;
int entity = 0;
double next_av = getArivalRand(lambda);
double next_dp = next_av + getDeparturedRand(lambda);
while (entity <= MAX_ENTITY) {
//Arrival
if (next_av <= next_dp) {
entity++;
if (server_state == IDLE) {
server_state = BUSY;
} else if (queue_length < SYSTEM_CAPACITY - 1) {
queue_length++;
} else {
blocked++;
}
next_av += getArivalRand(lambda);
} // Departure
else if (queue_length > 0) {
queue_length--;
next_dp = next_dp + getDeparturedRand(mu);
} else {
server_state = IDLE;
next_dp = next_av + getDeparturedRand(mu);
}
}
System.out.println("Blocked Etity:" + blocked + "\n");
}
public static double getArivalRand(double lambda) {
return -1/lambda * Math.log(1 - Math.random());
}
public static double getDeparturedRand(double mu) {
return -1/mu * Math.log(1 - Math.random());
}
}
EDIT:
Check here wenn u wissen nicht, über die Warteschlangentheorie
bitte höflich sein, gibt es Anzahl der Server, hier für weitere Informationen https lesen: //en.wikipedia.org/wiki/M/M/1_queue –
Es war nur ein dummer Scherz. Sie sollten den Link in Ihre Frage bearbeiten. – Michael
Was genau ist Ihre Frage? Das heißt, was macht Ihr Code, den er nicht tun soll oder nicht tun soll? – pjs