lattice_cpa.py 文件源码

python
阅读 32 收藏 0 点赞 0 评论 0

项目:risk-slim 作者: ustunb 项目源码 文件源码
def add_mip_starts(mip, indices, pool, max_mip_starts=float('inf'), mip_start_effort_level=4):
    """

    Parameters
    ----------
    mip - RiskSLIM surrogate MIP
    indices - indices of RiskSLIM surrogate MIP
    pool - solution pool
    max_mip_starts - max number of mip starts to add (optional; default is add all)
    mip_start_effort_level - effort that CPLEX will spend trying to fix (optional; default is 4)

    Returns
    -------

    """
    try:
        obj_cutoff = mip.parameters.mip.tolerances.uppercutoff.get()
    except:
        obj_cutoff = np.inf

    n_added = 0
    for k in range(0, len(pool)):
        if n_added < max_mip_starts:
            if pool.objvals[0] <= (obj_cutoff + np.finfo('float').eps):
                mip_start_name = "mip_start_" + str(n_added)
                mip_start_obj, _ = convert_to_risk_slim_cplex_solution(rho=pool.solutions[k, ], indices = indices, objval=pool.objvals[k])
                mip.MIP_starts.add(mip_start_obj, mip_start_effort_level, mip_start_name)
                n_added += 1
        else:
            break

    return mip


# Data-Related Computation
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号