发明名称 基于禁忌搜索平衡性能约束的圆形装填问题的布局方法
摘要 本发明公布了一种基于禁忌搜索平衡性能约束的圆形装填问题的布局方法,属于航天器布局方案设计研究领域。本发明方法包括,首先采用拟物策略和罚函数法将带平衡性能约束的圆形装填问题转化为无约束的优化问题;然后从任一随机初始布局出发,应用基于自适应步长的梯度法进行极小化优化计算;为了使计算能有效地逃离局部极小点的陷阱且避免迂回搜索,采用了禁忌搜索的策略。在禁忌搜索的过程中,对传统的邻域解、禁忌对象以及当前解接受原则进行了有效的改进。本发明的优点在于布局具有很高的面积利用率,较快的速度,同时能更好地实现平衡性能约束,并可推广应用于其他布局优化问题的求解。
申请公布号 CN101984444B 申请公布日期 2013.01.02
申请号 CN201010568105.9 申请日期 2010.12.01
申请人 南京信息工程大学 发明人 刘景发;李刚;刘朝霞
分类号 G06F17/50(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 许方
主权项 1.一种航天器布局领域中基于禁忌搜索平衡性能约束的圆形装填问题的布局方法,其特征在于包含以下步骤:(1)将所有n个圆形待布物C<sub>i</sub>和圆形容器C<sub>0</sub>都想象为光滑的弹性实体,按照拟物策略和罚函数法,将带平衡性能约束的圆形装填转化为下面的无约束优化:<maths num="0001"><![CDATA[<math><mrow><mi>min</mi><mi>imizeU</mi><mrow><mo>(</mo><mi>X</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mi>n</mi></munderover><msubsup><mi>d</mi><mi>ij</mi><mn>2</mn></msubsup><mo>+</mo><mi>l</mi><mo>[</mo><msup><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>m</mi><mi>i</mi></msub><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>m</mi><mi>i</mi></msub><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>]</mo></mrow></math>]]></maths>这里<maths num="0002"><![CDATA[<math><mrow><msub><mi>d</mi><mi>ij</mi></msub><mo>=</mo><msub><mi>d</mi><mi>ji</mi></msub><mo>=</mo><mi>max</mi><mrow><mo>(</mo><mn>0</mn><mo>,</mo><msub><mi>r</mi><mi>i</mi></msub><mo>+</mo><msub><mi>r</mi><mi>j</mi></msub><mo>-</mo><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>x</mi><mi>j</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>y</mi><mi>j</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>)</mo></mrow></mrow></math>]]></maths>是圆形待布物C<sub>i</sub>和C<sub>j</sub>之间的嵌入深度,<img file="FDA00002037110500013.GIF" wi="651" he="68" />是圆形待布物C<sub>i</sub>与圆形容器C<sub>0</sub>之间的嵌入深度;r<sub>i</sub>和m<sub>i</sub>分别表示圆形待布物C<sub>i</sub>的半径和质量,r<sub>0</sub>为圆形容器C<sub>0</sub>的半径;(x<sub>i</sub>,y<sub>i</sub>)为圆形待布物C<sub>i</sub>的圆心即质心坐标;X=(x<sub>1</sub>,y<sub>1</sub>,x<sub>2</sub>,y<sub>2</sub>,…,x<sub>n</sub>,y<sub>n</sub>)表示布局的一个方案,也就是一个格局;l为惩罚项系数,是一个小的正数;i,j=1,2,3,…,n,i≠j;(2)随机给出初始布局;(3)基于当前圆形容器C<sub>0</sub>,使用禁忌搜索算法对当前初始布局进行布局的全局优化;(4)采用二分法对圆形容器的半径r<sub>0</sub>进行设置,对于新半径的圆形容器,重新执行禁忌搜索算法进行布局的全局优化,此过程重复执行直到满足二分法的结束条件;(5)输出最优圆形容器的半径r<sub>0</sub>和最优布局的图形;所述禁忌搜索算法如下:(3.1)邻域格局的产生:(3.1.1)挑出当前格局X中势能半径比E<sub>i</sub>/r<sub>i</sub>最大的圆形待布物C<sub>i</sub>,其中<img file="FDA00002037110500014.GIF" wi="208" he="101" />表示第i个圆形待布物C<sub>i</sub>所受到的其他n-1个圆形待布物和圆形容器C<sub>0</sub>施加于它的挤压弹性势能之和;(3.1.2)将圆形待布物C<sub>i</sub>在圆形容器内随机“试做”10个动作得到当前格局X的基于圆形待布物C<sub>i</sub>的候选邻域N(X,C<sub>i</sub>),再从候选邻域N(X,C<sub>i</sub>)中挑选一个最佳候选邻域格局X<sup>1</sup>;其中动作为:对于当前格局X=(x<sub>1</sub>,y<sub>1</sub>,…,x<sub>i</sub>,y<sub>i</sub>,...,x<sub>n</sub>,y<sub>n</sub>),称将势能半径比E<sub>i</sub>/r<sub>i</sub>最大的圆形待布物C<sub>i</sub>放在圆形容器内的空位点即圆形容器的空白区域内的一点上的手续为一个动作;“试做”是指C<sub>i</sub>只是暂时放置,一旦计算出C<sub>i</sub>放在该位置的挤压弹性势能<img file="FDA00002037110500015.GIF" wi="208" he="101" />后就将C<sub>i</sub>从该位置移走;邻域格局为:对于当前格局X=(x<sub>1</sub>,y<sub>1</sub>,…,x<sub>i</sub>,y<sub>i</sub>,...,x<sub>n</sub>,y<sub>n</sub>),称X′=(x<sub>1</sub>,y<sub>1</sub>,…,x′<sub>i</sub>,y′<sub>i</sub>,...,x<sub>n</sub>,y<sub>n</sub>)是X的一个邻域格局,这里(x′<sub>i</sub>,y′<sub>i</sub>)是第i个圆形待布物C<sub>i</sub>做一个动作后得到的新的圆心坐标;候选邻域定义为:对于当前格局X=(x<sub>1</sub>,y<sub>1</sub>,…,x<sub>i</sub>,y<sub>i</sub>,...,x<sub>n</sub>,y<sub>n</sub>),若C<sub>i</sub>是势能半径比最大的圆形待布物,称将C<sub>i</sub>在圆形容器内“试做”10个随机动作得到的10个邻域格局为X的基于C<sub>i</sub>的候选邻域,记为N(X,C<sub>i</sub>);(3.1.3)对于最佳候选邻域格局X<sup>1</sup>,调用基于自适应步长的梯度法GM(X<sup>1</sup>)进行细粒度的布局调整,得到格局X<sup>2</sup>;其中自适应步长是指在梯度法迭代中,如果新产生格局的能量值小于或等于前一格局的能量值,则梯度法按步长h继续迭代;如果新产生的格局的能量值大于前一格局的能量值,则令步长h=h×0.8;(3.1.4)重复步骤(3.1.2)至(3.1.4)直到格局X<sup>2</sup>被接受或循环次数达到5次;其中步骤(3.1.4)中所述格局X<sup>2</sup>被接受的判断原则为:i)若前一格局X中被挑出需要做动作的圆形待布物C<sub>i</sub>是禁忌对象,且将其做动作并执行梯度法后得到的格局X<sup>2</sup>的能量U(X<sup>2</sup>)小于当前最优格局的能量U<sub>opt</sub>时,则修改禁忌表中各对象的任期和当前最优格局,同时采用藐视准则,即无视C<sub>i</sub>的禁忌属性,将C<sub>i</sub>强行解禁,并接受X<sup>2</sup>为当前格局;ii)如果C<sub>i</sub>是禁忌对象,且将其做动作并执行梯度法后得到的格局X<sup>2</sup>的能量U(X<sup>2</sup>)不小于U<sub>opt</sub>,则不接受X<sup>2</sup>为当前格局,此时,恢复X为当前格局;iii)如果C<sub>i</sub>不是禁忌对象,但将C<sub>i</sub>做动作并执行梯度法后得到的格局X<sup>2</sup>的能量U(X<sup>2</sup>)小于前一格局X的能量U(X),则仍然接受X<sup>2</sup>为当前格局,同时修改禁忌表中各对象的任期,释放任期为0的对象;若此时该格局X<sup>2</sup>的能量U(X<sup>2</sup>)小于当前最优格局的能量U<sub>opt</sub>,则进一步将X<sup>2</sup>更新为当前最优格局;iv)如果C<sub>i</sub>不是禁忌对象,且将C<sub>i</sub>做动作并执行梯度法后得到的格局X<sup>2</sup>的能量U(X<sup>2</sup>)不小于前一格局X的能量U(X),则不接受X<sup>2</sup>为当前格局,此时,恢复X为当前格局;(3.2)如果步骤(3.1)中循环次数达到5次,则将圆形待布物C<sub>i</sub>设置为禁忌对象并加入禁忌表中,令C<sub>i</sub>的势能半径比为0;(3.3)重复步骤(3.1)-(3.3)直到下列条件之一成立时,禁忌搜索算法就结束:(a)算法找到问题minimize U(X)的全局最优解;(b)迭代步数t>10<sup>5</sup>。
地址 210044 江苏省南京市宁六路219号