Class Mapqn_qrf_bas_nlp
qrf_bas_mmi.m / qrf_bas_mem.m / qrf_bas_bethe.m and of
native Python api/mapqn/qrf_bas_nlp.py.
The polytope is NOT re-derived here. It is the one
Mapqn_qr_bounds_bas.buildSystem(jline.api.mapqn.Mapqn_qr_bounds_bas_parameters) assembles and that the LP token
qrf.bas is validated on against the AMPL model
qrboundsbas_skel.mod; only the objective differs. Re-transcribing the
fifteen families would duplicate the very index conventions that twice went
wrong in the MATLAB twin: the THM30/THM3 population-to-index shift, and a
MARGINALS sum whose upper limit was taken on the 1-based index rather than
the population.
-
Method Summary
Modifier and TypeMethodDescriptionstatic Mapqn_solutionMinimise the tree-reweighted (Bethe) free entropy over the BAS polytope.static Mapqn_solutionMinimise negative entropy (maximum entropy) over the BAS polytope.static Mapqn_solutionMinimise mutual information over the BAS polytope.
-
Method Details
-
solveMmi
Minimise mutual information over the BAS polytope.- Returns:
- a solution carrying
UN_iandQN_i, 1-based
-
solveMem
Minimise negative entropy (maximum entropy) over the BAS polytope. -
solveBethe
Minimise the tree-reweighted (Bethe) free entropy over the BAS polytope.With
lambda = 1/Mthe objective islambda*sum_{i!=j} I(n_i;n_j) - sum_i H(n_i), i.e. lambda times the MMI body plus the MEM body, both taken over populations from ZERO. lambda is half the uniform point2/Mof the spanning-tree polytope of K_M, the largest uniform edge weight at which the tree-reweighted entropy is concave and the program therefore convex. This is the objective ofqrf.betheevaluated over the BAS decision vector, so the blocking configurations and the per-station capacities enter through the ranges alone.
-