コード例 #1
0
ファイル: LpBuilder.py プロジェクト: SpectrumLi/SherLock
 def both_roles_constraint(cls, v1, v2, v3):
     lhs = flipy.LpExpression(expression={v1: 1, v2: 1})
     rhs = flipy.LpExpression(expression={v3: 1}, constant=1)
     return flipy.LpConstraint(lhs,
                               'leq',
                               rhs,
                               name=f'_C_BothRolesPenalty_{cls._cons_id()}')
コード例 #2
0
ファイル: LpBuilder.py プロジェクト: SpectrumLi/SherLock
    def sum_expr_weight(cls, lp_var_list: List[LpVariable],
                        increase_flag: bool):
        delta = 0.01
        min_weight = 0.5
        n = len(lp_var_list)

        if not increase_flag:
            return flipy.LpExpression(
                expression={
                    v: max(1 - idx * delta, min_weight)
                    for idx, v in enumerate(lp_var_list)
                })

        return flipy.LpExpression(
            expression={
                v: max(1 - (n - idx - 1) * delta, min_weight)
                for idx, v in enumerate(lp_var_list)
            })
コード例 #3
0
ファイル: LpBuilder.py プロジェクト: SpectrumLi/SherLock
 def const_expr(cls, value: int):
     return flipy.LpExpression(constant=value)
コード例 #4
0
ファイル: LpBuilder.py プロジェクト: SpectrumLi/SherLock
 def sum_expr_weight_1(cls, lp_var_list: List[LpVariable]):
     return flipy.LpExpression(expression={v: 1 for v in lp_var_list})