LocalSolver快速入门指南(连载二十) ---- 分段操作符

Local Solver 分段操作符

利用分段(piecewise)操作符在LocalSolver中引入分段线性函数。分段线性函数是由直线段组成的函数。每条直线的末端称为断点。我们定义分段函数是按照从左到右的顺序给出它的所有断点。

分段操作符接受3个参数:

  • 一个非递减数组,包含“n”个常量,“n”>= 2。
  • 一个包含“n”常量的数组。
  • 整数或双精度表达式

如果第三个操作数的值严格小于第一个数组的第一个元素,或严格大于第一个数组的最后一个元素,则此解决方案将不可行。该操作符返回一个浮点数。

表达式piecewise(x,y,z) 通过几何点(x[0], y[0]), (x[1], y[1]), .... (x[n-1], y[n-1])定义的函数返回z的图像。

 

比如 piecewise({0, 50, 100}, {0, 10, 100}, 75) 将返回55.

下图说明了由 y <-piecewise({0,10,15,48.2},{1,2,-0.5,3.15}, x) 定义的曲线。

请注意,当 x < 0 x > 48.2 时,此表达式返回未定义的值。在这种情况下,如果在目标或约束中(直接或间接)使用了此未定义值,则该解决方案将被视为无效。

 

函数定义中允许存在不连续性,即两个几何点可以共享相同的 x 坐标。按照惯例,函数在这样一个不连续点处取的值是与数组中最后一次出现此 x 坐标相关联的值。

 

例如piecewise({0, 50, 50, 100}, {0, 0.1, 0.9, 1}, 50) 返回0.9.

下图说明了由 y <-piecewise({0 ,10 ,10 ,30 ,30 , 48.2}, {1, 1, 2, 2, 3.15, 3.15}, x) 定义的曲线。

这种阶梯形状通常是有用的,但允许使用任何其他不连续的线性函数。

 学习过程中如有其他关于localsolver的问题,请联系local Solver中国区总代理商无锡迅合信息科技有限公司数学工程师或售前。谢谢!

 

 

Guess you like

Origin blog.csdn.net/qq_31243247/article/details/117430293