Подсчет переменных и ограничений PuLP и CP-Sat

#optimization #pulp #cp-sat-solver

#оптимизация #pulp #cp-sat-решатель

Вопрос:

Кто-нибудь знает, как я могу получить распечатку количества переменных и ограничений, созданных в каждой задаче оптимизации, созданной в Python как CP-Sat, так и PuLP?

Спасибо

Ответ №1:

Я не знаком с CP-sat, но в PuLP у LpProblem класса есть метод numVariables() , который возвращает количество переменных.

Например:

 import pulp

prob = pulp.LpProblem("minimize",pulp.LpMinimize)

single_var = pulp.LpVariable('single_var')
set_of_var = pulp.LpVariable.dicts("x_i,j", ((i, j) for i in range(3) for j in range(2)))

print(prob.numVariables())

# Add objective
prob  = single_var   pulp.lpSum([set_of_var[i, j] for i in range(3) for j in range(2)])
print(prob.numVariables())

# Solve
prob.solve()
print(prob.numVariables())
 

Вернет:

 0
0
7
 

Обратите внимание, что переменные подсчитываются только после того, как они были добавлены в модель (в цель или ограничения), и модель была решена.

Ответ №2:

вы можете сделать это:

 count=0
for v in prob.variables():
    count =1