Class Pfqn_perm

java.lang.Object
jline.api.pfqn.nc.Pfqn_perm

public final class Pfqn_perm extends Object
Permanent of a demand matrix, with optional column multiplicities.

The pfqn_ entry point of the permanent library. It exists because the product-form joint queue-length probability of the per-station TOTAL populations is a permanent of the demand matrix replicated once per job, which is a normalizing-constant quantity rather than a general-purpose linear algebra one; see Pfqn_jointmarg.

Orientation is chosen before repeated lines are grouped, inside Permanent. That is a correctness concern, not an optimisation: perm(A) is transpose-invariant but the Ryser SUM is not, and exploiting repeated rows silently expands the transpose.

Reference: H. J. Ryser, "Combinatorial Mathematics", Carus Mathematical Monographs 14, Mathematical Association of America, 1963.

  • Method Details

    • pfqn_perm

      public static double pfqn_perm(Matrix A)
      Permanent of the square matrix A.
      Parameters:
      A - square matrix
      Returns:
      the permanent
    • pfqn_perm

      public static double pfqn_perm(Matrix A, int[] m)
      Permanent of the matrix whose column j is column j of A repeated m[j] times, so that sum(m) equals the number of rows of A.
      Parameters:
      A - matrix of distinct columns
      m - multiplicity of each column
      Returns:
      the permanent of the expanded matrix