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
- ];
- M=10^10;
- %stock problem
- ub=ones(1,f_m);
- lb=ub-1;
- Aeq=ones(1,f_m);
- beq=Q;
- [x, fval, exitflag,lambda]=intlinprog(f,1:f_m,[],[],Aeq,beq,lb,ub);
- %end
- %manufacturing problem
- A=[A1;eye(f_m)];
- b=[bl;x*M];
- ub=ones(1,f_m)*inf;
- lb=zeros(1,f_m);
- [x1, fval, exitflag,lambda]=intlinprog(-price,1:f_m,A,b,[],[],lb,ub);
- %end
- %TP
- [n m]=size(c);
- k=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
- [x2, fval, exitflag,output,lambda]=linprog(c(:)',[],[],[mrow;mcol],[x1;a'],zeros(k,1));
- res=reshape(x2,n,m);
- 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
- %end
- zapas=bl-A1*x1
- TPcost=x2'*c(:)
- TR=price*x1
- Profit=TR-TPcost
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement