LINGO编程指南:变量界定与集操作函数解析

需积分: 34 23 下载量 181 浏览量 更新于2024-08-07 收藏 4.88MB PDF 举报
"学习Groovy的书籍,涉及到变量界定和集操作函数在LINGO中的使用,以及MATLAB算法的多个章节内容,包括线性规划、整数规划、非线性规划、动态规划、图与网络、排队论、对策论、层次分析法、插值与拟合等主题。" 在LINGO中,变量界定函数是建模语言中的一种关键工具,用于定义变量的取值范围。以下是这些函数的详细解释: 1. `@bin(x)`:这个函数将变量`x`界定为二进制变量,意味着`x`只能取0或1两个值。在优化问题中,这通常用于表示逻辑选择,例如某个事件是否发生。 2. `@bnd(L,x,U)`:此函数设置变量`x`的边界,确保其值在`L`和`U`之间,允许我们限制变量的上下限。例如,如果我们有`@bnd(10,x,20)`,那么`x`的值必须介于10和20之间,包括这两个端点。 3. `@free(x)`:这个函数取消了变量`x`的默认非负约束,意味着`x`可以取任何实数值,包括负数。这对于处理可以为负的情况非常有用。 4. `@gin(x)`:这个函数将变量`x`界定为整数,但不指定特定的边界。如果之前已经用`@bnd`设置了边界,`@gin`将保持那些边界。 集操作函数在LINGO中用于处理集的数据结构,如: 1. `@in(set_name, primitive_index_1[, primitive_index_2,...])`:这个函数检查给定的元素(`primitive_index_1, primitive_index_2, ...`)是否属于集合`set_name`。如果元素在集合内,函数返回1;否则返回0。在描述中给出的例子中,`I`是一个全集,`B`是`I`的子集,`C`是`B`的补集,`@in`函数可以用来判断元素是否属于这些集合。 接下来,书中还涵盖了MATLAB算法的各种主题: - **线性规划**:涉及如何通过线性目标函数和线性约束来优化决策变量的问题。 - **整数规划**:包括分枝定界法、0-1型整数规划和实际问题的求解,如生产与销售计划。 - **非线性规划**:讨论无约束和有约束的非线性优化问题,以及飞行管理问题。 - **动态规划**:介绍基本概念和计算方法,探讨动态规划与静态规划的关系,并提供一些应用实例。 - **图与网络**:涵盖图的基本概念,如最短路径问题、树、匹配问题、最大流问题等,以及实际应用,如钢管订购和运输问题。 - **排队论**:讲解基本概念、输入过程和服务时间分布,以及各种排队模型和优化。 - **对策论**:介绍对策问题的解决方法,包括零和对策和非常数和对策。 - **层次分析法**:阐述层次分析法的基本原理和应用,用于复杂决策问题。 - **插值与拟合**:讨论插值方法、线性最小二乘法在曲线拟合中的应用,以及数据的统计描述和分析。 这些内容覆盖了优化和决策问题的广泛领域,对于理解和应用这些算法在实际问题中具有很高的价值。通过学习这本书,读者可以掌握解决多种数学优化问题和数据分析问题的工具和技术。