1、14/11/13 1 1stopt 使用简介 14/11/13 2 第 1章 1stopt 概述 14/11/13 3 1stOpt 是七维高科有限公司( 7D-Soft High Technology Inc.)独立开发,拥有完全自主知识产权的一套数学优化分析综合工具软件包。 在非线性回归,曲线拟合,非线性复杂模型参数估算求解,线性 /非线性规划等领域傲视群雄,首屈一指,居世界领先地位。 概述 14/11/13 4 1.1 1stOpt 应用范围 1) 模型自动优化率定 2) 参数估算 3) 任意模型公式线性,非线性拟合,回归 4) 非线性连立方程组求解 5) 常微分方程及方程组,初值及边值
2、问题 6) 任意维函数,隐函数极值求解 7) 隐函数根求解,作图,求极值 8) 线性,非线性及整数规划 9) 组合优化问题 10) 高级计算器 概述 14/11/13 5 1.2 1stOpt 特长 1) 功能强劲,是目前唯一能以任何初始值而求得美国国家标准与技术研究院 (NIST)非线性回归测试题集最优解的软件包。 2) 可广泛用于水文水资源及其它工程模型优化计算。内镶VB 及 Pascal 语言,可帮助描述处理复杂模型。 3) 可连接由任何语言( C+, Fortran, Basic, Pascal )编译而成的外部目标函数动态连接库或命令行可执行文件。 4) 非线性曲线拟合可处理任意类型
3、模型公式,任意多数目的待求参数及变量,批量数据拟合、权重拟合、带约束拟合、缺失变量拟合。 概述 14/11/13 6 1.3 1stOpt 特长 5) 模型自动率定时可同时处理多个数据文件。 6) 可非常容易处理一些特殊的参数,如降雨径流模型中的流域初期土壤含水量。 7) 可同时处理多个输出量。 8) 实时显示计算结果。 9) 可直接读存 Excel, CSV 等格式文件。 10) 界面简单友好,使用方便。 11) 自带有上百个实例,覆盖范围包括几乎所有优化方面。通过不同类型实例,用户可轻松掌握 1stOpt 的用法。 概述 14/11/13 7 1.4 1stopt界面 文件浏览窗口 代码本
4、 算法设置 结果显示 代码本表格 属性编辑器 概述 14/11/13 8 1.5 1stOpt 应用的优化算法 1) 通用全局优化算法 (Universal Global Optimization - UGO) 2) 下山 単 体法 (Simplex Method - SM) 3) 差分进化法 (Differential Evolution - DE) 4) 最大继承法 (Max Inherit Optimization - MIO) 5) 遗传算法 (Genetic Algorithms - GA) 6) 模拟退火 (Simulated Annealing - SA) 7) 离子群法 (Pa
5、rticle Swarm Optimization - PSO) 8) 自组织群移法 (Self-Organizing Migrating Algorithms - SOMA) 9) 禁忌搜索法 (Tabu Search - TS) 10) 单纯线性规划法 (Simplex Linear Program) 概述 14/11/13 9 核心优化算法 除去简单易用的界面,其计算核心是基于七维高科有限公司科研人员十数年的革命性研究成果 【 通用全局优化算法 】 (Universal Global Optimization - UGO)。 该算法之最大特点是克服了当今世界上在优化计算领域中使用迭代法必
6、须给出合适初始值的难题,即用户勿需给出参数初始值,而由 1stOpt 随机给出,通过其独特的全局优化算法,最终找出最优解。 概述 14/11/13 10 优化算法设定 非线性回归、曲线拟合问题、方程及方程组求解、无约束函数优化: 1) 通用全局优化算法 2) 下山単体法 + 通用全局优化算法 3) 差分进化法 4) 最大继承法 有约束函数优化问题: 1) 下山単体法 + 通用全局优化算法 2) 差分进化法 3) 通用全局优化算法 4) 最大继承法 概述 14/11/13 11 线性规划问题: 1) 单纯线性规划法 2) 下 山 単 体 法 + 通用全局优化算法 3) 差分进化法 优化组合问题:
7、 1) 最大继承法 2) 禁忌搜索法 3) 模拟退火 4) 遗传算法 优化算法设定 概述 14/11/13 12 对 90以上的问题,缺省优化设置均可满足要求。 优化算法设定窗口 概述 14/11/13 13 1.6 1stopt编程的主要关键词 有定义参数以及参数取值范围; 定义变量、定义常量、定义函数; 定义数据文件、定义优化方法; 定义求和、求积、循环符; 画函数图、画参数方程函数图等。 详见 使用手册 P4P5。 1stOpt 支持几十种的数学函数, 详见 P6P8。 概述 14/11/13 14 1.7 1stOpt 快捷组合键 关键字快捷输入窗口组合键:在代码本中按“ Ctrl+K
8、” 窗口弹出后,按顺序输入关键字字母,可快速查找并输入所需关键字 数学函数快捷输入窗口组合键:在代码本中按“ Ctrl+M” 窗口弹出后,按顺序输入数学函数字母,可快速查找并输入所需数学函数 代码表格、代码本快捷输入窗口组合键:在代码本中按“ Ctrl+J” 窗口弹出后,可选择所需代码表格或代码本。 恢复上一次执行的代码:在代码本中按“ Ctrl+Shift+T” 有时或许由于代码输错,或许由于其它不明原因,当输完代码按计算命令时, 1stOpt出错而退出,如果先前没有进行保存,该如何恢复刚才输入的代码呢?重新启动 1stOpt,开启一新代码本,在代码本中按“ Ctrl+Shift+T”即可恢
9、复上一次执行的代码。 概述 14/11/13 15 1.8 数据处理电子表格 1stOpt 附带有类似与 Excel 的电子表格,多表单,支持公式,直接输入输出到 Excel和文本文件( .txt, .csv),树型表单管理,直观并可分类,可方便用于数据前、后处理。 概述 14/11/13 16 1.9 1stopt基本语法 每一句代码以;号作结束符。如 Parameter a, b, c, d; Constant p1 = 1, p2 = 4, p3 = 5; 在同一代码本中可写多个不同问题的代码,由关键词“ NewDivision”来区分。 可同时开启多个代码编辑本。 一代码文件中还可加入
10、富文本如图,表,公式等,也可把不同格式的文件添付进来。 概述 14/11/13 17 1.10 执行计算 因为 1stOpt 的初始值通常是随机产生,一次计算不成功,并非意味下次亦同样不成功,反之亦然。 按快捷键” F9”执行计算,“ F10“中止计算。 概述 14/11/13 18 第 2章 1stopt 应用 14/11/13 19 2.1 求任意形式,任意维数,约束或非约束的函数最优值 应用 约束函数即可以是不等式也可以是等式 。 2.1.1 求下列一维函数最小值 函数 f = x sin(x) + sin(x) 其中, x 3 ,3 1stOpt 代码: Parameter x = -
11、3*pi,3*pi; MinFunction x*sin(x)+sin(x); 结果: f = -5.7976, x = 4.8808 14/11/13 20 下列代码可以画出图来 Parameter x = -3*pi,3*pi,y; plotfunction ; function y=x*sin(x)+sin(x); 应用 14/11/13 21 2.1.2 求下列多维函数最小值 其中, X 30,30, n = 20 1stOpt 代码: Constant n = 20; Parameter x(1:n) = -30,30; MinFunction Sum(i = 1:n-1) (3*(
12、Cos(2*xi) + Sin(2*xi+1) + Sqrt(xi+12 + xi2); 结果: f = -51.7695 )2s i n ()2( c o s (3( 2 12111 iiniii xxxxf例如:函数 应用 1stopt还可求隐函数的最优值、针状函数的全局最优等。 14/11/13 22 2.1.3 线性规划问题 1stOpt 算法中含有专门的线性算法单纯性算法,可高效求解线性规划问题。不同于 Lingo 等优化软件包,在1stOpt 中,各待求参数的缺省设置范围是正负无穷。 线性规划实例 -1 321 32 xxxM a x 目标函数0,31832153321321321
13、321xxxxxxxxxxxxSt应用 14/11/13 23 1stOpt 代码: Parameter x(1:3)0,; MaxFunction 2*x1+3*x2+x3; x1+3*x2+x3 = 15; 2*x1+3*x2-x3 = 18; x1-x2+x3 = 3; = 结果 = 迭代数 : 125 计算用时 (时 :分 :秒 :毫秒 ): 00:00:01:78 计算中止原因 : 达到收敛判定标准 优化算法 : 麦夸特法 (Levenberg-Marquardt) + 通用全局优化法 函数表达式 : 2*x1+3*x2+x3 目标函数值 (最大 ): 19.999999885639
14、9 x1: 4.99999988563987 x2: 3.00000005515308 x3: 0.999999948900893 应用 14/11/13 24 2.1.4 非线性规划问题 非线性混合整数规划问题实例 -1 3212123222211 25.0)s i n (5.1 xxxxxxxxxxM i n 目标函数为整数为实数, 321321,101020202020. xxxxxxSt 1stOpt 代码: Parameters x1-20,20,x2-20,20,x3-10,10,0; MinFunction 1.5*(x1-sin(x1- x2)2+0.5*x22+x32-x1*
15、x2-2*x1+x2*x3; 结果 : 目标函数值 (最小 ): -10.961821657691 x1: 4.99963280998717 x2: 9.73414801760973 x3: -5 应用 14/11/13 25 2.1.5 排列组合优化问题 1stOpt 亦可用与解决 组合优化 问题。自行开发的最大继承法( MIO)在解决该类问题时,比其它诸如遗传算法,模拟退火及禁忌算法等表现更优。 TSP 问题:是非常著名的组合优化问题:有个城市,从某一城市出发,每个城市访问一次,最后回到起始城市,试求 最短距离 的访问路线。 具体实例见 使用手册 P21P24. 应用 14/11/13 2
16、6 2.2 非线性拟合 1stOpt的非线性拟合功能强于目前任何已知软件包,如著名的 SPSS,SAS, Matlab, Origin, Systat, DataFit等。其最大特点是,在绝大多数情况下,不需要使用者提供 (猜测 )任何初始值,仅依靠自身的全局搜索能力,从任意随机值出发,既可求得最优解。 美国国家标准与技术研究院( NIST)提供有一套 27 道非线性拟合测试题,世界上几乎所有著名的数据分析软件包都以能通过该套测试题集为验证标准。 经对比测试, 1stOpt是目前唯一不依赖使用 NIST提供的初始值,而能以任意随机初始值就可求得全部最优解的软件包 (如果使用 NIST提供的初始
17、值,则更可轻易求得最优解 )。 由于在实际应用当中,选择确定合理的初始值组是一件非常困难的事,尤其是在参数量比较多的情况下。从此意义而言, 1stOpt的实用能力达业界领先水平。 应用 14/11/13 27 1stOpt 的曲线拟合均为自定义拟合。 “ Function”、 “ Data/RowData/DataFile”为必须的两个关键字;可选择关键字有 “ Variable”、 ” Parameter”、“ QuickReg”等。 对二维曲线拟合,缺省自变量名为 x,因变量名为 y; 对三维有两种缺省方式,一为自变量名为 x1 和 x2,因变量名为 y,第二种为自变量名为 x 和 y,因
18、变量名为 z; 对多维,缺省自变量名为 x1, x2, x3 ,因变量名为 y; 当数据较长,为了节省代码本空间,可考虑将数据以行的形式给出,即用关键字 “ RowData”取代 “ Data”,同时数据形式亦做相应改动,每行数据以 “ ;”号结束。 应用 14/11/13 28 数据也可存为文件形式,用关键字 “ DataFile”调用,文件格式包括标准文本格式和 Excel文件格式。如 Excel 数据如下图 并存为 “ c:test1.xls”,调用形式如下。 Variable x,y; Function y = b1*(x2+x*b2)/(x2+x*b3+b4); DataFile “
19、C:test1.xlsSheet1B4:C14“; 注意使用“ DataFile”时,关键字“ Variable”不能省略 。 应用 14/11/13 29 共享模式拟合; 缺少变量值的特殊拟合; 批处理拟合; 权重拟合; 带约束拟合; 带积分的拟合; 最小一乘及其它特殊拟合; 隐函数拟合; 公式自动搜索拟合; 设定拟合初始取值范围; 应用 1stopt可完成以下方式的拟合 14/11/13 30 公式自动搜索例 1stOpt 代码 Data; 15 0.489 30 0.427 45 0.373 60 0.327 75 0.285 90 0.250 105 0.218 120 0.191 135 0.167 495 0.005 点击“开始”,可得到具有最优拟合的函数式。如下页所示。 应用