RandomFunction con un QueueingProcess per più di un gestore di servizi si blocca, perché?

Aug 30 2020

In Mathematica, voglio, ad esempio, indagare su una coda M / M / 4, ovvero una coda singola con 4 servizi ciascuno che gestisce i lavori dalla stessa coda. La tariffa di arrivo è 4 e la tariffa di servizio è 2. Non ho imposto limiti alla dimensione della coda, cioè la coda può contenere un numero infinito di articoli. WL sembra accettare comodamente la seguente definizione:

svcCount = 4;
sp = QueueingProcess[4, 2, svcCount];
QueueProperties[sp, "QueueDiagram"]
QueueProperties[sp]

WL torna con valori sensati. Posso persino tracciare un diagramma che descrive le probabilità delle diverse dimensioni della coda utilizzando:

\[ScriptCapitalS] = StationaryDistribution[sp]
DiscretePlot[PDF[\[ScriptCapitalS], x], {x, 0, 10}, PlotRange -> All]

Ma quando provo a simulare il funzionamento di quel sistema di accodamento con RandomFunctioncome spiegato nella documentazione ( Nel QueuingProcessvedere il primo degli "esempi di base" ), Mathematica si blocca o il calcolo non è terminato per qualche ragione insondabile:

data = RandomFunction[sp, {0, 15, 1}]

Utilizzare "Abort Evaluation" per interrompere il calcolo e ottenere nuovamente l'accesso al notebook.

Se imposto svcCount = 1, cioè configuro il sistema di accodamento per avere un'unica coda, tutto funziona bene.

La mia domanda: si tratta (molto probabilmente) di un bug o la mia applicazione è troppo ingenua e in tal caso, come posso eseguire una simulazione di un sistema di accodamento con più gestori di servizi, ad esempio svcCount > 1?

Grazie.

Risposte

nanitous Sep 07 2020 at 15:45

Ho appena ricevuto una risposta dal supporto Wolfram che conferma che si tratta di un bug che è stato risolto nella versione 12.1.