我对线性编程这个主题还很陌生,希望能有一些指导。
我有一个稍微复杂的方程式,但这是问题的一个简单版本:
x1 + x2 = 10
#subject to the following constraints:
0 <= x1 <= 5 and
3x1 <= x2 <= 20
基本上x2
的值必须大于x1
的3倍。因此,在这种情况下,解决方案是x1 = [0,1,2]
,并相应地是x2 = [10, 9, 8]
有很多材料可以最小化或最大化目标函数,但这不是其中之一。您怎么称呼解决这类问题的方法,又是推荐的解决方法,最好使用python中的一些库来找到一个或多个可行解决方案?
答案 0 :(得分:0)
您的问题可以表示为
gremlin> g.V().has('fileName','ext',within(".ace", ".arj", ".iso", ".rar", ".gz", ".acrj", ".lnk", ".z", ".tar", ".xz", ".pdf")).
......1> project('FILEVALUES','FILENAME').
......2> by(__.in('hasName').
......3> project('FILE','INCIDENT').
......4> by(valueMap(true)).
......5> by(__.in('containsFile').valueMap())).
......6> by()
==>[FILEVALUES:[FILE:[id:5,fileSize:[432534],id:[100],label:file],INCIDENT:[reportedON:[2/15/2019 8:01:19 AM],id:[11]]],FILENAME:v[8]]
要遵守
min 0*x1+0*x2 ("zero coefficients")
可以很容易地将其输入到线性编程程序包中,例如pulp。我比Python用户更多的是R用户,因此我无法提供详细信息。您也可以online解决该问题,而无需进行任何编程。
编辑:重新阅读您的问题,我发现您想要的解决方案不是连续的(例如,您似乎不是在寻找[2.5,7.5]作为解决方案),而是限于整数值。然后,该问题将称为“混合整数问题”,而不是“线性问题”。但是,如果可以将变量x1+x2=10
3x1-x2<=0
x2<=20 (note that this constraint follows from x1,x2>=0 and their sum being 10)
,x1
声明为整数,那么Pulp应该能够解决它。
另一点是,如果您在给定约束的所有整数解之后。关于stackoverflow的问题已有some discussions,但是我不确定纸浆是否可以做到这一点。