Class AGOptions

java.lang.Object
jline.solvers.SolverOptions
jline.solvers.ag.AGOptions

public class AGOptions extends SolverOptions
Options of the agent-based (RCAT) solver.

Beside the truncation level of an open agent, these carry the EXECUTION BACKEND of the reversed-rate fixed point. The backend decides who evaluates an agent, never what the agent evaluates to: agent k reads the rest of the model only through the scalar reversed rates x, and the sweep is Jacobi, so the agent order is immaterial and every backend walks the same iterates.

  • Field Details

    • EXEC_SERIAL

      public static final String EXEC_SERIAL
      One agent per (station, class); solve them one after another.
      See Also:
    • EXEC_PARALLEL

      public static final String EXEC_PARALLEL
      Fan the agents of a sweep out over a local thread pool. Named "parallel", with "para" accepted as an alias -- the same pair SolverSSA's replica analyzer answers to, so one spelling convention covers both solvers. It was called "threads" until 2026-08-19; that name is no longer accepted, and AgExec.isParallel(String) is the only place either spelling is recognised.
      See Also:
    • EXEC_PARA

      public static final String EXEC_PARA
      The accepted alias of EXEC_PARALLEL, as SolverSSA spells it.
      See Also:
    • EXEC_CLUSTER

      public static final String EXEC_CLUSTER
      Partition the agents over remote ag-worker processes.
      See Also:
    • maxStates

      public int maxStates
      Truncation level of an OPEN agent's queue-length dimension. A closed class uses its own population instead, so this bounds only the open agents; 'inapinf' ignores it and solves them on the infinite state space.
    • exec

      public String exec
    • nworkers

      public int nworkers
      Thread-pool size for EXEC_PARALLEL; 0 means one thread per available processor. Pinned rather than derived per sweep so that a run is reproducible on a machine whose load changes under it.
    • endpoints

      public List<String> endpoints
      Worker addresses ("host:port") for EXEC_CLUSTER.
    • workerTimeout

      public double workerTimeout
      Seconds to wait on a worker before solving its agents locally instead. A lost worker is never fatal: any agent can be solved anywhere given x, so a cluster run degrades to a slower run and never to a wrong one.
  • Constructor Details

    • AGOptions

      public AGOptions()
  • Method Details

    • copy

      public SolverOptions copy()
      Preserve the AG fields across the defensive copy the Solver constructor takes.

      WITHOUT THIS OVERRIDE THE WHOLE EXECUTION AXIS IS SILENTLY INERT. Solver stores options.copy(), and the base copy returns a plain SolverOptions, so exec, endpoints, maxStates, nworkers and workerTimeout would all be dropped between construction and the solve -- a run asked for on the cluster would quietly execute serially and report nothing. Worse, a test comparing two backends would then compare two SERIAL runs and pass vacuously, which is how this was found.

      Overrides:
      copy in class SolverOptions
      Returns:
      a deep copy of this options object
    • maxStates

      public AGOptions maxStates(int maxStates)
    • exec

      public AGOptions exec(String exec)
    • nworkers

      public AGOptions nworkers(int nworkers)
    • endpoint

      public AGOptions endpoint(String hostPort)
    • workerTimeout

      public AGOptions workerTimeout(double seconds)