通信网理论基础虞红芳lingo.pptVIP

  • 1
  • 0
  • 约1.17万字
  • 约 38页
  • 2019-12-01 发布于广东
  • 举报
目标与约束 算术运算符是针对数值进行操作的。LINGO提供了5种二元运算符: ^ 乘方 ﹡ 乘 / 除 ﹢ 加 ﹣ 减 LINGO唯一的一元算术运算符是取反函数“﹣”。 这些运算符的优先级由高到底为: 高 ﹣(取反)   ^     ﹡/   低 ﹢﹣ 运算符的运算次序为从左到右按优先级高低来执行。运算的次序可以用圆括号“()”来改变。 例如 算术运算符示例。 2﹣5/3,(2﹢4)/5等等。 ( 1)算术运算符 2013年秋季 Lingo by Rodan 变量界定函数实现对变量取值范围的附加限制,共4种: @bin(x) 限制x为0或1 @bnd(L,x,U) 限制L≤x≤U @free(x) 取消对变量x的默认下界为0的限制,即x可以取任意实数 @gin(x) 限制x为整数 在默认情况下,LINGO规定变量是非负的,也就是说下界为0,上界为+∞。 目标与约束 2013年秋季 Lingo by Rodan #not# 否定该操作数的逻辑值,#not#是一个一元运算符 #eq# 若两个运算数相等,则为true;否则为flase #ne# 若两个运算符不相等,则为true;否则为flase #gt# 若左边的运算符严格大于右边的,则为true;否则为flase #ge# 若左边的运算符大于或等于右边的,则为true;否则为flase #lt# 若左边的运算符严格小于右边的,则为true;否则为flase #le# 若左边的运算符小于或等于右边的,则为true;否则为flase #and# 仅当两个参数都为true时,结果为true;否则为flase #or# 仅当两个参数都为false时,结果为false;否则为true 这些运算符的优先级由高到低为: #not# #eq# #ne# #gt# #ge# #lt# #le# #and# #or# 目标与约束 (2 )逻辑运算符 2013年秋季 Lingo by Rodan 个人感觉:过滤条件condition处使用逻辑运算符,表达式中使用,,= 目标与约束 (3 )关系运算符 关系运算符与逻辑运算符#eq#、#le#、#ge#截然不同,前者是模型中该关系运算符所指定关系的为真描述,而后者仅仅判断一个该关系是否被满足:满足为真,不满足为假。 LINGO有三种关系运算符: “=”、“=”和“=”。 LINGO中还能用“”表示小于等于关系,“”表示大于等于关系。 LINGO并不支持严格小于和严格大于关系运算符。然而,如果需要严格小于和严格大于关系,比如让A严格小于B:AB,那么可以把它变成如下的小于等于表达式:A+ε=B, 这里ε是一个小的正数,它的值依赖于模型中A小于B多少才算不等。 2013年秋季 Lingo by Rodan LINGO提供了大量的标准数学函数: @abs(x) 返回x的绝对值 @sin(x) 返回x的正弦值,x采用弧度制 @cos(x) 返回x的余弦值 @tan(x) 返回x的正切值 @exp(x) 返回常数e的x次方 @log(x) 返回x的自然对数 @lgm(x) 返回x的gamma函数的自然对数 @sign(x) 如果x0返回-1;否则,返回1 @floor(x) 返回x的整数部分。当x=0时,返回不超过x的最大整数;当x0时,返回不低于x的最大整数。 @smax(x1,x2,…,xn) 返回x1,x2,…,xn中的最大值 @smin(x1,x2,…,xn) 返回x1,x2,…,xn中的最小值 目标与约束 2013年秋季 Lingo by Rodan 集循环函数 。 @function相应于下面罗列的四个集循环函数之一; setname是要遍历的集; set_ index_list是集索引列表; conditional_qualifier是用来限制集循环函数的范围, 当集循环函数遍历集的每个成员时,LINGO都要对conditional_qualifier进行评价,若结果为真,则对该成员执行@function操作,否则跳过,继续执行下一次循环。 expression_list是被应用到每个集成员的表达式列表, 当用的是@for函数时,expression_list可以包含多个表达式,其间用逗号隔开。这些表达式将被作为约束加到模型中。当使用其余的三个集循环函数时,expression_list只能有一个表达式。如果省略set_index_list,那么在expression_lis

文档评论(0)

1亿VIP精品文档

相关文档