[在C语言编程中数据结构与算法是怎么体现的或者说怎么理解数据结]举个例子,你写个程序,要存全校学生的信息。 首先学生数量可能是变动的,你不可能写成固定数组。 你可以思考下怎么存。 这时候就可以建立一个链表,在每次输入一个新生时把他挂入...+阅读
跟着蚂蚁的踪迹,你找到了什么?通过上面的原理叙述和实际操作,我们不难发现蚂蚁之所以具有智能行为,完全归功于它的简单行为规则,而这些规则综合起来具有下面两个方面的特点:
1、多样性
2、正反馈多样性保证了蚂蚁在觅食的时候不至走进死胡同而无限循环,正反馈机制则保证了相对优良的信息能够被保存下来。我们可以把多样性看成是一种创造能力,而正反馈是一种学习强化能力。正反馈的力量也可以比喻成权威的意见,而多样性是打破权威体现的创造性,正是这两点小心翼翼的巧妙结合才使得智能行为涌现出来了。引申来讲,大自然的进化,社会的进步、人类的创新实际上都离不开这两样东西,多样性保证了系统的创新能力,正反馈保证了优良特性能够得到强化,两者要恰到好处的结合。如果多样性过剩,也就是系统过于活跃,这相当于蚂蚁会过多的随机运动,它就会陷入混沌状态;而相反,多样性不够,正反馈机制过强,那么系统就好比一潭死水。这在蚁群中来讲就表现为,蚂蚁的行为过于僵硬,当环境变化了,蚂蚁群仍然不能适当的调整。既然复杂性、智能行为是根据底层规则涌现的,既然底层规则具有多样性和正反馈特点,那么也许你会问这些规则是哪里来的?多样性和正反馈又是哪里来的?我本人的意见:规则来源于大自然的进化。而大自然的进化根据刚才讲的也体现为多样性和正反馈的巧妙结合。而这样的巧妙结合又是为什么呢?为什么在你眼前呈现的世界是如此栩栩如生呢?答案在于环境造就了这一切,之所以你看到栩栩如生的世界,是因为那些不能够适应环境的多样性与正反馈的结合都已经死掉了,被环境淘汰了! 蚁群算法的由来:蚂蚁是地球上最常见、数量最多的昆虫种类之一,常常成群结队地出现在人类的日常生活环境中。这些昆虫的群体生物智能特征,引起了一些学者的注意。意大利学者M.Dorigo,V.Maniezzo等人在观察蚂蚁的觅食习性时发现,蚂蚁总能找到巢穴与食物源之间的最短路径。经研究发现,蚂蚁的这种群体协作功能是通过一种遗留在其来往路径上的叫做信息素(Pheromone)的挥发性化学物质来进行通信和协调的。化学通信是蚂蚁采取的基本信息交流方式之一,在蚂蚁的生活习性中起着重要的作用。通过对蚂蚁觅食行为的研究,他们发现,整个蚁群就是通过这种信息素进行相互协作,形成正反馈,从而使多个路径上的蚂蚁都逐渐聚集到最短的那条路径上。这样,M.Dorigo等人于1991年首先提出了蚁群算法。其主要特点就是:通过正反馈、分布式协作来寻找最优路径。这是一种基于种群寻优的启发式搜索算法。它充分利用了生物蚁群能通过个体间简单的信息传递,搜索从蚁巢至食物间最短路径的集体寻优特征,以及该过程与旅行商问题求解之间的相似性。得到了具有NP难度的旅行商问题的最优解答。同时,该算法还被用于求解Job-Shop调度问题、二次指派问题以及多维背包问题等,显示了其适用于组合优化类问题求解的优越特征。多年来世界各地研究工作者对蚁群算法进行了精心研究和应用开发,该算法现已被大量应用于数据分析、机器人协作问题求解、电力、通信、水利、采矿、化工、建筑、交通等领域。蚁群算法之所以能引起相关领域研究者的注意,是因为这种求解模式能将问题求解的快速性、全局优化特征以及有限时间内答案的合理性结合起来。其中,寻优的快速性是通过正反馈式的信息传递和积累来保证的。而算法的早熟性收敛又可以通过其分布式计算特征加以避免,同时,具有贪婪启发式搜索特征的蚁群系统又能在搜索过程的早期找到可以接受的问题解答。这种优越的问题分布式求解模式经过相关领域研究者的关注和努力,已经在最初的算法模型基础上得到了很大的改进和拓展。经过一定时间,从食物源返回的蚂蚁到达D点同样也碰到障碍物,也需要进行选择。此时A, B两侧的信息素浓度相同,它们仍然一半向左,一半向右。但是当A侧的蚂蚁已经完全绕过障碍物到达C点时,B侧的蚂蚁由于需走的路径更长,还不能到达C点,图3表示蚁群在障碍物前经过一段时间后的情形。此时对于从蚁巢出发来到C点的蚂蚁来说,由于A侧的信息素浓度高,B侧的信息素较低,就倾向于选择A侧的路径。这样的结果是A侧的蚂蚁越来越多,最终所有蚂蚁都选择这条较短的路径,图4 表示蚁群最终选择的路径上述过程,很显然是由蚂蚁所留下的信息素的“正反馈”过程而导致的。蚂蚁个体就是通过这种信息的交流来达到搜索食物的目的。蚁群算法的基本思想也是从这个过程转化而来的。蚁群算法的特点:1)蚁群算法是一种自组织的算法。在系统论中,自组织和它组织是组织的两个基本分类,其区别在于组织力或组织指令是来自于系统的内部还是来自于系统的外部,来自于系统内部的是自组织,来自于系统外部的是他组织。如果系统在获得空间的、时间的或者功能结构的过程中,没有外界的特定干预,我们便说系统是自组织的。在抽象意义上讲,自组织就是在没有外界作用下使得系统熵减小的过程(即是系统从无序到有序的变化过程)。蚁群算法充分体现了这个过程,以蚂蚁群体优化为例子说明。当算法开始...
以下为关联文档:
数据结构与算法分析 c语言描述怎么样Data Structures and Algorithm Analysis in C 原书曾被评为20世纪顶尖的30部计算机著作之一,作者Mark Allen Weiss在数据结构和算法分析方面卓有建树,他的数据结构和算法分析...
急!高手请进!c语言中数据结构与算法是用来干嘛的算法中的代码一般都是伪代码,,告诉你的是一种思想, 复制过来肯定不能直接使用,,你可以稍微的改改 ,编译一下,便可执行,得到你想要的结果,不是很难。 伪代码中一般不怎么声明,拿来直接...
C数据结构算法这是什么关系1、C 计算机编程语言。(计算机可以识别,并且执行的程序就是靠这些高级计算机语言实现) 2、数据结构指的是数据之间的相互关系,即数据的组织形式。 1.数据结构一般包括以下三方面...
C语言数据结构与算法分析C语言描述Position不是一个类型,起码C语言中,我写那么多年代码没见过这个类型 。你该把整段代码贴上来。我猜你看的那段代码是伪代码,Position是自定义类型。若Position是类名,那么Positi...
蚁群算法求解最短路的C代码你好,希望对你有所帮助using System;using System.Collections.Generic;using System.Text;namespace AntSystem{ public class AA { /**/////// 对信息量的重视程度 ///priv...
蚁群算法的内容蚁群算法又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。蚁群算...
VB或C的蚁群算法源码//建议使用vc2005以上的编译器,加油!!~!#include #include #include #include #include using namespace std; const int iAntCount=34;//蚂蚁数量 const int iCityCount=51;//城...
求人工智能蚁群算法的核心代码/*ant.c*/#define SPACE 0x20#define ESC 0x1b#define ANT_CHAR_EMPTY '+'#define ANT_CHAR_FOOD 153#define HOME_CHAR 'H'#define FOOD_CHAR 'F'#define FOOD_CHAR2 'f'#d...
蚁群算法是什么蚁群算法简介 2006-11-2 12:17:00 这两天上课....老师总是提到蚁群算法....听起来似乎很有意思......找到一篇简介.....放在这里有兴趣的朋友...参考一下........ 程序开始...