>凡事网 导航

离散题:给一任意群,求其所有子群的算法。

2024-07-04m.fan-pin.com
粒子群算法和离散粒子群算法有什么不同?主要差别体现在哪里~

一般就是在跟新粒子位置后,对粒子进行离散点处理。
比如:
你的粒子的离散点是0到9的整数。
那么对每个粒子更新位置后,比如是在(0,1)范围内的随机数。那么就(0,0.1)范围令其值为0;(0.1,0.2)范围令其值为1;............(0.9.1)范围令其值为9。
当然初始位置值也需要这样处理。

定义  粒子群优化算法(Particle Swarm optimization,PSO)又翻译为粒子群算法、微粒群算法、或微粒群优化算法。是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法。通常认为它是群集智能 (Swarm intelligence, SI) 的一种。它可以被纳入多主体优化系统 (Multiagent Optimization System, MAOS). 粒子群优化算法是由Eberhart博士和kennedy博士发明。PSO模拟鸟群的捕食行为  PSO模拟鸟群的捕食行为。一群鸟在随机搜索食物,在这个区域里只有一块食物。所有的鸟都不知道食物在那里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的就是搜寻目前离食物最近的鸟的周围区域。从模型中得到的启示  PSO从这种模型中得到启示并用于解决优化问题。PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值(fitnessvalue),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。PSO初始化  PSO初始化为一群随机粒子(随机解),然后通过叠代找到最优解,在每一次叠代中,粒子通过跟踪两个“极值”来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值pBest,另一个极值是整个种群目前找到的最优解,这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分最优粒子的邻居,那么在所有邻居中的极值就是局部极值。编辑本段算法介绍  在找到这两个最优值时, 粒子根据如下的公式来更新自己的速度和新的位置  v[] = v[] + c1 * rand() * (pbest[] - present[]) + c2 * rand() * (gbest[] - present[]) (a)  present[] = persent[] + v[] (b)  v[] 是粒子的速度, persent[] 是当前粒子的位置. pbest[] and gbest[] 如前定义 rand () 是介于(0, 1)之间的随机数. c1, c2 是学习因子. 通常 c1 = c2 = 2.  程序的伪代码如下  For each particle  ____Initialize particle  END  Do  ____For each particle  ________Calculate fitness value  ________If the fitness value is better than the best fitness value (pBest) in history  ____________set current value as the new pBest  ____End  ____Choose the particle with the best fitness value of all the particles as the gBest  ____For each particle  ________Calculate particle velocity according equation (a)  ________Update particle position according equation (b)  ____End  While maximum iterations or minimum error criteria is not attained  在每一维粒子的速度都会被限制在一个最大速度Vmax,如果某一维更新后的速度超过用户设定的Vmax,那么这一维的速度就被限定为Vmax。编辑本段遗传算法和PSO的比较共同点  ①种群随机初始化。  ②对种群内的每一个个体计算适应值(fitness value)。适应值与最优解的距离直接有关。  ③种群根据适应值进行复制 。  ④如果终止条件满足的话,就停止,否则转步骤② 。  从以上步骤,我们可以看到PSO和遗传算法有很多共同之处。两者都随机初始化种群,而且都使用适应值来评价系统,而且都根据适应值来进行一定的随机搜索。两个系统都不是保证一定找到最优解。但是,PSO没有遗传操作如交叉(crossover)和变异(mutation),而是根据自己的速度来决定搜索。粒子还有一个重要的特点,就是有记忆。不同点  与遗传算法比较,PSO的信息共享机制是很不同的。在遗传算法中,染色体(chromosomes)互相共享信息,所以整个种群的移动是比较均匀的向最优区域移动。在PSO中, 只有gBest (orlBest) 给出信息给其他的粒子, 这是单向的信息流动。整个搜索更新过程是跟随当前最优解的过程。与遗传算法比较, 在大多数的情况下,所有的粒子可能更快的收敛于最优解。编辑本段人工神经网络和PSO定义  人工神经网络(ANN)是模拟大脑分析过程的简单数学模型,反向转播算法是最流行的神经网络训练算法。进来也有很多研究开始利用演化计算(evolutionary computation)技术来研究人工神经网络的各个方面。研究方面  演化计算可以用来研究神经网络的三个方面:网络连接权重,网络结构(网络拓扑结构,传递函数),网络学习算法。  不过大多数这方面的工作都集中在网络连接权重,和网络拓扑结构上。在GA中,网络权重和/或拓扑结构一般编码为染色体(Chromosome),适应函数(fitness function)的选择一般根据研究目的确定。例如在分类问题中,错误分类的比率可以用来作为适应值优缺点  演化计算的优势在于可以处理一些传统方法不能处理的例子例如不可导的节点传递函数或者没有梯度信息存在。  但是缺点在于:1、在某些问题上性能并不是特别好。2. 网络权重的编码而且遗传算子的选择有时比较麻烦。  最近已经有一些利用PSO来代替反向传播算法来训练神经网络的论文。研究表明PSO 是一种很有潜力的神经网络算法。PSO速度比较快而且可以得到比较好的结果。而且还没有遗传算法碰到的问题。举例  这里用一个简单的例子说明PSO训练神经网络的过程。这个例子使用分类问题的基准函数 (Benchmark function)IRIS数据集。(Iris 是一种鸢尾属植物) 在数据记录中,每组数据包含Iris花的四种属性:萼片长度,萼片宽度,花瓣长度,和花瓣宽度,三种不同的花各有50组数据. 这样总共有150组数据或模式。  我们用3层的神经网络来做分类。现在有四个输入和三个输出。所以神经网络的输入层有4个节点,输出层有3个节点我们也可以动态调节隐含层节点的数目,不过这里我们假定隐含层有6个节点。我们也可以训练神经网络中其他的参数。不过这里我们只是来确定网络权重。粒子就表示神经网络的一组权重,应该是4*6+6*3=42个参数。权重的范围设定为[-100,100] (这只是一个例子,在实际情况中可能需要试验调整).在完成编码以后,我们需要确定适应函数。对于分类问题,我们把所有的数据送入神经网络,网络的权重有粒子的参数决定。然后记录所有的错误分类的数目作为那个粒子的适应值。现在我们就利用PSO来训练神经网络来获得尽可能低的错误分类数目。PSO本身并没有很多的参数需要调整。所以在实验中只需要调整隐含层的节点数目和权重的范围以取得较好的分类效果。

讨论某个特定的子群, 对于群中的每一个元素, 只有两种状态: 在/不在子群中
所以, 通过变化每个元素的这个在与不在的bool标记, 就可以生成所有子群了
比如, 对于3个元素的群的子群, 全集就是全部元素都位于子群中即111, 只有前两个的时候就是110, 只有最后一个的子群是001
类似的, 对于任何多个元素的子群, 就通过改变每个元素的状态就可以生成所有子群了

下面的算法, 把整形变量的每一位看做元素的存在标记, 即第3位为1表示第三个元素在这个子群中:

#include <stdio.h>

int main()
{
unsigned iLen = 0;
puts("集合元素的个数?(1~31)");
scanf("%u", &iLen);
if (iLen > 31 || iLen <= 0)
{
puts("超出范围");
return -1;
}

FILE *pFile = fopen("out.txt", "w");
if (pFile == NULL)
{
puts("打开文件失败");
return -2;
}

unsigned iMax = 1 << iLen;
for (unsigned i = 1; i < iMax; ++i)
{
for (int j = 0; j < iLen; ++j)
{
if ((i >> j) & 1)
{
fprintf(pFile, "%u ", j + 1);
}
}
fputc('\n', pFile);
}

fclose(pFile);
}

上面的算法, 当有3个元素的时候, 就处理头三位, 由3位构成的整数范围是1~7(空集就没处理了), 所以对于1~7的每个数, 依次取出他们的每一位判断是否为1, 就可以知道在这个数对应的集合中, 这一位对应的元素是否在集合中了

i等于5时, 5等于二进制的101, 第1、3个元素在集合中, 第2个不在, 这就是一个子集

上面的代码只能够处理1~31位的元素, 主要是考虑到元素太多时, 不可能全部罗列了(n!增长太快); 如果非要罗列, 类似的, 实现大数的加法什么的就可以了, 大数从1到n, 每个数作为一个集合每一位为1表示这个元素在集合中

问筑国

排列组合

求《庄子·田子方》原文和译文。
田子方走了出来,魏文侯若有所失地整天不说话,召来在跟前侍立的近臣对他们说:“起初我总认为圣智的言论和仁义的品行算是最为高尚的了,如今我听说了田子方老师的情况,我真是身形怠堕而不知道该做什么,嘴巴像被钳住一样而不能说些什么。我过去所学到的不过都是些泥塑偶像似的毫无真实价值的...

十翼全文及翻译
复卦是教人反求诸己,回复自然本性。恒卦是教人始终不二,坚定德行。损卦是教人摒除私欲,以修德远害。益卦是教人损上益下,增兴福利。困可以减少怨尤,井可以辨其义,巽可以申命行权。 第八章 《周易》这部书不可疏远,它所体现的道,经常变迁,变动不拘于一爻一卦,如乾卦初九是潜龙,九二是见龙。还有阴阳六爻,...

庄子的《山木》原文和译文
辞其交游,去其 弟子,逃于大泽,衣裘褐,食杼栗,入兽不群,入鸟不乱行。鸟兽 不恶,而况人乎! 孔子问子桑囗(上“雨”下“乎”音hu4)曰:“吾再逐于鲁, 伐树于宋,削迹于卫,穷于商周,围于陈蔡之间。吾犯此数患,亲交 益疏,徒友益散,何与?”子桑hu4曰:“子独不闻假人之亡与? 林回弃千金之璧,负...

斯圣人之意文言文
1. 子曰:书不尽言,言不尽意 这句意思是: 孔子说:“书是不能完全表达作者是要讲的话的,言语是不能表达我们心意的,那么圣人的心意,难道就不能被了解?”孔子说:“圣人树立象数的规范,以竭尽未能完全表达的心意,使人因象以悟其心意,设置六十四卦以竭尽宇宙万事万物的情态,复系之以文辞,以尽其所未能表达的言...

含有“成”字的成语
亦作“余霞散绮”。 遇难成祥 碰到灾难也能化为吉祥。 玉成其美 玉成:“玉汝于成”的缩语,帮助你有所成,后用为成全之意。成全某件好事。亦作“...谓众多的人或动物聚结成一群群、一伙伙。 成群结党 见“成群集党”。 成群集党 谓一部分人结成小团体。 成群打伙 见“成群结伙”。 成千论万 ...

金庸的励志名言(70条)
1、三妹,你瞧这些白云聚了又散,散了又聚,人生离别,亦复如斯。你又何必烦恼?出自《神雕侠侣》程英 2、阿朱就是阿朱。四海列国,千秋万代,就只有一个阿朱...16、大丈夫行事,爱怎样便怎样,行云流水,任意所至,甚么武林规矩,门派教条,全都是放他妈的狗臭屁!出自《笑傲江湖》风清扬 17、小兄弟,人世间情这个东西,不...

急求傅雷家书200左右好段摘抄!!!急急
2、老是蒙着自己,不正视现实,不正视自己的病根,而拖泥带水,不晴不雨地糊下去,只有给你精神上更大的害处。该拿出勇气来,彻底清算一下。3、人一辈子都在高潮——低潮中浮沉,惟有庸碌的人,生活才如死水一般;或者要有极高的修养,才能廓然无果,真正的解脱。只要高潮不过分使你紧张,低潮不...

(急)任意选取{孙子兵法}的任一章节或经典语句展开论述,同时联系古代...
是故散地则无战,轻地则无止,争地则无攻,交地则无绝,衢地则合交,重地则掠,屺地则行,围地则谋,死地则战。古之善用兵者,能使敌人前后不相及,众寡不相恃,贵贱不相救,上下不相收,卒离而不集,兵合而不齐。合于利而动,不合于利而止。敢问敌众而整将来,待之若何?曰:先夺其...

求助。。文言文翻译
第一题:原文 尧让天下于许由,曰:“日月出矣,而爝火不息,其于光也,不亦难乎!时雨降矣,而犹浸灌,其于泽也,不亦劳乎!夫子立而天下治,而我犹尸之,吾自视缺然,请致天下。”夫子立而天下治,而我犹尸之,吾自视缺然。译:先生存在,天下被治理,然而我仍然掌控它,我自己认为我不足。

现代汉语基础知识☞第4讲成语应用
特点1:意分表里 语义双层性是汉语惯用语的典型特征,表层的字面意义仅是其外在形式,由此引申、烘托出...成语的结构形式固定,简洁而意义精辟,历史悠久,多数成语都有出处,可活用,但不能任意创造。要运用好...花好月圆、孜孜不倦、叶公好龙、顾全大局、刻舟求剑;极少数为非二二组合,例如:一衣带水、瑕不掩...

相关链接2

返回顶部
凡事房车自主流
凡事网