为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > AIMMS 初学者教程

AIMMS 初学者教程

2013-12-07 41页 pdf 723KB 473阅读

用户头像

is_194357

暂无简介

举报
AIMMS 初学者教程 刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    AIMMS  一小时初学者教程  2010 年 3 月  Paragon Decision Technology  Johannes Bisschop  Koos Heerink  目录  目录  iii  常用的 AIMMS 快捷键  iv  1 序言  1  2 对于教程的预期  3  2.1 一小时教程的内容范围  3  2.2 问题描述与模型说明  3  2.3 输出预览  6  3 ...
AIMMS 初学者教程
刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    AIMMS  一小时初学者教程  2010 年 3 月  Paragon Decision Technology  Johannes Bisschop  Koos Heerink  目录  目录  iii  常用的 AIMMS 快捷键  iv  1 序言  1  2 对于教程的预期  3  2.1 一小时教程的内容范围  3  2.2 问题描述与模型说明  3  2.3 输出预览  6  3 模型的生成  7  3.1 开始一个新的项目  7  3.2 模型浏览器  8  3.3 集合与索引的输入  9  3.4 参数与变量的输入  10  3.5 约束与数学规划的输入  13  3.6 标识符的查看  15  4 数据的输入与保存  21  4.1 集合数据的输入  21  4.2 参数数据的输入  22  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    4.3 数据的保存  24  5 模型的求解  27  5.1 解的计算  27  6 页面的生成  30  6.1 新页面的创建  30  6.2 输入数据的展示  30  6.3 输出数据的展示  33  6.4 完成输入‐输出页面  35  7 执行“What­If”运行  40  7.1 输入数据的修改  40  常用的 AIMMS 快捷键  42  常用的 AIMMS 快捷键  快捷键  功能  F1  打开 AIMMS 的帮助  F2  重命名所选中的标识符  F3  查找与重复查找  F4  在编辑模式与终端用户模式之间进行切换(适用于当前页面)  F5  全部编译  F6  运行过程“MainExecution”  Alt + F6  切换到调试模式  F7  保存当前页面  F8  打开“模型浏览器”  Ctrl + F8  打开“标识符选择器”  F9  打开“页面管理器”  Alt + F9  打开“管理器”  Ctrl + F9  打开“菜单生成器”  F10  打开“数据管理器”  Ctrl + F10  打开“数据管理配置器”  F11  打开“标识符信息”对话框  Ctrl + B  在调试模式中插入断点  Ctrl + D  打开数据页面  Ctrl + F  打开“查找”对话框  Ctrl + M  打开消息窗口  Ctrl + P  打开进度窗口  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    Ctrl + T  查看选中部分的文本示  Ctrl + Shift + T  查看整个模型的文本表示  Ctrl + W  打开向导  Ctrl + Space  补全名称  Ctrl + Shift +  Space  补全名称,包括 AIMMS 预先声明的标识符  Ctrl + Enter  检查、提交、并关闭  Insert  插入一个节点(选择插入单个节点时),或打开“选择节点类型“对话框(选择 插入多个节点时)  第 1 章  序言  有很多方法可以帮助您学习 AIMMS 语言,并且对其底层的开发环境产生一个基本的了解。以下这 些机会可以立即帮助您开始您的学习,它们都是由 AIMMS 的安装程序所安装的。   AIMMS的两个教程提供了一些关于系统及其语言的基本使用知识。其中一个教程是为初学 者所准备的;而另一个则面向 AIMMS 的专业用户。   model 库中包含了许多示例,它们展示了一系列从简单到高级的应用案例,涉及的内容包 含了语言以及图形用户界面的各个方面。   AIMMS 的三本参考手册都提供了 PDF 文件格式和纸质的版本。《用户手册》对 AIMMS 及 其开发环境进行了介绍;《语言参考手册》详细地说明了如何使用建模语言;而《优化建 模手册》则帮助您熟悉如何生成模型。  作为一个优化模型语言的初学者,您也许还没有机会花很多时间学习其他的工具来完成一些项目 或者家庭作业的要求。如果是这样的话,请集中精力阅读这个教程。完成本教程以后,您应该就 能够使用 AIMMS 系统来生成您自己的简单模型,并且为之后的查看功能输入自己的小数据集。 《优化建模手册》会教授一些有用的技巧,并且展示不同的(大多数都不是非常简单的)优化模 型的示例。除了英语之外,初学者教程还提供了西班牙语、匈牙利语、德语和法语的版本,可以 在我们的网站上找到这些教程:http://www.aimms.com/downloads/tutorials/tutorial‐for‐ beginners。  作为一个优化建模领域中的专业人士,您可能一直在寻找一个工具能够帮助您简化工作,并节省 花费在模型构造和模型维护上的时间。如果是这样的话,您所不能左右的一个事实是:您在一开 始就须要投入大量的时间来了解一些高级的功能,这些功能在之后会帮助您更加胜任专业应用程 序开发人员的角色。根据您的技能、经验、以及学习习惯,您可以决定您自己的个人学习道路。 在这条道路上,我们建议您仔细阅读专门为专业用户所设计的教程。本专业教程提供了一个好的 学习起点,它会令您对于 AIMMS 的潜力感到兴奋。代码库中的示例,加上三本手册中的选定章 节,最终会让您深刻感悟如何能够有效地使用 AIMMS 来生成您自己的高级应用程序。  学习  AIMMS 的 方法… 初学者…  专业人 士…  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    一小时初学者教程的目标是对如何使用 AIMMS 模型浏览器生成简单模型提供最为基本的介绍。学 生可以通过数据页面手工地输入数值,并生成一个对象页面对数据进行查看和修改。为专业用户 设计的教程则是一本精心制订的 AIMMS 导览,它涉及了一系列高级语言功能的说明,并对所有的 模型生成工具进行了详细的介绍。一些特别有意思的内容包括:如何使用时间轴和日历的概念来 建立时间模型、数量单位的使用、数据库链接、外部 DLL 的连接、以及高级的报表功能。尽管如 此,一些诸如效率考虑(执行效率、矩阵操作方法)的话题以及 AIMMS API 仍然不会涉及。  第 2 章  对于教程的预期  在本章中您将会看到简要的概述说明我们所要执行的任务、以及我们想要生成的底层模型的紧凑 说明,并对系统生成的输出结果产生一个大致的了解。  2.1 一小时教程的内容范围  在阅读完简短的问题描述和相关的数学模型说明之后,您须要完成本一小时教程中的一组任务, 它们包括:   在 AIMMS 中创建一个新的项目,   输入所有的标识符声明,   手动输入数据,   将数据保存在一个案例之中,   生成一个小的过程,   生成一个页面,包括  o 标题文本,  o 输入数据的标准表格和两张柱状图,  o 输出数据的合成表格和一张堆积柱状图,  o 一个用于执行过程的按钮,以及  o 一个标量对象及其最优值,   执行“what‐if”运行。  不同的教 程内容范 围  本章内容  工作总结  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    2.2 问题描述与模型说明  在一段特定的时间之内须要安排卡车将啤酒从两家工厂运输到五个客户处。每家工厂的供应量和 每个客户的需求量都是已知的(啤酒数量以卡车为单位)。另外将一卡车啤酒从某家工厂运输到 客户那里所对应的成本也是已知的。我们的目标是制定一个最低成本的啤酒运输计划,不仅能够 满足所有客户的需求,而且运输量也不会超过每家工厂所能供应的啤酒总量。  下表提供了之前段落中所描述问题的数据。  客户  工厂  单位运输成本  阿姆斯特丹  布雷达   豪达    阿默斯福特  邓伯什  供应量  哈勒姆  埃因霍温  131    405    188    396    485  554    351    479    366    155  47  63  需求量  28    16    22    31    12    表 2.1:啤酒运输问题的输入数据  以下声明列举了我们想要生成的数学规划中所包含的标识符。  索引:    p    工厂    c    客户  参数:        工厂 p 的供应量        客户 c 的需求量        从 p 到 c 的单位运输成本  变量:        从 p 到 c 的运输量  z    总运输成本  以下的数据模型概要描述了最低成本的啤酒运输计划,不仅能够满足所有客户的需求,而且运输 量也不会超过工厂所能供应的总量。  最小化:    问题描述  数据纵览  标识符声 明  模型概要  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    约束:                    图 2.1:荷兰地图  虽然以上这种由单字母符号组成的标记方式经常 用于描述小型的数学优化模型,但在 AIMMS 中 我们不会直接使用这种方式来描述模型,而会始终通过明确的名称来避免任何不必要的翻译符 号。实际应用中用以描述模型的符号数量一般非常巨大,因此清晰的命名规范对于大型模型的理 解和维护有着非常重要的意义。  使用明确 的名称  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    2.3 输出预览  图 2.2 所示的页面中同时包含了与啤酒运输模型相关的输入和输出数据。在第 6 章中将要求您通 过 AIMMS 中的点选‐单击功能来构造这一页面。    图 2.2:输入‐输出页面  第 3 章  模型的生成  3.1 开始一个新的项目  假设您的机器上已经安装了 AIMMS 3。如果桌面上存在 AIMMS 3 的快捷键,双击它就可以启动  AIMMS 3;否则的话请按顺序执行以下步骤来启动 AIMMS:   按下任务栏上的“开始”按钮 ,   进入“程序”子菜单,然后   选中并单击其中的 AIMMS 的图标 ,启动 AIMMS。  单个页面  启动  AIMMS  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    接下来您就会看到 AIMMS 的启动画面。AIMMS 一旦启动了之后,启动画面就会消失,而 AIMMS  窗口则随之出现。如果在启动的过程中遇到“当天提示”对话框可以直接将其关闭,因为此时我 们还不须要仔细查看其中的内容。  按下“新建项目”按钮 ,它位于 AIMMS 工具栏的最左边。之后将会弹出图 3.1 中所示的对话 框,要求您执行以下步骤:   指定项目名称“Beer Transport”,然后   如果不想将项目保存在默认文件夹“…\My Documents\My AIMMS Projects\Beer Transport” 之中,则可以按下“向导”按钮 来选择合适的文件夹   按下“OK”按钮。    图 3.1:“新建项目”向导  接下来,AIMMS 的“模型浏览器”和“页面管理器”都会自动打开。首先让我们一起熟悉一下  AIMMS“模型浏览器”。  3.2 模型浏览器  第一次打开 AIMMS“模型浏览器”时,它会显示初始的模型树,如图 3.2 中所示。在这棵初始模 型树中,您将会看到以下内容   一个声明段,可以在其中存储模型中所使用的声明。   预定义过程“MainInitialization”,在本教程中不会对其进行说明。   预定义过程“Mainexecution”,可以在其中放入求解数学规划所必需的执行语句,以及   预定义过程“MainTermination”,在本教程中同样也不会对其进行说明。  指定项目 的名称  在 AIMMS  中创建一 个新项目  初始的模 型树  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 3.2:初始的模型树  3.3 集合与索引的输入  要在模型浏览器中声明模型的标识符,首先须要“打开”模型树中的声明段。您可以通过单击 图标或者双击滚动图标 来打开声明段。请注意,如果双击声明段的名称而非图标那么打开的就 会是声明段的属性表,而就目前来说这不是我们想要的结果。打开声明段之后,工具栏上的标准 标识符按钮 就会激活。  执行以下步骤来创建工厂集合:   按下“集合”按钮 在模型树中创建一个新的集合标识符,   将集合名称指定为“Plants”,然后   按下回车键以该名称。  接下来,您须要声明集合“Plants”的属性——索引 p。可以双击模型树中的节点“Plants”打开 属性表。弹出的集合“Plants”的初始属性表如图 3.3 中所示。    打开声明 部分  创建“工 厂”集合  打开它的 属性表  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    图 3.3:集合“Plants”的初始属性表  按顺序执行以下步骤将索引 p 声明为集合“Plants”的属性:   将鼠标光标移动到“Index”属性字段,然后在(空白的)编辑区域内单击鼠标左键,   输入字母 p,然后   按下“检查、提交、并关闭”按钮 完成属性表的输入。  接下来,以与创建集合“Plants”和索引域 p 完全相同的方法创建集合“Customers”以及相关的 索引 c。结果模型树如图 3.4 中所示。    图 3.4:中间过程模型树  项目名称左边的星号表示对于项目所作的添加和修改还未保存到硬盘。按下工具栏上的“保存项 目”按钮 对其进行保存。  3.4 参数与变量的输入  在本节中我们将会介绍如何声明模型中所需的参数和变量。我们将使用上一节中所声明的集合 “Plants”、“Customers”、以及与之相关的索引来指定这些参数与变量的索引域。  参数声明与集合的声明十分相似。执行以下步骤来输入参数“Supply(p)”:   按下工具栏上的“参数”按钮 ,在模型树中创建一个新的参数,   将参数名称指定为“Supply(p)”,然后   按下回车键以记录该名称。  请注意,使用括号将索引域 p 添加到标识符“Supply”中。  声明索引  p  创建“客 户”集合  保存修改  创建“供 应”参数  指定索引 域  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    可以以完全相同的方法添加参数“Demand(c)”。如果输入的名称信息存在错误,只要单击名称字 段就可以对其进行修改。  最后一个要声明的模型参数“UnitTransportCost”是一个索引域为 (p,c) 的两维参数。输入 “UnitTransportCost(p,c)”之后,结果模型树应该如图 3.5 中所示:    图 3.5:中间过程模型树  变量声明与参数的声明十分相似。   按下工具栏上的“变量”按钮 ,在模型树中创建一个新的变量,   将变量名称指定为“Transport(p,c)”,然后   按下回车键以记录该变量。  双击模型树中的“Transport”节点可以打开该变量的属性表。在属性表中,按下“Range”属性字 段之前的“向导”按钮 。弹出的对话框使您能够指定变量“Transport”所允许取的范围值。在 本例中,选择“Standard Range”,然后选择“nonnegative”,最后按下“OK”按钮(如图 3.6 中 所示)。  创建“需 求”参数  创建“单 位运输成 本”参数  创建“运 输”变量  指定“范 围”属性  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 3.6:AIMMS 范围向导  接下来如何创建变量“TotalTransportCost”就变得十分清楚了。该变量用于指定目标函数的值。 在输入名称之后,请打开属性表。对于该变量,没有必要指定其范围属性,因为默认的“free” 范围就足够了。现在可以输入这个变量的以下定义:  sum[ (p,c), UnitTransportCost(p,c) * Transport(p,c) ]  简单地在“Definition”属性字段输入以上定义即可。您可以自己键入完整的定义语句,也可以让  AIMMS 帮助您完成一些键入的工作。以参数“UnitTransportCost(p,c)”为例,以下的两个支持功能 是十分有用的。   键入字母 u 或 U,然后按下 Ctrl‐Spacebar 组合键自动补全名称。   另一个可以使用的方法是直接将名称“UnitTransportCost(p,c)”从模型树拖拽到 “Definition”属性的编辑区域。  现在属性表中的内容应该如图 3.7 中所示。按下“检查、提交、并关闭”按钮 ,验证 AIMMS  是否接受您所输入的变量定义。  创建“总 运输成 本”变量  指定“定 义”属性  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 3.7:变量“TotalTransportCost”的完整属性表  3.5 约束与数学规划的输入  创建供应与需求约束须要提供它们各自的定义,这与我们刚刚完成的创建变量定义的步骤是完全 相同的。唯一的不同在于创建约束时我们须要使用 按钮而非创建变量时的 按钮。您的约束 创建结果应该如以下两属性表所示。    图 3.8:完成之后的“SupplyRestriction”约束属性表  供应与需 求约束  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 3.9:完成之后的“DemandRequirement”约束属性表  与集合、参数、变量以及约束不同,在工具栏上并不存在一个专门的按钮与数学规划相对应。可 以通过“标识符”按钮 来访问所有其他类型的 AIMMS 标识符。按下这个按钮,选择 图标旁 的“Mathematical Program”项,按下“OK”按钮,然后输入“LeastCostTransportPlan”作为数学 规划的名称。  完成之后的数学规划属性表如图 3.10 中所示。可以看到在所有的属性之中,AIMMS 已经将默认值 自动填入了“Direction”、“Constraints”、“Variables”、以及 “Type”属性,对于本项目来 说我们没有必要再对它们进行任何修改。您只须要再填入 “Objective”属性就可以完成属性表的 输入。    图 3.10:完成之后的数学规划属性表  “Objective”属性向导要求您选择一个标量变量。在“标识符选择向导”(如图 3.11)中,单击 选择标量变量“TotalTransportCost”,然后按下“Finish”按钮。  创建数学 规划  指定其属 性  选择目标  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 3.11:标识符选择向导  3.6 标识符的查看  现在您已经成功地输入并声明了所有的模型标识符。结果模型树如图 3.12 中所示。按下“F5”快 捷键可以快速查看模型的合法性。如果模型之中存在问题您将会收到对应的错误信息。模型合法 性一旦得到了验证,就可以按下“保存项目”按钮 来保存您的工作。  检查您的 模型  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 3.12:最终的模型树  尽管“模型浏览器”是一个十分方便的工具可以帮助您生成并检查您的模型,AIMMS 还提供了另 外两种查看模型的方法。  如果您想要查看文本(ASCII)格式的模型表示,请执行以下步骤:   在 AIMMS 的“模型浏览器”中选择想要查看的节点,   进入“View – Text Representation”菜单,并执行“Select Part(s)”命令(如图 3.13)。  查看文本 模型  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 3.13:查看文本模型  文本模型为所选中的标识符提供了一个简单的纵览。例如,图 3.14 中显示了根节点“Main Beer  Transport”选中时所对应的文本模型。  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 3.14:文本模型  另一个查看模型的方法就是 AIMMS 的“标识符选择器”。它使您能够同时查看拥有相似属性的多 个标识符。在本教程中,您将会遇到一个这样的示例,在一个预定义视图中显示所有包含定义属 性的标识符(如图 3.15)。AIMMS 允许您按照自己的需求来生成视图。    图 3.15:标识符的定义视图窗口  标识符纵 览  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    执行以下步骤来创建视图窗口:   按下工具栏上的“标识符选择器”按钮 ,   选中“Identifiers with Definition”节点,然后   使用鼠标右键,选择右键菜单中的“Open With…”命令(如图 3.16)。    图 3.16:“标识符选择器”窗口  对于选中的标识符可以按以下步骤来构造视图:   选择“视图管理器”窗口中的“Domain – Definition”项(如图 3.17),然后   按下“Open”按钮来获得纵览视图。  创建视图  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 3.17:“视图管理器”窗口  第 4 章  数据的输入与保存  4.1 集合数据的输入  本教程中仅包含了少量的数据,所以要求您手动输入。(在专业用户教程中,数据都是从数据库 中导入的。)在本节中将会向您介绍标准的数据录入功能。每个标识符都有一个与之相关的数据 页面,可以通过这些页面来查看并输入数据。  执行以下步骤来输入集合“Plants”中的两个元素:   打开集合“Plants”的属性表,   按下“数据”按钮 ,   将鼠标指针移动到数据页面,如图 4.1 中所示,然后单击数据页面顶部的空白编辑区域,   输入“Haarlem”作为集合中的第一个元素,   按下回车键以记录该元素,   输入“Eindhoven”作为集合中的第二个元素,   按下回车键以记录该元素,然后  手动的数 据录入  “工厂” 集合中的 元素  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm     单击“Close”按钮关闭数据页面(数据变化立即提交)。    图 4.1:集合“Plants”的数据页面  要修改元素的名称,只须要选中该元素,按下“删除”按钮并以之前所描述的相同方法输入修改 之后的名称即可。  以与输入集合“Plants”完全相同的方法输入集合“Customers”中的元素。五个元素的列表如图  4.2 中所示。请注意,最后一个元素“Den Bosch”中包含了一个空白字符。    图 4.2:集合“Customers”的数据页面  4.2 参数数据的输入  每个索引参数的数据页面都会以对应集合中的元素自动进行填充。剩下须要您所做的就是输入所 有的非零数值。  执行以下步骤来输入参数“Supply”的数据(与之前章节中所描述的步骤十分相似):   打开参数“Supply”的属性页,   按下“数据”按钮 ,  修改元素 名称  “客户” 集合中的 元素  空白表格  供应数据  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm     将鼠标指针移动到第一个数据字段,然后单击鼠标,   输入数值 47,   按下回车键以记录第一个数值,   输入数值 63,   按下回车键以记录第二个数值,然后   点击“Close”按钮关闭数据页面。  图 4.3 中显示了完成之后的“Supply”参数数据页面。    图 4.3:参数“Supply”的数据页面  以与输入参数“Supply”完全相同的方法输入参数“Demand”的数值。五个数值的列表如图 4.4  中所示。    图 4.4:参数“Demand”的数据页面  “UnitTransportCost”是一个两维的参数,所以须要通过一张表格来输入其数值。该参数完成之后 的数据页面如图 4.5 中所示。  需求数据  成本数据  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 4.5:参数“UnitTransportCost”的数据页面  4.3 数据的保存  AIMMS 中提供了将所有标识符数值都存储到“实例”之中的选项。可以通过保存和加载实例的功 能来管理您的模型数据。  执行以下步骤将您刚刚输入的数据保存到一个称为“Initial Beer Transport Data”的新实例之中:   进入“Data”菜单,并执行“Save Case”命令,   在“保存实例”对话框(如图 4.6)中,在“Name”字段中输入名称“Initial Beer  Transport Data”(不带引号),然后   按下“Save”按钮对数据进行保存。    实例管理  实例保存  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    图 4.6:“保存实例”对话框  AIMMS 中的一个项目在关闭了之后再次打开时,您也许想要重新加载其中的数据。您甚至可能希 望 AIMMS 能够在每次打开您的项目时自动加载某个实例。这是可以做到的(不需要任何的编程工 作)。在 AIMMS 的“选项”对话框直接进行配置即可,如图 4.7 中所示。   进入“Settings”菜单,并执行“Project Options”命令,   在选项树中选中“Project – Startup & Authorization”文件夹,   在右边的窗口中单击“Startup Case”选项,   按下“向导”按钮,  o 选择实例“Initial Beer Transport Data”,  o 按下“选择实例”对话框中的“OK”按钮,   按下 AIMMS“选项”对话框中的“Apply”按钮,然后   按下“OK”按钮结束。    图 4.7:AIMMS“选项”对话框  将一个实 例作为起 动实例加 载 刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    经常性地对您的工作进行保存是一个好的习惯。在按下“保存项目”按钮 时,上述选项设置 会和整个项目一起保存下来。请注意,保存项目并不意味着会同时对数据也进行保存。数据须要 按照本节中所描述的步骤保存到实例之中。  在使用 AIMMS 过程中的任何时间点上都可以通过以下步骤手动地对实例进行加载:   进入“Data”菜单,选择“Load Case”子菜单并执行“As Active…”命令,   在“加载实例”对话框中选择想要加载的实例名称(如图 4.8),然后   按下“Load”按钮。    图 4.8:“加载实例”对话框  第 5 章  模型的求解  5.1 解的计算  到目前为止,您已经输入了所有的标识符、它们的属性以及数据。您还至少须要生成一个过程让  AIMMS 知道如何求解。在本教程中,您将在现有的(空)“MainExecution”过程体中输入两条语 句:一条用于对数学规划进行求解;当数学规划不是最优时另一条语句则会将解设置为零。  保存您的 项目  手动地加 载实例  行为过程  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 5.1:“MainExecution”的属性页  执行以下步骤来完成对过程“MainExecution”的修改:   按下“F8”快捷键打开“模型浏览器”,   选中“MainExecution”过程,然后双击将其打开,   在“body”属性中输入两条语句,如图 5.1 中所示,然后   按下“检查、提交、并关闭”按钮 以记录这些修改。  如果 AIMMS 报错,只须要简单地检查输入内容并相应地进行必要的修改即可。  如果想要获得关于 AIMMS 关键字的具体信息,打开鼠标右键菜单,通过简单的单击操作就可以打 开 AIMMS 文档中的相关页面。例如,执行以下步骤就能够使您获得关键字“ProgramStatus”的详 细帮助信息:   将光标放置到关键字“ProgramStatus”之上,   单击鼠标右键,然后选择“Help”子菜单中的“ProgramStatus”项(如图 5.2)。  生成一个 过程  鼠标右键 获取帮助  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 5.2:鼠标右键弹出菜单  过程“MainExecution”的特殊之处在于专门有一个快捷键,“F6”,可以用于执行该过程。对于 所有其他的过程,您可以使用鼠标右键来选择“Run Procedure”命令。  同时按下 Ctrl 和 p 键会使 AIMMS 弹出一个“进度”窗口,用于显示过程的执行过程中已经(或正 在)取得的进度信息。图 5.3 显示了您应该能看到的“进度”窗口。    图 5.3:AIMMS 的“进度”窗口  运行过程  查看执行 的进度  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    之前在输入集合元素和参数数值的时候您已经使用过了数据页面。AIMMS 一旦完成了对于 “Transport”变量值的计算,这些值立即就会出现在对应的数据页面之中。在模型树中找到该变 量,单击选中它,然后使用鼠标右键选择“Data…”命令以打开数据页面。可以看到我们打开了 一张数据透视表,其中包含了“Transport”变量的数据以及对应的下标。如果将列的下标表头拖 出数据透视表,并将其设置为数量,您应该就能看到如下所示的窗口。关闭数据页面时选择 “Yes”会将您对于页面布局所作的修改保存起来。    图 5.4:数据页面,显示变量“Transport”的解  第 6 章  页面的生成  虽然 AIMMS 为所有的标识符都提供了标准的页面,但是使用这样的页面还是无法查看相关的标识 符组。这就是为什么模型开发人员和应用程序的终端用户通常更喜欢通过一些自定义的页面与应 用程序进行交互。  6.1 新页面的创建  执行以下步骤来创建一个新的空白页面:   按下工具栏上的“页面管理器”按钮 ,   按下工具栏上的 按钮以创建一个新的页面,   将这个新页面的名称指定为“Beer Transport Input and Output Data”,然后   按下回车键以记录该页面。  包含了新页面的“页面管理器”窗口如图 6.1 中所示。  数据页面 中的结果  生成自定 义页面  使用“页 面管理 器”  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 6.1:包含单个页面的“页面管理器”  请注意,上一章中对于“Transport”变量数据表的页面布局所作的修改同样也保存在“页面管理 器”之中。  6.2 输入数据的展示  页面可以有“编辑”和“用户”两种模式。在“编辑”模式下,可以创建并修改页面中的对象; 在“用户”模式下,则可以对页面中对象所显示的数据进行查看和编辑。  在“编辑”模式下打开一个新的页面:   在“页面管理器”中双击页面名称,然后   按下工具栏上的 按钮以“编辑”模式打开所选中的页面。  执行以下步骤来创建一个新的表格:   按下工具栏上的“新建表格“按钮 ,   将鼠标光标放置在新表格应该所处位置的左上角,   按下鼠标左键,将鼠标光标拖拽到新表格应该所处位置的右下角,然后   松开鼠标左键。  现在您可以执行以下步骤来完成标识符的选择:   在“标识符选择向导”中选择参数“UnitTransportCost(p,c)”,如图 6.2 中所示,   按下“Next”按钮,   按下“Finish”按钮,有必要的话可以进一步   调节表格对象的位置和大小,使得所有的信息都能够整齐地显示。  了解两种 页面模式  打开页面  绘制一张 新的表 格… …然后选 择标识符  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 6.2:标识符选择向导  在“编辑”模式下执行以下步骤继续将另一个标识符添加到“UnitTransportCost”表格中:   单击选择该表格,   按下工具栏上的 按钮(或者也可以使用鼠标右键)来访问“属性”对话框,   选择“内容”页面(如图 6.3),   按下“Add”按钮,   选择标识符“Supply(p)”,按下“Next”按钮,然后按下“Finish”按钮,   回到“内容”页面,按下“OK”按钮。  在现有表 格中添加 供应数据  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 6.3:表格的“内容”页面  可以以与添加供应数据相同的方法在表格中添加需求数据。结果表格如图 6.4 中所示。    图 6.4:显示输入数据的表格  创建柱状图的过程与创建表格基本上是相同的。执行以下步骤为参数“Supply”创建柱状图:   按下工具栏上的“新建柱状图”按钮 ,   放置鼠标光标、通过拖拽鼠标创建新的柱状图,   在“标识符选择向导”中选择参数“Supply(p)”,   按下“Next”按钮,然后按下“Finish”按钮。  接下来可以以与创建供应数据柱状图完全相同的方法创建需求数据的柱状图。您现在的中间过程 页面应该与图 6.5 中所示的十分相似。  在表格中 添加需求 数据  创建两张 柱状图  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 6.5:中间过程输入‐输出页面  6.3 输出数据的展示  AIMMS 中的复合表就如同一个关系型数据库:开始的几列包括了索引,而接下来的列则包含了定 义于这些索引之上的标识符。创建一张仅仅包含最优解的复合表与创建标准的表格或柱状图十分 相似,您只须要执行以下步骤即可:   按下工具栏上的 按钮创建一张新的复合表,   使用鼠标来绘制表格,   在“标识符选择向导”中选择变量“Transport(p,c)”以指定必须显示的索引值,   按下“Next”按钮,然后按下“Finish”按钮。  您也可以通过堆积柱状图来显示最优解:   创建一张显示变量“Transport(p,c)”的标准柱状图,   在“属性”对话框中选择“柱状图”页面,如图 6.6 中所示,   对默认的“Overlapping”选项进行修改,选择“Stacked Bar”选项,然后  创建一张 复合表  创建一张 堆积柱状 图  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm     按下“OK”按钮。    图 6.6:“柱状图属性”对话框  标量对象用于显示标量的数值。执行以下步骤在标量对象中显示最优解的值:   按下工具栏上的 按钮创建一个标量对象,   使用鼠标来绘制标量对象,   在“标识符选择向导”中选择标量变量“TotalTransportCost”,然后   按下“Finish”按钮。  6.4 完成输入­输出页面  设计一个专业的终端用户图形界面并不是一项非常简单的工作,而且它也不在本教程的讨论范围 之内。然而,在本章节的最后,还是建议您花一点时间来生成一个如图 6.11 中所示的漂亮页面。  本页面中须要包含一个按钮,用来触发“LeastCostTransportPlan”数学规划的求解。执行以下步 骤来创建一个这样的按钮:   按下工具栏上的 按钮创建一个新的按钮,并使用鼠标来绘制该按钮,  创建一个 标量对象  生成一个 条理分明 的纵览页 面 创建一个 按钮  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm     输入引号内的字符串“Solve Beer Transport”作为按钮的标题,然后   选择“动作”页面。  须要指定的按钮动作为:要求 AIMMS 执行一个过程。在本例中,须要执行的是过程 “MainExecution”。继续执行以下步骤:   选择“Run”作为要添加的动作,   按下“Add”按钮,   选择“Procedure”选项,   按下“启用向导”按钮 ,   选中过程“MainExecution”,   按下“Finish”按钮,然后按下“OK”按钮接受以上配置。  在“按钮属性”对话框中,完成之后的“动作”页面如图 6.7 中所示。请注意,只有在按下“用 户模式”按钮 将页面置于“用户”模式之后才能使用该按钮来求解模型。  结果输入‐输出页面(如图 6.11)中包含了三个文本对象。可以执行以下步骤来创建标题文本 “Beer Transport”:   选择“Object”菜单中的“Text”命令(如图 6.8),然后使用鼠标来绘制矩形框,   在“文本属性”对话框中,将“文本”页面中的静态文本指定为“Beer Transport”,   在“Alignment”下拉列表中选择“Center”(如图 6.9),   选择“文本属性”对话框中的“字体”页面,然后,   按下“Add”按钮。  创建一个 文本对象  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 6.7:“按钮属性”对话框的“动作”页面  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 6.8:“编辑”模式下页面的“Object”菜单  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 6.9:“文本属性”对话框的“文本”页面  现在可以指定合适的字体名称,从而完成文本对象。   将字体类型选择为“粗体”,将“字体大小”设置为“20”,   按下“OK”按钮,   将新字体的名称指定为“Title”,   按下“OK”按钮返回“文本属性”页面,   再次按下“OK”按钮退出“文本属性”对话框。  另外的两个文本对象分别显示“Input Data”和“Output Data”文本,可以以相同的方法创建它 们。这一次,您应该再创建一个名为“Header”、大小为“14”的自定义字体,而不是沿用新创 建的“Title”字体。“文本属性”对话框的“字体”页面如图 6.10 中所示。  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 6.10:“文本属性”对话框的“字体”页面  再添加两个矩形框以突出显示分别代表输入数据和输出数据的那两组对象,页面就算正式完成 了。如果您已经调整好了输入输出对象的位置以及大小,使得它们相互对齐,那么您就可以执行 以下步骤来绘制矩形框:   选择“Object”菜单中的“Rectangle”命令,然后   使用鼠标来绘制矩形框。  您的页面现在看起来应该如图 6.11 所示。  创建两个 矩形框  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm      图 6.11:输入‐输出页面  第 7 章  执行“What­If”运行  7.1 输入数据的修改  我们已经完成了对于输入‐输出页面的开发,现在您可以使用它了。要使用输入‐输出页面,首先 必须按下“用户模式”按钮 将该页面设置为“用户”模式。  输入‐输出页面让您能够很方便地查看对模型的需求、供应、以及成本数据所作的任何改动对于运 输模型结果的影响。您只须要修改输入数据、并对模型重新进行求解,就可以查看对应的输出结 果。  例如,您可以执行以下步骤来修改“哈勒姆”可以提供的啤酒数量:   在“供应”柱状图中,选择代表“哈勒姆”的供应量柱形,   将鼠标光标放置在柱形的顶部,然后简单地  页面的用 户模式  What‐if 分 析  对于柱状 图的拖拽  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm     向上拖拽鼠标,将供应量从 47 增加到 57(如图 7.1)。      图 7.1:供应数据柱状图的拖拽过程  或者,您也可以单击对应的柱形,然后在柱形图左下部分的编辑区域内直接输入新的供应值 57。  现在您可以重新对模型进行求解了。简单地按下页面顶部的“Solve Beer Transport”按钮即可。 您会看到最优成本得到了改善,从 27499 降低到了 26626。  请注意,成本的降低是我们所预期的,因为之前的求解结果使用了“哈勒姆”的所有产能。通过 增加哈勒姆的供应量,“豪达”就不再需要从另一个供应商埃因霍温进货了(如图 7.2)。      图 7.2:供应数据修改对于结果的影响  重新对数 学规划进 行求解 解释结果 得到改善 的原因  刃之砺信息科技(上海)有限公司翻译  http://www.edgestone‐it.com/aimms.htm    常用的 AIMMS 快捷键  快捷键  功能  F1  打开 AIMMS 的帮助  F2  重命名所选中的标识符  F3  查找与重复查找  F4  在编辑模式与终端用户模式之间进行切换(适用于当前页面)  F5  全部编译  F6  运行过程“MainExecution”  Alt + F6  切换到调试模式  F7  保存当前页面  F8  打开“模型浏览器”  Ctrl + F8  打开“标识符选择器”  F9  打开“页面管理器”  Alt + F9  打开“模板管理器”  Ctrl + F9  打开“菜单生成器”  F10  打开“数据管理器”  Ctrl + F10  打开“数据管理配置器”  F11  打开“标识符信息”对话框  Ctrl + B  在调试模式中插入断点  Ctrl + D  打开数据页面  Ctrl + F  打开“查找”对话框  Ctrl + M  打开消息窗口  Ctrl + P  打开进度窗口  Ctrl + T  查看选中部分的文本表示  Ctrl + Shift + T  查看整个模型的文本表示  Ctrl + W  打开向导  Ctrl + Space  补全名称  Ctrl + Shift +  Space  补全名称,包括 AIMMS 预先声明的标识符  Ctrl + Enter  检查、提交、并关闭  Insert  插入一个节点(选择插入单个节点时),或打开“选择节点类型“对话框(选择 插入多个节点时)   
/
本文档为【AIMMS 初学者教程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索