Hello...
More of my philosophy about the analytic queueing-circuit analyzer PDQ
and more..
I am a white arab from Morocco, and i think i am smart since i have also invented many scalable algorithms and algorithms..
I think i am smart, so as you have just noticed i have just talked
about timesharing and coroutines in the following link:
https://groups.google.com/g/alt.culture.morocco/c/tN_O-AgkGjY
And i have just talked about Markov chains in mathematics and about
Petri Nets here:
https://groups.google.com/g/soc.culture.quebec/c/LPE4zR-BqHY
I now i will talk about my PDQ for Delphi and Freepascal:
This is a port by Amine Moulay Ramdane of PDQ version 6.2.0 to Delphi
on Windows and to Freepascal on both Windows and Linux, i have also
provided you with two demos, one queuing MM1 demo, and another Jackson
network demo. Also i have provided you with my HTML tutorial on how to
solve analytically the Jackson network problem provided to you as a PDQ
demo.
PDQ is an analytic queueing-circuit analyzer made freely available under MIT/X11 license from:
http://www.perfdynamics.com/Tools/PDQ.html
You can download it from my website here:
https://sites.google.com/site/scalable68/pdq-for-delphi-and-freepascal
And here is an example in Delphi and Freepascal of the Jackson network
demo that i have included inside the zip file(and you can look
at my mathematical modeling of it here in my website:
https://sites.google.com/site/scalable68/jackson-network-problem):
---
program test_network;
uses pdq64,LinSys;
type router1 = array of pansichar;
servTime1 = array of double;
visitRatios1 = array of double;
serviceDemands1 = array of double;
var
A, b, x : TMatrix;
arrivRate:double;
work:pansichar;
router:router1;
servTime:servTime1;
visitRatios:visitRatios1;
serviceDemands:serviceDemands1;
i:integer;
begin
setlength(router,3);
setlength(servTime,3);
setlength(visitRatios,3);
setlength(serviceDemands,3);
arrivRate := 0.50;
work:='Traffic';
router[0]:='Router1';
router[1]:='Router2';
router[2]:='Router3';
servTime[0]:=1.0;
servTime[1]:=2.0;
servTime[2]:=1.0;
A := TMatrix.Create (3,3);
b := TMatrix.Create (3,1);
x := TMatrix.Create (3,1);
A[1,1] := 1.0; A[1,2] := 0.0; A[1,3] := -0.2;
A[2,1] := -0.5; A[2,2] := 1.0; A[2,3] := 0.0;
A[3,1] := -0.5; A[3,2] := -0.8; A[3,3] := 1.0;
b[1,1] := 0.5; b[2,1] := 0.0; b[3,1] := 0.0;
LinSys.gauss(A, b, x);
visitRatios[0]:=x[1,1]/arrivRate;
visitRatios[1