优化服务

 


 

 

 

 

 

 

 

 

操作系统组件

首先,我们澄清了本文中的某些术语用法。大多数建模语言软件都从核心建模语言以及语言编译器。核心逐渐演变为包括其他辅助的预处理器和图形用户界面(GUI)等软件。我们所说的“辅助”是指帮助在构建、预处理和编译建模语言时求解模型,这是求解器的功能。建模语言最终与解算器打包在一起。整个软件包通常称为建模系统。然而,在本文中,我们避免使用术语“建模系统”,以避免其与更通用的优化系统混淆(图2‑1)。相反,我们将不带任何解算器的建模语言称为建模语言环境(MLE),即只带辅助工具的建模语言核心。MLE是优化系统中的一个组件。

os组件

优化系统包含以下大部分组件:

  • 模型。这就是建模师的起点。模型组件不同于其他优化组件,因为它是输入问题的抽象,而不是物理部分。
  • 建模语言环境(MLE)。MLE的核心是建模语言,其中定义了抽象模型。MLE有助于实施过程。通常,建模环境可能没有建模语言,而只有一个电子表格或一些带有隐式定义模型的图形用户界面。我们称之为GUI。从优化服务的角度来看,MLE和GUI的功能是相同的。
  • 实例表示(或仅实例)。它由各种优化系统组件生成并在它们之间交换。例如,MLE解析模型并生成问题实例。然后将此问题实例发送给求解器进行求解。实例组件不同于其他物理组件,因为它是一个数据块,而不是软件。以下图片显示了从建模语言生成实例的一般过程,以及AMPL建模语言和CPLEX解算器之间的通信示例。

实例生成放大器

  • 通信代理/接口。通信代理负责分布式系统中的通信。在本地环境中不需要代理,在这种情况下,接口和对象在内存中实例化,方法在本地调用。通信代理用于发送和接收实例。实例表示和通信代理对系统用户来说是最不可见的,尽管它们构成了优化系统的主干。下图显示了实例生成和通信的一般过程。

实例通信

  • 服务器/注册表。服务器或注册表是分布式系统的核心。Optimization Services引入了优化注册表的概念(图2 2)。注册表中作为轻量级服务器的注册表包含有关软件的信息,但不包含软件本身的信息。代理首先联系注册表以获取有关解算器的位置信息。收到注册表的响应后,代理将采取第二步以对等模式联系解算器。在这两个步骤中,数据表示和通信都遵循优化服务协议。这样的安排减轻了任何传统优化服务器的负担。权力下放的另一个直接结果是,解算器提供商将相应地承担更独立的角色,以竞争客户的业务。我们设想分散化是分布式优化的未来,因为它为优化系统和组件的开发提供了一个令人鼓舞的环境。

分散系统(使用注册表)

os注册体系结构

集中式系统(使用服务器)

集中式系统

  • 分析仪。分析器成为操作系统框架的高度集成和关键部分,这主要是因为在分散优化系统中引入了优化注册表和相应的发现机制。解算器查询引擎可以使用分析器的输出来为分析器分析的模型定位适当的解算器。如果没有分析器,优化系统可能会涉及大量的人机交互。因此,分析器在自动化中起着关键作用。
  • 解算器。作为优化系统的真正“内容”,求解器使整个系统有意义,是用户真正需要的。Optimization Services系统上的任何求解器都应以Optimizion Services实例语言(OSiL)作为其输入,并生成Optimizing Services结果语言(OSrL)作为输出。然而,解算器通常不会直接对实例表示进行计算。相反,实例读取器将输入解析为解算器算法所需的内部对象或数据结构。Optimization Services提供了用于读取标准OSiL输入(OSiLReader)和写入OSrL输出(OSrLWriter)的库,如下图所示。

os接口进程

  • 模拟。模拟是一个黑盒函数计算器。模拟引擎可以驻留在解算器中,也可以不驻留在解算器中。如果模拟是一个与解算器保持局部关系的简单函数,则通常称为函数求值器、函数指针、求值例程或表达式树。在优化系统中,模拟通常由求解器调用。大多数优化求解器算法都涉及一些迭代方案,每次迭代都可能涉及对模拟的调用。

操作系统仿真

优化系统中可以有许多其他组件,例如问题存储库和求解器基准标记。然而,上述八个组成部分是关键的。它们是优化服务框架“监管”的主要目标。当所有这些组件都根据优化服务(OS)框架构建时,我们称它们为“OS兼容”,我们称优化系统为优化服务系统。