论文网
首页 理科毕业电子商务毕业正文

AIMMS访问ACCESS数据库的方法

  • 投稿公子
  • 更新时间2015-10-13
  • 阅读量513次
  • 评分4
  • 29
  • 0

文/彭勇

摘要:AIMMS软件为决策支持系统实现模型和数据的分离管理提供了方便,也为解决高度复杂的数学规划问题提供了更简洁的管理方式。本文结合一个运输问题的实例,讨论了AIMMS访问Access的数据库的基本方法,并给出了采用指示符约束构建运输问题通用模型的方法。

教育期刊网 http://www.jyqkw.com
关键词 :AIMMS;数据库;决策支持系统;数学规划

引言

A IMMS是A d v a n c e d I n t e g r a t e d Mu l t i d ime n s i o n a lModeling Software的缩写,是Paragon Decision Technology公司开发的集成化数学建模工具,被认为是目前世界上最先进的决策支持系统环境[1]。广泛应用于供应链管理、森林规划、能源管理、生产规划、库存管理、风险收益资产管理等等许多运筹管理和优化领域。

AIMMS的优势之一就是采用计算机求解数学模型时, 不需要扩展书写形式,从而使得复杂的模型仅仅采用一句话就可以实现。比如,如下一个约束不等式

yij ≤ xj

如果采用其它数学建模工具,需要列出所有i和j的组合,这样模型就会很复杂。但如果采用AIMMS,可以采用

CONSTRAINT:

identifier : xyconstraint

index domain : (i,j)

definition : y(i,j)<=x(j)

很简单表示出来。

在决策支持系统开发过程中,强调模型库和数据库的分离,所以当数据库中的数据变化时,不需要更改模型,可以直接采用模型来求解。AIMMS为决策支持系统的开发提供了简单明了的模型管理方式,但是,如何从数据库中导出数据为模型提供呢,报道比较少。文章正是基于这种思想,对AIMMS访问数据库的方法进行了探讨,并给结合实例介绍了具体的实现过程。为了讲述方便,我们在下文的组织结构中,以运输问题为实例, 讨论了当数据存储在Access数据库中,如何用AIMMS访问数据,同时,也讨论一下如何建立通用运输问题的AIMMS模型。

1、AIMMS访问ACCESS数据库

例(运输问题)[3]设某产品从产地A1、A2、A3运往需求地B1、B2、B3、B4,产量、需求量和单位运价见表1所示。问如何调运才能使总运费最少?

建立该问题的数学模型见《电子商务》2 0 1 5年第六期《AIMMS访问Excel方法》一文。

当数据存放在Access数据库中,AIMMS提供了ODBC或这OLE等方法来实现方法。我们假定例题中需求数据在数据库transport.mdb中,它包含3张数据表Customer、Plant和TransportPrice,其结构如表2、表3、表4。

通过ODBC映射关系,数据库Transport.mdb的访问采用wjf2.dsn作为数据源。为此我们给出三个数据表的定义如下。

DATABASE TABLE:

identifier: dbtable_Plants

data source: "wjf2.dsn"

table name: "Plant"

mapping:

"Plant_Name"-->p,

"Plant_Supply"-->Supply(p);

DATABASE TABLE:

identifier: dbtable_Customers

data source: "wjf2.dsn"

table name: "Customer"

mapping:

"Customer"-->c,

"Customer_Demand"-->Demand(c);

DATABASE TABLE:

identifier: dbtable_Price

data source: "wjf2.dsn"

table name: "TransportPrice"

mapping:

"Plants" -->p,

"Customer"-->c,

"TransportPrice"-->UnitPrice(p,c);

下面,我们给出主执行程序。

PROCEDURE

identifier:MainExecution

body:

read from table dbtable_Plants;

read from table dbtable_Customers;

read UnitPrice(p,c) from table dbtable_Price

solve LeastCostTransportPlan;

ENDPROCEDURE;

2、AIMMS模型的通用性问题

在前面,我们讨论的都是供需平衡的运输问题,但是实际情况不完全这样。由于用户数据的不确定性,供需不平衡的情况是不可避免的。AIMMS提供了各种方法来组合各种约束关系,这里我们介绍一下指示符约束(indicator constraints)。

指示符约束是一种控制约束的方法,其作用通过一个{0,1}变量的变化来控制。其实,这种方法就是传统的大M法实现。

我们可以把例1中的约束写出如下形式

在用AIMMS实现这两部分的约束时,我们定义一个指示符变量y∈{0,1}。并令满足条件(1)时,y=1;满足条件(2)时,

y=0。则AIMMS的所有约束定义如下:

CONSTRAINT:

dentifier: ConstraintSgD1

index domain: (p)

property: IndicatorConstraint

activating condition: y=1

definition: sum[c,TransportAmount(p,c)]<=Supply(p);

CONSTRAINT:

identifier: ConstraintSgD2

index domain: (c)

property: IndicatorConstraint

activating condition: y=1

definition: sum[p,TransportAmount(p,c)]=Demand(c);

CONSTRAINT:

identifier: ConstraintSsD1

index domain: (p)

property: IndicatorConstraint

activating condition: y=0

definition: sum[c,TransportAmount(p,c)]=Supply(p);

CONSTRAINT:

identifier: ConstraintSsD2

index domain: (c)

property: IndicatorConstraint

activating condition: y=0

definition: sum[p,TransportAmount(p,c)]<=Demand(c);

优化开始前,在主程序中先给出y的定义部分如下:

if sum[p,Supply(p)]>=sum[c,Demand(c)] then

y:=1

else

y:=0

endif;

3、结束语

文章以运输问题为实例,讨论了AIMMS访问Access数据库的方法,同时介绍了了在供需平衡未知的情况下,如何采用指示符约束构建统一的运输问题模型。AIMMS的这种模型和数据的分离,为决策支持系统建立统一的模型库提供了技术基础。

教育期刊网 http://www.jyqkw.com
参考文献:

[1] Paragon Decision Technology. AIMMS: The User’s Guide[EB/OL] (April 3, 2011).

[2] 陈文伟. 决策支持系统教程(第二版)[M].北京:清华大学出版社,2010.

[3] 朱道立,徐庆,叶耀华. 运筹学[M]. 北京: 高等教育出版社,2006.

作者简介:

彭勇,工程师,所在单位:西安财经学院,研究领域:系统分析与优化、智能决策。