% UU = 20;
UU = 30;
W = randsrc(1,UU,20:150)

W =

  Columns 1 through 25

   139    33   117   116    93    44    98    59    37    47   137    29    51    27    77    21   137    45    32    60    79    33   150    63    58

  Columns 26 through 30

    28    59    26    86   119

 SW = sum(W)

SW =

        2100

 lb = zeros(UU,1);ub = ones(UU,1);
[x, fvalx,exi,out] = bintprog(-W',W ,SW/2); 
Optimization terminated.
[y, fvaly,exi,out] = linprog(-W',W,SW/2,[],[],lb,ub,[]);
Optimization terminated.
compfunc = [ fvalx; fvaly]

compfunc =

   1.0e+03 *

   -1.0500
   -1.0500

compsol = [x'; y']

compsol =

  Columns 1 through 15

         0    1.0000    1.0000    1.0000         0         0    1.0000    1.0000    1.0000    1.0000    1.0000         0         0         0         0
    0.5003    0.4998    0.5001    0.5001    0.4999    0.4998    0.4999    0.4997    0.4998    0.4998    0.5003    0.4998    0.4998    0.4998    0.4998

  Columns 16 through 30

         0    1.0000         0         0         0         0         0    1.0000         0         0         0         0         0         0    1.0000
    0.4999    0.5003    0.4998    0.4998    0.4997    0.4998    0.4998    0.5005    0.4997    0.4997    0.4998    0.4997    0.4998    0.4998    0.5001

disp(['1-    = ', num2str(-fvalx)]);
1-    = 1050
disp(['1-    = ', num2str(SW + fvalx)]);
1-    = 1050
disp(['2-    = ', num2str(-fvaly)]);
2-    = 1050
disp(['2-    = ', num2str(SW + fvaly)]);
2-    = 1050
echo off
