在LINGO程序中,要表示非负整数,可以使用以下方法:
1. 使用`@gin(x)`函数,表示`x`是整数(即0或1)。
2. 使用`@bin(x)`函数,表示`x`是0或1。
3. 使用`@free(x)`函数,可以解除`x`的非负限制,使其可以取所有实数。但请注意,使用`@free(x)`后,`x`将不再是整数,因此需要确保在使用`@free(x)`后,其他约束条件能够正确限制`x`的取值范围。
例如,假设我们想要表示一个非负整数变量`X`,并且当`X`不等于0时,`X`大于某个常数`c`,可以使用以下LINGO表达式:
```
@for(school(i): @if(X(i)GT0, X(i)>c, 0))
```
在这个表达式中,`@for`循环遍历所有学校,`@if`语句检查`X(i)`是否大于0,如果是,则`X(i)`取大于`c`的值,否则取0。
另外,如果需要表示`X`在某个范围内的非负整数,可以使用`@bnd(m, x, l)`函数,表示`x`属于`m <= x <= l`的数。
总结:
使用`@gin(x)`或`@bin(x)`表示非负整数。
使用`@free(x)`解除非负限制,但需要注意其他约束条件。
使用`@bnd(m, x, l)`表示指定范围内的非负整数。