param N := 8;

var x{1..N};
param c{1..16};

minimize f:
x[1]+x[2]+x[3];

subject to cons1:
1 - c[10]*x[4] - c[11]*x[6] >= 0;

subject to cons2:
1 - c[12]*x[5] - c[13]*x[7] - c[14]*x[4] >= 0;

subject to cons3:
1 - c[15]*x[8] - c[16]*x[5] >= 0;

subject to cons4:
1 - c[1]*x[4]/(x[1]*x[6]) - c[2]/x[6] - c[3]/(x[1]*x[6]) >= 0;

subject to cons5:
1 - c[4]*x[5]/(x[2]*x[7]) - c[5]*x[4]/x[7] - c[6]*x[4]/(x[2]*x[7]) >= 0;

subject to cons6:
1 - c[7]/(x[3]*x[8]) - c[8]*x[5]/x[8] - c[9]*x[5]/(x[3]*x[8]) >= 0;

subject to cons7:
100 <= x[1] <= 10000;

subject to cons8{i in 2..3}:
1000 <= x[i] <= 10000;

subject to cons9{i in 4..8}:
10 <= x[i] <= 1000;

data;
var x:=
1	5000
2	5000
3	5000
4	200
5	350
6	150
7	225
8	425;

param c:=
1	833.33252
2	100
3	-83333.333
4	1250
5	1
6	-1250
7	1250000
8	1
9	-2500
10	0.0025
11	0.0025
12	0.0025
13	0.0025
14	-0.0025
15	0.01
16	-0.01;
solve;

display x;
