下载此beplayapp体育下载

APML使用指南.doc


beplayapp体育下载分类:bepaly下载苹果 | 页数:约119页 举报非法beplayapp体育下载有奖
1 / 119
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该beplayapp体育下载所得收入归上传者、原创者。
  • 3.下载的beplayapp体育下载,不会出现我们的网址水印。
1 / 119 下载此beplayapp体育下载
beplayapp体育下载列表 beplayapp体育下载介绍
该【APML使用指南 】是由【夜紫儿】上传分享,beplayapp体育下载一共【119】页,该beplayapp体育下载可以免费在线阅读,需要了解更多关于【APML使用指南 】的内容,可以使用beplayapp体育下载的站内搜索功能,选择自己适合的beplayapp体育下载,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此beplayapp体育下载到您的设备,方便您编辑和打印。1AMPL的基本功能与语法规则AMPL是一种用于代数建模和数学规划的语言,可在计算机上运用代数符号有效地解决像线性规划等最优化问题。这里我们着重在技术细节上去总结AMPL的特征以及所有常用的功能与语法规则。:由一系列参数构成的变量,约束条件还有目标函数。他们被成为模型实体。每个模型实体都觉有包含文字和数字的命名,命名方式可以是一个或以上UnicodeUTF-8的字符(串),数字,或者下划线”_”,注意要区分于数字常量,字母大小写有所区别。数字常量实用科学计数法来表示:所有科学计算法的标记符号都适用,好像在指数表示中****惯用d,D,e或者E去表示(-45),不同的数学表示方式在AMPL中都表示同一个精确值。字符串必须用单引号?或者”隔开,如果引号是所引用文字的一部分,那么引号必须双写,好像如果文字部分是x?y,那么引用时候必须写成?x??y?引用部分需要换行就要使用换行符号\。引号的选择是随意的,好像?abc?和”abc”都是表示同一个意思。注意文字必须区别于数字常量,例如:1和?1?两者不能等价。AMPL输入的格式是自由的,两个符号之间可以随意插入空格(包括连续输入空格,tab键,换行键),只有在输入分号后,才表示一行指令的结束。注释由符号,开始一直到本行结束,或者用/*和*/作为分隔的标志,后者可以直接注释几行命令,注释可以作为要求,建议,声明等加插在任意地方。以下词语是保留的,可在适当情况下使用:表1AMPL保留的语句plementsintegersolve_result_numINcontainslesssuffixINOUTdefaultlogicalsumInfinitydimenmaxsymbolicLOCALelseoptionthen1OUTenvironsetoffunionallexistsshell_exitcodeuntilbinaryforallsolve_exitcodewhilebyifsolve_messagewithincheckinsolve_resultwithin以下划线开头的词语也是可以保留的,还有一些关键词好像”功能名”,是预先定义的,但是它们的意思也可以根据情况重新定义。好像prod是一个类似与sum作用的乘积运算符,不过它也可以被重新声明,例如:setprod;#product一旦词语被重新声明,它就失去了原来的意思。对于一些关键词语和运算符号,AMPL为它们提供了意思相同表示方法。(建议优先使用左表的表示法)^**===<>!=and&¬!or||,其中每一项是一个命令列表的一个或多个组件。每个集合元素必须有所区别。每个元素必须有相同的数字或组件构成;这些共同的数字称为集合的维。文字集合是括号里面以逗号分隔的元素列表。如果集合是一维的,那么集合元素仅仅是以数字或者字符串赋值的数字或文字常量:(“a”,”b”,”c”)(1,2,3,4,5,6,7,8,9)(t,t+1,t+2)2对于一个多维集合,每个集合成员必须用括号括起来,并且元素之间用逗号分隔:{(“a”,2),(“a”,3),(“b”,5)}{(1,2,3),(1,2,4),(1,2,5),(1,3,7),(1,4,6)}数字元素的数值是由经过四舍五入的浮点数来表示。数字元素中,浮点数的表示方法不同,不影响表示结果。。,大多数实体可以用一个集合索引来定义;个别项目的表示方法是在实体名称外面用花括号标注。声明实体的时候,采用索引去表示一系列可能出现的下标集合。好像求和运算sum,也是可以用索引表示的方式去确定集合中迭代出现的运算符,以达到精简运算符的目的。下标集合是一个符号和数字表达式的列表,里面不同的下标用逗号分隔,外面用方括号标注。例如supply[i]和cost[j,p[k]+1,”O+”]。每个小标表达式必须有数字或文字组成。所计算出的一个或者多个值必须对应于一维或者多维索引集合。索引表示是用逗号分隔的列表或者是集合表示,后接冒号或者逻辑表达”suchthat”,外面全部用花括号标注。Indexing:{sexpr-list}{sexpr-list:lexpr}Sexpr-list:sexprdummy-memberinsexprsexpr-list,sexpr每个集合之前可以插入虚拟的元素和关键词in。一维集合中的虚拟元素是一个非绑定命名,也就是说,没有确切定义的命名。多维集合中的虚拟元素是一个用逗号分隔的列表,并且外面要用圆括号标注,列表内容是表达式或者非绑定命名。列表必须包括至少一个非绑定命名。虚拟元素采用一个或以上的虚拟指号(组件中的非绑定命名),其作用域或一系列的定义始于后继的sexpr;一个索引的作用域可以扩展到余下的索引表达式,3或者后面索引表达式的声明,或者是用索引表达式表示的运算对象。当一个虚拟元素包含一个或者多个表达式组成,其虚拟指号涵盖集合中的某一部分。也就是说,他们默认集合中所有虚拟元素的值。{A}#一个集合{A,B}#数组,其中一个元素属于集合A,一个属于B{iinA,jinB}#同上{iinA,B}#同上{iinA,C[i]}#组合,其中一个元素属于A,一个属于C[i]{iinA,(j,k)inD}#一个属于A,一个(数组)属于D{iinA,p[i]>0}#使得p[i]为正的所有i,其中i属于A{iinA,jinc[i]:i<=j}#i和j必须是数字{iinA,(i,j)inD:i<=j}#i属于A同时ji,属于D另外,lexpr在索引表达式中只选择符合逻辑表达的元素并排除其他不符合的,lexpr是典型的包含一个或者多个在索引表达式中的指号。-then-:如果没标明else,则默认输出为0S:”elsesexpr”不可缺2or||L3existsforallL逻辑缩减运算符4and&&L5<,<=,=,==,<>,!=,>=,>L6innotinL是否属于集合,7withinnotwithinLSwithinT即表示S集合T8not~L逻辑否定49uniondiffsymdiffSsymdiff指对称性不同10interS集合的交集11crossS相交或者笛卡尔乘积12setof….byS集合构造器13+-lessAalessb等价于max(a-b,0)14sumprodminmaxA算术缩减运算符15*/divmodAdiv等价于求余运算16^**A求幂运算上述运算符号按优先级排列。求幂运算和if-then-else是右接合的运算,其余的运算都是左接合。类型表示计算结果的类型,A为算术类型,L为逻辑类型,S为集合。在AMPL中,不同的项可以由算术和逻辑表达式组合而成。一个表达式不一定包含变量命名为cexpr,有时尽管它包含虚拟指号,也称作”恒表达式”。一个逻辑表达式,以lexpr命名,当它是cexpr的一部分时候不一定包含变量。集合表达式命名为sexpr。上表总结算术,逻辑以及集合运算符;类型一栏描述了运算符产生的结果是属于算术类(A),逻辑类(L),还是集合类(S)。算术表达由一般的算术运算符形成,是函数和算术缩减运算符(好像sum)的组成部分:expr:numbervariableexprarith-opexprarith-op指+-less*/divmod^**unary-opexprunary-op指+-built-in(exprlist)iflexprthenexpr/elseexpr/reduction-opindexingexprreduction-op指sumprodmaxmin5(expr)上表列出组成函数。算术缩减运算符用在像例子中的表达式中:sum{iinprod}cost[i]*Make[i]索引表达的作用范围可以延伸到expr的结尾。如果表达式建立在空集上,那么结果就是表达式中的标志值:sum的值为0,prod的值为1,min的值为无穷大,max的值为负无穷。逻辑表达式应用在需要”true”或”false”的地方:好像在check的语句中,在索引表达式中”suchthat”部分(接在冒号后),还有在”iflexprthen….else….”的表达式中。算术值应用在逻辑语句中表示强制判断:0被理解为false,其他数被认为true。lexpr:exprpare-pare-o指<,<=,=,==,!=,<>,>=,>lexprlogic-oplexprlogic-op指or||and&¬lexprmemberinsexprmembernotinsexprsexprwithinsexprsexprnotwithinsexpropnameindexinglexpropname指exists和forall(lexpr)运算符in用来测试集合的从属关系。它的左操作数是潜在的集合元素。也就是说,一个表达式或者用逗号分隔开的表达式列表,列表用圆括号标注,其表达式中的元素必须相等于右边操作数的维数,右操作数必须是一个集合表达式。运算符within用来测试某个集合是否包含与另外一个集合。左右两个操作数据必须是有共同的维数。逻辑缩减运算符exists和forall是与or和and相对应的被声明符号。当它们应用在空集的时候,exists返回false值,forall返回true值。6集合表达式产生集合。sexpr:{[member[,member…]]}sexprset-opsexprset-op指uniondiffsymdiffintercrossopnameindexingsexpropname指union或interexpr…expr[byexpr]setofindexingmemberiflexprthensexprelsesexpr(sexpr)intervalinfinite-setindexing元素的组成部分可以是任意的常量表达式。当运算符union和inter作为二元运算符的时候,它们表示二元集合表达式的并集和交集。上述关键词也可以作为缩减运算符使用。用符号”((”构成结合。by语句默认未by1。总的来说,((by表示eee123下面的数字:,,ee,21ee,e,ee,,ee,2,(((,,,1311313e3,,x所组成的一串集合元素。(标记符号表示x的基底,也就是指小于等于x的最,,,,大整数)运算符setof是一个集合生成符号;其中的集合元素既可以是表达式,也可以是一个用逗号分隔的表达式列表,列表外面用圆括号标注。最后生成的集合是由所有在索引表达式中声明的元素构成的;最终生成的表达式的维数等于组成元素的组件个数。ampl:sety=setof{iin1((5}(i,i^2);ampl:displayy;sety:=(1,1)(2,4)(3,9)(4,16)(5,25);7表3AMPL内建算术函数abs(x)表示x的绝对值|x|,1acos(x)表示函数cos()x,1acosh(x)表示双曲cosine倒数值,cosh()xalias(v)表示模型实体的代号v,1asin(x)表示函数sin()x,1ashinh(x)表示双曲sine倒数值,sinh()x,1atan(x)表示函数tan()x

APML使用指南 来自beplayapp体育下载www.apt-nc.com转载请标明出处.

相关beplayapp体育下载 更多>>
非法内容举报中心
beplayapp体育下载信息
  • 页数119
  • 收藏数0收藏
  • 顶次数0
  • 上传人夜紫儿
  • 文件大小682 KB
  • 时间2024-03-24