Можно ли быстрее решить проблему MCKP с помощью целлюлозы?Python

Программы на Python
Ответить
Anonymous
 Можно ли быстрее решить проблему MCKP с помощью целлюлозы?

Сообщение Anonymous »


У меня проблема MCKP с множеством ограничений, и я решаю ее с помощью Pulse, следуя коду Python

def func(N,M,V,T): t0 = время.время() # Определение проблемы проба = пульпа.LpProblem("MCKP", пульпа.LpMaximize) # Определите X, который необходимо решить ---- у которого есть N клиентов, M продуктов X = [[pulp.LpVariable(f"X_{i}_{j}", lowBound=0, upBound=1, cat=pulp.LpInteger) для j в диапазоне (M)] для i в диапазоне (N)] # Определите объект оптимизации ---- максимизируйте общее значение obj = целлюлоза.LpAffineExpression() для меня в диапазоне (N): для j в диапазоне (M): obj += X[j] * V[j] проблема += объект # Определим ограничения для меня в диапазоне (N): Prob += Pulse.lpSum(X) == 1 #Каждый покупатель должен выбрать 1 продукт для меня в диапазоне (M): Prob += Pulse.lpSum([X[k] for k in range(N)]) == T #Каждый продукт должен быть выбран определенным количеством покупателей проб.решить() t1 = время.время() print("Используется: {}".format(int(t1 - t0))) N=10000 #N клиентов M=12 #M продуктов V=np.random.random((N,M)) #Ценность продукта для клиентов T=[800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 1200] #Constraints функция(N,M,V,T) Этот код занимает более 30 секунд при N=10000 и M=12. Есть ли какие-либо предложения по оптимизации? Спасибо большое.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»