diff --git a/src/topupopt/problems/esipp/model.py b/src/topupopt/problems/esipp/model.py index 89899041596f5cf46d07f45fe6f74285d347d113..e686001a0a68374f52726398e2ef5d87ec7bd023 100644 --- a/src/topupopt/problems/esipp/model.py +++ b/src/topupopt/problems/esipp/model.py @@ -2827,123 +2827,123 @@ def create_model(name: str, for l_circ in m.set_L[g] if l_circ not in m.set_L_exp[g] if l_circ != l - ) <= 1 + - M_gl*sum( - #********************************************************** - # outgoing arcs in interfaced groups, nominal direction - sum(sum(1 - for j in m.set_J_col[(g,l,l_diamond)] - #if j in m.set_J_int[(g,l,l_diamond)] - if (g,l,l_diamond,j) in m.set_GLLJ_col_t[t] - )*m.var_xi_arc_inv_t[t] - for t in m.set_T_int - ) if (g,l,l_diamond) in m.set_J_col else 0 - + - # outgoing arcs in interfaced groups, reverse direction - sum(sum(1 - for j in m.set_J_col[(g,l_diamond,l)] - #if j in m.set_J_int[(g,l_diamond,l)] - if j in m.set_J_und[(g,l_diamond,l)] - if (g,l_diamond,l,j) in m.set_GLLJ_col_t[t] - )*m.var_xi_arc_inv_t[t] - for t in m.set_T_int - ) if (g,l_diamond,l) in m.set_J_col else 0 - + - #********************************************************** - # TODO: outgoing arcs in non-interfaced optional groups, nominal - sum(sum(1 - for j in m.set_J_col[(g,l,l_diamond)] - #if j in m.set_J_int[(g,l,l_diamond)] - if (g,l,l_diamond,j) in m.set_GLLJ_col_t[t] - )*sum( - m.var_delta_arc_inv_th[(t,h)] - for h in m.set_H_t[t] - ) - for t in m.set_T - if t not in m.set_T_mdt - if t not in m.set_T_int - ) if (g,l,l_diamond) in m.set_J_col else 0 - + - # TODO: outgoing arcs in non-interfaced optional groups, reverse - sum(sum(1 - for j in m.set_J_col[(g,l_diamond,l)] - #if j in m.set_J_int[(g,l_diamond,l)] - if j in m.set_J_und[(g,l_diamond,l)] - if (g,l_diamond,l,j) in m.set_GLLJ_col_t[t] - )*sum( - m.var_delta_arc_inv_th[(t,h)] - for h in m.set_H_t[t] - ) - for t in m.set_T - if t not in m.set_T_mdt - if t not in m.set_T_int - ) if (g,l_diamond,l) in m.set_J_col else 0 - + - #********************************************************** - # interfaced individual outgoing arcs, nominal direction - sum(m.var_xi_arc_inv_gllj[(g,l,l_diamond,j)] - for j in m.set_J_int[(g,l,l_diamond)] # interfaced - if j not in m.set_J_col[(g,l,l_diamond)] # individual - ) if (g,l,l_diamond) in m.set_J_int else 0 - + - #********************************************************** - # interfaced individual undirected arcs, reverse direction - sum(m.var_xi_arc_inv_gllj[(g,l,l_diamond,j)] - for j in m.set_J_und[(g,l_diamond,l)] # undirected - if j in m.set_J_int[(g,l_diamond,l)] # interfaced - if j not in m.set_J_col[(g,l_diamond,l)] # individual - ) if (g,l_diamond,l) in m.set_J_und else 0 - + - #********************************************************** - # outgoing non-interfaced individual optional arcs - sum( - sum(m.var_delta_arc_inv_glljh[(g,l,l_diamond,j,h)] - for h in m.set_H_gllj[(g,l,l_diamond,j)]) - for j in m.set_J[(g,l,l_diamond)] - if j not in m.set_J_col[(g,l,l_diamond)] # individual - if j not in m.set_J_mdt[(g,l,l_diamond)] # optional - if j not in m.set_J_int[(g,l,l_diamond)] # interfaced - ) if (g,l,l_diamond) in m.set_J else 0 - + - #********************************************************** - # individual non-interfaced undirected arcs, reverse dir. - sum( - sum(m.var_delta_arc_inv_glljh[(g,l_diamond,l,j,h)] - for h in m.set_H_gllj[(g,l_diamond,l,j)]) - for j in m.set_J_und[(g,l_diamond,l)] # undirected - if j not in m.set_J_col[(g,l_diamond,l)] # individual - if j not in m.set_J_mdt[(g,l_diamond,l)] # optional - if j not in m.set_J_int[(g,l_diamond,l)] # interfaced - ) if (g,l_diamond,l) in m.set_J_und else 0 - + - #********************************************************** - # preselected outgonig arcs, nominal direction - len(m.set_J_pre[(g,l,l_diamond)] - ) if (g,l,l_diamond) in m.set_J_pre else 0 - + - #********************************************************** - # mandatory outgoing arcs, nominal direction - len(m.set_J_mdt[(g,l,l_diamond)] - ) if (g,l,l_diamond) in m.set_J_mdt else 0 - + - #********************************************************** - # undirected preselected arcs, reverse direction - sum(1 - for j in m.set_J_pre[(g,l_diamond,l)] - if j in m.set_J_und[(g,l_diamond,l)] - ) if (g,l_diamond,l) in m.set_J_pre else 0 - + - #********************************************************** - # undirected mandatory arcs, reverse direction - sum(1 - for j in m.set_J_mdt[(g,l_diamond,l)] - if j in m.set_J_und[(g,l_diamond,l)] - ) if (g,l_diamond,l) in m.set_J_mdt else 0 - #********************************************************** - for l_diamond in m.set_L[g] - if l_diamond not in m.set_L_imp[g] - if l_diamond != l - ) + ) <= 1 #+ + # M_gl*sum( + # #********************************************************** + # # outgoing arcs in interfaced groups, nominal direction + # sum(sum(1 + # for j in m.set_J_col[(g,l,l_diamond)] + # #if j in m.set_J_int[(g,l,l_diamond)] + # if (g,l,l_diamond,j) in m.set_GLLJ_col_t[t] + # )*m.var_xi_arc_inv_t[t] + # for t in m.set_T_int + # ) if (g,l,l_diamond) in m.set_J_col else 0 + # + + # # outgoing arcs in interfaced groups, reverse direction + # sum(sum(1 + # for j in m.set_J_col[(g,l_diamond,l)] + # #if j in m.set_J_int[(g,l_diamond,l)] + # if j in m.set_J_und[(g,l_diamond,l)] + # if (g,l_diamond,l,j) in m.set_GLLJ_col_t[t] + # )*m.var_xi_arc_inv_t[t] + # for t in m.set_T_int + # ) if (g,l_diamond,l) in m.set_J_col else 0 + # + + # #********************************************************** + # # TODO: outgoing arcs in non-interfaced optional groups, nominal + # sum(sum(1 + # for j in m.set_J_col[(g,l,l_diamond)] + # #if j in m.set_J_int[(g,l,l_diamond)] + # if (g,l,l_diamond,j) in m.set_GLLJ_col_t[t] + # )*sum( + # m.var_delta_arc_inv_th[(t,h)] + # for h in m.set_H_t[t] + # ) + # for t in m.set_T + # if t not in m.set_T_mdt + # if t not in m.set_T_int + # ) if (g,l,l_diamond) in m.set_J_col else 0 + # + + # # TODO: outgoing arcs in non-interfaced optional groups, reverse + # sum(sum(1 + # for j in m.set_J_col[(g,l_diamond,l)] + # #if j in m.set_J_int[(g,l_diamond,l)] + # if j in m.set_J_und[(g,l_diamond,l)] + # if (g,l_diamond,l,j) in m.set_GLLJ_col_t[t] + # )*sum( + # m.var_delta_arc_inv_th[(t,h)] + # for h in m.set_H_t[t] + # ) + # for t in m.set_T + # if t not in m.set_T_mdt + # if t not in m.set_T_int + # ) if (g,l_diamond,l) in m.set_J_col else 0 + # + + # #********************************************************** + # # interfaced individual outgoing arcs, nominal direction + # sum(m.var_xi_arc_inv_gllj[(g,l,l_diamond,j)] + # for j in m.set_J_int[(g,l,l_diamond)] # interfaced + # if j not in m.set_J_col[(g,l,l_diamond)] # individual + # ) if (g,l,l_diamond) in m.set_J_int else 0 + # + + # #********************************************************** + # # interfaced individual undirected arcs, reverse direction + # sum(m.var_xi_arc_inv_gllj[(g,l,l_diamond,j)] + # for j in m.set_J_und[(g,l_diamond,l)] # undirected + # if j in m.set_J_int[(g,l_diamond,l)] # interfaced + # if j not in m.set_J_col[(g,l_diamond,l)] # individual + # ) if (g,l_diamond,l) in m.set_J_und else 0 + # + + # #********************************************************** + # # outgoing non-interfaced individual optional arcs + # sum( + # sum(m.var_delta_arc_inv_glljh[(g,l,l_diamond,j,h)] + # for h in m.set_H_gllj[(g,l,l_diamond,j)]) + # for j in m.set_J[(g,l,l_diamond)] + # if j not in m.set_J_col[(g,l,l_diamond)] # individual + # if j not in m.set_J_mdt[(g,l,l_diamond)] # optional + # if j not in m.set_J_int[(g,l,l_diamond)] # interfaced + # ) if (g,l,l_diamond) in m.set_J else 0 + # + + # #********************************************************** + # # individual non-interfaced undirected arcs, reverse dir. + # sum( + # sum(m.var_delta_arc_inv_glljh[(g,l_diamond,l,j,h)] + # for h in m.set_H_gllj[(g,l_diamond,l,j)]) + # for j in m.set_J_und[(g,l_diamond,l)] # undirected + # if j not in m.set_J_col[(g,l_diamond,l)] # individual + # if j not in m.set_J_mdt[(g,l_diamond,l)] # optional + # if j not in m.set_J_int[(g,l_diamond,l)] # interfaced + # ) if (g,l_diamond,l) in m.set_J_und else 0 + # + + # #********************************************************** + # # preselected outgonig arcs, nominal direction + # len(m.set_J_pre[(g,l,l_diamond)] + # ) if (g,l,l_diamond) in m.set_J_pre else 0 + # + + # #********************************************************** + # # mandatory outgoing arcs, nominal direction + # len(m.set_J_mdt[(g,l,l_diamond)] + # ) if (g,l,l_diamond) in m.set_J_mdt else 0 + # + + # #********************************************************** + # # undirected preselected arcs, reverse direction + # sum(1 + # for j in m.set_J_pre[(g,l_diamond,l)] + # if j in m.set_J_und[(g,l_diamond,l)] + # ) if (g,l_diamond,l) in m.set_J_pre else 0 + # + + # #********************************************************** + # # undirected mandatory arcs, reverse direction + # sum(1 + # for j in m.set_J_mdt[(g,l_diamond,l)] + # if j in m.set_J_und[(g,l_diamond,l)] + # ) if (g,l_diamond,l) in m.set_J_mdt else 0 + # #********************************************************** + # for l_diamond in m.set_L[g] + # if l_diamond not in m.set_L_imp[g] + # if l_diamond != l + # ) ) if temp_constr == True: