Package jline
LINE - A comprehensive toolkit for queueing theory analysis.
LINE is an open-source package for analyzing queueing models via analytical methods and simulation. It provides a complete modeling environment supporting open queueing systems, closed and open queueing networks, and layered queueing networks.
- jline.lang - Core modeling language and network definitions
- jline.solvers - Solution algorithms (MVA, JMT, SSA, CTMC, etc.)
- jline.api - Low-level algorithmic implementations
- jline.examples - Comprehensive example models and tutorials
- jline.util - Utility classes and helper functions
- jline.lib - External library dependencies
- jline.bench - Performance benchmarking utilities
- jline.io - Input/output and model serialization
- jline.cli - Command-line interface
- Open Networks: Jobs arrive from external sources (e.g., Poisson arrivals)
- Closed Networks: Fixed population circulating within the system
- Mixed Networks: Combination of open and closed job classes
- Layered Networks: Hierarchical models with tasks and activities
- Petri Nets: Token-based models with places and transitions
- Exact Methods: MVA, Convolution, Matrix Analytic Methods
- Simulation: Discrete-event simulation via JMT integration
- Numerical: CTMC, Fluid analysis, SSA
- Approximation: Heavy-traffic, diffusion approximations
- Support for complex routing patterns and class switching
- Multiple scheduling disciplines (FCFS, PS, LCFS, HOL, DPS, etc.)
- Various service time distributions (Exponential, Erlang, HyperExp, APH, MAP)
- Load-dependent services and finite capacity queues
- Fork-join synchronization and cache modeling
- Random environments
Getting Started:
// Create a simple M/M/1 queue
Network model = new Network("MM1");
Source source = new Source(model, "Source");
Queue queue = new Queue(model, "Queue", SchedStrategy.FCFS);
Sink sink = new Sink(model, "Sink");
// Set parameters
OpenClass openClass = new OpenClass(model, "Class1", 0);
source.setArrival(openClass, Exp.fitMean(1.0));
queue.setService(openClass, Exp.fitMean(2.0));
// Connect nodes using routing matrix
RoutingMatrix routingMatrix = model.initRoutingMatrix();
routingMatrix.set(openClass, openClass, source, queue, 1.0);
routingMatrix.set(openClass, openClass, queue, sink, 1.0);
model.link(routingMatrix);
// Solve
NetworkAvgTable avgTable = new SolverJMT(model).getAvgTable();
avgTable.print();
See: Description
-
Class Summary Class Description GlobalConstants Global constants for tolerances and solver configuration. -
Enum Summary Enum Description VerboseLevel Enumeration for specifying solver verbosity levels.