Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 4.92 KB | None | 0 0
  1. bl = [40;60;70;100];
  2. A1 =[1,2,6,2;
  3.     2,6,9,4;
  4.     5,7,1,5;
  5.     4,8,9,8];
  6. [A1_n, A1_m]=size(A1);
  7. price=[4,9,10.5,6.5];
  8. [A1_n, A1_m]=size(A1);
  9. d = [0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  10.     0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  11.     0, 0, 0, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  12.     0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0;
  13.     0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0;
  14.     0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  15.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  16.     0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0;
  17.     0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0;
  18.     0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 3, 7, 7, 11, 0, 0, 0, 0, 0, 0;
  19.     0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  20.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 1, 0, 0, 0;
  21.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 0, 0;
  22.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 5, 5, 0, 0;
  23.     0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  24.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7;
  25.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7;
  26.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0;
  27.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3;
  28.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  29.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  30.  
  31. c=[0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  32. 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  33. 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  34. 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0;
  35. 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0;
  36. 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  37. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  38. 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 102, 10, 60, 0, 0, 0, 0, 0, 0, 0;
  39. 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0;
  40. 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 20, 70, 2, 11, 0, 0, 0, 0, 0, 0;
  41. 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  42. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 30, 100, 0, 0, 0;
  43. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 17, 39, 31, 0, 0;
  44. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 36, 35, 25, 0, 0;
  45. 0, 0, 0, 0, 0, 0, 0, 0, 11, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  46. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 71;
  47. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 57;
  48. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0;
  49. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 31;
  50. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
  51. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  52. a=[10,5];
  53. [a_n, a_m]=size(a);
  54.  
  55. a=a(:);
  56. [n m]=size(c);
  57. nm=n*m;
  58. Aeq = zeros(n, nm);
  59. for i = 1:n
  60.     for j = 1:m
  61.         if d(i, j) > 0
  62.             Aeq(i, (i - 1)*n + j) = 1;
  63.         end
  64.     end
  65.     for k = 1:n
  66.          if d(k, i) > 0
  67.             if (i <= n - size(a))
  68.                 Aeq(i, (k - 1)*n + i) = -1;
  69.             else
  70.                 Aeq(i, (k - 1)*n + i) = 1;
  71.             end
  72.          end
  73.     end
  74. end
  75.  
  76. Aeq1_1=[zeros(n,A1_m),Aeq];
  77. Aeq1_1(1:A1_m,:)=0;
  78. Aeq1_1(n-a_m+1:n,:)=0;
  79. Aeq1_2=[-eye(A1_m),Aeq(1:A1_m,1:nm)];
  80. Aeq1_3=[zeros(a_m,A1_m),Aeq(n-a_m+1:n,1:nm)];
  81. Aeq1=[Aeq1_1;Aeq1_2;Aeq1_3];
  82. %end =
  83.  
  84. % <=
  85. A_1=[A1,zeros(A1_n,nm)];
  86. A_3=[eye(A1_m),zeros(A1_m,nm)];
  87. A=[A_1];
  88. %end <=
  89.  
  90. b=bl;
  91. beq=[zeros(n+A1_m,1);a];
  92. ub=[ones(1,A1_m)*inf,reshape(d',1,[])];
  93. lb=zeros(1,A1_m+nm);
  94. intcon=1:(A1_m+nm);
  95. ff=[-price';reshape(c',[],1)];
  96.  
  97. [x, fval, exitflag,lambda]=intlinprog(ff,intcon,A,b,Aeq1,beq,lb,ub);
  98. res = x(A1_m+1:A1_m+nm,1);
  99. u=x(1:A1_m,:);
  100. res = reshape(res, n, []);
  101.  
  102. g = digraph;
  103.  
  104. for i = 1:n
  105.     for j = 1:m
  106.         if not(res(i,j) == 0 )
  107.             g = addedge(g, j, i, res(i,j));
  108.         end
  109.     end
  110. end
  111. figure(1)
  112. h = plot(g,'Layout','layered','EdgeLabel',g.Edges.Weight,'LineWidth', 2,'ArrowSize', 8, 'MarkerSize', 14, 'LineStyle', '-', 'Marker','o')
  113. hs = struct(h);   %and ignore the warning message
  114. for nhl = hs.NodeLabelHandles_
  115.   nhl.Font.Size = 20;
  116. end
  117. for nhl = hs.EdgeLabelHandles_
  118.   nhl.Font.Size = 25;
  119. end
  120. grid on
  121. figure(2)
  122. gg=digraph;
  123. for i = 1:n
  124.     for j = 1:m
  125.         if not(d(i,j) == 0 )
  126.             gg = addedge(gg, i, j, d(i,j));
  127.         end
  128.     end
  129. end
  130. hh = plot(gg,'Layout','layered','EdgeLabel',gg.Edges.Weight,'LineWidth', 2,'ArrowSize', 8, 'MarkerSize', 14, 'LineStyle', '-', 'Marker','o')
  131. hhs = struct(hh);   %and ignore the warning message
  132. for nhl = hhs.NodeLabelHandles_
  133.   nhl.Font.Size = 20;
  134. end
  135. for nhl = hhs.EdgeLabelHandles_
  136.   nhl.Font.Size = 25;
  137. end
  138.  
  139. zapasi=bl-(sum((A1.*u')'))'
  140. u
  141. TC=sum(sum(res.*c'))
  142. TR=price*u
  143. Profit=TR-TC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement