关于4nec2的Evolve优化算法介绍及分布式运算的可能性探讨
首先,这是我去年没有网络时候的草稿,没想到买了个无线网卡,小平板天线,够用以后接近一年没有上anywlan。BUT,找了找,没看到类似内容的帖子,于是发出来……
有没有人找出办法让4nec2,HFSS之类支持多线程乃至分布式?
求解,谢谢。
貌似大半年不来,双菱都落伍了?现在流行铜板?啧啧,家里铜丝要浪费掉了。
在SK对4nec2的介绍中,是这样描述优化的:
“Evolve 好像是比较智能的方法来算,据说是用到了生物学的进化,比较神奇的。”
作为一个恩……算的上程序员的学生,我首先对这个算法给出一个介绍:
首先,我们给出一个普通天线(普通叠双菱),它就好像一个生物;
某A同学正在做一个叠双菱;
然后,我们对它进行随机的改动,就像基因变异一样:
一不小心,有一个“菱”被压扁了,另一个“菱”不对称了;
随后,加上原来的双菱,我们得到若干样本,于是,得到一群生物;然后,天敌来了:
A同学开始用叠双菱做1km点对点,发现有的好,有的差;于是乎,好的留下,喷上漆留用;不好的,拆掉做八木的原料。
然后,那个“压扁”的叠双菱出乎意料的好用,下次做得时候,A就试验着改变角度,最终成了“终极叠双菱”的雏形。同时,也许一次意外,又产生另一种情况的天线……
拿到生物学中,就是这个叠双菱很优秀,获得繁殖权,最终一步步进化,留下优良后代。
把这一套过程搬到电脑上,用仿真实现,就是4nec2中的第二个优化。
而这个算法,最耗时的部分就是对群体中不同的“生物”进行磨练,优胜劣汰;反映到电脑中,就是要对大量的模型进行仿真。这个步骤,不是很适合论坛里WPA破解的那种“分布式”算法吗?
一台服务器不断进行“繁殖”、“变异”操作,下发到若干客户端,返回各种性能参数,进行评价。仿真操作往往需要几秒、几分钟的时间,而服务器的评价、比对却是可以以每秒上万个甚至数十万的速度进行。这种效率,如果搭配上分布式计算,用来优化PCB、八木之类复杂天线,必将有很大应用价值!
一方面,有了更多优秀图纸,就能DIY出更多、更好、更简单的天线;
另一方面,如果可以将PCB之类天线优化到相当好的一个地步(见论坛中帖子,现在的PCB天线虚标相当严重),对天线厂商、用户都是双赢的,解决了“山寨”天线质量低下,
注:
1、本人为高中生,仅接触数年程序设计,并以竞赛为主,只能在理论上做一些推断,实际经验不多;
2、我主要在Linux下工作,只有最基础的nec2,不支持表达式(也就是说不支持A+B*2这种东西,只能用数字),也不知道4nec2是免费软件(闭源)还是自由软件(公开源代码),希望能有人相助,将4nec2移植到linux下,并建立分布式计算功能;或者编写插件,能够实现“变异”并调用4nec2仿真,间接实现功能。 是的,我的cisco1121路由器的内置天线是PCB的标称2.2dB,但比国内标称5dB的天线效果强非常多。 本帖最后由 lijiqing 于 2011-2-23 22:41 编辑
感谢分享。通俗的解释。
对你的求解,没有研究过,无法发布意见。
对了,你的铜丝保存好,浪费不了。下一步咱们就来玩玩铜丝天线如何? linux下nec系列软件在源里面看到有几个,没用过。
HFSS不知道是否能分布计算?多线程应该是行的。CST是可以多线程多机计算的。 其实4Nec2主要部分是设计和3维图等,模拟部分是一个开源软件NEC2,后者不支持变量,就是不支持abc,只支持123,也不能用式子。优化过程大致就是用上面算法处理各个变量的值,把算式翻译成数字,然后调用NEC2计算结果,再处理。在优化中,很多计算是相互独立的,不到一千行代码,修改一下,然后我再处理一下NEC2软件就可以实现。另,Nec2本身是开源的
页:
[1]