lingo语法
lingo的九种逻辑符号
not# 否定该操作数的逻辑值,not是一个一元运算符
eq# 若两个运算数相等,则为true;否则为flase
ne# 若两个运算符不相等,则为true;否则为flase
gt# 若左边的运算符严格大于右边的运算符,则为true;否则为flase
ge# 若左边的运算符大于或等于右边的运算符,则为true;否则为flase
gt# 若左边的运算符严格小于右边的运算符,则为true;否则为flase
le# 若左边的运算符小于或等于右边的运算符,则为true;否则为flase
and# 仅当两个参数都为true 时,结果为true;否则为flase
or# 仅当两个参数都为false 时,结果为false;否则为true
##lingo的数学函数
@abs(x) 返回x 的绝对值
@sqrt() 开方
@sin(x) 返回x 的正弦值,x 采用弧度制
@cos(x) 返回x 的余弦值
@tan(x) 返回x 的正切值
@exp(x) 返回常数e 的x 次方
@log(x) 返回x 的自然对数
@lgm(x) 返回x 的gamma 函数的自然对数
@sign(x) 如果x<0 返回-1;否则,返回1
@floor(x) 返回x的整数部分。当x>=0 时,返回不超过x 的最大整数;当x<0时,返回不低于x 的最大整数。
@smax(x1,x2,…,xn) 返回x1,x2,…,xn 中的最大值
@smin(x1,x2,…,xn) 返回x1,x2,…,xn 中的最小值
变量界定函数
@bin(x) 限制x 为0 或1 — 用于0-1规划
@bnd(L,x,U) 限制L≤x≤U
@free(x) 取消对变量x 的默认下界为0 的限制,即x 可以取任意实数
@gin(x) 限制x 为整数
在默认情况下,LINGO 规定变量是非负的,也就是说下界为0,上界为+∞。@free 取消了默认的下界为0的限制,使变量也可以取负值。@bnd用于设定一个变量的上下界,它也可 以取消默认下界为0的约束。
概率函数
1 . @pbn(p,n,x) 二项分布的累积分布函数。当 n 和(或)x 不是整数时,用线性插值法进行计算。
2.@pcx(n,x) 自由度为n的χ2分布的累积分布函数。
3.@peb(a,x) 当到达负荷为 a,服务系统有 x 个服务器且允许无穷排队时的 Erlang 繁忙概率。
4.@pel(a,x) 当到达负荷为 a,服务系统有 x 个服务器且不允许排队时的 Erlang 繁忙概率。
5.@pfd(n,d,x) 自由度为 n 和 d 的 F 分布的累积分布函数。
6.@pfs(a,x,c) 当负荷上限为 a,顾客数为 c,平行服务器数量为 x 时,有限源的 Poisson 服务系统的 等待或返修顾客数的期望值。a 是顾客数乘以平均服务时间,再除以平均返修时间。当 c 和 (或)x 不是整数时,采用线性插值进行计算。
7.@phg(pop,g,n,x) 超几何(Hypergeometric)分布的累积分布函数。pop 表示产品总数,g 是正品数。从 所有产品中任意取出 n(n≤pop)件。pop,g,n 和 x 都可以是非整数,这时采用线性插值 进行计算。
8.@ppl(a,x)Poisson 分布的线性损失函数,即返回 max(0,z-x)的期望值,其中随机变量 z 服从均值 为 a 的 Poisson 分布。
9.@pps(a,x) 均值为 a 的 Poisson 分布的累积分布函数。当 x 不是整数时,采用线性插值进行计算。
10.@psl(x) 单位正态线性损失函数,即返回 max(0,z-x)的期望值,其中随机变量 z 服从标准正态 分布。
11.@psn(x) 标准正态分布的累积分布函数。
12.@ptd(n,x) 自由度为 n 的 t 分布的累积分布函数。
13.@qrand(seed) 产生服从(0,1)区间的拟随机数。@qrand 只允许在模型的数据部分使用,它将用拟随机 数填满集属性。通常,声明一个 m×n 的二维表,m 表示运行实验的次数,n 表示每次实验所 需的随机数的个数。在行内,随机数是独立分布的;在行间,随机数是非常均匀的。这些随 机数是用“分层取样”的方法产生的。
14.@rand(seed) 返回 0 和 1 间的伪随机数,依赖于指定的种子。典型用法是 U(I+1)=@rand(U(I))。注 意如果 seed 不变,那么产生的随机数也不变。