Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bl = [40;60;70;100];
- A1 =[1,2,6,2;
- 2,6,9,4;
- 5,7,1,5;
- 4,8,9,8];
- price=[4,9,10.5,6.5];
- [k1,fval,exitflag]=intlinprog(-price,1:4,A1,bl,[],[],zeros(1,4),[]);
- k2=round(k1);
- bl-(sum((A1.*k2')'))'
- k2
- d = [0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 3, 7, 7, 11, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 1, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 5, 5, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
- c=[0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 102, 10, 60, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 20, 70, 2, 11, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 30, 100, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 17, 39, 31, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 36, 35, 25, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 11, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 71;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 57;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 31;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
- d1=reshape(d',1,[]);
- % СКОЛЬКО ВХОДИТ И ВЫХОДИТ
- b1 = k2;
- a = [10;5];
- [in_n, p] = size(a);
- [out_n, p] = size(b1);
- % Конец ВХОДИТ И ВЫХОДИТ
- % ЗАДАЕМ ОГРАНИЧЕНИЯ РАВЕНСТВ
- [n, m] = size(d);
- nm=n*m;
- Aeq = zeros(n, n*m);
- for i = 1:n
- for j = 1:m
- if d(i, j) > 0
- Aeq(i, (i - 1)*n + j) = 1;
- end
- end
- for k = 1:n
- if d(k, i) > 0
- if (i <= n - max(size(a)))
- Aeq(i, (k - 1)*n + i) = -1;
- else
- Aeq(i, (k - 1)*n + i) = 1;
- end
- end
- end
- end
- % КОНЕЦ ОГРАНИЧЕНИЯ РАВЕНСТВ
- %ТУТ МЫ ЗАДАЕМ ОГРАНИЧЕНИЯ <=
- A=[];
- %КОНЕЦ ЗАДАНИЯ ОГРАНИЧЕНИЙ
- lb = zeros(1, 2*nm);
- ub = reshape(d',1,[]);
- intcon = 1:nm;
- tmp = n - out_n - in_n;
- beq = ([b1;(zeros(1, tmp))';a])';
- b = [];
- k = c;
- ff = reshape(k',1,[]);
- [x, fval] = intlinprog(ff,intcon,A,b,Aeq,beq, lb, ub);
- res = reshape(x, n, []);
- g = digraph;
- for i = 1:n
- for j = 1:n
- if not(res(i,j) == 0 )
- g = addedge(g, j, i, 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 = 20;
- end
- for nhl = hs.EdgeLabelHandles_
- nhl.Font.Size = 25;
- end
- zapasi=bl-(sum((A1.*k2')'))'
- k2
- TC=sum(sum(res.*c'))
- TR=price*k2
- Profit=TR-TC
- %plot(g,'Layout','force','EdgeLabel',g.Edges.Weight)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement