-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdecode_myga.m
49 lines (42 loc) · 1.61 KB
/
decode_myga.m
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function deltaG = decode_myga(x)
%% 基因x:编码规则是
%% 根据约束条件
%% 0 < g2 < g1 且 g4 < g3 < 1
%% 0.2 < g6 < g5 且 g8 < g7 < 1.1
%% -0.12 <= g9 < g10 < g11 <= 0.12
%% 方案1: g2和g1之间设置一个参数,g1 = x1 + 0.005; g2 = x1 - 0.005;
%% g4和g3之间设置一个参数,g3 = x2 + 0.05; g4 = x2 - 0.05;
%% g6和g5之间设置一个参数,g5 = x3 + 0.1; g6 = x3 - 0.1;
%% g8和g7之间设置一个参数,g7 = x4 + 0.15; g8 = x4 - 0.15;
%% g9,g10,g11设置一个参数,g9 = x5 - 0.05; g10 = x5; g11 = x5 + 0.05;
%% 初始范围:x1比如以0.055为中心调整
%% x2比如以0.35为中心调整
%% x3比如以0.5为中心调整
%% x4比如以0.75为中心调整
%% x5比如以0为中心调整
%% 幅度: 0.04
%%
%%
%% 方案2: g2和g1之间设置两个参数,g1 = x1 + x2; g2 = x1 - x2;
%% g4和g3之间设置两个参数,g3 = x3 + x4; g4 = x3 - x4;
%% g6和g5之间设置两个参数,g5 = x5 + x6; g6 = x5 - x6;
%% g8和g7之间设置两个参数,g7 = x7 + x8; g8 = x7 - x8;
%% g9,g10,g11设置三个参数,g9 = x9 - x10; g10 = x9; g11 = x9 + x10;
%% 初始范围:x1,x2,x3,x4,x5
%% x6,x7,x8,x9,x10,x11
%%
%%
%%
%% 方案3: 直接取值在[0,1]之间,然后排序,得到
%%
deltaG(1) = x(1) + 0.005;
deltaG(2) = x(1) - 0.005;
deltaG(3) = x(2) + 0.05;
deltaG(4) = x(2) - 0.05;
deltaG(5) = x(3) + 0.1;
deltaG(6) = x(3) - 0.1;
deltaG(7) = x(4) + 0.15;
deltaG(8) = x(4) - 0.15;
deltaG(9) = x(5) - 0.05;
deltaG(10) = x(5);
deltaG(11) = x(5) + 0.05;