cvxopt.glpk.ilp Документация - PullRequest
       82

cvxopt.glpk.ilp Документация

0 голосов
/ 16 февраля 2020

Я видел, что CVXOPT поддерживает GLPK, и можно сделать:

from cvxopt.glpk import ilp

Однако я не могу найти документацию для модуля glpk в документации по cvxopt. Я пытаюсь решить целочисленную программу и хочу понять интерфейс ilp.

1 Ответ

0 голосов
/ 16 февраля 2020

cvxopt.glpk решает ilp с помощью GLPK.
Рассмотрим следующий LP:

Min -3x1 -x2
 x1 + x2 <= 10
    - x2 <= -4.5

Это становится (предполагая сначала x1,x2 дробных, а затем целых чисел).

>>> c = matrix(np.array([-3,-1],dtype=float))
>>> h = matrix(np.array([10,-4.5],dtype=float))
>>> G = matrix(np.array([[1,1],[0,-1]],dtype=float))
>>> (status,x) = ilp(c=c,G=G,h=h)
>>> print(x)
[ 5.50e+00]
[ 4.50e+00]
>>> (status,x) = ilp(c=c,G=G,h=h,I=set(range(2)))
>>> print(x)
[ 5.00e+00]
[ 5.00e+00]

За дополнительной информацией вы можете обратиться к документации

>>> help(ilp)

    PURPOSE
    Solves the mixed integer linear programming problem

        minimize    c'*x
        subject to  G*x <= h
                    A*x = b
                    x[k] is integer for k in I
                    x[k] is binary for k in B

    ARGUMENTS
    c            nx1 dense 'd' matrix with n>=1

    G            mxn dense or sparse 'd' matrix with m>=1

    h            mx1 dense 'd' matrix

    A            pxn dense or sparse 'd' matrix with p>=0

    b            px1 dense 'd' matrix

    I            set of indices of integer variables

    B            set of indices of binary variables
...