9. Anexos.
9. Anexos.
9. Anexos.
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Código. Preparación de las restricciones.<br />
<strong>9.</strong>1.3.2. La llamada a fmincon y la comprobación de resultados.<br />
<strong>Anexos</strong>.<br />
El siguiente fragmento de código establece todas las opciones a utilizar en la llamada a la función<br />
fmincon, la propia llamada y la comprobación de que la solución cumple las restricciones.<br />
options=optimset('GradObj','On','GradConstr','On','LargeScale','on','Display','iter');<br />
options = optimset(options,'MaxIter',500,'MaxFunEvals',10000);<br />
[x,fval,exitflag,output,lambda,grad]=fmincon(@fun_objetivo,Xij0,[],[],<br />
Aeq,beq,lb,ub,@nlincon,options,VectorDir(:,3),NumTerminales)<br />
[C,Ceq,DC,DCeq]=nlincon(x,VectorDir(:,3),NumTerminales)<br />
for i=1:1:size(x)/2<br />
end<br />
if x(i)>0 & x(i)0 & x(i+size(x,1)/2) 0 & x(i+size(x,1)/2)>0)<br />
pos_error=i;<br />
error=1;<br />
elseif x(i)>0 | x(i+size(x,1)/2)>0<br />
end<br />
CosteSolucion=CosteSolucion + VectorDir(i,3);<br />
if error==1<br />
end<br />
fprintf(1,'Se ha incumplido una restriccion: Xij*Xji=0-->VectorDir(%u)',pos_error);<br />
fid = fopen('resultados.txt','a+');<br />
fprintf(fid,'%s\t\t%u\t%f\t%u\t\t%u \n',archivo,origen,fval,exitflag,CosteSolucion);<br />
fclose(fid);<br />
Código. Opciones, llamada a fmincon y comprobación del resultado.<br />
13