Ti ringrazio per il tempo che mi stai dedicando
ti rispondo facendoti un esempio di quello che dovrebbe fare il programma:
I T T T U S (si, ho sbagliato qui, ho invertito la T con la S, errore di distrazione

)
3 2 5 1 5 8 (questa è la matrice stabilimento)
4 1 6 3 3 1
ora io, dovrei applicare la formula di sopra... ossia:
(f1 e f2 vanno riempite l'una dopo l'altra, ogni [ ] rappresenta una casella, contemporaneamente, a seconda del minimo che scegliamo, riempiamo l'array p1 e p2, p1[0] e p2[0] sono nulli)
F[1]= [3+2] [min(3+2+5 , 4+1+8+5)](quindi scriviamo [10])
F[2]= [4+1] [min(4+1+6 , 3+2+1+6)](quindi scriviamo [11])
p1= [/](nullo) [1](perchè rimaniamo sulla stessa catena)
p2= [/](nullo) [2](sempre perchè rimaniamo sulla stessa catena)
adesso, ricapitolando abbiamo:
F[1]= [5] [10] p1=[/] [1]
F[2]= [5] [11] p2=[/] [2]
Continuando avremo:
F[1]= [5] [10] [min(10+1 , 11+8+1)](quindi 11) e in p1=[/] [1] [1]
F[2]= [5] [11] [min(11+3 , 10+1+3)](indifferente ma prendo il secondo 11 per dare l'esempio della variazione di p2 che diventa): p2= [/] [2] [1]
A questo punto, dato che le colonne T sono terminate, devo sommare e memorizzare in 2 variabili temp1 e temp2 i valori finali delle catene + il costo di uscita di ciascuna... ossia:
temp1=f[1][3]+U= 11+5=16
temp2=f[2][3]+U= 11+3=14
A questo punto, creo un vettore p_ottimo, che si andrà a riempire dall'ultimo elemento fino al primo con questo criterio:
temp2
temp2-U[prima catena]=14-5=9. siccome 9 non è contenuto ne nell'ultimo elemento di f1, ne nell'ultmo di f2, ne segue che il nostro array p_ottimo, dovrà avere come ultimo valore, 2, in quanto temp2-U[seconda catena]=14-3=11, ossia l'ultimo valore di f[2].
il nostro p_ottimo inizia a rimepirsi - p_ottimo = [2] -
ora procedendo a ritroso nell'array p2, troviamo 1, quindi scriviamo 1 in p_ottimo, e saliamo in p1:
p_ottimo= [1] [2]
sempre procedendo a ritroso in p1, troviamo 1, quindi scriviamo 1 e rimaniamo in p1:
p_ottimo = [1] [1] [2]
adesso, troviamo la casella nulla in p1, quindi l'algoritmo termina...
infatti, cosi facendo, p_ottimo rappresenta il miglior percorso per risparmiare in termini di tempo per l'assemblaggio di una Panda

spero di essermi espresso chiaramente questa volta
