蚁群算法简单应用

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语言,蚁群算法代码(求函数最值)相关推荐

  1. 【C语言】编写C代码求100的阶乘进行高精度计算

    [C语言]编写C代码求100的阶乘进行高精度计算 要编写C语言代码求100的阶乘进行高精度计算,需要使用数组来存储每一位数字,并进行进位处理.因为100的阶乘有158位,超过了long long类型的 ...

  2. python分段函数输入x的值求y的值_C语言编程题 有一分段函数如下,要求用scanf函数输入整数x的值,求y值并在屏幕上输出。有分段函数如下,编程实现输入整...

    C语言编程题 有一分段函数如下,要求用scanf函数输入整数x的值,求y值并在屏幕上输出. 有分段函数如下,编程实现输入整 www.zhiqu.org 时间: 2020-11-22 #include ...

  3. 函数指针定积分C语言,急!!!利用函数指针变量编写一个求定积分的通用函数,...

    急!!!利用函数指针变量编写一个求定积分的通用函数, 答案:4  信息版本:手机版 解决时间 2021-05-05 09:17 已解决 2021-05-05 02:15 用它分别求5个函数的定积分:每 ...

  4. c语言程序函数的结构,C语言课件:第11讲函数与程序结构

    <C语言课件:第11讲函数与程序结构>由会员分享,可在线阅读,更多相关<C语言课件:第11讲函数与程序结构(21页珍藏版)>请在人人文库网上搜索. 1.第11讲 函数与程序结构 ...

  5. c语言的结构体能存放函数吗,在C语言结构体中添加成员函数

    我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...

  6. 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...

    问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...

  7. C语言中get_put函数详解,C语言第五课之getchar函数和putchar函数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 getchar函数也就是键盘输入函数,这个函数和scanf函数不一样!getchar函数没有scanf函数灵活.下面就给大家介绍下getchar函数的介绍 ...

  8. 蓝桥杯求arccos值c语言,[蓝桥杯][算法提高VIP]求arccos值 (C语言代码)

    解题思路: cos(a)=b; arccos(b)=a; 那么有arccos(x)=result,cos(result)=x理论上成立 只要测出cos(result)无限接近于x(已知),那么resu ...

  9. a星算法实现8数码问题c语言,A星算法求八数码问题实验报告.doc

    A星算法求八数码问题实验报告.doc 人工智能实验报告实验名称八数码问题姓名xx学号2012210 xx xx计算机学院 2014年1月14日1 实验目的 掌握A*的思想,启发式搜索,来求解在代价最小 ...

最新文章

  1. Java中判断两字符是否相等?
  2. WinForm界面开发之 启动界面
  3. mysql 变量null_如何检查变量是否为NULL,然后使用MySQL存储过程进行设置?
  4. C#多线程编程介绍——使用thread、threadpool、timer
  5. qtreewidgetitem 文字内存太长换行_table文字溢出显示省略号问题
  6. kaggle—HousePrice房价预测项目实战
  7. 12306 辟谣用户信息被卖;比特大陆两 CEO 均卸任?苹果又被起诉 | 极客头条
  8. 用 CrossOver 安装的 Windows 软件在哪
  9. mysql各存储引擎介绍表格_十六、MySQL基础系列笔记之数据表存储引擎的介绍
  10. 在Ubuntu中搭建嵌入式Linux开发环境
  11. 定投复利公式 php,基金定投收益计算公式和复利计算公式
  12. oracle的五种元素,五种元素
  13. github提交时报错:remote: Support for password authentication was removed on August 13, 2021问题解决方案
  14. (转)计算机组成与结构:原码、反码、补码、移码、二进制乘除法运算
  15. Python常用字符编码
  16. python正则爬取微信阅读总榜单写入csv
  17. git rebase和git merge使用方法详解
  18. VB程序破解常用函数
  19. 离子液体N-丙基-吡啶二氰胺盐[C3py][DCA]|N-丙基-吡啶二氰胺[C3py][DCA]|齐岳
  20. 《基本穿搭:适用一生的穿衣法则》总结

热门文章

  1. 爬取天气网城市气温变化
  2. 票据系统对子票区间的一个应用
  3. 搭建JIRA企业工单系统
  4. iconfont 转换为图标字体
  5. http、TCP、IP的形象比喻
  6. 【计算机网络】IP地址和子网掩码的关系
  7. 计算机删除用户记录查看,如何看到并删除电脑的操作记录
  8. Excel VBA编写excel数据汇总宏命令
  9. 深度强化学习服务器搭建(完整版)
  10. 通过graph-tool学习BGL