Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- L=[100, 100, 100, 100];
- bl = [40;60;70;100];
- A1 =[1,2,6,2;
- 2,6,9,4;
- 5,7,1,5;
- 4,8,9,8];
- [A1_n, A1_m]=size(A1);
- price=[4,9,10.5,6.5];
- Q=3;
- [L_n, L_m]=size(L);
- f=[1, 2, 3, 4];
- [f_n, f_m]=size(f);
- c=[
- 7, 8, 7, 8, 7, 8, 7;
- 8, 5, 8, 3, 8, 2, 5;
- 2, 7, 6, 7, 4, 3, 6;
- 7, 0, 5, 2, 5, 5, 5];
- a=[1,2,5,1,2,2,3];
- a=a(:);
- [n m]=size(c);
- nm=n*m;
- %Формирование матрицы ограничений
- %по строкам
- mrow=[];
- for i=1:m
- mrow=[mrow eye(n)];
- end
- %по столбцам
- mcol=[];
- j=0;
- for i=1:m
- j=j+1;
- v=zeros(m,n);
- v(j,:)=1;
- mcol=[mcol v];
- end
- B_1=[-eye(f_m),mrow,zeros(f_m,f_m)];%-k_i+sum_{j}_(x_ij)=0
- B_2=[zeros(m,f_m),mcol,zeros(m,f_m)];%sum_{i}_(x_ij)=a_i
- Aeq=[B_1;B_2];
- %end =
- % <=
- mc=[];%forming matrix x_ij>=z_i
- j=1;
- for i=1:f_m*nm%x_ij
- mc(i,j)=1;
- if mod(i, n)==0
- j=j+1;
- end
- end
- mc1=eye(f_m);
- for i=1:nm-1
- mc1=[mc1;eye(f_m)];
- end
- A_2=[zeros(1,nm+A1_m),ones(1,f_m)];%sum(z_i)<=Q
- A_1=[A1,zeros(A1_n,nm+f_m)];%A*k<=s
- A_4=[eye(f_m),zeros(f_m,nm),-eye(f_m).*L];
- A=[A_1;A_2;A_4];
- [A_n, A_m]=size(A);
- % end <=
- ff=[-price,c(:)',f];
- b=[bl;Q;zeros(f_m,1)];
- beq=[zeros(n,1);a];
- lb=zeros(n+nm+n,1);
- ub=[ones(n+nm,1)*inf;ones(f_m,1)];
- intcon=1:(nm+2*f_m);
- [x, fval, exitflag,lambda]=intlinprog(ff,intcon,A,b,Aeq,beq,lb,ub);
- res = x(f_m+1:f_m+nm,1);
- res = reshape(res, n, []);
- %res=c;
- g = digraph;
- for i = 1:n
- for j = 1:m
- if not(res(i,j) == 0 )
- g = addedge(g, i, j+n, res(i,j));
- end
- end
- end
- h = plot(g,'Layout','layered','EdgeLabel',g.Edges.Weight,'LineWidth', 4,'ArrowSize', 8, 'MarkerSize', 14, 'LineStyle', ':', 'Marker','s')
- hs = struct(h); %and ignore the warning message
- for nhl = hs.NodeLabelHandles_
- nhl.Font.Size = 25;
- end
- for nhl = hs.EdgeLabelHandles_
- nhl.Font.Size = 20;
- end
- aa=x(1:f_m,:)
- zapas=bl-A1*aa
- TPcost=c(:)'*x(f_m+1:f_m+nm,1)
- TR=price*aa
- Profit=TR-TPcost
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement