#python #linear-programming #pulp
#python #линейное программирование #pulp
Вопрос:
Я работаю над моделью оптимизации и использую приведенную ниже переменную принятия решения
Experts = range(10000)
Skills = range(59)
zVals = [(i,u,j,v,p) for p in projects for i in Experts for u in Skills for j in Experts for v in Skills if i>j if u!=v ]
z = pu.LpVariable.dicts("z",zVals,0,1,pu.LpBinary)
Я предполагаю, что ошибка памяти при попытке загрузить данные в zVals. Кто-нибудь может помочь?Новичок в ILP, python
Комментарии:
1. Некоторая базовая арифметика подскажет вам, сколько элементов было бы в zVals, если бы на вашем компьютере было достаточно памяти для хранения всего этого. Если вам не нужно, чтобы все элементы находились в памяти одновременно, вы можете вместо этого использовать итератор.
2. Этот цикл выполняется для
10 000^2 * 59^2 = 348100000000
итераций. Даже если вы ничего не сохранили (здесь указана ошибка памяти), этот цикл, вероятно, никогда не завершится. Поэтому вам, вероятно, нужно пересмотреть свой подход, даже если использование итератора решит проблему с памятью.3. @barny @Bendik- Большое вам спасибо, я полагаю, мне придется поработать над тем, как уменьшить количество переменных здесь