求助如何得到这个优先级算法如何计算

4被浏览148分享邀请回答var cars = ['奔驰', '本田', '皇冠'];
function checkCar() {
for (var i = 0; i & 3; i++) {
a = cars[i];
for (var j = 0; j & 3; j++) {
if (i !== j) {
b = cars[j];
for (var k = 0; k & 3; k++) {
if (k !== i && k !== j) {
c = cars[k];
var resultNum = 0;
if (a === '奔驰') {
resultNum = resultNum + 1;
if (b !== '奔驰') {
resultNum = resultNum + 1;
if (c !== '皇冠') {
resultNum = resultNum + 1;
if (resultNum === 1) {
return [a, b, c];
console.log(checkCar());
0添加评论分享收藏感谢收起写回答查看: 13577|回复: 28|关注: 0
求助:Matlab遗传算法的ranking函数
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
关注者: 1
ObjV=[1 2 3 4 5 10 9 8 7 6]T
使用线性排序和选择压差为2估算适应度FitnV=ranking(ObjV)
FitnV=2.0000
请问FitnV里面的这些数是怎么得到的?选择压差是什么意思?
<h1 style="color:# 麦片财富积分
我也在寻找答案呀,好心人帮忙解答一下啦
<h1 style="color:# 麦片财富积分
刚才找资料,搞明白了。
【1 2 3 4 5 10 9 8 7 6】
FitnV=2.0000
你仔细看,就会发现,最小的1对应的是2,最大的10对应的是0,其余的位于(1,10)之间的数的适应度值都在(0,2)之间,且是递减的。
如果以chrom为x轴的点,FitV为y轴的点,可以连成一条斜率为负值的直线。
<h1 style="color:# 麦片财富积分
上面的回答不是很对,楼主可以参考《matlab遗传算法工具箱及应用》第76页
<h1 style="color:# 麦片财富积分
真的很给力啊 嘿嘿
<h1 style="color:# 麦片财富积分
关注者: 3
在这个书里76页有个计算公式,根据那个公式,我们让Sp=0(线性排序),然后代入,就可以求的对应的那些数了,而且,在计算之前,是要对ObjV进行一个预先的排序的,即将 8 7 6 进行一个排序,为,然后在计算他的适应度FitnV,举个例子,5的位置为第五个,所以nind为10,pos为5,代入公式得到2-0+2*(0-1)*(pos-1)/(nind-1)=2-2*4/9=1.1111,写在第五个位置,再举10为例,他在排序之后位于第十个,所以代入上面的公式2-0+2*(0-1)*(pos-1)/(nind-1)=2-2=0,也就是适应度为0,这时,不是把0写在第十个fitnV上,而是写在他原来的位置第六位上,所以就出现了FitnV(6)=0了
<h1 style="color:# 麦片财富积分
式中的sp应该就是压差,可选的范围是[1,2],影响的是适应度值的范围。
例如,当压差sp选择为2时,适应度值的范围是[0,2];
当压差sp选择为1.5时,适应度值的范围被压缩了,为[0.5,1.5];
当压差sp选择为1时,适应度值被压缩为单值,所有个体的适应度值都为1。
应该是这个意思吧,如果有错,烦请大家回复我一下啊。
<h1 style="color:# 麦片财富积分
kinglight.0 发表于
选择压差有何用呢?不知道 请教中
不好意思,我刚刚的回复是错误的,请忽略我!
<h1 style="color:# 麦片财富积分
kinglight.0 发表于
选择压差有何用呢?不知道 请教中
压差从结果上来看只是按比例改变了适应度值的覆盖范围,例如是[0,2]或者[0,10]。
<h1 style="color:# 麦片财富积分
大好河山 发表于
在这个书里76页有个计算公式,根据那个公式,我们让Sp=0(线性排序),然后代入,就可以求的对应的那些数了, ...
您好,我想请教一下,76页适应度值(线性排序)公式中的sp的意义是什么?
站长推荐 /1
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区阅读:2639回复:5
[求助]在Postgis中计算两个点之间的距离怎么得到以米为单位表示的结果?
发布于: 15:16
&P&Postgis中有一个ST_Distance()的功能,可以很方便的计算两个几何体之间的距离,但是发现一个问题,可能是因为坐标系没有设置好的原因,计算出来的结果都是以度表示的,当然您可以说用ST_Distance_sphere()来得到以米为单位表示的结果,但这个只能计算两个点之间的距离,没法计算任何两个几何体,比如一条线和点之间的距离。&/P&
&P&有用过的朋友请不吝赐教!&/P&
<span class="lou J_floor_copy" title="复制此楼地址"
data-hash="read_楼#
发布于: 15:44
&P&你计算得到的结果是由你的空间数据库中存储的数据的格式决定的,你存储的时候,存储的如果是经纬度或者其他坐标系统下的其他度形式的数据,那么返回的就是度单位的。在默认情况下,postgis中设置的坐标系统索引是2或者128,你需要确定你的数据属于哪个坐标系统。换句话说,ST_DISTANCE函数针对的是数字,单位和你在坐标系统下设置的单位是一样的。 &/P&
只有想不到,没有做不到!
<span class="lou J_floor_copy" title="复制此楼地址"
data-hash="read_楼#
发布于: 15:15
&P&楼上说的设置坐标系我还不太清楚如何实现。我的例子按西安坐标系做的:&/P&
&P&--4610:西安地理坐标系的SRID&/P&
&P&--创建几个宾馆POI&br&create table t_poi_hotel(name varchar(20)) WITH (OIDS=TRUE);;&br&select addGeometryColumn(&#039;public&#039;,&#039;t_poi_hotel&#039;,&#039;geom&#039;,4610,&#039;POINT&#039;,2);&br&insert into t_poi_hotel values(&#039;黄龙饭店&#039;,PointFromText(&#039;POINT(120.19)&#039;,4610));&br&insert into t_poi_hotel values(&#039;香格里拉大酒店&#039;,PointFromText(&#039;POINT(120.25)&#039;,4610));&br&insert into t_poi_hotel values(&#039;望湖宾馆&#039;,PointFromText(&#039;POINT(120.03)&#039;,4610));&br&insert into t_poi_hotel values(&#039;如家快捷酒店&#039;,PointFromText(&#039;POINT(120.84)&#039;,4610));&br&insert into t_poi_hotel values(&#039;华侨饭店&#039;,PointFromText(&#039;POINT(120.51)&#039;,4610));&/P&
[此贴子已经被作者于 15:20:41编辑过]
<span class="lou J_floor_copy" title="复制此楼地址"
data-hash="read_楼#
发布于: 15:27
在存储数据时,肯定要存储原始经纬度数据,因此使用了GEOGCS的4610,然后在计算距离时,我把它转换到投影坐标系,但是和它自己内置的函数计算出来的结果有一定误差:
<span class="lou J_floor_copy" title="复制此楼地址"
data-hash="read_楼#
发布于: 15:39
&P&在存储数据时,肯定要存储原始经纬度数据,因此使用了GEOGCS的4610,然后在计算距离时,我把它转换到投影坐标系,但是和它自己内置的函数计算出来的结果有一定误差:&/P&
&P&select name,st_distance(st_transform(geom,2335),st_transform(PointFromText(&#039;POINT(120.11 30.2)&#039;,)) as d1 ,st_distance_sphere(geom,PointFromText(&#039;POINT(120.11 30.2)&#039;,4610)) as d2 , &br&st_distance_sphere(geom,PointFromText(&#039;POINT(120.11 30.2)&#039;,4610))-st_distance(st_transform(geom,2335),st_transform(PointFromText(&#039;POINT(120.11 30.2)&#039;,)) as d3 from t_poi_&/P&
&P&name & & & & & & & & & & & & & & d1 & & & & & & & & & & & & &d2 & & & & & & & & & & & & & & & & & d3&br&------------------------------------------------------------------------------------------------&/P&
&P&&黄龙饭店&; & & & & & & 3592; & 5277; & &&FONT color=#f&/FONT&&br&&香格里拉大酒店&; & 0095; & 5693; & &&FONT color=#f&/FONT&&br&&望湖宾馆&; & & & & & & 8579; & 9034; & &&FONT color=#ff&/FONT&&br&&如家快捷酒店&; & & &4348; & 9293; & &&FONT color=#ff&/FONT&&br&&华侨饭店&; & & & & & & 4011; & 1024; & & &FONT color=#f&/FONT&&br&&/P&
[此贴子已经被作者于 15:41:54编辑过]
<span class="lou J_floor_copy" title="复制此楼地址"
data-hash="read_楼#
发布于: 22:34
&P&兄弟&/P&
&P&上次正好有事没有回应你,深感抱歉;&/P&
&P&我研究了下你的问题&/P&
&P&发现我以前的方式并不一定适合所有情况,需要不同的算法。在postgis中,你说的差值是由于采用了不同的投影系统造成的。坐标系统有两种:地理坐标系,投影坐标系,不同的投影坐标系下通过postgis本身的函数计算出来的距离因采用不同的算法而有所差别,这个是很难避免的,只能尽量减少。所以在使用数据之前,最好同时在统一的参照下入库,然后再是使用。这样可以避免差值问题。&/P&
只有想不到,没有做不到!
您需要登录后才可以回帖,&或者&扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
求助高手:补码计算问题?假设int型整数在计算机中的长度为2个字节,那么32767+10(结果溢出了)用补码的形式是怎么计算的?结果为-32759,是怎么得出来的?我自己的计算思路是:
11 1111 + 00 1010= 00 1001 这样结果为-9,与真是结果-32759不符,为什么阿?再看一个例子:32767+1:
11 1111+ 00 0001= 00 0000 这样求的的结果为多少?怎么得出来的?最左边一位(是第16位吗?)为符号位,是否也进行计算(2的15次方?)?真是结果为-32768.为什么是-32768?又:-7的补码为:11 1001,按照取反加1的求法可得其原码:00 0111,如果按照这个算法求-32768的原码则为00 0000,这不是0的原码吗?这怎么解释?加入2个数相加之后,最左边一位要进位(进到17位),这时改怎么处理,是直接舍去吗?还是怎么处理?如-32768+(-10)怎么计算?(其值已溢出,改怎么计算?)我自己搞明白了.由负数的补码求原码:补码减1再取反(符号位也要取反),得到负数的绝对值的原码.00 1001 减1得00 1000 取反 11 0111即为32759的原码
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
关注此题~关注答案!我们老师讲过原码的补码的补码还是原码,楼主学习不错~
为您推荐:
其他类似问题
扫描下载二维码2002年4月 C/C++大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 清风算法如何恢复 的文章

 

随机推荐