大家好,我是初学者,目前需要使用基因算法完成论文,在打程式时候有遇到以下问题
,请求,感谢。
问题如下:
1 0 0 1
0 1 1 0
1 1 1 1 A阵列
0 0 0 0
1 0 0 0
0 1 0 0
0 0 1 1 A1阵列
0 0 0 0
0 0 0 1
0 0 1 0
1 1 0 0 A2阵列
0 0 0 0
A = A1+A2
主要是 A阵列中的值加起来会是A1与A2中的所有值加起来
阵列的关系限制如下
任一行或列中,加起来的值, A1 = A2 = A/2,也就是说A1与A2的边际值会等于A/2的边
际值。
例如说 第一列中,A总值为2,A1与A2分别为1 。在A矩阵中,如果个数为1,那分解成A1
或A2时,相对同行同格的个数只能为0或1,如果原本是0,那则只能为0。
A阵列已知,想要转成A1与A2 但是有点卡关
我主要想要从A阵列中 随机分解出A1与A2
范例中A1与A2是我自己算出来的
而A1与A2 的值介于0或1之间,位置随机,只要合乎限制式
如图:
http://ppt.cc/wySZ
如上图,上面是A矩阵,我要分解成A1与A2矩阵,那我先找出A1矩阵,A2则由A减A1产生。
在A矩阵中可以看到第一列加总是14,那分解出来的A1第一列加总则要7,第一行A矩阵加
总为2,分解出来A1第一行则要1,以此类推。
在矩阵的任一行任一列的单独个数,在A矩阵里,如果个数值为1,那分解成A1的个数可以
为0或1(随机);如果A矩阵中的个数为0,那A1的相对那格子的个数只能为0。举例:如
cells(1,1)的个数为1,那分解出来在cells(10,1)的个数可以为0或1 ;cells(1,2)为0,
那分解出来在cells(10,2)只能为0。