orloge: OR 日志解析器
orloge 是一个针对多个 MIP 求解器的日志解析器,它将内容标准化为一个包含大部分有用信息的 Python 字典。它支持 GUROBI、CPLEX 和 CBC。报告的信息包括:最佳目标值、最佳界限、割、间隙、节点、状态、时间等。它还提供了一个包含求解器整个进度日志的 pandas 数据框。
网站: https://github.com/pchtsp/orloge/
示例使用 GUROBI:
import orloge as ol
ol.get_info_log_solver('tests/data/gurobi700-app1-2.out', 'GUROBI')
生成以下输出:
{'best_bound': -41.0,
'best_solution': -41.0,
'cut_info': {'best_bound': -167.97894,
'best_solution': -41.0,
'cuts': {'Clique': 1,
'Gomory': 16,
'Implied bound': 23,
'MIR': 22},
'time': 21.0},
'first_relaxed': -178.94318,
'first_solution': -41.0,
'gap': 0.0,
'matrix': {'constraints': 53467, 'nonzeros': 199175, 'variables': 26871},
'matrix_post': {'constraints': 35616, 'nonzeros': 149085, 'variables': 22010},
'nodes': 526.0,
'presolve': {'cols': 4861, 'rows': 17851, 'time': 3.4},
'progress':
Node NodesLeft Objective Depth ... CutsBestBound Gap ItpNode Time
0 0 0 -178.94318 0 ... -178.94318 336% None 4s
1 0 0 -171.91701 0 ... -171.91701 319% None 15s
2 0 0 -170.97660 0 ... -170.97660 317% None 15s
[26 rows x 10 columns],
'rootTime': 0.7,
'sol_code': 1,
'solver': 'GUROBI',
'status': 'Optimal solution found',
'status_code': 1,
'time': 46.67,
'version': '7.0.0'}