-
Notifications
You must be signed in to change notification settings - Fork 6
/
Matlab-64-bits.m
346 lines (327 loc) · 19.5 KB
/
Matlab-64-bits.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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
function [f,g,h] = CEC2006(p, problem)
%% Developed in MATLAB R2018a
%% Programmer: Abhishek Kumar
%% Email ID: abhishek.kumar.eee13@iitbhu.ac.in, abhisheka456@gmail.com
%% Benchmark problems of IEEE CEC 2006 compatible with 64-bit MATLAB
%% This code is converted from C code
%% More details about the C code of this benchmark suite can be referred to
%% "http://www3.ntu.edu.sg/home/epnsugan/"
%% g denotes inequality constraints
%% h denotes equality constraints
%% f denotes objective function values.
popsize = size(p, 1);
switch problem
case 1
g(:,1) = 2 * p(:, 1) + 2 * p(:, 2) + p(:, 10) + p(:, 11) - 10;
g(:,2) = 2 * p(:, 1) + 2 * p(:, 3) + p(:, 10) + p(:, 12) - 10;
g(:,3) = 2 * p(:, 2) + 2 * p(:, 3) + p(:, 11) + p(:, 12) - 10;
g(:,4) = -8 * p(:, 1) + p(:, 10);
g(:,5) = -8 * p(:, 2) + p(:, 11);
g(:,6) = -8 * p(:, 3) + p(:, 12);
g(:,7) = -2 * p(:, 4) - p(:, 5) + p(:, 10);
g(:,8) = -2 * p(:, 6) - p(:, 7) + p(:, 11);
g(:,9) = -2 * p(:, 8) - p(:, 9) + p(:, 12);
h = zeros(popsize,0);
f = 5 * sum(p(:, 1 : 4), 2) - 5 * sum(p(:, 1 : 4).^2, 2)-sum(p(:, 5 : 13), 2);
case 2
g(:,1) = 0.75 - prod(p, 2);
g(:,2) = sum(p')' - 7.5 * size(p, 2);
h = zeros(popsize,0);
f = -abs(sum((cos(p).^4), 2) - 2 * prod((cos(p).^2), 2))./...
(sqrt(sum(((ones(size(p, 1), 1) * [1 : size(p, 2)]) .* (p.^2)), 2)) + 1e-17);
case 3
g = zeros(popsize, 0);
h(:,1) = sum(p.^2, 2) - 1;
f = -(10.^0.5)^10 * prod(p, 2);
case 4
g(:,1) = + 85.334407 + 0.0056858 * p(:, 2) .* p(:, 5) + 0.0006262 * p(:, 1) .* p(:, 4) - 0.0022053 * p(:, 3) .* p(:, 5) - 92;
g(:,2) = -85.334407 - 0.0056858 * p(:, 2) .* p(:, 5) - 0.0006262 * p(:, 1) .* p(:, 4) + 0.0022053 * p(:, 3) .* p(:, 5);
g(:,3) = + 80.51249 + 0.0071317 * p(:, 2) .* p(:, 5) + 0.0029955 * p(:, 1) .* p(:, 2) + 0.0021813 * p(:, 3).^2 - 110;
g(:,4) = -80.51249 - 0.0071317 * p(:, 2) .* p(:, 5) - 0.0029955 * p(:, 1) .* p(:, 2) - 0.0021813 * p(:, 3).^2 + 90;
g(:,5) = + 9.300961 + 0.0047026 * p(:, 3) .* p(:, 5) + 0.0012547 * p(:, 1) .* p(:, 3) + 0.0019085 * p(:, 3) .* p(:, 4) - 25;
g(:,6) = -9.300961 - 0.0047026 * p(:, 3) .* p(:, 5) - 0.0012547 * p(:, 1) .* p(:, 3) - 0.0019085 * p(:, 3) .* p(:, 4) + 20;
h = zeros(popsize,0);
f = 5.3578547 * p(:, 3).^2 + 0.8356891 * p(:, 1) .* p(:, 5) + 37.293239 * p(:, 1) - 40792.141;
case 5
g(:,1) = -p(:, 4) + p(:, 3) - 0.55;
g(:,2) = -p(:, 3) + p(:, 4) - 0.55;
h(:,1) = 1000 * sin(-p(:, 3) - 0.25) + 1000 * sin(-p(:, 4) - 0.25) + 894.8 - p(:, 1);
h(:,2) = 1000 * sin(p(:, 3) - 0.25) + 1000 * sin(p(:, 3) - p(:, 4)-0.25) + 894.8 - p(:, 2);
h(:,3) = 1000 * sin(p(:, 4) - 0.25) + 1000 * sin(p(:, 4) - p(:, 3)-0.25) + 1294.8;
f = 3 * p(:, 1) + 0.000001 * p(:, 1).^3 + 2 * p(:, 2) + 0.000002/3 * p(:, 2).^3;
case 6
g(:,1) = -(p(:, 1) - 5).^2 - (p(:, 2) - 5).^2 + 100;
g(:,2) = (p(:, 1) - 6).^2 + (p(:, 2) - 5).^2-82.81;
h = zeros(popsize, 0);
f = (p(:, 1) - 10).^3 + (p(:, 2) - 20).^3;
case 7
g(:,1) = -105 + 4 * p(:, 1) + 5 * p(:, 2) - 3 * p(:, 7) + 9 * p(:, 8);
g(:,2) = 10 * p(:, 1)-8 * p(:, 2) - 17 * p(:, 7) + 2 * p(:, 8);
g(:,3) = -8 * p(:, 1) + 2 * p(:, 2) + 5 * p(:, 9)-2 * p(:, 10) - 12;
g(:,4) = 3 * (p(:, 1)-2).^2 + 4 * (p(:, 2)-3).^2 + 2 * p(:, 3).^2 - 7 * p(:, 4) -120;
g(:,5) = 5 * p(:, 1).^2 + 8 * p(:, 2) + (p(:, 3)-6).^2-2 * p(:, 4) - 40;
g(:,6) = p(:, 1).^2 + 2 * (p(:, 2) - 2).^2 - 2 * p(:, 1) .* p(:, 2) + 14 * p(:, 5) - 6 * p(:, 6);
g(:,7) = 0.5 * (p(:, 1) - 8).^2 + 2 * (p(:, 2) - 4).^2 + 3 * p(:, 5).^2 - p(:, 6) - 30;
g(:,8) = -3 * p(:, 1) + 6 * p(:, 2) + 12 * (p(:, 9) - 8).^2 - 7 * p(:, 10);
h = zeros(popsize, 0);
f = p(:, 1).^2 + p(:, 2).^2 + p(:, 1) .* p(:, 2) - 14 * p(:, 1) - 16 * p(:, 2) + (p(:, 3) - 10).^2 + 4 * (p(:, 4) - 5).^2 + (p(:, 5) - 3).^2 + 2 * (p(:, 6) - 1).^2 + 5 * p(:, 7).^2 + 7 * (p(:, 8) - 11).^2 + 2 * (p(:, 9) - 10).^2 + (p(:, 10) - 7).^2 + 45;
case 8
g(:,1) = p(:, 1).^2 - p(:, 2) + 1;
g(:,2) = 1 - p(:, 1) + (p(:, 2) - 4).^2;
h = zeros(popsize, 0);
f = -(sin(2 * pi * p(:, 1)).^3) .* sin(2 * pi * p(:, 2))./((p(:, 1).^3 .* (p(:, 1) + p(:, 2))) + 1e-17);
case 9
h = zeros(popsize, 0);
g(:,1) = -127 + 2 * p(:, 1).^2 + 3 * p(:, 2).^4 + p(:, 3) + 4 * p(:, 4).^2 + 5 * p(:, 5);
g(:,2) = -282 + 7 * p(:, 1) + 3 * p(:, 2) + 10 * p(:, 3).^2 + p(:, 4) - p(:, 5);
g(:,3) = -196 + 23 * p(:, 1) + p(:, 2).^2 + 6 * p(:, 6).^2 - 8 * p(:, 7);
g(:,4) = 4 * p(:, 1).^2 + p(:, 2).^2 - 3 * p(:, 1) .* p(:, 2) + 2 * p(:, 3).^2 + 5 * p(:, 6) - 11 * p(:, 7);
f = (p(:, 1) - 10).^2 + 5 * (p(:, 2) - 12).^2 + p(:, 3).^4 + 3 * (p(:, 4) - 11).^2 + 10 * p(:, 5).^6 + 7 * p(:, 6).^2 + p(:, 7).^4 - 4 * p(:, 6) .* p(:, 7) - 10 * p(:, 6) - 8 * p(:, 7);
case 10
g(:,1) = -1 + 0.0025 * (p(:, 4) + p(:, 6));
g(:,2) = -1 + 0.0025 * (p(:, 5) + p(:, 7) - p(:, 4));
g(:,3) = -1 + 0.01 * (p(:, 8) - p(:, 5));
g(:,4) = -p(:, 1) .* p(:, 6) + 833.33252 * p(:, 4) + 100 * p(:, 1) - 83333.333;
g(:,5) = -p(:, 2) .* p(:, 7) + 1250 * p(:, 5) + p(:, 2) .* p(:, 4) - 1250 * p(:, 4);
g(:,6) = -p(:, 3) .* p(:, 8) + 1250000 + p(:, 3) .* p(:, 5) - 2500 * p(:, 5);
h = zeros(popsize, 0);
f = p(:, 1) + p(:, 2) + p(:, 3);
case 11
h(:,1) = p(:, 2)-p(:, 1).^2 ;
g = zeros(popsize, 0);
f = p(:, 1).^2 + (p(:, 2) - 1).^2;
case 12
f = -(100 - (p(:, 1) - 5).^2-(p(:, 2) - 5).^2 - (p(:, 3) - 5).^2)/100;
l = 1;
for i = 1 : 9
for j = 1 : 9
for k = 1 : 9
A(l, : ) = [i j k];
l = l+1;
end
end
end
for j = 1 : popsize
g(j, 1) = min(sum((ones(9 * 9 * 9, 1) * p(j, :) - A).^2, 2)) - 0.0625;
end
h = zeros(popsize, 0);
case 13
g = zeros(popsize, 0);
h(:,1) = p(:, 1).^2 + p(:, 2).^2 + p(:, 3).^2 + p(:, 4).^2 + p(:, 5).^2 - 10;
h(:,2) = p(:, 2) .* p(:, 3) - 5 * p(:, 4) .* p(:, 5);
h(:,3) = p(:, 1).^3 + p(:, 2).^3 + 1;
f = exp(p(:, 1) .* p(:, 2) .* p(:, 3) .* p(:, 4) .* p(:, 5));
case 14
c = [-6.089 -17.164 -34.054 -5.914 -24.721 -14.986 -24.1 -10.708 -26.662 -22.179];
h(:,1) = p(:, 1) + 2 * p(:, 2) + 2 * p(:, 3) + p(:, 6) + p(:, 10) - 2;
h(:,2) = p(:, 4) + 2 * p(:, 5) + p(:, 6) + p(:, 7) - 1;
h(:,3) = p(:, 3) + p(:, 7) + p(:, 8) + 2 * p(:, 9) + p(:, 10) - 1;
g = zeros(popsize, 0);
f = sum(p .* (repmat(c, popsize, 1) + log(p./repmat(sum(p, 2), 1, 10))), 2);
case 15
h(:,1) = p(:, 1).^2 + p(:, 2).^2 + p(:, 3).^2 - 25;
h(:,2) = 8 * p(:, 1) + 14 * p(:, 2) + 7 * p(:, 3) - 56;
g = zeros(popsize, 0);
f = 1000 - p(:, 1).^2 - 2 * p(:, 2).^2 - p(:, 3).^2 - p(:, 1) .* p(:, 2) - p(:, 1) .* p(:, 3);
case 16
y1 = p(:, 2) + p(:, 3) + 41.6;
c1 = 0.024 * p(:, 4)-4.62;
y2 = 12.5./c1 + 12;
c2 = 0.0003535 * p(:, 1).^2 + 0.5311 * p(:, 1) + 0.08705 * y2 .* p(:, 1);
c3 = 0.052 * p(:, 1) + 78 + 0.002377 * y2 .* p(:, 1);
y3 = c2./c3;
y4 = 19 * y3;
c4 = 0.04782 * (p(:, 1)-y3) + 0.1956 * (p(:, 1)-y3).^2./p(:, 2) + 0.6376 * y4 + 1.594 * y3;
c5 = 100 * p(:, 2);
c6 = p(:, 1) - y3 - y4;
c7 = 0.950 - c4./c5;
y5 = c6 .* c7;
y6 = p(:, 1) - y5 - y4 - y3;
c8 = (y5 + y4) * 0.995;
y7 = c8./y1;
y8 = c8/3798;
c9 = y7-0.0663 * y7./y8 - 0.3153;
y9 = 96.82./c9 + 0.321 * y1;
y10 = 1.29 * y5 + 1.258 * y4 + 2.29 * y3 + 1.71 * y6;
y11 = 1.71 * p(:, 1) - 0.452 * y4 + 0.580 * y3;
c10 = 12.3 / 752.3;
c11 = 1.75 * y2 .* 0.995 .* p(:, 1);
c12 = 0.995 * y10 + 1998.0;
y12 = c10 * p(:, 1) + (c11./ c12);
y13 = c12 - 1.75 * y2;
y14 = 3623.0 + 64.4 * p(:, 2) + 58.4 * p(:, 3) + (146312.0./ (y9 + p(:, 5)));
c13 = 0.995 * y10 + 60.8 * p(:, 2) + 48 * p(:, 4) - 0.1121 * y14 - 5095.0;
y15 = y13./ c13;
y16 = 148000.0 - 331000.0 * y15 + 40.0 * y13 - 61.0 .* y15 .* y13;
c14 = 2324 * y10 - 28740000 * y2;
y17 = 14130000 - 1328.0 * y10 - 531.0 * y11 + (c14./c12);
c15 = (y13./y15) - (y13/ 0.52);
c16 = 1.104 - 0.72 * y15;
c17 = y9 + p(:, 5);
h = zeros(popsize, 0);
g(:,1) = 0.28/0.72 .* y5 - y4;
g(:,2) = p(:, 3)-1.5 * p(:, 2);
g(:,3) = 3496 .* y2./c12 - 21;
g(:,4) = 110.6 + y1-62212./c17;
g(:,5) = 213.1 - y1;
g(:,6) = y1-405.23;
g(:,7) = 17.505 - y2;
g(:,8) = y2-1053.6667;
g(:,9) = 11.275 - y3;
g(:,10) = y3 - 35.03;
g(:,11) = 214.228 - y4;
g(:,12) = y4 - 665.585;
g(:,13) = 7.458 - y5;
g(:,14) = y5 - 584.463;
g(:,15) = 0.961 - y6;
g(:,16) = y6 - 265.916;
g(:,17) = 1.612 - y7;
g(:,18) = y7 - 7.046;
g(:,19) = 0.146 - y8;
g(:,20) = y8 - 0.222;
g(:,21) = 107.99 - y9;
g(:,22) = y9 - 273.366;
g(:,23) = 922.693 - y10;
g(:,24) = y10 - 1286.105;
g(:,25) = 926.832 - y11;
g(:,26) = y11 - 1444.046;
g(:,27) = 18.766 - y12;
g(:,28) = y12 - 537.141;
g(:,29) = 1072.163 - y13;
g(:,30) = y13 - 3247.039;
g(:,31) = 8961.448 - y14;
g(:,32) = y14 - 26844.086;
g(:,33) = 0.063 - y15;
g(:,34) = y15 - 0.386;
g(:,35) = 71084.33 - y16;
g(:,36) = -140000 + y16;
g(:,37) = 2802713 - y17;
g(:,38) = y17 - 12146108;
f = 0.000117 * y14 + 0.1365 + 0.00002358 * y13 + 0.000001502 * y16 + 0.0321 * y12 ...
+ 0.004324 * y5 + 0.0001 * (c15 ./ c16) + 37.48 * (y2./c12) - 0.0000005843 * y17;
case 17
g = zeros(popsize,0);
h(:,1) = -p(:, 1) + 300-p(:, 3) .* p(:, 4)./131.078 .* cos(1.48477-p(:, 6)) + 0.90798 .* p(:, 3).^2./131.078 .* cos(1.47588);
h(:,2) = -p(:, 2)-p(:, 3) .* p(:, 4)./131.078 .* cos(1.48477 + p(:, 6)) + 0.90798 .* p(:, 4).^2./131.078 .* cos(1.47588);
h(:,3) = -p(:, 5)-p(:, 3) .* p(:, 4)./131.078 .* sin(1.48477 + p(:, 6)) + 0.90798 .* p(:, 4).^2./131.078 .* sin(1.47588);
h(:,4) = 200-p(:, 3) .* p(:, 4)./131.078 .* sin(1.48477-p(:, 6)) + 0.90798 .* p(:, 3).^2./131.078 .* sin(1.47588);
f = 30 .* p(:, 1) .* (p(:, 1) < 300) + 31 .* p(:, 1) .* (p(:, 1) >= 300) + 28 .* p(:, 2) .* (p(:, 2) < 100) + 29 .* p(:, 2) .* (p(:, 2) >= 100&p(:, 2) < 200) + 30 .* p(:, 2) .* (p(:, 2) >= 200&p(:, 2) < 1000);
case 18
h = zeros(popsize, 0);
g(:,1) = p(:, 3).^2 + p(:, 4).^2 - 1;
g(:,2) = p(:, 9).^2 - 1;
g(:,3) = p(:, 5).^2 + p(:, 6).^2 - 1;
g(:,4) = p(:, 1).^2 + (p(:, 2)-p(:, 9)).^2-1;
g(:,5) = (p(:, 1) - p(:, 5)).^2 + (p(:, 2) - p(:, 6)).^2 - 1;
g(:,6) = (p(:, 1) - p(:, 7)).^2 + (p(:, 2) - p(:, 8)).^2 - 1;
g(:,7) = (p(:, 3)-p(:, 5)).^2 + (p(:, 4) - p(:, 6)).^2 - 1;
g(:,8) = (p(:, 3)-p(:, 7)).^2 + (p(:, 4) - p(:, 8)).^2 - 1;
g(:,9) = p(:, 7).^2 + (p(:, 8) - p(:, 9)).^2 - 1;
g(:,10) = p(:, 2) .* p(:, 3) - p(:, 1) .* p(:, 4);
g(:,11) = -p(:, 3) .* p(:, 9);
g(:,12) = p(:, 5) .* p(:, 9);
g(:,13) = p(:, 6) .* p(:, 7) - p(:, 5) .* p(:, 8);
f = -0.5 * (p(:, 1) .* p(:, 4) - p(:, 2) .* p(:, 3) + p(:, 3) .* p(:, 9) - p(:, 5) .* p(:, 9) + p(:, 5) .* p(:, 8) - p(:, 6) .* p(:, 7));
case 19
a = [-16 2 0 1 0;
0 -2 0 0.4 2;
-3.5 0 2 0 0;
0 -2 0 -4 -1;
0 -9 -2 1 -2.8;
2 0 -4 0 0;
-1 -1 -1 -1 -1;
-1 -2 -3 -2 -1;
1 2 3 4 5;
1 1 1 1 1];
b = [-40 -2 -0.25 -4 -4 -1 -20 -60 5 1];
c = [30 -20 -10 32 -10;
-20 39 -6 -31 32;
-10 -6 10 -6 -10;
32 -31 -6 39 -20;
-10 32 -10 -20 30];
d = [4 8 10 6 2];
e = [-15 -27 -36 -18 -12];
h = zeros(popsize,0);
g(:,1) = -2 * sum(repmat(c(1:5, 1)', popsize, 1) .* p(:, 11:15), 2) - 3 * d(1) .* p(:, 11).^2 - e(1) + sum(repmat(a(1:10, 1)', popsize, 1) .* p(:, 1:10), 2);
g(:,2) = -2 * sum(repmat(c(1:5, 2)', popsize, 1) .* p(:, 11:15), 2) - 3 * d(2) .* p(:, 12).^2 - e(2) + sum(repmat(a(1:10, 2)', popsize, 1) .* p(:, 1:10), 2);
g(:,3) = -2 * sum(repmat(c(1:5, 3)', popsize, 1) .* p(:, 11:15), 2) - 3 * d(3) .* p(:, 13).^2 - e(3) + sum(repmat(a(1:10, 3)', popsize, 1) .* p(:, 1:10), 2);
g(:,4) = -2 * sum(repmat(c(1:5, 4)', popsize, 1) .* p(:, 11:15), 2) - 3 * d(4) .* p(:, 14).^2 - e(4) + sum(repmat(a(1:10, 4)', popsize, 1) .* p(:, 1:10), 2);
g(:,5) = -2 * sum(repmat(c(1:5, 5)', popsize, 1) .* p(:, 11:15), 2) - 3 * d(5) .* p(:, 15).^2 - e(5) + sum(repmat(a(1:10, 5)', popsize, 1) .* p(:, 1:10), 2);
f = sum(repmat(c(1:5, 1)', popsize, 1) .* p(:, 11:15), 2) .* p(:, 11) + sum(repmat(c(1:5, 2)', popsize, 1) .* p(:, 11:15), 2) .* p(:, 12)...
+ sum(repmat(c(1:5, 3)', popsize, 1) .* p(:, 11:15), 2) .* p(:, 13) + sum(repmat(c(1:5, 4)', popsize, 1) .* p(:, 11:15), 2) .* p(:, 14)...
+ sum(repmat(c(1:5, 5)', popsize, 1) .* p(:, 11:15), 2) .* p(:, 15) + 2 * sum(repmat(d, popsize, 1) .* p(:, 11:15).^3, 2)...
-sum(repmat(b, popsize, 1) .* p(:, 1:10), 2);
case 20
a = [0.0693 0.0577 0.05 0.2 0.26 0.55 0.06 0.1 0.12 0.18 0.1 0.09...
0.0693 0.0577 0.05 0.2 0.26 0.55 0.06 0.1 0.12 0.18 0.1 0.09];
b = [44.094 58.12 58.12 137.4 120.9 170.9 62.501 84.94 133.425 82.507 46.07 60.097...
44.094 58.12 58.12 137.4 120.9 170.9 62.501 84.94 133.425 82.507 46.07 60.079];
c = [123.7 31.7 45.7 14.7 84.7 27.7 49.7 7.1 2.1 17.7 0.85 0.64];
d = [31.244 36.12 34.784 92.7 82.7 91.6 56.708 82.7 80.8 64.517 49.4 49.1];
e = [0.1 0.3 0.4 0.3 0.6 0.3];
g(:,1) = (p(:, 1) + p(:, 13))./(sum(p, 2) + e(1));
g(:,2) = (p(:, 2) + p(:, 14))./(sum(p, 2) + e(2));
g(:,3) = (p(:, 3) + p(:, 15))./(sum(p, 2) + e(3));
g(:,4) = (p(:, 7) + p(:, 19))./(sum(p, 2) + e(4));
g(:,5) = (p(:, 8) + p(:, 20))./(sum(p, 2) + e(5));
g(:,6) = (p(:, 9) + p(:, 21))./(sum(p, 2) + e(6));
h(:,1) = p(:, 13)./(b(13) * (sum(p(:, 13:24)./repmat(b(13:24), popsize, 1), 2))) - c(1) * p(:, 1)./(40 * b(1) * (sum(p(:, 1:12)./repmat(b(1:12), popsize, 1), 2)));
h(:,2) = p(:, 14)./(b(14) * (sum(p(:, 13:24)./repmat(b(13:24), popsize, 1), 2))) - c(2) * p(:, 2)./(40 * b(2) * (sum(p(:, 1:12)./repmat(b(1:12), popsize, 1), 2)));
h(:,3) = p(:, 15)./(b(15) * (sum(p(:, 13:24)./repmat(b(13:24), popsize, 1), 2))) - c(3) * p(:, 3)./(40 * b(3) * (sum(p(:, 1:12)./repmat(b(1:12), popsize, 1), 2)));
h(:,4) = p(:, 16)./(b(16) * (sum(p(:, 13:24)./repmat(b(13:24), popsize, 1), 2))) - c(4) * p(:, 4)./(40 * b(4) * (sum(p(:, 1:12)./repmat(b(1:12), popsize, 1), 2)));
h(:,5) = p(:, 17)./(b(17) * (sum(p(:, 13:24)./repmat(b(13:24), popsize, 1), 2))) - c(5) * p(:, 5)./(40 * b(5) * (sum(p(:, 1:12)./repmat(b(1:12), popsize, 1), 2)));
h(:,6) = p(:, 18)./(b(18) * (sum(p(:, 13:24)./repmat(b(13:24), popsize, 1), 2))) - c(6) * p(:, 6)./(40 * b(6) * (sum(p(:, 1:12)./repmat(b(1:12), popsize, 1), 2)));
h(:,7) = p(:, 19)./(b(19) * (sum(p(:, 13:24)./repmat(b(13:24), popsize, 1), 2))) - c(7) * p(:, 7)./(40 * b(7) * (sum(p(:, 1:12)./repmat(b(1:12), popsize, 1), 2)));
h(:,8) = p(:, 20)./(b(20) * (sum(p(:, 13:24)./repmat(b(13:24), popsize, 1), 2))) - c(8) * p(:, 8)./(40 * b(8) * (sum(p(:, 1:12)./repmat(b(1:12), popsize, 1), 2)));
h(:,9) = p(:, 21)./(b(21) * (sum(p(:, 13:24)./repmat(b(13:24), popsize, 1), 2))) - c(9) * p(:, 9)./(40 * b(9) * (sum(p(:, 1:12)./repmat(b(1:12), popsize, 1), 2)));
h(:,10) = p(:, 22)./(b(22) * (sum(p(:, 13:24)./repmat(b(13:24), popsize, 1), 2))) - c(10) * p(:, 10)./(40 * b(10) * (sum(p(:, 1:12)./repmat(b(1:12), popsize, 1), 2)));
h(:,11) = p(:, 23)./(b(23) * (sum(p(:, 13:24)./repmat(b(13:24), popsize, 1), 2))) - c(11) * p(:, 11)./(40 * b(11) * (sum(p(:, 1:12)./repmat(b(1:12), popsize, 1), 2)));
h(:,12) = p(:, 24)./(b(24) * (sum(p(:, 13:24)./repmat(b(13:24), popsize, 1), 2))) - c(12) * p(:, 12)./(40 * b(12) * (sum(p(:, 1:12)./repmat(b(1:12), popsize, 1), 2)));
h(:,13) = sum(p, 2) - 1;
h(:,14) = sum(p(:, 1:12)./repmat(d(1 : 12), popsize, 1), 2) + 0.7302 * 530 * 14.7/40 * sum(p(:, 13:24)./repmat(b(13:24), popsize, 1), 2) - 1.671;
f = sum(repmat(a, popsize, 1) .* p, 2);
case 21
g(:,1) = -p(:, 1) + 35 * p(:, 2).^0.6 + 35 * p(:, 3).^0.6;
g(:,2) = -300 * p(:, 3) + 7500 * p(:, 5)-7500 * p(:, 6) - 25 * p(:, 4) .* p(:, 5) + 25 * p(:, 4) .* p(:, 6) + p(:, 3) .* p(:, 4);
h(:,1) = 100 * p(:, 2) + 155.365 * p(:, 4) + 2500 * p(:, 7) - p(:, 2) .* p(:, 4) - 25 * p(:, 4) .* p(:, 7) - 15536.5;
h(:,2) = -p(:, 5) + log(-p(:, 4) + 900);
h(:,3) = -p(:, 6) + log(p(:, 4) + 300);
h(:,4) = -p(:, 7) + log(-2 * p(:, 4) + 700);
f = p(:, 1);
case 22
g(:,1) = -p(:, 1) + p(:, 2).^0.6 + p(:, 3).^0.6 + p(:, 4).^0.6;
h(:,1) = p(:, 5)-100000 * p(:, 8) + 10^7;
h(:,2) = p(:, 6) + 100000 * p(:, 8) - 100000 * p(:, 9);
h(:,3) = p(:, 7) + 100000 * p(:, 9) - 5 * 10^7;
h(:,4) = p(:, 5) + 100000 * p(:, 10) - 3.3 * 10^7;
h(:,5) = p(:, 6) + 100000 * p(:, 11) - 4.4 * 10^7;
h(:,6) = p(:, 7) + 100000 * p(:, 12) - 6.6 * 10^7;
h(:,7) = p(:, 5) - 120 * p(:, 2) .* p(:, 13);
h(:,8) = p(:, 6) - 80 * p(:, 3) .* p(:, 14);
h(:,9) = p(:, 7) - 40 * p(:, 4) .* p(:, 15);
h(:,10) = p(:, 8) - p(:, 11) + p(:, 16);
h(:,11) = p(:, 9) - p(:, 12) + p(:, 17);
h(:,12) = -p(:, 18) + log(p(:, 10) - 100);
h(:,13) = -p(:, 19) + log(-p(:, 8) + 300);
h(:,14) = -p(:, 20) + log(p(:, 16));
h(:,15) = -p(:, 21) + log(-p(:, 9) + 400);
h(:,16) = -p(:, 22) + log(p(:, 17));
h(:,17) = -p(:, 8) - p(:, 10) + p(:, 13) .* p(:, 18) - p(:, 13) .* p(:, 19) + 400;
h(:,18) = p(:, 8) - p(:, 9) - p(:, 11) + p(:, 14) .* p(:, 20) - p(:, 14) .* p(:, 21) + 400;
h(:,19) = p(:, 9) - p(:, 12) - 4.60517 * p(:, 15) + p(:, 15) .* p(:, 22) + 100;
f = p(:, 1);
case 23
g(:,1) = p(:, 9) .* p(:, 3) + 0.02 .* p(:, 6) - 0.025 .* p(:, 5);
g(:,2) = p(:, 9) .* p(:, 4) + 0.02 .* p(:, 7) - 0.015 .* p(:, 8);
h(:,1) = p(:, 1) + p(:, 2) - p(:, 3)-p(:, 4);
h(:,2) = 0.03 .* p(:, 1) + 0.01 .* p(:, 2) - p(:, 9) .* (p(:, 3) + p(:, 4));
h(:,3) = p(:, 3) + p(:, 6) - p(:, 5);
h(:,4) = p(:, 4) + p(:, 7) - p(:, 8);
f = -9 .* p(:, 5) - 15 .* p(:, 8) + 6 .* p(:, 1) + 16 .* p(:, 2) + 10 .* (p(:, 6) + p(:, 7));
case 24
h = [];
g(:,1) = -2 * p(:, 1).^4 + 8 * p(:, 1).^3 - 8 * p(:, 1).^2 + p(:, 2) - 2;
g(:,2) = -4 * p(:, 1).^4 + 32 * p(:, 1).^3 - 88 * p(:, 1).^2 + 96 * p(:, 1) + p(:, 2) - 36;
f = -p(:, 1) - p(:, 2);
end
end