KarrLab/conv_opt

View on GitHub
conv_opt/solver/glpk.py

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
""" GLPK module

:Author: Jonathan Karr <jonrkarr@gmail.com>
:Date: 2017-11-22
:Copyright: 2017, Karr Lab
:License: MIT
"""

from .optlang import OptlangModel
from ..core import QuadraticTerm, ConvOptError
import optlang.glpk_interface
import swiglpk


class GlpkModel(OptlangModel):
    """ GLPK solver """

    INTERFACE = optlang.glpk_interface

    def get_stats(self):
        """ Get diagnostic information about the model

        Returns:
            :obj:`dict`: diagnostic information about the model
        """
        model = self._model

        return {
            'is_integer': model.is_integer,
            'bf_exists': swiglpk.glp_bf_exists(model.problem),
            'bf_updated': swiglpk.glp_bf_updated(model.problem),
            'warm_up': swiglpk.glp_warm_up(model.problem),
        }