2016-07-07 3 views
0

Я использую «пульпу» в python вместе с GUROBI для решения некоторых проблем оптимизации. Например, расчеты журнал для GUROBI является:Как отключить журнал расчетов целлюлозы

Optimize a model with 12 rows, 25 columns and 39 nonzeros 
Coefficient statistics: 
    Matrix range [1e+00, 1e+00] 
    Objective range [1e+00, 1e+00] 
    Bounds range [1e+00, 1e+00] 
    RHS range  [1e+00, 1e+00] 
Found heuristic solution: objective 12 
Presolve removed 3 rows and 12 columns 
Presolve time: 0.00s 
Presolved: 9 rows, 13 columns, 27 nonzeros 
Variable types: 0 continuous, 13 integer (13 binary) 

Root relaxation: objective 7.000000e+00, 11 iterations, 0.00 seconds 

    Nodes | Current Node |  Objective Bounds  |  Work 
Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time 

* 0  0    0  7.0000000 7.00000 0.00%  - 0s 

Explored 0 nodes (11 simplex iterations) in 0.00 seconds 
Thread count was 4 (of 4 available processors) 

Optimal solution found (tolerance 1.00e-04) 
Best objective 7.000000000000e+00, best bound 7.000000000000e+00, gap 0.0% 
('Gurobi status=', 2) 

Я хочу, чтобы отключить этот вывод, потому что я собираюсь решить 800K задачи оптимизации и написание этих журналов в выводе сделать мой код слишком медленно. Любая идея для отключения этих журналов?

ответ

1

Я только что нашел, как мы можем сделать это: вместо используемого по умолчанию способ вызова Gurobi, который:

pulp.GUROBI().solve(prob) 

нам нужно написать: ответ

pulp.GUROBI(msg=0).solve(prob) 
0

m0_as является правильным. Просто хочу поделиться некоторыми подробностями. В библиотеке PuLP каждый класс решателя происходит из одного базового класса LpSolver.

class LpSolver: 
    """A generic LP Solver""" 

    def __init__(self, mip = True, msg = True, options = [], *args, **kwargs): 
     self.mip = mip 
     self.msg = msg 
     self.options = options 

В конструкторе этих параметров является тзд, который определяет, если вы хотите повторить информацию из решателя на стандартный вывод. Это реализация class GUROBI

См линии 1774 он говорит

@param msg: displays information from the solver to stdout 

Вы можете легко найти другие решатель определенные параметры в этом исходном файле очень легко.