蚁群算法求函数最值c语言,蚁群算法代码(求函数最值)
蚁群算法简单应用
function [F]=F(x1,x2) %目标函数
F=-(x1.^2+2*x2.^2-0.3*cos(3*pi*x1)-0.4*cos(4*pi*x2)+0.7);
End
function [maxx,maxy,maxvalue]=antcolony
% 蚁群算法求函数最大值的程序
ant=200; % 蚂蚁数量
times=50; % 蚂蚁移动次数
rou=0.8; % 信息素挥发系数
p0=0.2; % 转移概率常数
lower_1=-1; % 设置搜索范围
upper_1=1; %
lower_2=-1; %
upper_2=1; %
for i=1 : ant
X(i,1)=(lower_1+(upper_1-lower_1)*rand);
%随机设置蚂蚁的初值位置
X(i,2)=(lower_2+(upper_2-lower_2)*rand);
tau(i)=F(X(i,1),X(i,2)); %第i只蚂蚁的信息量
end %随机初始每只蚂蚁的位置
step=0.05; %网格划分单位
f='-(x.^2+2*y.^2-0.3*cos(3*pi*x)-0.4*cos(4*pi*y)+0.7)';
[x,y]=meshgrid(lower_1:step:upper_1,lower_2:step:upper_2);
z=eval(f); %eval函数,将字符串内的内容执行再赋给对象
figure(1);
mesh(x,y,z); %网格图
hold on;
plot3(X(:,1),X(:,2),tau,'k*') %蚂蚁初始位置
hold on;
text(0.1,0.8,-0.1,'蚂蚁的初始分部位置')
xlabel('x');ylabel('y');zlabel('f(x,y)');
for t=1:times % 第t次移动
lamda=1/t; %步长系数,随移动次数增大而减少
[tau_best(t),bestindex]=max(tau); %第t次移动的最优值及其位置
for i=1:ant %第i只蚂蚁
p(t,i)=(tau(bestindex)-tau(i))/tau(bestindex); %最优值与第i只蚂蚁的值的差比
% 计算状态转移概率
end
for i=1:ant
if p(t,i)
temp1=X(i,1)+(2*rand-1)*lamda; %移动距离
蚁群算法求函数最值c语言,蚁群算法代码(求函数最值)相关推荐
- 【C语言】编写C代码求100的阶乘进行高精度计算
[C语言]编写C代码求100的阶乘进行高精度计算 要编写C语言代码求100的阶乘进行高精度计算,需要使用数组来存储每一位数字,并进行进位处理.因为100的阶乘有158位,超过了long long类型的 ...
- python分段函数输入x的值求y的值_C语言编程题 有一分段函数如下,要求用scanf函数输入整数x的值,求y值并在屏幕上输出。有分段函数如下,编程实现输入整...
C语言编程题 有一分段函数如下,要求用scanf函数输入整数x的值,求y值并在屏幕上输出. 有分段函数如下,编程实现输入整 www.zhiqu.org 时间: 2020-11-22 #include ...
- 函数指针定积分C语言,急!!!利用函数指针变量编写一个求定积分的通用函数,...
急!!!利用函数指针变量编写一个求定积分的通用函数, 答案:4 信息版本:手机版 解决时间 2021-05-05 09:17 已解决 2021-05-05 02:15 用它分别求5个函数的定积分:每 ...
- c语言程序函数的结构,C语言课件:第11讲函数与程序结构
<C语言课件:第11讲函数与程序结构>由会员分享,可在线阅读,更多相关<C语言课件:第11讲函数与程序结构(21页珍藏版)>请在人人文库网上搜索. 1.第11讲 函数与程序结构 ...
- c语言的结构体能存放函数吗,在C语言结构体中添加成员函数
我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...
- 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...
问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...
- C语言中get_put函数详解,C语言第五课之getchar函数和putchar函数
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 getchar函数也就是键盘输入函数,这个函数和scanf函数不一样!getchar函数没有scanf函数灵活.下面就给大家介绍下getchar函数的介绍 ...
- 蓝桥杯求arccos值c语言,[蓝桥杯][算法提高VIP]求arccos值 (C语言代码)
解题思路: cos(a)=b; arccos(b)=a; 那么有arccos(x)=result,cos(result)=x理论上成立 只要测出cos(result)无限接近于x(已知),那么resu ...
- a星算法实现8数码问题c语言,A星算法求八数码问题实验报告.doc
A星算法求八数码问题实验报告.doc 人工智能实验报告实验名称八数码问题姓名xx学号2012210 xx xx计算机学院 2014年1月14日1 实验目的 掌握A*的思想,启发式搜索,来求解在代价最小 ...
最新文章
- Java中判断两字符是否相等?
- WinForm界面开发之 启动界面
- mysql 变量null_如何检查变量是否为NULL,然后使用MySQL存储过程进行设置?
- C#多线程编程介绍——使用thread、threadpool、timer
- qtreewidgetitem 文字内存太长换行_table文字溢出显示省略号问题
- kaggle—HousePrice房价预测项目实战
- 12306 辟谣用户信息被卖;比特大陆两 CEO 均卸任?苹果又被起诉 | 极客头条
- 用 CrossOver 安装的 Windows 软件在哪
- mysql各存储引擎介绍表格_十六、MySQL基础系列笔记之数据表存储引擎的介绍
- 在Ubuntu中搭建嵌入式Linux开发环境
- 定投复利公式 php,基金定投收益计算公式和复利计算公式
- oracle的五种元素,五种元素
- github提交时报错:remote: Support for password authentication was removed on August 13, 2021问题解决方案
- (转)计算机组成与结构:原码、反码、补码、移码、二进制乘除法运算
- Python常用字符编码
- python正则爬取微信阅读总榜单写入csv
- git rebase和git merge使用方法详解
- VB程序破解常用函数
- 离子液体N-丙基-吡啶二氰胺盐[C3py][DCA]|N-丙基-吡啶二氰胺[C3py][DCA]|齐岳
- 《基本穿搭:适用一生的穿衣法则》总结