首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Python纸浆在约束中使用mod函数

使用Python纸浆在约束中使用mod函数
EN

Stack Overflow用户
提问于 2017-12-22 00:39:46
回答 1查看 732关注 0票数 1

我正在写一个LpProblem,我需要创建一个约束,其中一些变量的和是100的倍数……100,200,300...

我正在尝试使用mod()、round()和int()来执行下面的表达式,但都不起作用,因为它们不支持LpAffineExpression。

probl += lpSum([如果h2 == b,则varSKU中h的varsh为b]) % 100 == 0

probl += lpSum([ varSKU中h的varsh if h2 == b]) / 100 == int(lpSum([varsh for h in varSKU if h2 == b]) )/100

probl += lpSum([varsh for h if varSKU if h2 == b]) / 100 == round(lpSum([varsh for h if h2 == b]) / 100)

你能给我一些关于写这个约束的想法吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-22 00:43:37

一种相当简单的方法:

根据需要,

  • 引入一个整数变量作为:I <= N)

II >= 1

请记住:当有多个约束且100的倍数不一定与约束相同时,每个约束都需要一个辅助变量I_x

(还有:您通常不能在mod或任何其他LP建模系统(round、int、mod、ceil等)中使用python操作符!)你必须接受建模系统允许的规则/形式:在本例中为-> LpAffineExpression)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47929215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档