Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python CP-SAT解算器是否支持;“反思”;方法,例如x.Min()和x.Max()?_Python_Reflection_Or Tools_Cp Sat Solver - Fatal编程技术网

Python CP-SAT解算器是否支持;“反思”;方法,例如x.Min()和x.Max()?

Python CP-SAT解算器是否支持;“反思”;方法,例如x.Min()和x.Max()?,python,reflection,or-tools,cp-sat-solver,Python,Reflection,Or Tools,Cp Sat Solver,我正在将我的旧工具(从2010年开始)或CP解算器模型移植到CP-SAT解算器(在Python3中)。这些系统之间有很多不同之处,但大多数都很容易移植到CP-SAT解算器 但是,我在CP-SAT解算器文档中没有发现旧CP解算器支持的“反射”方法,例如获取决策变量的上下限。例如 # Old CP solver code solver = pywrapcp.Solver("Name") x = solver.IntVar(0,10, "x")

我正在将我的旧工具(从2010年开始)或CP解算器模型移植到CP-SAT解算器(在Python3中)。这些系统之间有很多不同之处,但大多数都很容易移植到CP-SAT解算器

但是,我在CP-SAT解算器文档中没有发现旧CP解算器支持的“反射”方法,例如获取决策变量的上下限。例如

  # Old CP solver code
  solver = pywrapcp.Solver("Name")
  x = solver.IntVar(0,10, "x") 

  # ....
  x_lb = x.Min()  # lower bound
  x_ub = x.Max()  # upper bound
  # ... 
 
然后可以使用变量的这些上下限来实现其他约束。(下面是一个CP解算器,使用
Min
Max
方法实现
累积
约束:)


CP-SAT解算器是否支持此类反射方法?

您可以通过基础变量访问域

x.Proto().domain
第一个值是
min
,最后一个值是
max

x_lb=x.Proto().domain[0]
x_ub=x.Proto().domain[-1]

PS:也许您可以在这里使用约束。

您可以通过基础变量访问域

x.Proto().domain
第一个值是
min
,最后一个值是
max

x_lb=x.Proto().domain[0]
x_ub=x.Proto().domain[-1]

PS:也许你可以在这里使用约束。

我不这么认为,你可以做
x.Proto().domain[0]
x.Proto().domain[-1]
。附言:你的博客的忠实粉丝@斯特拉迪瓦里啊,这是一个很好的建议,可能正是我想要的!(谢谢你的好话!)嗨!好久不见了。@LaurentPerron嗨Laurent!那肯定是很长时间了!将我的旧CP解算器模型移植到CP-SAT早就应该完成了,但我现在正在进行这项工作。:-)使用
x.Proto().domain
似乎工作得很好:(不过我可能会用其他方式调整模型)谢谢@Stradivari!如果你写一个答案,我会接受。我不这么认为,你可以做
x.Proto().domain[0]
x.Proto().domain[-1]
。附言:你的博客的忠实粉丝@斯特拉迪瓦里啊,这是一个很好的建议,可能正是我想要的!(谢谢你的好话!)嗨!好久不见了。@LaurentPerron嗨Laurent!那肯定是很长时间了!将我的旧CP解算器模型移植到CP-SAT早就应该完成了,但我现在正在进行这项工作。:-)使用
x.Proto().domain
似乎工作得很好:(不过我可能会用其他方式调整模型)谢谢@Stradivari!如果你写一个答案,我会接受的。谢谢。我还将在另一个模型中使用
AddCumulative
。构建
累积
(带有“反射”)的分解是学习过程的一部分,也是测试CP系统支持什么的一部分…谢谢。我还将在另一个模型中使用
AddCumulative
。构建
累积
(带有“反射”)的分解是学习过程的一部分,也是测试CP系统支持什么的一部分。。。