Menu

Tree [286510] master /
 History

HTTPS access


File Date Author Commit
 doc 2025-05-23 casaleggg casaleggg [56bb1a] j chore: updated jar
 jar 3 days ago Giuliano Casale Giuliano Casale [286510] j refactor: further refactored main folder from...
 java 3 days ago Giuliano Casale Giuliano Casale [77355f] j refactor: moved main folder to jvm/ and sourc...
 jvm 3 days ago Giuliano Casale Giuliano Casale [f4114a] j chore: updated README
 matlab 4 days ago Giuliano Casale Giuliano Casale [d97bc4] m fix: more small nrm fixes
 maven 2025-06-15 casaleggg casaleggg [fc0d20] m,j,p: released 2.0.39. Updated dev files to 2....
 python 5 days ago Giuliano Casale Giuliano Casale [1686f5] j refactor: made Matrix.data protected
 .gitattributes 2024-08-02 gcasale gcasale [2ebf61] feat: migration from Github
 .gitignore 2024-08-02 gcasale gcasale [2ebf61] feat: migration from Github
 CONTRIBUTING 2024-08-02 gcasale gcasale [2ebf61] feat: migration from Github
 LICENSE 2024-08-02 gcasale gcasale [2ebf61] feat: migration from Github
 README.md 2024-08-02 gcasale gcasale [1ddc16] chore: updated READMEs

Read Me

LINE Solver: Queueing Theory Algorithms

Website: http://line-solver.sourceforge.net/

Latest stable release: https://sourceforge.net/projects/line-solver/files/latest/download

License
Hits

Main distribution of the LINE solver for MATLAB (stable version), Java (alpha version), and Python (alpha version). Past releases can be found on Sourceforge.

What is LINE?

LINE is an open source package to analyze queueing models via analytical methods and simulation. The tool features algorithms for the solution of open queueing systems (e.g., M/M/1, M/M/k, M/G/1, ...), open and closed queueing networks, and layered queueing networks.

Documentation

Check out the LINE manual and the README files in the java/, matlab/, and python/ folders for getting started information.

License

LINE is released as open source under the BSD-3 license.

Acknowledgement

The development of LINE has been partially funded by the European Commission grants FP7-318484 (MODAClouds), H2020-644869 (DICE), H2020-825040 (RADON), and by the EPSRC grant EP/M009211/1 (OptiMAM).

Example: Solving a basic queueing system

We illustrate how to simulate an M/M/1 queue:

MATLAB:

lineStart;
model = Network('M/M/1');

source = Source(model, 'Source');
queue = Queue(model, 'Queue', SchedStrategy.FCFS);
sink = Sink(model, 'Sink');

jobclass = OpenClass(model, 'Class1');
source.setArrival(jobclass, Exp(1.0));
queue.setService(jobclass, Exp(2.0));

model.link(Network.serialRouting(source,queue,sink));

AvgTable = SolverJMT(model,'seed',23000).getAvgTable

Java:

import jline.lang.*;
import jline.lang.constant.*;
import jline.lang.distributions.*;
import jline.lang.nodes.*;
import jline.solvers.jmt.JMTOptions;
import jline.solvers.jmt.SolverJMT;

public class MM1 {
    public static void main(String[] args){
        Network model = new Network("M/M/1");

        Source source = new Source(model, "Source");
        Queue queue = new Queue(model, "Queue", SchedStrategy.FCFS);
        Sink sink = new Sink(model, "Sink");

        OpenClass jobclass = new OpenClass(model, "Class1");
        source.setArrival(jobclass, new Exp(1.0)); 
        queue.setService(jobclass, new Exp(2.0)); 

        model.link(Network.serialRouting(source, queue, sink));

        new SolverJMT(model, "seed", 23000).getAvgTable().print();
    }
}

Python:

from line_solver import *

if __name__ == "__main__":
    model = Network("M/M/1")

    source = Source(model, "Source")
    queue = Queue(model, "Queue", SchedStrategy.FCFS)
    sink = Sink(model, "Sink")

    jobclass = OpenClass(model, "Class1")
    source.setArrival(jobclass, Exp(1.0))
    queue.setService(jobclass, Exp(2.0))

    model.link(Network.serialRouting(source, queue, sink))

    table = SolverJMT(model,"seed",23000).getAvgTable()

To extract a particular value you may use LINE's table get function (tget), for example:

    print(tget(table,'Queue'))
    print(table['RespT'].tolist())
    print(tget(table,'Queue','Class1')['RespT'].tolist())
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.