用matlab调用gurobi求解01规划,为什么非最优解?

例子用的是一本书上的例题,求解出的结果与书上答案不同,并不是最优解;我求解的目标函数为30,书上答案为28;有没有哪位大老解答一下;例题如下

img


代码如下

clc;clear;
x = binvar(4);

st = (sum(x,1) >= 1) + (sum(x,2) >= 1);

ops = sdpsettings('solver','gurobi');

c = [2 15 13 4;
    10 4 14 15;
    9 14 16 13;
    7 8 11 9];
z = sum(c .* x,'all');

result = solvesdp(st,z,ops);
z = double(z)
x = double(x)