




已阅读5页,还剩63页未读, 继续免费阅读
(系统工程专业论文)一种实时优化新框架的实现与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕士学位论文 摘要 流程工业在国民经济中起着重要作用 并在国民发展和改善人们生活水平上 有着巨大的贡献 但同时 行业闻程行业穴郝在生产规模 产品质量 成本控制 环境保护等多方面的竞争日益激烈 在这种需求下人们开始研究企业综合自动化 的解决方案 近年来 信息技术特黝是诗算枫技术的飞速发展使德过程系统的模拟和优化 已经从纯学术的理论研究逐渐转变为工业中广泛应用的技术 随着企业生产操作 水平和计算机应用水平的提高 实时优化技术有了一定程度的发展 也逐渐地投 入实际应用中 人们把现有的实时优化技术分为稳态实对优化方法和动态实时优 化技术 目前广泛应用于工业中的是稳态实时优化技术 它有着模型利用率高 维护方便的优点 稳态实对优化实际上是稳态模拟仿真的扩展应用 它使罱严格的菲线性杌理 模型和基于方程的求解技术 稳态实时优化实施过程中的 个必要条件就是在优 化求解过程中系统状态并没有因为干扰发生大的变化 这种特点决定了优化求解 的速度是实时优化中非常关键的影晌因素 色就是说郊果怨在更复杂酌生产系统 中使用稳态实时优化系统 就必须提高优化求解的速度 目前的工业实践中 操 作人员会维护一个基本配置库 b a s ec a s e s 在新工况匹配配置库中所存储的样本 工况时会直接使用基本配置库中的数据进行配置 这稗简单的方法可以提高优化 的速度 但是这种做法并没有完全发挥经验数据的作用 根据我们的研究 可以 动态地更新优化求解的经验数据 以此来改善优化的初值解 使得同一稳态的优 化求解速度不断加快 还可以迸一步使用数值逼近的方法处理经验数据 主动通 预测最优解 以达到加快优化速度的效果 为此本课题组提出了m n e m o n i c e n h a n c e m e n to p t i m i z a t i o n 由k k t 条件可得 2 2 v 工厂 x a 芝彳v x 口 o f eu i f l c x 口 0 f e c x 口 0 名 0 i i 欠 c x 口 0 f eu 2 2 i i 一叫咖啦 b 哆 浙江人学硕上学位论文 其中x 为最优解 为对应的拉格朗日乘子 由上述k k t 条件可知x 与f 是系 统操作参数口的函数 传统来说 每当操作参数口变化时 我们都要重新求解 k k t 系统来算出新的最优解 可是实际上最优解x 和拉格朗日乘子力 都是操作 参数口的函数 p 缨 仁3 i x 口 p 一7 式 2 3 并不能直接得到 但可以利用先前的优化经验进行逼近此函数 然而 传统的实时优化方法不积累先前的优化计算经验 每次优化计算时 只用前一个 点计算的结果作为当前优化的初值解 当参数波动时 求解时间长 很难满足实 时操作优化的实时性要求 当参数波动较大时 甚至会不收敛 不满足实时操作 优化的平稳性要求 实际上上一次的优化问题求解的结果并不一定就是好的初值 解 我们可以用图2 1 中的简单例子说明m e o 的计算原理和它的优势所在 图2 1m e o 基本原理图 由于系列优化命题模型是不变或相近的 我们考虑通过利用历史最优解的经 验 通过数值逼近的方法给后续的优化命题提供更好的初值解 从而达到加速优 化求解过程 提高准确率的目的 如图2 1 所示 左半图中的方点是连续四次优 化命题中的参数值变化 右半图中的方点是相应的优化命题最优解 当系统参数 变化到第四个参数点的时候 按照不使用历史经验的策略 我们会选取第三个最 优解最为第四个优化问题初值解 而使用最优解经验库后 我们利用一阶多项式 逼近算法可以得到右半图中圆点作为第四个优化问题的初值 从图上我们可以看 到 圆点距离实际的最优解比上一次的优化结果离最优解近 这在很大程度上意 浙江大学硕士学位论文 味着采用圆点作为第四个优化问题的初值解能够更快更顺利地求得最优解 理想 的m e o 框架袋够智能地选取经验节点 采取综合的逼近策略 获取更好的优化 问题初值解 从而得到更快更好的逼近效果 可以看到 通过这种经验增强的策 略 可以提供更好的初值解 这在一定程度上减少了求解过程的迭代次数 提高 求解成功的机率 2 2m e o 框架及其算法 m e o 充分地利用优化计算的经验以提升操作优化性能 通过反复迭代计算 以低代价大幅度提升操作优化的实时性和可靠性 通过经验积累自然 连续地提 高操作优化的性能 设计m e o 的框架图如图2 2 所示 m e o 由经验记忆库 逼 近方法和优化算法三部分组成 经验记忆库存放所有成功收敛的优化计算经验 计算时选择有效经验提供给逼近方法 逼近方法利用经验库提供的经验逼近待求 的最优解 要求计算代价低但逼近效果好 逼近值随着经验的积累而收敛于最优 解 优化算法在逼近值的基础上进行精确寻优 求解时间短 成功率高 m e o 可对多种优化算法均具有良好的支持 圉 图2 2 m e o 框架结构图 在m e o 框架中 逼近算法是核心 它的输入是历史优化求解成功的经验点 输出是逼近得出的初值解 这个更好的初值解被带入优化算法中 从而更快地计 算出最优解 目前逼近算法的模型函数采用的是多项式模型 在使用m e o 框架 之前应该根据需要确定多项式的阶数p 浙江大学硕i 上学位论文 图2 3m e o 算法框架流程图 根据m e o 框架 我们的算法框架如下 其流程如图2 3 所示 1 确定操作参数维数m 制定多项式模型函数的阶数p 设置经验库的 浙江大学硕上学位论文 节点数l a b e l 0 2 设置优化次数k i 采用当前提供的起始点应用求解其进行优化求 解 如果优化成功保存则优化结果到经验记忆库中 设置 l a b e l l a b e l 1 3 设置优化次数k k i 如果l a b e l n u m b e r m p 其中n u m b e r m p 为计算m 元p 阶多项式的各系数需要得最少节点数 转 5 否则继 续 4 根据经验记忆库中的记录 选择距离当前参数 最近的经验参数点 所对应的最优解作为计算起始点 对问题应用求解器进行优化求解 如果优化成功则保存优化结果到经验记忆库中 设置l a b e l l a b e l l 转 3 5 根据经验记忆库中的记录 采用p 阶多项式逼近方法 估计当前优化 计算的最优解 将其作为优化起始点 对问题应用求解器进行优化 求解 如果优化成功保存优化结果 到经验记忆库中 设置 l a b e l l a b e l l 转 3 2 3 本章小结 本章主要根据实时优化的特点 介绍了了m e o 的理论框架 并详述了m e o 改进优化计算的基本原理并举例进行了说明 给出了m e o 的算法并讨论了框架 的基础架构 为下面章节的实现打好了基础 浙江人学硕士学位论文 第三章m e o 系统总体构架 本文中所设计的m e o 框架 包括了连接模拟优化软件 数值逼近 经验选 择 经验库管理等主要功能 同时要提供事件处理机制 涉及的软件开发技术较 多 为了有更好的兼容性 框架搭建于中阆件技术之上 采用s a f e a r r a y 数 据结构作为标准的数据接口 本章首先介绍s o a s e r v i c e o r i e n t e da r c h i t e c t u r e 思想i 并介绍了中间件技术 分析了使用该技术的优点和必要性 然后介绍几种主流的对象组件技术 阐述了 基于s o a 思想构架的m e o 的优势 以及如何使用s a f e a r r a y 保证框架与模 拟仿真应用程序之间的兼容性 最后总结了m e o 框架的设计工作 3 1 系统架构 近年来 服务应用程序开发者谈论最多的就是s o a 作为一种框架设计思想 s o a 最大地体现了可重用 可扩展等特点 而中间件技术则是最近发展最快的 一种编程技术 它与s o a 是鱼与水的关系 目前两者的融合是大势所趋 m e o 框架的定位是基于s o a 思想设计的中间件 3 1 1s o a 一面向服务构架 s o a 是一种架构模型 它可以根据需求通过网络对松散耦合的粗粒度应用组 件进行分布式部署 组合和使用 服务层是s o a 的基础 可以直接被应用调用 从而有效控制系统中与软件代理交互的人为依赖性 s o a 的关键是 服务 的概念 所谓服务就是精确定义 封装完善 独立于其 他服务所处环境和状态的函数 s o a 本质上是服务的集合 如图3 1 所示 在 s o a 中 服务间彼此通信 这种通信可能是简单的数据传送 也可能是两个或 更多的服务协调进行某些活动 服务间需要某些方法进行连接 多个服务有可能 通过一定的组合形成以功能划分的服务集 被某个对此功能感兴趣的用户调用 s o a 并不仅仅是一种开发方法 它还具有管理上的优点 例如 现在管理员 可直接管理开发人员所构建的相同服务 这远胜于以往管理单个应用的方式 通 过分析服务问的交互 s o a 可以帮助企业了解何时以及为什么业务逻辑被切实 浙江大学硕上学位论文 执行了 这使管理员或分析师能够有针对性的优化业务流程 门 天 门 芙 图3 1 简单s o a 构架不意图 比起传统的软件构架模式 s o a 有着如下优点 1 编码灵活性 可基于模块化的低层服务 采用不同组合方式创建高层服务 从而实现重用 这些都体现了编码的灵活性 此外 由于服务使用者不直接访问服务提供者 这 种服务实现方式本身也可以灵活使用 2 明确开发人员角色 例如 熟悉重用访问的开发人员可以集中精力在重用访问层 协调层开发人 员则无须特别了解重用访问层的实现 而将精力放在解决高价值的业务问题上 3 支持多种客户类型 借助精确定义的服务接口和不同服务标准的支持 可以支持多种客户类型 例如基于s o a 构建的w e b 服务应该能够为p c p d a 和手机等不同用户服务 4 更易维护 服务提供者和服务使用者的松散耦合关系及对开放标准的采用确保了该特 性的实现 5 更好的伸缩性 依靠服务设计 开发和部署所采用的架构模型实现伸缩性 服务提供者可以 彼此独立调整 以满足服务需求 浙江大学硕士学位论文 6 更高的可用性 该特性在服务提供者和服务使用者的松散耦合关系上得以体现 使用者无须 了解提供者的实现细节 s o a 可以看作是浏览器朋艮务器 b s 模型 x m l w e bs e r v i c e 技术之后的自 然延伸 它带给我们的启发是m e o 的构架应该从服务集的概念出发 而不是简 单地开发一个具有某些功能的应用程序 一系列服务集中的服务之间应该是松散 的 这种组合方式给m e o 框架带来的好处是更好的重用性和扩展性 3 1 2 中间件技术 中间件是位于平台和应用之间的通用服务 这些服务具有标准的程序接口和 协议 1 针对不同的操作系统和硬件平台 它们可以有符合接口和协议规范的 多种实现 也许很难给中间件一个严格的定义 但中间件应具有如下的一些特点 1 满足大量应用的需要 2 运行于多种硬件和o s 平台 3 支持标准的协议 4 支持标准的接口 由于标准接口对于可移植性和标准协议对于互操作性的重要性 中间件己成 为许多标准化工作的主要部分 中间件所包括的范围十分广泛 针对不同的应用 需求涌现出多种各具特色的中间件产品 但至今中间件还没有一个比较精确的定 义 因此 在不同的角度或不同的层次上 对中间件的分类也会有所不同 由于 中间件需要屏蔽分布环境中异构的操作系统和网络协议 它必须能够提供分布环 境下的通讯服务 我们将这种通讯服务称之为平台 基于目的和实现机制的不同 可以将平台分为以下主要几类 1 远程过程调用 r e m o t ep r o c e d u r ec a l l 2 面向消息的中间件 m e s s a g e o r i e n t e dm i d d l e w a r e 3 对象请求代理 o b j e c tr e q u e s tb r o k e r s 它们可向上提供不同形式的通讯服务 包括同步 排队 订阅发布 广播等 等 在这些基本的通讯平台之上 可构筑各神框架 为应用程序提供不同领域内 的服务 如事务处理监控器 分布数据访问 对象事务管理器o t m 等 平台为 浙江大学硕士学位论文 上层应用屏蔽了异构平台的差异 而其上的框架又定义了相应领域内的应用的系 统结构 标准的服务组件等 用户只需告诉框架所关心的事件 然后提供处理这 些事件的代码 当事件发生时 框架则会调用用户的代码 用户代码不用调用框 架 用户程序也不必关心框架结构 执行流程 对系统级a p i 的调用等 所有 这些由框架负责完成 因此 基于中间件开发的应用具有良好的可扩充性 易管 理性 高可用性和可移植性 为了直观地把握中间件的基本概念 可以将网络和 系统软件之上 应用系统之下的广袤疆域都视做中间件的领地 中间件被概括地 理解为起承上启下作用的应用支撑平台 中间件技术给我们在m e o 各功能模块以及服务集的定义上提供了参考的依 据 如果说s o a 在整体构架上给予了我们灵感 那么中间件技术则是在实现的 技术方案上给了我们一个思路 3 1 3 中间件技术平台c o r b a 和c o m 进入9 0 年代以来 分布式组件对象标准极大地推动了以异构环境下协同工 作为目标的虚拟环境研究 当今国际上已有三大分布式组件对象标准 一个是 o m g 组织推出的c o r b a c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e 即公共 对象请求代理结构 一个是微软公司推出的d c o m 即分布式组件对象模型 还有一个是s u n 公司推出的用j a v a 语言开发的分布对象模型r m i 即远程方 法激活 在w i n d o w s 下实现中间件的主要技术规范有c o r b a 和c o m 它们都 是用i d l 来定义语言无关的对象 并都提供面向对象的编程方式 c o r b a 公用对象请求代理 调度 程序体系结构 c o m m o no b j e c tr e q u e s t b r o k e ra r c h i t e c t u r e 是对象管理组织 o b j e c tm a n a g e m e n tg r o u p 对应当今快速增 长的软硬件的协同工作能力的要求而提出的方案 简而言之 c o r b a 允许应用 程序和其他的应用程序通讯 而不论他们在什么地方或者由谁来设计 c o r b a 1 1 由对象管理组织在1 9 9 1 年发布 他定义了接口定义语言 i d l 和应用编程接 h a p i 从而通过实现对象请求代理 o 来激活客户厂服务器的交互 c o r b a 2 0 于1 9 9 4 年的1 2 月发布 他定义了如何跨越不同的o r b 提供者而进行通 讯 c o m c o m p o n e n to b j e c tm o d e l 是由m i c r o s o f t 提出的组件标准 它不仅定 浙江大学硕上学位论文 义了组件程序之间进行交互的标准 并且也提供了组件程序运行所需的环境 在 c o m 标准中 一个组件程序也被称为一个模块 它可以是一个动态链接库 被 称为进程内组件 i n p r o c e s sc o m p o n e n t 也可以是一个可执行程序 即e x e 程 序 被称作进程外组件 o u t o f p r o c e s sc o m p o n e n t 一个组件程序可以包含一个 或多个组件对象 因为c o m 是以对象为基本单元的模型 所以在程序与程序 之间进行通信时 通信的双方应该是组件对象 也叫做c o m 对象 而组件程 序 或称作 c o m 程序 是提供c o m 对象的代码载体l l c o m 对象不同于一般面向对象语言 如c 语言 中的对象概念 c o m 对 象是建立在二迸制可执行代码级的基础上 而c 等语言中的对象是建立在源 代码级基础上的 因此c o m 对象是语言无关的 1 7 1 这一特性使用不同编程语 言开发的组件对象进行交互成为可能 如前所述 c o m 所提供的服务组件对象在实现时有两种进程模型 进程内 对象和进程外对象 如果是进程内对象 则它在客户进程空间中运行 如果是进 程外对象 则它运行在同机器上的另一个进程空间或者在远程机器的空 司 1 8 虽然c o m 对象有不同的进程模型 但这种区别对于客户程序来说是不知道的 客户的使用并没有不同 3 2m e o 框架总体设计 m e o 的框架的总体设计应该分为两个层面 首先必须解决构架层面的问题 也就是如何使用s o a 的思想体现框架的服务重用性 以及如何设计松散的服务 并形成服务集 其次必须根据中间件设计的标准为m e o 框架确定实现的技术平 台 设计标准的数据接口和数据结构 体现框架的兼容性 3 2 1 符合s o a 设计思想的中间件 根据前面的介绍 s o a 的思想实质上是以服务为导向设计软件 服务之间的 关系是松散的 软件内部有一定的逻辑将服务组合起来成为服务集提供给用户使 用 为了更好的理解我们如何利用s o a 这里先举一个网上购票系统的例子 假设我们基于s o a 的思想实现了一个网上票务系统 这个系统的功能涵盖了包 括购票者 出票员 系统管理员在内的各用户的所有操作 按照传统的客户 服 浙 f 硕f i 学位论女 务器改讨思想 这个系统应该葙一个子系统 分别对麻于购票者 操作员和系统 讵岬 l 如罔3 2 所示 子系统之间共享的可能只有部分数据 购柴告操作员管理员 q3 2 c i s 构 日f 票务 境 c s 的构架的好处是设训相对简单 功能划分清晰 但是相对的 它的重用 性和可打展性不如s o a 构架的系统 下面我们来看看基十s o a 的网上票务系统 应该是如何设计的 如果把典型的票务系统的功能以服务为单位列出来 可以得 出表3 1 表3 1 典 日 票务系统所提供服井的 4 表 服务功能描述 月p n 册 丰g 提供特蛸 使月 月p 鸯i 设系统的 产髓录时使用 获取川p 信息古洵或空茹时儿数据库日m 用 j 信自 莸取航 f i 息帆数据库调m 某段目目自航 自息 获取机i 信息m 数据库中调出机票镕 情况 供亲价和详m 镕息月t 询i 价与相 a 信息 支付用f 在线女付 看历t 操作月f 查看段时间自所有的交g 查看内 数据用于查看 司 部统计数据 浙江大学硕士学位论文 臣竺 工三至亟三巫圣 二二 上表所列出的未必包括了一个网上票务系统的所有服务 但是在这里已经足 够用来阐明s o a 的设计思想 表中的服务并没有区分属于哪个用户 在完成服 务的设计之后 再根据需求将一些服务组合成服务集 并提供相应的接口给用户 使用 这个思想在介绍s o a 时已经提到过 具体见图3 1 所示 最终用户用来 完成某一特定功能的是表3 一l 中的某个服务或是其中若干个服务所组成的服务 集 这里举一个例子来说明s o a 的软件构架与图3 2 所示的c s 构架有何不同 例如现在购票者需要在线购买机票 这就需要一个服务集来满足需求 这个集合 包括的服务应该有 获取用户信息 获取航班信息 获取机票信息 提供票价和 详细信息和接受支付 如图3 3 所示 这些服务并不是自动就能组织成在线购买 机票的功能 而是通过服务集逻辑组织在一起 通过标准的接口提供给用户使用 图3 3 在线购买机票服务集结构不惹 在线票务系统还应该有很多其他的服务集来满足其他的需求 如用户在线查 询 每周出票情况报表等 但是跟前面提到的c s 构架不同的是 s o a 构架的 系统在实现这些服务集时不需要做大量的代码工作 而只是简单的使用服务集逻 辑组合已有的服务 这体现了s o a 在重用性上的优势 s o a 同时在可扩展性上 有优势 因为服务之间是松散的 升级更新某个服务显得格外方便 例如将接受 浙江大学硕士学位论文 支付的手段从人民币支付升级为人民币 美元双币支付 只需要在原来接口不变 的情况下扩展接受支付服务即可 当有新的服务模块加入系统时 也可以高效地 马上部署应用 s o a 的构架能改善m e o 框架的重用性和可扩展性 而中间件的实现准则可 以为m e o 框架带来标准化和兼容性上的改善 这里我们采用的是广义的中间件 的定义 即起承上启下作用的应用支撑平台 中间件的开发标准要求我们保证 m e o 框架能够与不同的优化模拟软件协同工作 能够在不同的数据库上开发应 用 并且可监控 有自己的消息机制 所以总的来说 m e o 框架具备良好的可 重用性 可扩展性 兼容性和可监控性 3 2 2m e o 框架总体构架 m e o 框架的定位是符合s o a 设计理念的中间件 如丽所述 甲l f 日j 件的升发 可采用多种技术平台 我们选择的是c o m 技术平台 因为c o m 是由微软推出 的 在w i n d o w s 上的应用极为广泛 如a s p e np l u s 的外部接口就是通过c o m 对 象暴露的 并且c o m 有更成熟的开发工具 开发效率相对较高 而选用c o m 之后 还要选择一种进程模式 根据前面的分析 本文选择的是进程外组件模式 因为m e o 有着自己的数据与消息机制 需要独占内存 所以必须采取主动运行 而不是仅仅是被动调用的组件模式 同时 进程外组件模式有更加稳定的特点 在确定了实现的技术方案之后 我们需要将m e o 框架所提供的服务列出来 如表3 2 所示 同时也列出了两个关键的服务集 表3 2m e o 框架的主要服务 服务集服务描述 数据格式转换在客户数据格式和m e o 格式之间转换 位 计经验数据管理 负责经验数据库的维护 算服务 经验节点选择 负责从经验数据库中选取数据 数值逼近根据经验数据进行逼近 求出优化初值解 设置经验管理模块对经验管理模块进行配置 监控配置 设置节点选择模块对接点选择模块进行配置 设置数值逼近模块对数值逼近模块进行配置 匡 赢l 磊磊磊 如 所述 s o a 的构架有一套总线结构和逻辑来整合整个系统 m e o 也有 这样的逻辑米组织服务 形成服务集和用户接口 同时为了符合中间件的开发标 准 m e o 与外部程序的接口采用的标准的接口 而在m e o 内部由于计算处理 效率的缘故 有着自己的一套数据结构和转换机制 m e o 框架的整体结构如图 3 4 所示 图中框内部分则是作为中间件的m e o s e r v e r 在此图中它的应用环境 是a s p e np l u s 可见m e o s e r v e r 由于对外接口是标准的 可以与v b j a v a 或者 c c 下的模拟环境通信 体现了中间件有良好的兼容性的特点 m e o s e r v e r 催篚矧目 匡对 i 目3 4 a s p e nh f m e o 2 构遗目 关t 标准的外部数据接口和内部数据结构以及它们之间的相互转换关系将 存后续章节中阐明 接下来要设计的是如何形成服务集 也就是应兹以怎样的逻 辑组织表3 2 中的服务 m e o 晟重要的功能是提供计算服务 在计算服务集中 并不是简单地运行某一个服务就可咀了 它需要按照一定的顺序处理数据 m e o 计算服务集的组织逻辑如下所示 沁 辱 1 l 浙江大学硕士学位论文 根据更新过的经验数据缓存选取需要的经验节点 并从经验数据库中读取经 验数据 存放入 旨定的数据结构中 根据更新过的经验数据缓存选取需要的经验节点 并从经验数据库中读取经 验数据 存放入指定的数据结构中 以上便是m e o 计算服务集的组织逻辑 按顺序调用的服务有数据格式转换 经验数据管理 经验数据选择 数值逼近和数据格式转换 也就是说这几个服务 必须按照顺序执行才能得到正确的计算结果 而配置监控服务集不是这种顺序组 3 0 江太学硕士学位论女 哪3 5 配置 控服务辈的m 织 织逻辑 如图3 5 所示 它采用的是星形的逻辑 也就是几个服务是同等级的 3 3 标准数据接口与数据结构设计 前一节中已经提到过 为了满足中间件的兼容性标准 m e o 框架的外部接 口都是标准i o 数据接口 而为了效率 内部也有套自己的数据结构 这一节 主要设计这些数据接口和结构 3 3 1m e o 框架1 0 标准数据接口 m e o 框架对外的数据接口采用的是s a f e a r r a y 结构 s a f e a r r a y 的主 要目的是用于a u t o m a t i o n 中的数组型参数的传递 因为在网络环境中 数组是不 能直接传递的 而必须将其包装成s a f e a r r a y 实质上s a f e a r r a y 就是将 通常的数组增加一个描述符 说明其维数 长度 边界 元素类型等信息 现在 的m e o 框架并没有在网络上佳输寥数 但s a f e a r r a y 的使用保证了m e o 框 架能够被不同的模拟客户端所用 v i s u a l c 抖 v i s u a l b a s i c j a v a 或是其他的许多 编程环境下都可以方便地编写兼容的代码 咀下是s a f e a r r a y 在w i n 3 2 下的 定义 l y p c d c i l l lc u l i i a r r a y u n s i g n e ds h o r tc d i m s u n s i g n e ds h o r tf f e a t u r e s u n s i g n e dl o n gc b e l e m e n t s u n s i g n e dl o n gc l o c k s v o i d p v d a t a s a l 7 e a r i l y b o u n dr g s a b o u n d s a f e a r r a y 可以看出 s a f e a r r a y 通过一个v o i d 指针使得各种数据结构都可以被包 含其中 同时它明确地指定了教组的维数 长短和上下界等 正因为这种特点 i m 学位论j 在使削上s a f e a r r y 相对繁琐 但它非常安伞 m e o 框架与模拟窖户端程 之问使川s a f e a r r y 作为标准的数据i o 接口 3 3 2m e o 框架内部使用数据结构 因为m e o 框架是使用c h 编写的 但是对外接口是s a f e a r r a y 所蚪框 架内部必须育自己的数据结构 并且这些数据结构的定义必须保证设计良好和转 换效率高 m e o 框架内部用来传递数据的数据结构主要有d a t a l n f o 和 e x p e f i e n c e d a t a 模拟优化客户端使用s a f e a r r a y 向m e o 输入的数据将转化 为内部数据结构 进行系列的处理和计算后 结果重新转化为s a f e a r i l y 输m d a 诅i f 0 结构的声明如下 s t r j c td a t a l n h d o u b l e p d d a m i n ti d i m s t d s t r i n gs l r o p t i o n a k d a t a l n f u 0 d a t a i n f b c o n s td a t a l n l b a n o l h c r d a t a l n f o o p e r a l o r c o n s td a t a l n f o o t h e r 一d a t a i n f b 0 d a t a i n f o 结构中包括存放数据的双精度数组p d d a l a 表示数据维数的i d i m 以 及一个 供任意用途的字符串变量 d a t a l n f o 的主要用途是存放参数信息 另一个内部数据结构捏 e x p e r i e n c e d a t a 它的声明如下 s t r u c tf x p e r l e n c e d a t a f d o u b l e 谢s i n g l e n o d e d o u b l e 1 c l m u l t i n o d c s i n ti d i r n s c t s i n ti d i m p a r a i n ti d i n l x e x p e d e n c e d a t a 0 浙江 学硬 学位论女 e x p e r i e n c e d a t a 0 e x p e f i e n c e d a t a f c o n 日e x p e r i e n c e d a t a a n o t h e 0 e x p e r i e n c e d a t a 9 p e r a t o r e o n s t e x p e r i e n c e d a m o t h e r e x p e r i e n c e d a t a 结构描述r 所存储的经验数据的维数和组数 并在i d i m p a r a 中记载了优化问题中变化的参数个数 实际的数据被存放在p d s i n g l e n o d e 或 p d m u l t i n o d e s 中 p d s i n g l e n o d e 和p d m u l f i n o d e s 是互斥的 其中只有个小为 j 兰n 当经验点只有一组时 数据会被存放在p d s i n g l e n o d e 中 当经验点育多组 时 数据则被存放在 维数组p d m u l t l n o d e s 中 d a t a l n f o 和e x p e f i e n e e d a t a 数据结构都是用c h 编写的 这生要是由于m e o 框架使用a t l 开发 而a t l 的开发语言j e 是c d a t a i n f o 和e x p e r i e n c e d a t a b 实际存放数据时都使用了双精度的指钊 在运行时根据需要动忐分配 释放内 存 d a t a l n f b 和e x p e f i e n c e d a t a 分别满足了在m e o 内部传递参数数据和经验数 据的需求 使用m e o 的p a c k d a t a 和u n p a e k d a t a 函数能够方便地与s a f e a r r a y 结构交换数据 m e o 框架内部数据结构与s a f e a r r a y 之间的转换如图3 6 所 不 瘁一块 二 圈3 数据结构转挠 浙江大学硕士学位论文 3 4 本章小结 本章讨论的主要内容是m e o 框架的总体构架以及数据接口的设计 首先介 绍了s o a 和中间件的基本概念 然后介绍并比较了c o r b a 和c o m 两种实现 中间件的技术平台 并在c o m 下设计了m e o 框架的总体构架 列出了m e o 所提供的服务 并划分了服务集 为了提高系统的兼容性 采用了s a f e a r r a y 数据结构作为标准数据接口 并设计了m e o 框架内部使用的数据结构 浙i i 大学硕士学位论文 第四章m e o 功能模块开发 在上一章中 我们从s o a 的角度设计了m e o 框架的总体构架 并根据中间 件的设计要求设计了标准的数据i o 接口以及内部数据结构 在本章中 我们将 对组成m e o 主要功能的各个服务模块进行详细的设计 并包括组织这些模块和 功能的逻辑与实现 我们将m e o 框架潜在的用户分为两类 一类是普通的用户 他们主要使用 计算服务集 第二类用户主要使用m e o 的监控配置服务集和计算服务的各服务 模块接口 他们可以自行开发或扩展m e o 的服务模块以及配置监控应用程序 也就是可以通过m e o 这个平台发布自己的服务的用户 为了提高开发效率 m e o 框架使用 吼作为开发基本类库 a t l 即活动 模板库 是一套基于模板的c 类 使用这些类可以容易地创建小型 快速的 组件对象模型 c o m 对象t 2 0 2 a t l 代码可以用来创建单线程对象 单元模 型对象 自由线程模型对象或既是自由线程又是单元模型的对象 在设计上有很 大的灵活性 在本文中我们选用的是c a t l e x e m o d u l e t 作为c o m 对象的基类 它为我们给出了进程外c o m 对象的框架代码 4 1m e o 全局函数及数据 在设计具体的服务集之前 必须先设计好m e o 的 总线 也就是被服务集 共享的全局存在的一些函数和数据 它们记载了一些全局都会用到的资源或是操 作 同时它们也使用了一些特殊的数据结构使得m e o 能够以更高效率运行 4 1 1 全局操作参数信息缓存 在实现m e o 的节点选择服务时需要将可选的经验数据作为输入传入 有两种 方案可以提供这些数据信息 第一种是每次获取经验节点后将其存入经验数据库 并在需要时从数据库中读取 另一种方式是引用m e o 的数据缓存 m e o 会将节 点选择必须的信息以一定的组织形式存放在内存里 提供给需要的服务模块使 用 本文实现的节点选择服务采用了后一种方案 实践证明 这种方式大大节省 了读写磁盘的时间 从而加速了m e o 框架的运行速度 本文的数据缓存采用的 浙江 学砸i 学 论i 敞州结构足d a t a s u m m a r y 它的定义如下 l c d a t a s u m m a r y s t d l i s t d a t a l i s t i n ti n u r e d a t a s u m m a r y 0 i n i l m 0 d a t a l i s t s t d l i s t 其中d 山 1 s t 采用r c 中s t 甜讨a r di b m p l a t el i b r a r y 的1 1 s t 数据结构 2 2 驯 它是 个杠卜准的链表结构1 2 里面的元亲是d a t a h f f o 类型 d a t a l i s t 存放了蟀验节点宅 问位置 给节点选掸使用 其中d a 诅i n n 结构巾的p s 仃o p t m l 填写节点数据在经 i 目4 i 全局数据埋存 作i 意目 验库q 的存放位置 这样使用少量的内存空间就可以换取大量的文件读取的时 问 如 蛩4 1 所示 经验库管理服务负责更新全局数据缓存中的参数信息和经验 数据地址 而节点选择模块在选择节点时可以直接从拿局数据缓存中读取参数信 息进行选择 再根据经验数据地址从磁盘读取选中的经验节点的数据 二一 丁i 纛1 卜囊掣藩一 浙江大学硕 学 t 女 4 1 2 全局函数和全局数据 m e o 框架t 所有的全局函数和数摧被保存在一个m e o g l o b a l 类中 如f 面 定义所示 当前争局甬数有g e t e x p e r i e n c e n u m 和f a c t o r i a l g e t e x p e r i e n e e n u m 用来计算确定一个d i m 维p 阶多项式的系数所需的最少节点数 岛c t o m 用来计 算阶层 这两个雨数都足m e o 框架中频繁使用的两数 所以作为m e o g l o b a l 的静态成员幽数 m e o 框架的以后版本中的全局函数和数据都会被包含礁 m e o g l o b a l 类中 p u b l i e s t a t i ci n tg e t e x p e r i e n c e n u m i n tp i n td i m s t a t i ci n tf a c t o r i a l i n t m e o g l o b a l o i d m e o o l o b a l v o l d 4 2 计算服务集对外接口设计 计算服务集提供的功能是m e o 最重要的计算服务 m 且计算服务的使用对 象是各种不同的模拟优化软件 所以我们为计算服务集专门设计了外部接口 外 部接几最主要的内容是i s e r v i c e 接口 调用这个接口就可以使用计算服务 s e r v i c e 接几只有个函数c o m p u t e 对应的是计算服务集 它把新的操作参数 上一次的操作参数及其优化结果作为输入 计算后输出逼近结果 所有的函数参 数均为s a f e a r r a y 类型 因此能够与任何语言编写的应用程序堆接 如图4 2 所示 模拟优化客户端首先将数据封装入s a f e a r r a y 结构中 然后通过暴露 的i s e r v i e e 接几连接m e o 通过u n p a c k d a t a 函数将内部数据结构转化为 s a f e a r r a y 结构 在计算之后通过i s e r v i c e 接口将数据返回模拟优化客户端 至此完成一次m e o 框架的调用 新的操作参数n e w p a r a 上一次的操作参数 浙旺 学硕 学位论女 目 2 客p 使月1 s e m i t e 接口 l a s t p a t a 和上次优化结果l a s t x 以s a f e a r r a y 的形式输入 经过p a c k d a l a 处理 后以内部数据结构d a t a l n f o 和e x p e r i e n c e d a t a 的形式传向计算服务集 p a c k d a t a 函数的丰要作用在于从s a f e a r r a y 结构读取数据 例如读取新的操作参数 n e w p a r a 的过程如 卜 n e w p a r a 中的数据最终被存储于1 f i d d a t a 数组中 d t m b l e p v a l u t n l 1 1 i r f l s j l th r s a f c a r r a v a c c e n q l a t a n c x p a r af v o i d p v a l u e a s s c r i h rs j k i o b gh mi i j g h h rs a l t a i m i c t t i3 l u n d n c w p a tc i j l 叭 j a s s c r t hr s k l 1 1 l s a i j a i i t l ii i 川 1 c w p a r a1 i i i g h t t s c l l c l l r so k n p 一 i d i m2h i 2 h lo w l x i l i m l a r a n n i d i m n p p d d a t a2 d o u b l c n p 一 i d i m s a f c a r r a y u n a c c e s s d a t a n e w p a r a p v a l u e 2 n u l l 浙江大学硕士学位论文 相反地 在u n p a c k d a t a 函数中 是将m e o 内部结构中的数据取出并反包装 存入s a f e a 对认y 中 4 3 计算服务集各服务的设计与开发 计算服务集所包含的服务有经验库管理 经验节点选择和数值逼近 是m e o 框架最重要的部分 如何能够保证这些服务之间松散 并能够按照前面设计的方 式组合成服务集是这一节的重点 4 3 1 服务模块的技术实现手段 我们使用动态链接库d y n a m i cl i n kl i b r a r y d 1 1 作为实现各计算服务服务模块 的主要技术手段 d l l 是一个可以被其它应用程序共享的程序模块 其中封装了 一些可以被共享的例程和资源 它和可执行文件 e x e t 常类似 区别在于d l l 中虽然包含了可执行代码却不能单独执行 而应由w i n d o w s 应用程序直接或间 接调用 使用d l l 实现数据处理模块有以下好处 1 隐藏实现的细节 d l l 中的例程可以被应用程序访问 而应用程序并不知道这些例程的细节 这一特性可以用来确保服务之间松散的耦合关系 服务可以很容易地升级扩展 2 拓展开发工具的功能 由于d l l 是与语言无关的 因此可以创建一个d l l 被c v b 或任何支 持动态链接库的语言调用 这样如果一种语言存在不足 就可以通过访问另一种 语言创建的d l l 来弥补 例如可以使用f o r t r a n 语言实现逼近算法模块 图4 3 是计算服务集的逻辑结构图 e x p e r i e n c e m a n a g e r s e l e c t o r 和a p p r o x i m a t o r 是三个d l l 它们分别包含了经验更新服务模块 节点选择服务模块和数值逼近 服务模块 这些模块只要以标准定义的接口编写 可以实现任何的逻辑 在保证 适用性的前提下给予了用户最大的自由开发度 用户通过标准接口即可在m e o 平台下向其他用户提供他们的服务 当模拟优化客户端引用了外部接口部分的 c o m p u t e 方法之后 m e o 框架将会通过调用e x p e r i e n c e m a n a g e r 中的 u p d a t e e x p e r i e n c e 函数 s e l e c t o r 中的s e l e c t e x p e f i e n c e 函数和a p p r o x i m a t o r 中的 a p p r o x i m a t e 函数 完成一系列的服务并得到最终结果 s e l e c t o r 并不直接从经 j i l 人学 j 学位论z 巫盟迸 罔43 m 算m 务韭 辑结构 验数据库中搜素经验节点 而是从全局数据缓存中挑选 需要的节点 冉根据数 据缓存中指定的经验存储路径从经验库中读取数据 并将数据交给 a p p r o x i m a t o r 图4 4 是计算服务集内的数据流图 新参数和上次经验点在经过 更新 选择和逼近等过程后 得到新的初值解作为输出 史新厉的经验 r 选择后的数据 l 7 f 逼近后的结果 目4 4 m e o 棱o 分数 流圈 浙f l 大学颈 学位论文 4 3 2 计算服务模块详细设计 如前一小节所介绍 m e o 的计算服务集主要由e x p e r i e n c e m a n a g c r s e l e c t o r 和a p p r o x i m a t o r 个服务模块组成 它们都是以d l l 的形式实现的 为t 保i t 面 向服务的构架以及服务之问耦台的松散性 各个模块中统一定义的只有个函数 接u m 实现的细节与其他模块无关 在e x p e r i e n e e m a n a g e r 中是u p d a t e e x p e r i e n c e 卢明如下 b o o l u p d a t c e x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030美容食品市场发展现状及未来趋势与投资风险评估报告
- 2025-2030羊肉价格形成机制与市场调节政策及投资周期分析报告
- 2025-2030绿色债券认证标准区域差异及发行主体融资成本比较研究报告
- 2025-2030第三方医学检验市场增长动力与投资价值报告
- 2025-2030矿泉水行业二手交易市场现状与规范发展建议
- 阻燃织物开发方案(3篇)
- 5T门式起重机的安装与拆卸流程优化方案
- 小样本下西夏文字识别模型的优化策略
- 九年级语文课文深度解析教案
- 小学五年级小数乘除法训练题集
- 医院医保新员工岗前培训
- 静脉治疗护理技术操作标准解读
- 突发公共卫生事件校长为第一责任人制度
- 北师大版高中英语让学生自由飞翔
- (2024)新课标一年级语文上册 我上学了 第2课时 我爱我们的祖国 课件
- 手工木工(木模板工)技能考核要素细目表
- 《跨境直播运营》课件-跨境电商交易平台直播
- 液化气店转让合同范本
- 保温材料 扩散法测定长期吸水率
- 生活垃圾填埋场地下水污染防控与综合治理工程项目可行性研究报告
- 四川公路工程竣工文件资料编制实施细则
评论
0/150
提交评论