LocalSolver建模功能特色
本节首先介绍LocalSolver中可用的所有建模操作符。然后详细介绍了LocalSolver的一些强大功能,如基于集合的建模(set-based modeling)或外部函数。
数学建模功能 |
数学操作符 |
分段运算符 |
列表和集合变量 |
兰姆达表达式 |
外部函数 |
黑盒优化 |
车辆路由问题的模型指导 |
数学建模功能
Decision variables(决策变量)
LocalSolver明确区分了决策变量和中间表达式。决策变量是不能从其他变量或表达式中推导出或计算出的变量。当您使用LocalSolver时要问的首要问题是,我想做的最基本的决定(原子决定)是什么?
On the opposite, the total weight of elements in the bag, defined as sum[i
in
0..nbItems-1](values[i]
*
x[i]) is a typical intermediate expression: its value can be deduced from decision variables.
与其他优化技术(如线性规划或约束规划)相比,这方面可能有点令人不安,但它对底层算法的性能非常重要。例如,在背包问题中,决策只有布尔变量x[i]等于1(如果对象i在包中)或0(否则不在包中)。相反,袋中元素的总重量,定义为sum[i in 0..nbItems-1](values[i]
*
x[i])是一个典型的中间表达式:其值可以从决策变量中推导出来。
LocalSolver有五种决策变量类型:布尔、浮点、整数、集合变量和列表变量。
Boolean decisions(布尔型决策变量)
布尔决策可以有两个值0或1。它们是使用内置函数bool()声明的,该函数返回一个新的二进制决策。Booleans使您能够对涉及二进制决策的任何问题(如背包问题)进行建模。大多数组合优化问题(指派、分配、包装、覆盖、分区、路由、调度等)可以简单地表示为纯0-1模型。要了解布尔决策的可能性,请看一下我们的示例教程。
Floating-point decisions(浮点决策变量)
浮点数决策用于对给定范围内取值是连续的定量决策建模。它们是使用内置函数float(a,b)声明的,该函数返回范围为[a,b]的浮点决策。浮点判决的最大范围由ieee754双精度浮点格式定义,大约是[-10^307,10^307]。
Integer decisions(整数型决策)
以类似的方式,整数决策用于对给定范围内的数值进行整数型的量化决策建模。它们是使用内置函数int(a,b)声明的,int(a,b)返回一个范围为[a,b]的整数型决策。整型决策的最大范围是[-2^63+1,2^63-1],大约是[-10^18,10^18]。
Set and list decisions(集合变量和列表决策变量)
集合和列表决策变量允许定义决策变量,其值是域[0,n-1]中整数的集合,其中n是运算符的唯一操作数。有关详细信息,请参阅我们关于集合变量的文档。未完待续。更多问题请联系LocalSolver独家授权代理商无锡迅合信息科技有限公司工程师。