Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
courses:a4b35ko:ukol3 [2010/03/01 02:15] r.polasek created |
courses:a4b35ko:ukol3 [2025/01/03 18:28] (aktuální) |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
====== Úkol 3 ====== | ====== Úkol 3 ====== | ||
+ | === 2013/2014 obr reseni === | ||
+ | {{:courses:a4b35ko:ko-2014-hw-call-centre.png|}} | ||
+ | <code> | ||
+ | Nastin reseni: | ||
+ | %Kombinatoricka optimalizace (A4M35KO) | ||
+ | %Celociselne linearni programovani | ||
+ | % | ||
+ | % Planovani smen | ||
+ | clc; | ||
+ | clear; | ||
+ | close all; | ||
+ | |||
+ | %% | ||
+ | r=48; | ||
+ | b = [6 6 6 6 6 8 9 12 18 22 25 21 21 20 18 21 21 24 24 18 18 18 12 8]'; | ||
+ | b=[b;-b] | ||
+ | c = [zeros(1,r/2) ones(1,r/2)]' % minimalizace z | ||
+ | A = zeros(r/2,r); % rovnice rozsirene o y | ||
+ | for i=1:24 | ||
+ | A(i,24+i)=-1; | ||
+ | end | ||
+ | for i=1+17:24+17 | ||
+ | for j=0:7 | ||
+ | A(i-17,mod(i+j-1,24)+1)=1; | ||
+ | end | ||
+ | end | ||
+ | A=[A;-A] | ||
+ | for i=25:48 | ||
+ | A(i,i)=-1; | ||
+ | end | ||
+ | |||
+ | |||
+ | sense=1; %typ optimalizace: 1=minimalizace, -1=maximalizace | ||
+ | ctype = repmat('L',r,1)'; %typ podminky: 'E'="=", 'L'="<=", 'G'=">=" | ||
+ | lb = zeros(1,r)'; %dolni mez promenych (0) | ||
+ | ub = [25*ones(1,r)]'; %horni mez promenych (1,2) | ||
+ | vartype = repmat('I',r,1)'; %Typ promenne 'C'=spojita, 'I'=celociselna | ||
+ | %Parametry optimalizace | ||
+ | schoptions=schoptionsset('ilpSolver','glpk','solverVerbosity',2); | ||
+ | %% | ||
+ | %spusteni optimalizace z TORSCHE | ||
+ | [xmin,fmin,status,extra] = ilinprog(schoptions,sense,c,A,b,ctype,lb,ub,vartype); | ||
+ | |||
+ | res=zeros(1,24); | ||
+ | for i=0:23 | ||
+ | for j=0:7 | ||
+ | res(mod(i+j,24)+1)=res(mod(i+j,24)+1)+xmin(i+1); | ||
+ | end | ||
+ | end | ||
+ | |||
+ | if(status==1) | ||
+ | disp('Reseni:'); | ||
+ | xmin | ||
+ | disp('Hodnota cilove funkce:'); | ||
+ | fmin | ||
+ | else | ||
+ | disp('Problem nema reseni!'); | ||
+ | end; | ||
+ | |||
+ | bar(1:24,[res' b(1:24)]) | ||
+ | |||
+ | </code> | ||
~~DISCUSSION~~ | ~~DISCUSSION~~ | ||