Documente Academic
Documente Profesional
Documente Cultură
Functia nordest
[m,n]=size(sol);
if sum(sum(b))< m+n-1
disp('Eroare de coeficienti')
return
else
u=Inf*ones(m,1);
v=Inf*ones(n,1);
In liniile de cod de mai jos, se va efectua bucla pâna când sunt atribuiti toti coeficientii
while nr<m+n
for lin=1:m
for col=1:n
if b(lin,col)>0
if (u(lin)~=Inf) & (v(col)==Inf)
v(col)=c(lin,col)-u(lin);
nr=nr+1;
elseif (u(lin)==Inf) & (v(col)~=Inf)
u(lin)=c(lin,col)-v(col);
nr=nr+1;
end
end
end
end
end
end
3. Functia bucla
[m,n]=size(sol);
Se va realiza regresia:
bucla=bucla(2:length(bucla),:);
cauta_lin=0;
else
j=j+1;
end
end
else
4. Functia transport
Functia transport este functia principala prin intermediul careia se rezolva problema de
transport si in interiorul careia se apeleaza functiile prezentate anterior. Variabile utilizate
in functia transport sunt:
variabila matriceala f care cuprinde valorile furnizorilor intr-o matrice de
dimensiunea m x 1;
variabila matriceala cer cuprinde valorile cererilor intr-o matrice de dimensiunea
n x1;
variabila matriceala c, a costurilor, care cuprinde valorile costurilor intr-o matrice
de dimensiunea m x n;
variabila matriceala sol ce reprezinta solutia optima exprimata printr-o matrice de
tipul m x n;
variabila cost care reprezinta costul minim de transport;
In primele linii de cod ale functiei, utilizatorul va putea introduce de la tastatura matricile
ce cuprind valorile furnizorilor,f , valorile cererilor cer, si matricea costurilor c:
fprintf(' Introduceti valorile cererilor (exemplu: [100; 50; 80; 110]), cer = ');
cer=input('');
nrcereri=length(cer);
while cl~=nrcereri
disp(' Matricea costurilor este introdusa gresit. Reluati')
pause
fprintf(' Introduceti matricea costurilor (exemplu: [5 4 7 6;10 7 11 5;7 8 1 4]), c
= ');
c=input('');
[ln,cl]=size(c);
end;
Prin liniile de cod de mai jos, utilizatorul va introduce de la tastatura linia si coloana
corespunzatoare elementului de matrice al variabilei de baza: