第 2章 数 独 模 型 Lingo求 解 程 序 本章信息 指 数 理 论 性 ★ 应 用 性 ★ ★ 趣 味 性 ★ ★ ★ ★ ★ 创 新 性 ★ ★ ★ 本 章 选 择 了 LINGO建 模 语 言 ,对 数 独 模 型 编 写 了 Lingo求 解 程 序 。 2-1 Lingo简 介 LINGO是 用 来 求 解 线 性 和 非 线 性 优 化 问 题 的 简 易 工 具 。 LINGO内 置 了 一 种 建 立最 优 化 模 型 的 语 言 , 可 以 简 便 地 表 达 大 规 模 问 题 , 利 用LINGO高 效 的 求 解 器 可 快速 求 解 并 分 析 结 果 。 2.1.1 LINGO中 的 集 对 实 际 问 题 建 模 的 时 候 , 总 会 遇 到 一 群 或 多 群 相 联 系 的 对 象 , 比 如 工 厂 、 消费 者 群 体 、交 通 工 具 和 雇 工 等 等 。LINGO允 许 把 这 些 相 联 系 的 对 象 聚 合 成 集( sets)。一 旦 把 对 象 聚 合 成 集 , 就 可 以 利 用 集 来 最 大 限 度 的 发 挥 LINGO建 模 语 言 的 优 势 。 集 是LINGO建 模 语 言 的 基 础 , 是 程 序 设 计 最 强 有 力 的 基 本 构件。 借助于集 ,能够用 一 个单一 的 、 长的 、 简 明的 复合 公式表 示一 系 列相 似的 约束, 从而可 以 快速 方便 地 表 达 规 模 较大 的 模 型 。 LINGO有 两种 类型 的 集 :原始集 (primitive set)和 派生集 (derived set)。 2.1.1.1 定义原始集 为了 定义一 个原始集 , 必须定义:集 的 名字、 集 的 成 员( 可 选 ) 和 集 成 员的属性 ( 可 选 ), 定义一 个原始集 , 用 下面的 语 法: setname[/member_list/][:attribute_list]; 注意:用 “[]”表 示该部分 内 容可 选 。 Setname是 你选 择 的 来 标记集 的 名字, 最好具有较强的可读性。集名字必须严格符合标准命名规则:以拉丁字母或下划线(_)为首字符,其后由拉丁字母(A—Z)、下划线、阿拉伯数字(0,1,„,9)组成的总长度不超过 32个字符的字符串,且不区分大小写。 注意:该命名规则同样适用于集成员名和属性名等的命名。 比如 number/1..9/;定义一个原始集number,由于在后续的程序中不直接使用该集,故省略了后...