Как написать это ограничение в Gurobipy? - PullRequest
0 голосов
/ 27 мая 2019

Я пишу линейную программу, используя Gurobipy, и у меня возникают проблемы с написанием одного из ограничений. Я не совсем понимаю, как суммировать неравенство <0. </p>

Ограничение следующее: https://imgur.com/a/FP0aAKl

Я уже инициализировал переменные xC и xP (я называю это xPone). Параметр B также уже определен и содержится в словаре с именем B. Я называю m̂ как mone.

Это мой текущий код:

m = Model('LP')

m.addConstrs((xC_smp[s,m,p] == - quicksum (B[(s,n,m,p)] * xPone_slnmonep[s,l,n,mone,p]) 
                                       for m in materials for s in sites for l in lines
                                       for n in versions for p in periods for mone in materialones 
                                       if B[(s,n,m,p)] < 0), name='c7')

В настоящее время возвращается пустой набор {}. Я ожидаю, что там будут некоторые ценности. Я был бы очень признателен, если бы кто-то мог указать на проблему. Спасибо.

1 Ответ

0 голосов
/ 29 мая 2019

Это может быть работа:

m.addConstrs( quicksum((xC_smp[s,m,p] for m in materials for s in sites for p in periods))  == 
            - quicksum ((B[(s,n,m,p)] * xPone_slnmonep[s,l,n,mone,p] for m in materials 
                               for s in sites for l in lines for n in versions 
                               for p in periods for mone in materialones 
                                   if B[(s,n,m,p)] < 0), name='c7')
...