Dear Mathematica experts,

I have a problem with the optimization of the objective Z depending on continuous and discrete variables. The error that occurs constantly is **“The following constraints are not valid: ….. Constraints should be equalities, inequalities, or domain specifications involving the variables.”** I read a lot about this problem here, but as far as I understand each of the cases is individual. If the constraints are incompatible, shouldn’t a message be displayed that they are not being satisfied? As far as I understand the mentioned error message, the restrictions have not been entered correctly. Would you help me clarify the problem? Thank you in advance.

PS: In vars list b and r are Integers.

```
Mmin = 102500; Mmax = 193000; th2max = 430*Pi/180; th2min = 310*Pi/180;
(*Functions*)
d(b_) := Which(b == 1, 0.04, b == 2, 0.05, b == 3, 0.063, b == 4,
0.08, b == 5, 0.1, b == 6, 0.125, b == 7, 0.14, b == 8, 0.16,
b == 9, 0.18, b == 10, 0.2, b == 11, 0.22, b == 12, 0.25, b == 13,
0.28, b == 14, 0.32);
h(r_) := Which(r == 1, 0.15, r == 2, 0.30, r == 3, 0.45, r == 4, 0.60,
r == 5, 0.75, r == 6, 0.9, r == 7, 1.05, r == 8, 1.30, r == 9,
1.45, r == 10, 1.6, r == 11, 1.75, r == 12, 1.9, r == 13, 2.05,
r == 14, 2.2);
Lt(b_) := 0.291669 + 4.1388707*d(b);
F(b_, p_) := 2*p*Pi*d(b)^2/4;
S1max(LL1_?NumericQ, LL2_?NumericQ, LL3_?NumericQ,
ddelta1_?NumericQ) :=Module({L1 = LL1, L2 = LL2, L3 = LL3, delta1 = ddelta1, S1max},
S1max = Sqrt(Abs(L1^2+L2^2+L3^2+2*L1*(L2*Sin(th2max + delta1)-L3*Cos(th2max + delta1)))));
kmax(LL1_?NumericQ, LL2_?NumericQ, LL3_?NumericQ, ddelta1_?NumericQ) :=
Module({L1 = LL1, L2 = LL2, L3 = LL3, delta1 = ddelta1, Amax, Bmax,
ps1max, kmax},
Amax = (L1*Cos(delta1 + th2max) - L3)/S1max(L1, L2, L3, delta1);
Bmax = (L1*Sin(delta1 + th2max) + L2)/S1max(L1, L2, L3, delta1);
ps1max = ArcTan(Amax, Bmax);
kmax = -L1*Sin(delta1 + th2max - ps1max));
S1min(LL1_?NumericQ, LL2_?NumericQ, LL3_?NumericQ,
ddelta1_?NumericQ) :=Module({L1 = LL1, L2 = LL2, L3 = LL3, delta1 = ddelta1, S1min},
S1min =Sqrt(Abs(L1^2+L2^2+L3^2+2*L1*(L2*Sin(th2min+delta1)-L3*Cos(th2min+delta1)))));
kmin(LL1_?NumericQ, LL2_?NumericQ, LL3_?NumericQ, ddelta1_?NumericQ) :=
Module({L1 = LL1, L2 = LL2, L3 = LL3, delta1 = ddelta1, Amin, Bmin,
ps1min, kmin},
Amin = (L1*Cos(delta1 + th2min) - L3)/S1min(L1, L2, L3, delta1);
Bmin = (L1*Sin(delta1 + th2min) + L2)/S1min(L1, L2, L3, delta1);
ps1min = ArcTan(Amin, Bmin);
kmin = -L1*Sin(delta1 + th2min - ps1min));
maxM(LL1_?NumericQ, LL2_?NumericQ, LL3_?NumericQ, ddelta1_?NumericQ,pp_?NumericQ, bb_?NumericQ) := Module({L1 = LL1, L2 = LL2, L3 = LL3, delta1 = ddelta1, p = pp,b = bb, maxM},
maxM = F(b, p)*kmax(L1, L2, L3, delta1) - Mmax);
minM(LL1_?NumericQ, LL2_?NumericQ, LL3_?NumericQ, ddelta1_?NumericQ,
pp_?NumericQ, bb_?NumericQ) :=Module({L1=LL1, L2=LL2, L3=LL3, delta1=ddelta1, p=pp, b = bb, minM},
minM = F(b, p)*kmin(L1, L2, L3, delta1) - Mmin);
(*Objective*)
Z(LL1_?NumericQ, LL2_?NumericQ, LL3_?NumericQ, ddelta1_?NumericQ,pp_?NumericQ, bb_?NumericQ, rr_?NumericQ,) :=
Module({b=bb, r=rr, L1=LL1, L2=LL2, L3=LL3, p=pp, delta1=ddelta1, f1, f2, k1, k2, Z},
f1 = 2*h(r)*Pi*(d(b)^2)/4 ;
f2 = (maxM(L1,L2,L3,delta1,p,b)-Mmax)^2+(minM(L1,L2,L3,delta1,p,b)-Mmin)^2;
k1 = 0.5; k2 = 1 - k1;
Z = k1*f1 + k2*f2
);
(*Constraints*)
cons = {
b >= 1, b <= 14,
r >= 1, r <= 14,
L1 >= 3, L1 <= 4.1,
L2 >= 0.2, L2 <= 1.5,
L3 >= 0.2, L3 <= 1.5,
delta1 >= 14*Pi/180, delta1 <= 21*Pi/180,
p >= 6*10^6, p <= 30*10^6,
Abs(S1max(L1,L2,L3,delta1)-(Lt(b)+2*h(r)))<=0.01,
Abs(S1min(L1,L2,L3,delta1)-(Lt(b)+h(r)))<=0.01,
maxM(L1,L2,L3,delta1,p,b)>=0,
minM(L1,L2,L3,delta1,p,b)>=0
};
(*Variables*)
vars = {L1,L2,L3,delta1,p,b(Element)Integers,r(Element)Integers};
(*Optimization*)
opt = NMinimize({Z(L1,L2,L3,delta1,p,b,r),cons},vars,MaxIterations->500)
```