
Cambiar un bit de 0 a 1 usando números digitales
Publicado por Marco Antonio (61 intervenciones) el 30/09/2017 14:45:24
Estoy haciendo un pequeño programa de algoritmos geneticos y estoy usando solo valores digitales el cruce ya lo tengo listo de esta forma
ahora al hijo necesito cambiarle un bit de 0 a 1 o de 1 a 0 de forma aleatoria ahora mis palabras son de 42 bits pongo un ejemplo de hijo
Gracias de Antemano
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
x10 =
1.0e+12 *
0.849712753174819
4.219400418437600
0.849712753174819
0.849712753174819
4.219400418437600
4.155203938680990
0.849712753174819
4.155203938680990
0.849712753174819
0.849712753174819
Max_Number_of_Bits =
42
Ptc = ceil(Max_Number_of_Bits*0.8)
Ma1 = 2^Ptc-1
Ma2 = 2^Max_Number_of_Bits-1-Ma1
for n=1:10
x11=randsample(x10,2)
k1 = bitand(Ma1,round(x11(1,1)))
p1 = bitand(Ma2,round(x11(2,1)))
Hijo(n,1) = bitor(k1,p1)
end
ahora al hijo necesito cambiarle un bit de 0 a 1 o de 1 a 0 de forma aleatoria ahora mis palabras son de 42 bits pongo un ejemplo de hijo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Hijo =
1.0e+12 *
0.849712753175000
0.849712753175000
4.216967113239000
0.856669055353000
0.849712753175000
0.852146058374000
4.150680941702000
4.216967113239000
0.849712753175000
4.148247636503000
Gracias de Antemano
Valora esta pregunta


0