Advertisement
Guest User

Untitled

a guest
Oct 27th, 2018
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.95 KB | None | 0 0
  1. L=[100, 100, 100, 100];
  2. bl = [40;60;70;100];
  3. A1 =[1,2,6,2;
  4.     2,6,9,4;
  5.     5,7,1,5;
  6.     4,8,9,8];
  7. [A1_n, A1_m]=size(A1);
  8. price=[4,9,10.5,6.5];
  9. Q=3;
  10. [L_n, L_m]=size(L);
  11. f=[1, 2, 3, 4];
  12. [f_n, f_m]=size(f);
  13. c=[
  14. 7, 8, 7, 8, 7, 8, 7;
  15. 8, 5, 8, 3, 8, 2, 5;
  16. 2, 7, 6, 7, 4, 3, 6;
  17. 7, 0, 5, 2, 5, 5, 5];
  18. a=[1,2,5,1,2,2,3];
  19.  
  20. a=a(:);
  21. [n m]=size(c);
  22. nm=n*m;
  23. %Формирование матрицы ограничений
  24. %по строкам
  25. mrow=[];
  26. for i=1:m
  27.     mrow=[mrow eye(n)];
  28. end
  29. %по столбцам
  30. mcol=[];
  31. j=0;
  32. for i=1:m
  33.     j=j+1;
  34.     v=zeros(m,n);
  35.     v(j,:)=1;
  36.     mcol=[mcol v];
  37. end
  38. B_1=[-eye(f_m),mrow,zeros(f_m,f_m)];%-k_i+sum_{j}_(x_ij)=0
  39.  
  40. B_2=[zeros(m,f_m),mcol,zeros(m,f_m)];%sum_{i}_(x_ij)=a_i
  41.  
  42. Aeq=[B_1;B_2];
  43. %end =
  44.  
  45. % <=
  46. mc=[];%forming matrix x_ij>=z_i
  47. j=1;
  48. for i=1:f_m*nm%x_ij
  49.     mc(i,j)=1;
  50.     if mod(i, n)==0
  51.         j=j+1;
  52.     end
  53. end
  54. mc1=eye(f_m);
  55. for i=1:nm-1
  56.     mc1=[mc1;eye(f_m)];
  57. end
  58. A_2=[zeros(1,nm+A1_m),ones(1,f_m)];%sum(z_i)<=Q
  59.  
  60. A_1=[A1,zeros(A1_n,nm+f_m)];%A*k<=s
  61.  
  62. A_4=[eye(f_m),zeros(f_m,nm),-eye(f_m).*L];
  63.  
  64. A=[A_1;A_2;A_4];
  65. [A_n, A_m]=size(A);
  66. % end <=
  67.  
  68. ff=[-price,c(:)',f];
  69. b=[bl;Q;zeros(f_m,1)];
  70. beq=[zeros(n,1);a];
  71. lb=zeros(n+nm+n,1);
  72. ub=[ones(n+nm,1)*inf;ones(f_m,1)];
  73. intcon=1:(nm+2*f_m);
  74.  
  75. [x, fval, exitflag,lambda]=intlinprog(ff,intcon,A,b,Aeq,beq,lb,ub);
  76. res = x(f_m+1:f_m+nm,1);
  77. res = reshape(res, n, []);
  78. %res=c;
  79.  
  80. g = digraph;
  81.  
  82. for i = 1:n
  83.     for j = 1:m
  84.         if not(res(i,j) == 0 )
  85.             g = addedge(g, i, j+n, res(i,j));
  86.         end
  87.     end
  88. end
  89.  
  90. h = plot(g,'Layout','layered','EdgeLabel',g.Edges.Weight,'LineWidth', 4,'ArrowSize', 8, 'MarkerSize', 14, 'LineStyle', ':', 'Marker','s')
  91. hs = struct(h);   %and ignore the warning message
  92. for nhl = hs.NodeLabelHandles_
  93.   nhl.Font.Size = 25;
  94. end
  95. for nhl = hs.EdgeLabelHandles_
  96.   nhl.Font.Size = 20;
  97. end
  98.  
  99. aa=x(1:f_m,:)
  100. zapas=bl-A1*aa
  101. TPcost=c(:)'*x(f_m+1:f_m+nm,1)
  102. TR=price*aa
  103. Profit=TR-TPcost
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement