AUTO Solver
The AUTO solver (alias: LINE) offers automatic choice of the other solvers implemented in LINE (CTMC, NC, MVA, etc.). Presently it relies on custom heuristics based on known features of the algorithms.
| Method | Algorithm | Reference |
|---|---|---|
default | Automatic solver and method selection | — |
Example
This example demonstrates the AUTO solver, which automatically selects the most appropriate solver for your model. The unique feature of AUTO is that you don't need to manually choose between MVA, NC, CTMC, or other solvers, it analyzes the model and selects the best algorithm.
% Create a simple M/M/1 queue
model = Network('AUTO Example');
source = Source(model, 'Source');
queue = Queue(model, 'Queue', SchedStrategy.FCFS);
sink = Sink(model, 'Sink');
jobclass = OpenClass(model, 'Class1');
source.setArrival(jobclass, Exp(0.9));
queue.setService(jobclass, Exp(1.0));
P = model.initRoutingMatrix();
P.set(jobclass, jobclass, source, queue, 1.0);
P.set(jobclass, jobclass, queue, sink, 1.0);
model.link(P);
% AUTO automatically selects the best solver
AUTO(model).avgTable()
Output:
AUTO analysis [selected: MVA, method: default/lin, lang: matlab] completed.
1×8 table
Station JobClass QLen Util RespT ResidT ArvR Tput
Queue Class1 9 0.9 10 1 0.9 0.9
// Create a simple M/M/1 queue
Network model = new Network("AUTO Example");
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(0.9));
queue.setService(jobclass, new Exp(1.0));
RoutingMatrix P = model.initRoutingMatrix();
P.set(jobclass, jobclass, source, queue, 1.0);
P.set(jobclass, jobclass, queue, sink, 1.0);
model.link(P);
// AUTO automatically selects the best solver
new AUTO(model).avgTable.print();
Output:
AUTO analysis [selected: MVA, method: default/lin, lang: java] completed.
Station JobClass QLen Util RespT ResidT ArvR Tput
Queue Class1 9 0.9 10 1 0.9 0.9
# Create a simple M/M/1 queue
from line_solver import *
model = Network("AUTO Example")
source = Source(model, "Source")
queue = Queue(model, "Queue", SchedStrategy.FCFS)
sink = Sink(model, "Sink")
jobclass = OpenClass(model, "Class1")
source.set_arrival(jobclass, Exp(0.9))
queue.set_service(jobclass, Exp(1.0))
P = model.init_routing_matrix()
P.set(jobclass, jobclass, source, queue, 1.0)
P.set(jobclass, jobclass, queue, sink, 1.0)
model.link(P)
# AUTO automatically selects the best solver
print(AUTO(model).avg_table)
Output:
AUTO analysis [selected: MVA, method: default/lin, lang: python] completed.
Station JobClass QLen Util RespT ResidT ArvR Tput
Queue Class1 9 0.9 10 1 0.9 0.9