HiQube中的优化功能介绍

文章来源:互联网 发布时间:2014-04-29
分享到
摘要: HiQube是Altair公司旗下的一款商业智能软件,同时也是业界唯一一款具有优化分析能力的商业智能软件。本文对HiQube中的优化功能做了概要介绍:包括其中集成的各种优化算法、优化函数的使用以及一个实际的HiQube优化模型示例

摘要: HiQube是Altair公司旗下的一款商业智能软件,同时也是业界唯一一款具有优化分析能力的商业智能软件。本文对HiQube中的优化功能做了概要介绍:包括其中集成的各种优化算法、优化函数的使用以及一个实际的HiQube优化模型示例。

关键字:HiQube 商业智能 优化

Abstract: HiQube is a BI software owned Altair Engineering. Also, HiQube is the only one which has optimization function during all BI tools. The paper do a brief introduction on optimization in HiQube as follows: major integrated optimization algorithms, how to use optimization fuctions and an example HiQube optimization model.

Key words: HiQube, business intelligence, optimization

1.商业智能及HiQube简介

商业智能的概念于1996年最早由加特纳集团(Gartner Group)提出,加特纳集团将商业智能定义为:商业智能描述了一系列的概念和方法,通过应用基于事实的支持系统来辅助商业决策的制定。商业智能技术提供使企业迅速分析数据的技术和方法,包括收集、管理和分析数据,将这些数据转化为有用的信息,然后分发到企业各处。

可以认为,商业智能是对商业信息的搜集、管理和分析过程,目的是使企业的各级决策者获得知识或洞察力(insight),促使他们做出对企业更有利的决策。商业智能一般由数据仓库、联机分析处理、数据挖掘、数据备份和恢复等部分组成。商业智能的实现涉及到软件、硬件、咨询服务及应用,其基本体系结构包括数据仓库、联机分析处理和数据挖掘三个部分。

因此,把商业智能看成是一种解决方案应该比较恰当。商业智能的关键是从许多来自不同的企业运作系统的数据中提取出有用的数据并进行清理,以保证数据的正确性,然后经过抽取(Extraction)、转换(Transformation)和装载(Load),即ETL过程,合并到一个企业级的数据仓库里,从而得到企业数据的一个全局视图,在此基础上利用合适的查询和分析工具、数据挖掘工具、OLAP工具等对其进行分析和处理(这时信息变为辅助决策的知识),最后将知识呈现给管理者,为管理者的决策过程提供支持。

HiQube是一套采用了独特技术的高性能商业智能软件解决方案,它能够快速深入的进行商业数据分析,并具有超强的报告功能。HiQube技术易于使用,是首个集成了分层、关系和多维度数据库的技术。基于此,它给用户带来了空前的决策系统。新数据库管理系统的核心技术源于意大利,并于2007年被Altair公司收购。HiQube商业智能软件解决方案 及技术支持已遍布世界各地。同时HiQube是业界唯一一款具有优化分析能力的商业智能软件。

2.HiQube中已封装的优化算法介绍

为了实现优化分析功能,HiQube高度封装了多种优化算法,并通过Altair专有优化技术实现。主要已封装算法包括:ARSM/MFD/SQP/GA/MOGA/BB。分别介绍如下:

2.1 自适应响应面法ARSM(Adaptive Response Surface Method)

响应面法是一种结合数理统计与试验设计,利用设计空间中样本点构造复杂问题近似模型的方法。为了提高响应面近似模型的精度,基于自适应的方法不断优化更新响应面.自适应响应面法的优化迭代流程如下:

1)给定优化变量、优化目标、初始优化空间;

2)利用智能试验设计方法生成样本点库,并调用有限元正向模拟计算出各样本点的优化目标响应值;

3)利用已有样本点构造响应面函数;

4)对响应面函数优化,寻找最优点;

5)计算优化点的真实响应值,并将优化点存入样本点库;

6)当满足以下停止条件,跳到步骤8);

a)当前优化点与前次优化点之间的差值小于给定的阈值;

b)迭代次数大于给定最大迭代数;

7)更新优化空间及样本点,返回3);

8)最优点搜寻结束。

自适应响应面法具有较好的鲁棒性, 计算效率高。不受连续、可微等条件的约束,适用范围很广。

2.2 可行方向法MFD(Method of Feasible Directions)

可行方向法能较好的解决带约束优化问题。此类方法可看做无约束下降算法的自然推广。可行方向法的基本思想是从起始点出发,沿可行下降方向进行搜索,求出使目标函数值下降或使约束违反得以减小的迭代点。算法包括选择搜索方向和确定搜索步长两个主要方面。

2.3 序列二次规划法SQP(Sequential Quadratic Programming)

序列二次规划法的主要思路是:利用原来非线性约束优化问题的有关信息来构造某一简单的近似优化问题,通过求解它来给出对当前迭代点的修正,主要用一系列的线性规划或二次规划来逐次逼近原非线性规划问题。尽管开始时的SQP方法存在着QP 子问题可能不可行及马洛托斯(Maratos)效应等不足,但经过人们对其不断进行改进与进一步的发展,现在,SQP类方法已成为求解非线性约束优化问题的一类非常有效的算法。它能较好的处理带有等式约束和不等式约束的优化问题。这类算法不仅具有全局收敛性,而且具有超线性收敛的速度。

2.4 遗传算法GA(Genetic Algorithm)

遗传算法是由美国的J. Holland教授于1975年在他的专著《自然界和人工系统的适应性》中首先提出的,它是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法 。遗传算法模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中都保留一组候选解,并按某种指标从解群中选取较优的个体,利用遗传算子(选择、交叉和变异)对这些个体进行组合,产生新一代的候选解群,重复此过程,直到满足某种收敛指标为止。

遗传算法本质上是对染色体模式所进行的一系列运算,即通过选择算子将当前种群中的优良模式遗传到下一代种群中,利用交叉算子进行模式重组,利用变异算子进行模式突变。通过这些遗传操作,模式逐步向较好的方向进化,最终得到问题的最优解。

遗传算法的特点:群体搜索,易于并行化处理; 不是盲目穷举,而是启发式搜索;

适应度函数不受连续、可微等条件的约束,适用范围很广。遗传算法具有较好的全局搜索能力,适于求解具有多个局部极值的优化问题。但该算法通常需要很多的计算资源。

2.5 多目标遗传算法MOGA(Multiply Objective Genetic Algorithm)

多目标优化问题可以归结为: 寻求一组决策变量,使其在满足约束的条件下,同时优化多个目标函数。在求解多目标优化问题中, 多目标遗传优化算法显示了强大的优势。该算法与GA有着相同的特点。

2.6 分支定界算法BB(branch and bound)

分支定界算法是一种求解离散最优化问题的计算分析方法。它是由R.J.达金和兰德-多伊格在20世纪60年代初提出的。这种方法通常仅需计算和分析部分允许解,即可求得最优解。因此在求解分派问题和整数规划问题时常用此法。

基本方法:求解一个约束条件较多的问题A,可以暂缓考虑部分条件,变换成问题B,先求B的最优解。B的最优解一定比 A的好(或相当)。再将原来暂缓考虑的部分条件逐步插入问题B中,得到B的若干子问题,称为分枝。求解这些子问题,淘汰较差的解,直到所有暂缓考虑的部分条件全部插入为止。这时求得的最优解就是问题A的最优解。

3.HiQube中优化使用方法(函数)介绍

HiQube对集成的优化算法进行了高度封装,使得终端用户对优化功能的使用非常简单。

3.1 OptimizeBegin(ARSM/MFD/SQP/GA/MOGA/BB)

该语句的功能为:开始一个优化模型的定义。包含一个参数,该参数用于标明具体使用的优化算法,可选参数为ARSM/MFD/SQP/GA/MOGA/BB。

3.2 OptimizeEnd

该语句的功能为:标识一个优化模型定义的结束。无参数。

3.3 OptimizeAddObjective(MINIMIZE/MAXIMIZE, varname$, obj_function$)

该语句用于定义优化目标。三个参数的意义分别为:定义最大/最小,优化目标名称,优化目标公式。

3.4 OptimizeAddDesignVariable(V_low_bound, DV_high_bound, varname$ [, DV_name$, DV_initial_value])

该语句用于定义设计变量。五个参数的意义分别为:变量的下限值,变量的上限值,变量名称(用于HiQube后续具体运算中),设计变量名称(用于标识优化问题),变量初始值。其中后两个参数为可选。该语句在同一个优化问题的定义中可根据实际问题一次或多次使用。

3.5 OptimizeAddConstraint(">=" / "<=" / "=", bound_value, constraint_formula$, varname$ [, constraint_name$])

该语句用于定义约束条件。五个参数的意义分别为:(不)等式约束,边界值,约束条件公式,约束条件名称(用于HiQube后续具体运算中),约束条件名称(用于标识优化问题)。该语句在同一个优化问题的定义中可根据实际问题一次或多次使用。

3.6 一个优化问题的HiQube语句描述示例

一个简单优化问题的数学描述如下:

Result=TVSet×80+Stereo×50+Seaker×35 →max

s.t. 0

0

0

0≤TVSet+Stereo≤1450

0≤TVSet×2+Stereo+Speaker≤3500

对应的,在HiQube中对该优化问题的表述如下:

OptimizeBegin(ARSM)

OptimizeAddObjective(MAXIMIZE, "Result#", "Result# = TVSet# * 80 + Stereo# * 50 + Speaker# * 35")

OptimizeAddDesignVariable(0, 1000, "TVSet#", "TV Set") 造车网 http://www.zaoche168.com/ 2012年08月02日

OptimizeAddDesignVariable(0, 1000, "Stereo#", "Stereo")

OptimizeAddDesignVariable(0, 1000, "Speaker#", "Speaker")

OptimizeAddConstraint(">=", 0, "Result1 = TVSet# * 1 + Stereo# * 1 + Speaker# * 0", "Result1", "Chassis LB")

OptimizeAddConstraint("<=", 1450, "Result1 = TVSet# * 1 + Stereo# * 1 + Speaker# * 0", "Result1", "Chassis UB")

OptimizeAddConstraint(">=", 0, "Result1 = TVSet# * 2 + Stereo# * 1 + Speaker# * 1", "Result1", "Electronics LB")

OptimizeAddConstraint("<=", 3500, "Result1 = TVSet# * 2 + Stereo# * 1 + Speaker# * 1", "Result1", "Electronics UB")

OptimizeEnd()

4.HiQube优化模型示例

本优化模型建立在一个成衣零售数据库基础之上。成衣类型包括10种:男(女)裤子/ 衬衫/鞋子/外套/帽子。每种成衣均有以下数据:在不同地区/月份的成本、利润、总价、单件成本,单件价格、产品销量。优化的问题为:在总投入资金一定的情形下,各种成衣的月平均销量分别为多少时,才能获得成本最小/收入最高/利润最大。

HiQube模型的主界面如下:

4.1 定义设计变量

在已有数据中,包含10个小项,分别为男(女)裤子/衬衫/鞋子/外套/帽子,用户可以根据需要选择某一个或多个作为设计变量,并在主界面中分别设置其最大/小值及初始值,

4.2 确定优化目标:

可以选择其中之一:成本最小/收入最高/利润最大

4.3 约束条件: 输入最大的投资额

4.4 优化计算及结果显示

点击“优化”按钮,HiQube自动进行优化计算,结算的优化结果显示在Result编辑框中,同时每个设计变量对应的最优月平均销量显示在屏幕右侧图中,其上为实际月平均销量对比图。

参考文献

[1] HiQube在线帮助

[2] HyperStudy在线帮助

收藏
赞一下
0