D0I:10.13374/j.issn1001053x.1981.s1.025 北京钢铁学院学报 1984年增刊1 整数优化(网格法) 程序设计及应用 计算机应用室吴镶责 捕 要 目前,在机械优化设计中,离散量或混合量的优化设计程序尚少,而在设计变 量中包含有离散变量时,如齿轮的齿数、模数、钢板厚度等,则应选用整数优化程 序。因此,本文以网格法为基础,根据设计变量变化的性质,分别采用连续量和离 散量进行迭代计算,以获得较理想的最优化解。本文用A LGOL语直编写了整数优 化计算程序,并进行了实例计算。程序简单易懂,使用方便灵活,特别对求解小型 混合量优化设计课题是有参考意义的。 一、整数优化的意义 随着电算技术的广泛应用,在机械设计中采用了数学规划的方法,以选择最佳参数达到 最优方案的目的。研究整数量变化选择最优的问题在实际应用中有着重要意义。因此,本文 就整数规划应用问题编写了网格法计算程序与计算实例。 在机械优化设计过程中,被选定为设计变量的参数=〔X1,X:,,X。)T,其中有 些参数是连续变化的量,如杆件长度、支点位置、温度、压力等,而有些变量是离散变化的 量,如齿轮的齿数、标准模数、钢板厚度等。因此,设计变量即可表示为: 了=(X,X2,…,Xk,Xk+1,…,Xn)TX∈Rn {X,X2,,Xk}∈RCRn {Xk+I,Xk+2,…,X}∈R'CRn 式中R‘一整数空间或广义离散量集 R一实数空间或广义连续量集 对于离散设计变盘优化的方法,一般可选用比较成熟的连续量优化方法,最后将所得到 的连续量优化参数向附近的离散参数点进行圆整靠近,再进行2”次的比较运算,从中选择最 佳散离量参数。这种方法对于设计变量个数少的小型题目是适用的。另一种方法则是整数 规划的方法,即设计变量的变化必须在给定的离散点上变化,迭代过程中的任意点都是有定 义的、可行的。有关这方面的论述请参考专著。而本文在座标轮换法的基础上将给定的离散 点做为优化迭代的可行点,即在座标方向上每走一步都落在离散点上,经过反复迭代计算, 从而得到一组优化的离散量点参数。因此称为网格法。 本文中提到的整数并非只是纯整数,它包括无规律的离散数,同时把连续量看作是有限 多个离散的量。因此,这里所研究的问题即包括离散量也包括连续量,综合为混合量的优化 问题。混合量优化方法的应用是进一步研究机械优化设计的一个突破口,对于解决包合离散 *本文在编写过程中得到了陈立周、吴清一等老师的指导和帮助。 95
整数优化 网格法 程序设计及应用 计算机 应 用 室 吴继庚 摘 要 目前 , 在 机械 优化设 计 中 , 离散量 或混合 量 的 优化设 计程 序 尚少 , 而 在设 计 变 量 中包含有 离散变量 时 , 如 齿轮 的齿数 、 模 数 、 钢板厚度 等 , 则 应 选用 整数 优化程 序 。 因此 , 本文 以 网格法为 墓 础 , 根 据 设计 变量 变化 的性质 , 分 别采 用连续童和 离 散量 进 行 迭代 计算 , 以获得 较理 想 的最 优化解 。 本文用 语 官编 写 了整 数 优 化 计算程 序 , 并进行 了实例计算 。 程 序简单易懂 , 使 用 方便 灵 活 , 特别对 求解 小型 混合 量 优化 设 计课 题 是有参考意义 的 。 少 一 、 盛傲优化 的愈义 随着 电算技术 的广 泛应 用 , 在 机械设 计 中采用 了数学规 划的方法 , 以选择最佳参数达 到 最优方案的 目的 。 研究 整数 变化选择最 优 的 问题 在 实际应 用 中有着 重 要意 义 。 因 此 , 本文 就整数规 划应 用 问题 编 写 了网 格法 计算程序 与计算实例 。 在 机械优 化设 计过程 中 , 被选定 为设 计变里的 参数又 〔 , , … … , 。 〕 , 其 中有 些参数是连 续变 化的 量 , 如杆件 长度 、 支点位置 、 温度 、 压 力等, 而有 些 变 是 离散变 化的 量 , 如 齿轮的齿数 、 标 准模数 、 钢 板厚 度等 。 因此 , 设计变量即可表示为 又 , , … … , , , , … … , 。 〕 , 了 〔 ” , , … … , 〔 ‘ , 十 , … … , 。 〔 ‘ 式中 ‘ — 整数空 间或广义 离散量集 — 实数空 间或广义 连 续量集 对于 离散设 计变量优 化的方法 , 一般可选 用 比较 成熟的连 续 里优 化方 法 , 最后 将所得到 的连 续 量优 化参数向附近 的 离散参数点 进 行 圆 整 靠近 , 再进 行 ” 次 的 比较 运 算 , 从 中选择最 佳散 离 参数 。 这 种方法 对 于设计变 量个数少 的小型 题 目是适 用 的 。 另一种 方 法 则是 整数 规划的方法 , 即 设计变 量 的 变 化必 须 在给定的 离散点 上变化 , 迭 代过程 中的 任意 点都是 有定 义 的 、 可行的 。 有关这方面 的论述 请 参考专著 。 而本 文在座标轮换法 的 基 础 上将给 定的 离散 点做为优化迭 代的可 行点 , 即 在座标方 向上每走一步都 落在 离散点上 , 经过反 复迭 代计算 , 从而得到一组优化的 离散量点 参数 。 因此 称为网格法 。 本文 中提 到 的 整数 并非只 是 纯 整数 , 它 包括无 规律 的 离散数 , 同时 把 连续 看作是有限 多个 离散的 量 。 因此 , 这 里所研究 的 问题 即 包括 离散量也 包括 连续 蛋 , 综合为混 合 的优化 问题 。 混 合 量 优化方法 的应用是 进 一步研究 机械优 化设 计 的一个突破 口 , 对于解决 包含离散 朴 本文在编 写过 程 中得 到 了陈立 周 、 吴 清 一 等老 师的指导和 帮助 。 DOI :10.13374/j .issn1001—053x.1984.s1.025
量优化设计的课题创造了条件。 二、整敏优化程序设计思路 本程序是采用网格法的基本思想,即在几维欧氏空间中依次沿着“直角座标”方向搜 索,其方向矩阵为单位矩阵⑧,在搜索方向确定之后,从某个可行初始点沿着座标方向向前 跨步,其步长是离散量的间距,也就是从一个离散量点跨步到下一个离散量点,比较相邻两 点的函数值,若函数值下降,则继续跨步求下一个离散点的函数值,然后再进行比较·, 当函数值上升或越出可行区时,则停止本次搜索迭代,此点为这一维方向上的极小点,再以 此点作为更换搜索方向的初始迭代点,同理,又求得这个方向上的极小点。重复进行·次迭 代,求得K轮的优化点X“(。若相邻两轮优化点的函数值之差满足给定精度要求时,即, 1F(X#()-F(X#(+1)川≤E 则X(K+)点即为所求的离散量优化点。 对于离散变量X,的取值范围和点值,要以数组的形式输入,对于连续变量X:的取值范 围和点值,要求输入X:的上下边界值和间隔步长值,然后由程序自动将它变为有限多个离 散点值。因此,本程序将送入的离散量X!与连续量X,皆进行离散化处理。为了便于迭代 并记录迭代过程中可行离散点的位置,将已形成的一维数组转变为二维数组。开始计算时, 对输入的初始迭代点或由程序随机产生的初始迭代点首先确定X0)点在二维数组中的编 号,即在维网格空间的位置。然后在给定的座标方向上进行二维变量编号的增减,以达到 极小化的目的。为了加快搜索速度,对于连续量的变化采用了倍增步长法。 按照上述思路绘制程序框图和用A LGOL语言编写源程序,在TQ一16机上进行了数学 题目与实际应用题目的试算,其结果正确、程序易慌、使用方便,对于求解小型整数(实际 可理解为混合量)优化课题是有实用价值的。 三、程序摇图(见下页) 四、整敏规划过程全文 ePe INTEPROG (N,FK,GK,N3,NX,EPS,X,BL,BU,EI,XO,FX, GX,FGH) eVe N,FK,GK,N3,NX,EPSp eINe N,FK,GK,N3,NX; eRe EPS; eAe X,BL,BU,EI,XO,FX,GX; ePe FGH; eBe eINe NP,NP:=N #W2(0,5I10,2/‘,N,FK,GK,N3,NX) #W2(0,F20.10,/“,EPS), eBe eINe I,J,K,ITER,NN,QQ,STEP,EII,ESI,NM; eRe FO,F1,FOO,FOM,Q,M,M35,M36,M37, eAe NI(30)〔1NP), ePe RANDOM; eBe M:=M*5; 96
量 优化设 计的课题 创造了条件 。 二 、 盆橄优化 粗 序设计思路 木程序是 采用 网格法 的基 本思 想 , 即 在几 维欧 氏空 间中 依次沿 着 “ 直角座标” 方 向搜 索 , 其方向矩 阵为单位 矩 阵厚 , 在 搜 索方 向确定之后 , 从某个可行 初始点沿着座标 方向向前 跨 步 , 其步长是离散里的 间距 , 也 就是 从一个 离散量点跨步到下一 个离散量点 , 比较相 邻 两 点的 函数值 , 若 函数值下 降 , 则继续跨步求下一 个离散点 的 函数值 , 然后再进 行 比较 … … , 当函数值 上升 或越 出可 行 区 时 , 则停止 本次搜索迭 代 , 此点为这 一维方 向上的极小点, 再 以 此点作为更 换搜索方 向的 初始迭 代点 , 同理 , 又求得这个方向上的极小点 。 重 复进 行 次迭 代 , 求得 轮的 优化点 又 ‘ “ 》 。 若相 邻 两轮优 化点的 函数值之 差 满足给 定精度要求时 , 即 《 一 价 ‘ ’ 三 则戈, 《 “ ‘ ” 点即为所求的 离散 量优 化点 。 对于 离散 变量 的取值范围 和点值 , 要 以数组 的形 式输入 , 对于连续变 , 的取值 范 围和 点值 , 要求输入 , 的 上下 边界 值 和 间隔步 长值 , 然后 由程序 自动将它变为有 限多个离 散点值 。 因此 , 本程 序将送 入 的 离散量 与连续 量 , 皆进 行 离 散 化处理 。 为了便 于迭 代 并记 录迭 代过 程 中可 行 离散点的位置 , 将 已形 成的一维数组转变为二维数组 。 开始计算时 , 对输 入 的 初始迭 代点或由 程 序随 机产生 的 初始迭 代点 首 先确定 点在二维数组 中的 编 号 , 即在 维 网 格空 间的位 置 。 然后 在 给 定 的座标方 向上进行二 维变量编号 的增减 , 以达 到 极小化的 目的 。 为了加快搜索速度 , 对于连续 量 的变化采 用 了倍 增步 长法 。 按 照 上述 思路 绘制程 序框 图和用 语 言编 写源程序 , 在 一 机上进行了数学 题 目与实际应 用题 目的试 算 , 其结果正 确 、 程 序易崔 、 使 用方便 , 对于求 解小型 整数 实际 可 理解为混 合 量 优 化课题 是有 实用价值 的 。 三 、 粗 序棍日 见下 页 四 、 盆狱规 划过程全 文 巴 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 。 , , , 然 , ‘ , ‘ , , , , , 然 , ‘ , ‘ , , 已 £ 。 , , , , , , , , , , 。 , , , , , , , , , 。 〕 , 一
输入原始数据 开始 第入给定离散量 将光软虽变为出散币 将一维数组变为二领数H 确定初始点在二维中的编号 随机选点并记录标步 11 I中1+1 I≤N FoM-Fsc T 确定步长STEP的正负作 打即优化结果 NN中NN+STEP 计算新点函数值F, 结束 NN NN-STEP X)可行吗? 下华吗? ele M>M37 eTe M+=M-M37 eIeM≥M36eTeM:=M-M36影 ele M>M35 eTe M:=M-M35, Q:=M/M35; eEe, M:=2657863, M35:=2个35多 M36:=2M35, M37:=20M365 ITER:=QQ:=03 #W2 (0,10',X,BL,BU,EI,XO); eFe It=N3+1 eSe 1 eUe NeDe EI〔I):=#ENTIER(BU〔I)-BL(I)/(EI〔I)+1.5), NM:=0: eFe I:=1 eSe 1 eUc N eDe 97
输入 原始数据 开始 输 入 给 定离 散量 将 生续 员 之为离故邢 将 一 雏数 组 变为二 约 名女组 确定初始点在二 维 中的 编 号 了 。 叮于丁吗 随机选 点 手记录标 廿 中 卜 , · ’ 。 幼 毛 确定步 长 的 正 负仇 打 印优 化结 果 计算新点函 数值 结 柬 冈 中 一 ’ ‘ 可 行吗 了 叉 《‘ 一 下华吗 七 。 七 一 , 。 七 一 , 。 七 £ 一 , , , 二 个 , 一 , 浦 , ‘ ‘ , , , , , 。 £ 已 〔 〕 纬 〔 〕 一 〔 〕 〔 〕 , , £ 例 匕
ele EI(I)>NM eTe NM:=EI(I); eBe eAe XX(27000)(1:NP,1:NM), eFe I:=1 eSe 1 eUe N eDe eFe Jt=1 eSe 1 eUe NM eDe XX〔I,J)=0 ESI:=0g eFe It=1 eSe 1 eUe N3 eDe eBa EII:=EI(I); eFe J:=1 eSe 1 eUe EII eDe XX(I,J):=XO(ESI+J); ESI+=ESI+EII; eEer eFe It=N3+1 eSe 1 Ue N eDe eBe EII:=EI(I); eFe J:=1 eSe 1 eUe EIl eDe XX〔I,J):=BL〔)+(BU(I)-BL〔I)#(J-1)/(EII-1), eEey eFe It=1 eSe 1 eUe N eDe eBe EII:=EI(I); eFe J+=1 eSe 1 eUe EII eDe ele¥ABS(X(I)-XX〔I,J)<1o-5 eTe eBe NI(I):=J,eGe L1;Ee; L1* eEey #W2(0,10‘,NI), LQ:FGH (X) eFeK:=1 eSe 1 eUe GK eDe ele GX〔K)<:o-10eTe eBe eFe I:=1 eSe 1 eUe N eDe eBe RANDOM; QQ:=然ENTIER(QEI〔I))+1, NI(1)+=QQ X(I):=XX(I,QQ);Ee; ePAey eGeLQy eEe; EIe QQ+0 eTe #W2(0,‘/,80SQ,F15.7‘,X)3 FO:=FOO:=FX(1); 98
〕 〔 〕 , £ 。 。 , 〕 , 已 £ £ £ £ 〔 , 〕 , £ £ 已 二 , £ ‘ 〔 , 〕 〔 〕 , , , £ £ 。 〕 , £ 二 £ 已 £ , 〕 〔 〕 一 〔 〕 一 £ , 已 已 £ £ 。 〕 , £ £ £ 。 。 蕊 〔 一 〔 , 〕 。 一 。 〔 〕 , 。 , 。 。 , 。 。 , 炸 , ‘ ‘ , , £ 。 〔 〕 。 一 。 £ 乙 , 解 一 〔 〕 , 〕 , 〕 , 〕 , 。 。 , 。 。 , 。 , , 奔 。 然 , ‘ , , ‘ , , 〔 〕 , 一 一
LN+ITER:=ITER+1 FOM:=FO; #W2(0,3/,20X,5 HITER=,I3,20X,5HF(X)=,F20.10,/,ITER,FO), eFe I:=1 eSe 1 eUe N eDe eBe Q=X〔I), W2(0,2HX(,I2,2H)=,F20.10,/‘,I,Q) eEey eFe I:=1 eSe 1 eUe N eDe eBe NN:=NI(I):=NI〔I)+1s X(I)+=XX(I,NN); FGH(X) F1:=FX(1)3 eFe K:=1 eSe 1 eUe GK eDe ele GX(K)EI(I)eTe NN:=NI(I):=EI(I) X(I):=XX(I,NN); FGH(X);F1:=FX(1) eFe K:=1 eSe 1 eUe GK EDe ele GX(K)EPS eTe eGe LN; #W2(0,2/,80SE,2/,5X,5 HITER=,I3,10X,6HF(X)=,F15.7,10X, 6HF(XO)=,F15.7,2/,ITER,FO,FOO) eFe I:=1 eSe 1 eUe N eDe 99
, 蕊 , ‘ , , , , , , , 二 £ 〕 件 , ‘ 〔 , , 〕 , , ‘ , , £ , £ £ £ 〔 〕 〔 〕 〔 〕 , 〕 , 〔 〕 , £ £ 。 。 〕 。 一 。 。 〕 〕 一 〔 〕 , 〕 一 , 。 , 。 。 , 。 一 , , 。 斗 八 〔 〕 》 , 〔 〕 〔 〕 , 。 己 〔 〕 , 。 。 〔 〕 。 。 〔 〕 〕 〕 〔 , 〕 , 二 〔 〕 , 已 已 已 £ 。 〔 〕 。 一 已 。 。 , £ 已 , 〔 〕 〔 〕 一 , 〔 〕 〔 , 〕 , 。 , 。 。 游 一 。 。 。 , 挤 , ‘ , , , , , , , 一 , , ‘ , , , , £ £ , 卜
eBe Q:=X(I) W2(0,‘10X,2HX〔,I2,2H)=,F20.10,/‘,I,Q)s eEey Q:=(FOO-FO)/ABS(FOO) #W2(0,3/); #W2(0,10,FOO,FO,Q,ITER) #W2(0,10,X,FX,GX,NI), #W2(0,2/,160SE), eEe eEe eEe 五、过程中形参的含意 N一设计变量的维数 FK一分目标函数的个数 GK一不等约束函数的个数 N3一输入离散变量的维数 NX一输入离散变量的总个数 EPS一-计算精度判断值 X〔1:N)一设计变量的初始值、过程值及最终值 BL〔1:N)一设计变量的下界数组 BU(1:N)一设计变量的上界数组 EI(1:N)一离散变量点的个数及连续变量的步长值 XO〔1NX)一离散变量全部点值一维数组 FX〔1:FK)一分目标函数数组 GX(1:GK)一不等约束函数数组 FGH(X);eAeX; eBe 数学模型过程 一eEey 六、过程使用说明 1.填写14个实参: 整数网格法的过程名为INTEPROG,其中包含有14个形参,其意义见前面说明。用户 应按规定填写14个实参,调用INTEPROG整数规划过程,经过反复迭代计算即可得到约束 最优化解。 2.编写数学模型程序 将待算课题编写为数学模型,并按规定格式书写为语言程序,填写到数学模型过程说明 εPe FGH(X),中。本过程体内应包括说明部分、计算部分与格式部分等三项内容。 3.输入有关数据与数组: 输入的简单变量包括N,FK,GK,N3,NX,EPS等参数,输入的数组包括X,BL, BU,EI,XO等参数。 100
。 〔 , 游 , ‘ , , , 〕 , , ‘ , , , 一 挤 , 书 , ‘ ‘ , 协 , ‘ ‘ , , , , 件 , ‘ ‘ , , , , , 件 , ‘ , ‘ , £ 已 £ 五 、 过程 中形今的含愈 — 设计变 的维数 — 分 目标 函数的个数 — 不 等约 束函数的个数 — 输入 离散变最 的维数 — 输入 离散变盘的 总个数 一一计算精度判断值 〕— 设计变 的 初始值 、 过程值 及最 终值 〕— 设计变 量的下界数组 〔 〕— 设计变里的 上界数组 〕— 离散变量 点的个数及连续 变量 的步 长值 〔 〕— 离散变量 全 部点值 一维数组 〕— 分 目标函数数组 〔 〕— 不 等约束函数数组 , ‘ 一 , 一 乙 , 过粗使用 说明 填 写 个实参 数学模型过程 、 六 、 整数网格法 的过程 名为 , 其 中 包含有 个形 参 , 其意 义 见前面 说 明 。 用 户 应按 规定填 写 个实参 , 调 用 整数规 划过程 , 经过反 复迭代计算即可 得到约 束 最 优化解 。 编 写 数学模型程序 将待算课题编 写 为数学模型 , 并按规定格式书写 为语 言程 序 , 填 写到数学模型 过程说 明 。 , 中 。 本 过程体内应 包括说 明部分 、 计算部分与格式 部分等三 项 内容 。 输 入有关数据 与数组 输入 的简单变量 包括 , , , , , 等参数 , 输入 的数组 包括 , , , , 等参数
4.连续变量的等分数: 本过程要求连续变量的等分数应大于500,否则此变量将按一般离散量处理,跨步长时 不能加倍,将影响计算速度。 5.EI数组数据填写: 数组EI(1N)中的数据分为两类,即是: EI1:N3)一输入离散量的个数 EI(N3+1:N)一一连续变量的步长值 因此,前N3个数是表示每维离散量的分量个数,剩下的应填写连续量的步长值。 6.全为连续量的计算: 若选定的设计变量皆为连续量,没有离散量时,则按语法规定填写数据。即必须保证: N3宁0,NX1,X0一个任意的数; 因此,本过程适应于离散盘、连续量及混合量的计算。 7.设计变量的维数不宜过大: 设计变量的维数N与每维分量的个数的最大值NM之积即NNM<27000,若破坏了这个 条件,则应降低维数N或减小NM的数值 七、计算实例 1.数学题目: 求F(X)=60-10X:-4X2+X,2+X22-X1X2→min 满足G1(X)=X:≥0 G2(X)=6-X1≥0 G3(X)=X:≥0 G.(X)=8-X:≥0 G6(X)=11-X:-X2≥0 的混合量最优化解又*,F(X) X1∈〔4,4.5,5,5.5,5.6,5.7,5.8,5.9,6.0,6.1,6.2,6.3,6.4, 6.5,7,7.5,8) X2∈〔0,0.001,0.002,…,10) 程序全文如下: eBe eINe N,FK,GK,N3,NX,eRe EPS, W1(0,'N,N,FK,GK,N3,NX,EPS) #W2(0,10,N,FK,GK,N3,NX,EPS) eBe eA3X,BL,BU,EI(30)(1N),XO(1000)〔1NX),FX(10)〔1:FK), GX(100)1GK), ePe FGH(X)1 eAe eBe FX(1):=60-10*X〔1)-4X〔2)+X〔1)0X〔1)+X〔2)X〔2)-X(1)#X〔2), GX1)=X1), GX〔2):=6-X〔1), 101
连续 变量 的等分 数 本过程 要求连 续变量 的等分 数应大 于 , 否则 此变量将按一 般 离散 处理 , 路步长时 不能 加倍 , 将影响计算速 度 。 数组数据 填 写 数组 〕 中的数据分 为两类 , 即是 〕— 输入 离散量的个数 〕— 连 续变量 的步 长值 因此 , 前 个数是 表示每维 离散量 的分 量个数 , 剩下 的应填 写连 续 最的步 长值 。 全 为连 续 量 的计算 若选定 的设计变 皆为连 续 量 , 没 有离散量 时 , 则按语 法规 定填写 数据 。 即必 须 保 证 巾 。 , 巾 , 巾 一 个任意 的数, 因此 , 本过程适 应 于 离散 量 、 连 续 量及混 合 量的计算 。 设 计变量 的维数不 宜过大 设 计变 最 的维 数 与每维分 量 的 个数的最 大值 之 积 即 , 。 , 若 破坏 了这 个 条件 , 则应 降低 维数 或减小 的数值 七 、 计算实例 数学题 目 求 叉 一 一 “ 名 一 今 元 满足 》 〕 一 七 ‘ 一 》 。 一 一 》 的混合 最优 化解 气 勺 任 〔 , , , , , 。 , , , , , , , , , , 〕 〔 〔 , , , … … , 〕 程序全 文如下 已 。 , , , , , 。 , 件 , ‘ ‘ , , , , , , , 谷 , ‘ ‘ , , , , , , 名 。 , , , , 〕 , 〔 , 〔 〕 , 〕 , 。 , 。 〔 〕 一 〔 〕 一 〔 〕 〕 一 〔 〕 〔 〕 一 一 〔 卜 〕 , 〔 〕 〔 〕 , 〕 一 〕
GX(3):=X〔2), GX〔4)=8-X〔2)3 GX5):=11-X〔1)-X〔2)5 eEe ePe INTEPROG (N,FK,GK,N3,NX,EPS,X,BL,BU,EI,XO, FX,GX,FGH) eVe N,FK,GK,N3,NX,EPS; eINe N,FK,GK,N3,NXy eRe EPS; eAe X,BL,BU,EI,XO,FX,GX ePe FGH; eBe }整数规划过程体全文 eEe W1 (0,'N',X,BL,BU,EI,XO) #W2(0,10‘,X,BL,BU,EI,XO), INTEPROG (N,FK,GK,N3,NX,EPS,X,BL,BU,EI,XO,FX,GX, FGH) eEe eEe 第一段数据:2,1,5,1,17,1。-7, 第二段数据:4,4 第三段数据:2,0, 第四段数据:8,10: 第五段数据:17,0.01, 第六段数据:4,4.5,5,5.5,5.6,5.7,5.8,5.9,6.0,6.1,6.2,6.3,6.4, 6.5,7,7.5,85 计算结果: r5.907 X= F(又*)=11.307 L4.96 解析法梢确解为: 6.0000- X= F(X)=11.0000 L5.0000J 2.行星轮系的优化设计: 单排2K一H行星轮系(NGW)型的结构简图及各构件 代号如图所示: a一太阳轮,b一内齿圈,g一行星轮,H一行星架。 根据行星轮系设计的要求建立优化计算数学模型: 选择设计变盘: 102
〔 〕 〔 〕 , 〕 一 , 〔 〕 一 〕 一 〔 〕 。 , 。 , , , , , , , , , , , , , 。 , , , , , , 。 , , , , , 。 , 。 件 , , , , , , , , 已 , 整 数规 戈”过程体全文 件 , ‘ ‘ , , , , , , 件 , ‘ ‘ , , , , , , , , , , , , , , , £ 第一段数据 , , , , , 。 一 , 第二段数据 , , 第三段数据 , 伪 第四 段数据 , , 第五段数据 , 第六 段 数据 , , , , , , , , , , , , , 计算结果 , , , , , , , 〕 一 ︻ 一 井 解析法 精确解为 刃 〕 ‘ , “ · 。 。 。 ” 行星 轮系的优 化设计 单排 一 行星 轮系 型的 结构简图 及 各构 件 代号如图所示 一太阳轮, 一 内齿圈, 一 行星轮, 一 行星 架 。 根据 行星轮系设 计的要求建立优化计算数学模型 选择设计变量
x-[][ 2二 齿轮模数 阳轮齿数 B一齿轮宽度 确定目标函数: F(X)=行星轮系的重量W 满足下列约束条件: ①齿轮齿数应满足传动比的要求 ②齿数选择必须满足装配条件要求 ③齿数选择应满足同轴条件要求 ④保证行星轮之间齿頂不相碰的邻接条件要求 ⑤轮齿应满足接触强度的要求 ⑧轮齿应满足弯曲强度的要求 根据上述几何条件及强度条件,经过数学公式的推导,现将按优化数学模型编写的程序 书写如下: ePe FGH(X);eAeX; eBe eRe U,C,T,AF,AH,ZAS,ZX,BZ,TJ,YF; U:=5.36yC1=3,T=4285 AF:=12.6,AH:=1063,ZAS:=17影 ZXt=X(2),BZ:=2/(U-2),TJ=T1.1/C eIeU≤4 eTe eBe ZX:=ZX/BZ;BZ:=1/BZ;TJ:=TJ*(U-2) AF:=1.43*A F:eEe YF:=4.69-0.63*#LN(ZX), FX(1):=0.19635710-60X(1)0X(1)0X〔2)¥X〔2)0X(3)0(4+(U-2)个2*C), GX(1)+=ZX-ZAS; GX〔2):=X〔3)-10, GX〔3)=X(1).-2, GX〔4):=X〔2)*SIN(3.14159/C)-X2)*(U-2)0(1-SIN(3.14159/C)/2-3, GX〔5):=X〔3)-5X〔1), GX〔6):=170X〔1)-X〔3), GX〔7):=ZX-ZX*X〔1)0X〔1)0X(3)-`AHTJ*(1+BZ), GX(8):=X〔1)#X〔1)ZXX(3)-AFTJ*YF, eEer 第一段数据:3,1,8,2,20,10-7 第二段数据:4,19,52, 第三段数据:2.5,17,30, 第四段数据,8.5,45,70; 第五相数据:5,15,0.01, 第六段数据:3,4,5,6,8,18,19,20,26,27,28,29,30,35,36,37,38, 39,40,44: 103
— 齿轮模 数 — 太 阳轮齿 数 — 齿轮宽度 厂 勺 一 勺 确定 目标函 数 行星 轮系的 重 量 满足下 列 约 束条件 ① 齿 轮齿数应满足 传动 比的 要求 ② 齿数选择必须 满足装配条件要求 ③ 齿数选择应 满足 同轴条件要求 ④ 保证行星 轮之 间齿厦不 相 碰的 邻接条 件要求 ⑤ 轮齿应 满足接触强度的要求 ⑥ 轮齿应 满足弯 曲强度 的要求 根据 上述 几何条件及 强度条件 , 经过数学公 式 的推 导 , 现将按 优化数学模型 编 写 的程 序 书写如下 。 , 。 , 已 。 , , , , , , , , , , , , , , 〕 一 , 一 三 。 , , 一 一 , 一 , 。 。 , 一 炸 〕 。 一 一 〔 卜 〔 卜 〔 〕 〔 卜 〔 〕 一 个 一 , 〔 〕 一 〔 〕 〕 一 , 〔 〕 〔 〕 一 〕 〔 〕 一 炸 一 〔 卜 一 卜 一 件 一 , 〔 〕 〔 〕 一 〕 〔 〕 一 〕 一 〕 , 〕 一 一 〔 〕 。 〔 〕 一 〔 〕 一 ’ 一 一 , 〔 〕 〔 〕 , 〔 卜 一 〕 一 一 一 , £ 。 多 第一段数据 , , , , , 。 一 , 第二段数据 , , , 第三 段数据 , , , 第四 段 数据 , , 第五相数据 , , , 第六 段数据 , , , , , , , , , , , , , , , , 一 一
计算结果: 4.00 X%=19.00 F(X*)=1.9791 46.08 即所得结果为: 行星轮系齿轮模数一m=4.00 行星轮系太阳轮齿数一Z=19.00 行星轮系齿轮宽度一B=46.08 行星轮系的重量为一W=1.9791 利用本方法程序又计算了下述几种不同的方案:①改变设计变量的排列顺序。②设计变 量定义为离散型或连续型。③改变设计变量的初始点。 M Z B W ITER 排列顺序 X X2 X F(X) I 初始点 4.00 19.00 52.00 2.2334 0 离散型 4.00 19.00 46.08 1.9791 5 连续型 3.874 18.699 50.72 1.9793 3 排列顺序 X: X Xs F(X) I 初始点 4.00 19.00 52.00 2.2334 0 离散型 4.00 19.00 46.08 1.9791 5 连续型 3.932 18.320 51.30 1.9794 排列顺序 X: X: X3 F (X) I 初始点 6.00 30.00 60.00 14.4552 0 优化点 4.00 19.00 46.08 1.9791 9 排列顺序 X2 X X3 F(X) I 初始点 30.00 6.00 60.00 14.4552 优化解 19.00 4.00 46.08 1.9791 9 对上述计算结果初步分析如下: 1.设计变量的排列顺序对优化计算结果的影响,应根据数学模型的特点和迭代初始点 的位置来决定,因此,其影响程度是不同的。建议将重要的设计变量放在前面,它的变化范 围可能出现较大的区间。 2。设计变量定义为离散型或连续型对优化计算结果的影响是不大的,因为连续量最优 点附近的网格点上的函数值与最优化函数值相差不大。但是,当离散量的间距较大时,则将 出现较大的误差,而离散型设计变量所得的最优函数值偏大。 3.若取不同的初始点:X《),则所得到的优化解取决于目标函数是单峰函数还是多峰 函数,若是单峰函数则虽取不同的初始点进行迭代计算,但都能得到相近的最优化解。 4.从以上计算结果可以看出:该程序结构简单、计算正确、易懂好用,对解决小型整 数规划的问题是适用的。为了克服网格法存在的缺点,可采取更换初始点的位置、变换设计 104
计算结 果 … 叉价 ’ · ” , 即所 得结果 为 行星 轮系齿轮模数 行星 轮系太阳轮齿数— 行星轮系齿轮宽度 — — 二 行 利 星 用本 轮 方 系 法 的 程 重 序又 为—计算了下述几种 不 同的方案 ①改 变设 计变 的排列顺 序 。 ②设 计变 量定义 为 离散型 或连 续型 。 ③改 变设计变 的 初始点 。 , 一 画礴… ’ , … 辛 一 理钾点 · ” ‘ · ” ” · ” · “ 万一 ……一” 禺 散 型 · ” … ‘ · ” … · ” ‘ · ” ‘ 连 续 型 “ · ‘ · “ ” · ’ · ” “ 翻万 葬………髯… 聊 一 介 一…丽 一… 一 熏 一… 一丽 一 二 万 一 对 上述计算结 盆 果 初步分 华 析如下 …汉 豁 设计变 的排 列顺 序对优化计算结果 的影响 , 应 根据数学模型 的特点和迭 代初始点 的位置来决定 , 因此 , 其 影响程度是不 同 的 。 建议将重要 的 设计变量放在 前面 , 它 的 变化范 围可能 出现较大的 区 间 。 设计变 定义 为 离散型 或连 续型 对优 化计算结果 的影响是 不大 的 , 因为连 续 最优 点 附近 的 网格点 上的 函数值 与最优 化函数值 相差 不大 。 但是 , 当离散 的 间距较大时 , 则将 出现较大的误差 , 而 离散型 设计变 所 得的最 优函数值 偏 大 。 若取不 同的 初始点 , 则所 得到 的 优化解取决于 目标 函数是单峰函数还是多峰 函数 , 若是单峰函数则虽取 不同 的 初始点进行迭 代计算 , 但都能 得到相近 的最 优化解 。 从 以 上计算结果可 以 看 出 该 程序结构简单 、 计算正确 、 易懂好用 , 对解决小型 整 数规 划 的 问题 是适 用 的 。 为了克服 网格法存在的缺点 , 可采取 更换初始点的 位置 、 变 换设 卜