做网站虚拟主机配置,一个域名一个ip做多个网站,seo是什么时候开始的,网站制作及维护合同文章目录 【获取资源请见文章第5节#xff1a;资源获取】1. 光学显微镜算法#xff08;OMA#xff09;1.1 物镜放大倍数1.2 目镜放大倍数 2. 改进后的IOMA算法2.1 透镜成像折射方向学习 3. 部分代码展示4. 仿真结果展示5. 资源获取说明 【获取资源请见文章第5节#xff1a;… 文章目录 【获取资源请见文章第5节资源获取】1. 光学显微镜算法OMA1.1 物镜放大倍数1.2 目镜放大倍数 2. 改进后的IOMA算法2.1 透镜成像折射方向学习 3. 部分代码展示4. 仿真结果展示5. 资源获取说明 【获取资源请见文章第5节资源获取】 1. 光学显微镜算法OMA
光学显微镜算法Optical Microscope AlgorithmOMA是受显微镜放大倍数启发的一种新的元启发式算法可用于解决工程优化问题。
新颖的 OMA 具有鲁棒性、易于实现且使用较少控制参数的特点可用于解决各种数值优化问题。
OMA 是一种基于物理的算法它模拟观察者放大物体的过程从观察者的眼睛开始然后通过显微镜镜头。OMA用于获得最佳目标对象的四步过程如下图所示。
1.1 物镜放大倍数
该算法中目标物体的放大倍数遵循复合显微镜使用的放大原理并使用公式(1)进行建模。 M t o t a l M O ∗ M E (1) M_{total}M_{O}*M_{E}\tag1 MtotalMO∗ME(1) 其中 M t o t a l M_{total} Mtotal代表显微镜的总视觉放大倍数 M O M_{O} MO是物镜的放大倍数 M E M_{E} ME并且是目镜的放大倍数。物镜的放大倍率方程一般用用公式(2)表示 M O L f 0 (2) M_{O}\frac{L}{f_{0}}\tag2 MOf0L(2) 其中 L L L是显微镜的镜筒长度 f 0 f_{0} f0是物镜的焦距。要计算这两个值需要从最佳目标对象的位置进行参考 M b e s t M_{best} Mbest用物镜放大。 修改后的目标对象 M i , n e w M_{i,new} Mi,new的数学表达式为 M i , n e w M i m r ∗ 1.40 ∗ M b e s t (3) M_{i,new}M_{i}m^{r}*1.40*M_{best}\tag3 Mi,newMimr∗1.40∗Mbest(3) 修改后的目标对象 M i , n e w M_{i,new} Mi,new然后与当前物体进行比较选择两者中较好的一个作为最佳放大倍数。
1.2 目镜放大倍数
显微镜的第二个透镜是目镜它是继物镜之后用来放大物体的。目镜的放大倍率方程一般用公式(4)表示 M O D f e (4) M_{O}\frac{D}{f_{e}}\tag4 MOfeD(4) 其中 D D D是最短视觉距离 f e f_{e} fe并且是目镜的焦距。目镜阶段是高级放大倍率的更具体的阶段。因此为了确定两者的长度需要从用目镜放大的局部搜索空间的距离作为参考。 为了模拟目镜的放大效果根据所选目标物体之间的距离确定放大空间 i i i和群体中的另一个目标对象 j j j。目标对象 i i i被随机选择来计算局部搜索空间。
这种修改后的放大倍数被认为是对本地搜索空间的有效利用。公式(5)和(6)分别用于模拟目标物体的放大和修改模式。 s p a c e { M j − M i , i f f ( M i ) f ( M j ) M i − M j , i f f ( M i ) f ( M j ) (5) space\left\{\begin{matrix}M_{j}-M_{i},\quad if \quad f(M_{i})f(M_{j}) \\M_{i}-M_{j},\quad if \quad f(M_{i})f(M_{j}) \end{matrix}\right.\tag5 space{Mj−Mi,iff(Mi)f(Mj)Mi−Mj,iff(Mi)f(Mj)(5) M i , n e w M i m r ∗ 0.55 ∗ s p a c e (6) M_{i,new}M_{i}m^{r}*0.55*space\tag6 Mi,newMimr∗0.55∗space(6)
2. 改进后的IOMA算法
2.1 透镜成像折射方向学习
透镜成像折射反向学习策略的思想来自于凸透镜成像的原理。通过基于当前坐标生成一个反向位置来扩展搜索范围如图1所示。 图1 透镜成像折射反向学习原理图 在二维坐标中x轴的搜索范围为(a, b) y轴表示一个凸透镜。假设物体A在x轴上的投影为x高度为h通过透镜成像另一侧的图像为A* A在x轴上的投影为x高度为h*。通过以上分析我们可以得到如下公式 ( a b ) / 2 − x x ∗ − ( a b ) / 2 h h ∗ (7) \frac{(ab)/2-x}{x^{*}-(ab)/2 }\frac{h}{h^{*}} \tag7 x∗−(ab)/2(ab)/2−xh∗h(7) 对公式(7)进行转换即可得到反向解x*的表达式为 x ∗ a b 2 a b 2 k − x k (8) x^{*} \frac{ab}{2}\frac{ab}{2k}-\frac{x}{k} \tag8 x∗2ab2kab−kx(8) 其中 k h / h ∗ kh/h^{*} kh/h∗ a a a和 b b b可以视为某维度的上下限。本文中的 k k k是一个与迭代次数相关的动态自适应值。
3. 部分代码展示
close all
clear
clcSearchAgents_no30; % Number of search agentsFunction_nameF4; % Name of the test function that can be from F1 to F23 (Table 1,2,3 in the paper)Max_iteration500; % Maximum numbef of iterations% Load details of the selected benchmark function
[lb,ub,dim,fobj]Get_Functions_details(Function_name);[OMA_Best_score,OMA_Best_pos,OMA_cg_curve]OMA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
[IOMA_Best_score,IOMA_Best_pos,IOMA_cg_curve]IOMA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);figure(Position,[500 500 660 290])
% Draw search space
subplot(1,2,1);
func_plot(Function_name);
title(Parameter space)
xlabel(x_1);
ylabel(x_2);
zlabel([Function_name,( x_1 , x_2 )])% Draw objective space
subplot(1,2,2);
semilogy(OMA_cg_curve,Color,k,Linewidth,1.5)
hold on
semilogy(IOMA_cg_curve,Color,r,Linewidth,1.5)
title(寻优过程)
xlabel(迭代次数);
ylabel(适应度值曲线);axis tight
grid on
box on
legend(OMA,IOMA)display([The best solution obtained by OMA is : , num2str(OMA_Best_pos)]);
display([The best optimal value of the objective funciton found by OMA is : , num2str(OMA_Best_score)]);
display([The best solution obtained by IOMA is : , num2str(IOMA_Best_pos)]);
display([The best optimal value of the objective funciton found by IOMA is : , num2str(IOMA_Best_score)]);4. 仿真结果展示 5. 资源获取说明
可以获取完整代码资源。