9. Anexos.
9. Anexos. 9. Anexos.
If A Origen Then If Mat_L(NodosAdy(Mat_C(Pos)).Mady(i).Posicion).Visto = False Then B = Mat_L(Pos).Valor C = Mat_L(NodosAdy(Mat_C(Pos)).Mady(i).Posicion).Valor If C >= B + D(Mat_C(Pos), Mat_C(NodosAdy(Mat_C(Pos)).Mady(i).Posicion), 1) Then Anexos. Mat_L(NodosAdy(Mat_C(Pos)).Mady(i).Posicion).Valor = B + D(Mat_C(Pos), Mat_C(NodosAdy(Mat_C (Pos)).Mady(i).Posicion), 1) D(Origen, Mat_C(NodosAdy(Mat_C(Pos)).Mady(i).Posicion), 2) = Mat_C(Pos) D(Origen, Mat_C(NodosAdy(Mat_C(Pos)).Mady(i).Posicion), 1) = Mat_L(NodosAdy(Mat_C(Pos)).Mady (i).Posicion).Valor End If End If End If Else Exit Sub End If Next i End Sub Private Sub Interpreta_MatrizAdy(ByRef Vector() As Reg_Arcos, ByRef Solucion() As Reg_Arcos, ByRef D() As Single, ByRef Origen As Long) Dim i As Integer, j As Integer Dim NodoIntermedio As Integer, NodoIntermedio2 As Integer ReDim Solucion(1) For j = 1 To NumeroNodos If j Origen Then NodoIntermedio = D(Origen, j, 2) If NodoIntermedio = 0 Then AnadirArco Vector, Solucion, Origen, j ' Solucion(UBound(Solucion)) = Vector(D(Origen, NodosOrigen(j), 3)) ' ReDim Preserve Solucion(UBound(Solucion) + 1) Else AnadirArco Vector, Solucion, j, NodoIntermedio While NodoIntermedio 0 NodoIntermedio2 = NodoIntermedio NodoIntermedio = D(Origen, NodoIntermedio2, 2) If NodoIntermedio 0 Then AnadirArco Vector, Solucion, NodoIntermedio, NodoIntermedio2 38
Wend AnadirArco Vector, Solucion, Origen, NodoIntermedio2 End If End If Next j ReDim Preserve Solucion(UBound(Solucion) - 1) End Sub Anexos. Private Sub AnadirArco(ByRef Vector() As Reg_Arcos, ByRef Solucion() As Reg_Arcos, ByVal Origen As Integer, ByVal Destino As Integer) Dim Encontrado As Boolean Dim i As Integer, j As Integer Dim Anadido As Boolean Anadido = False Encontrado = False i = 0 While Encontrado = False i = i + 1 If Vector(i).Origen = Origen And Vector(i).Destino = Destino Then Encontrado = True If Vector(i).Destino = Origen And Vector(i).Origen = Destino Then Encontrado = True Wend For j = 1 To UBound(Solucion) If Vector(i).Posicion = Solucion(j).Posicion Then Anadido = True Next j If Anadido = False Then Solucion(UBound(Solucion)) = Vector(i) ReDim Preserve Solucion(UBound(Solucion) + 1) End If End Sub 9.2.2.4. Recalcular los Pesos. Método: Recalcular_Pesos.bas Option Explicit 39
- Page 1 and 2: 9. Anexos. 9.1. Anexo A: La optimiz
- Page 3 and 4: steinb6.txt 6 12 1 9 36 1 10 17 1 1
- Page 5 and 6: X j , N − X N , j= { 1 if j∈T
- Page 7 and 8: ∂ c1 ∂ c 1 ∂ x 1 ∂c 2 ∂ x
- Page 9 and 10: obliga a usar algoritmos del tipo m
- Page 11 and 12: %Vector -> Array (Vx3) con arcos no
- Page 13 and 14: Código. Preparación de las restri
- Page 15 and 16: end DCeq(i,i)=Xij(i+size(Xij,1)/2);
- Page 17 and 18: Nodo Inicial VectorDir Nodo Final C
- Page 19 and 20: Anexos. viceversa. Esto es así deb
- Page 21 and 22: CN XM 1 2 3 4 5 6 7 8 9 10 11 12 13
- Page 23 and 24: Constraints Number of nonlinear ine
- Page 25 and 26: Anexos. que dependerá del tipo de
- Page 27 and 28: Dim TiempoSol As Single Dim Iteraci
- Page 29 and 30: For i = 2 To UBound(Entrada()) Busc
- Page 31 and 32: Esta1 = False Esta2 = False j = 1 W
- Page 33 and 34: Eliminar = False End If Next k End
- Page 35 and 36: Else End If Origen = Origen + 1 Ori
- Page 37: j = j + 1 Wend ReDim Mat_L(NumeroNo
- Page 41 and 42: CosteTotal = CosteTotal + Vector(So
- Page 43 and 44: indic = 1 ReDim Xij0(UBound(Solucio
- Page 45 and 46: If bFileExists(sFile) = True Then O
- Page 47 and 48: Else ReDim ListaArchivos(UBound(Aux
- Page 49 and 50: .Columns.AutoFit Next i .Columns.Au
- Page 51: Public Vector() As Reg_Arcos Public
Wend<br />
AnadirArco Vector, Solucion, Origen, NodoIntermedio2<br />
End If<br />
End If<br />
Next j<br />
ReDim Preserve Solucion(UBound(Solucion) - 1)<br />
End Sub<br />
<strong>Anexos</strong>.<br />
Private Sub AnadirArco(ByRef Vector() As Reg_Arcos, ByRef Solucion() As Reg_Arcos, ByVal Origen As<br />
Integer, ByVal Destino As Integer)<br />
Dim Encontrado As Boolean<br />
Dim i As Integer, j As Integer<br />
Dim Anadido As Boolean<br />
Anadido = False<br />
Encontrado = False<br />
i = 0<br />
While Encontrado = False<br />
i = i + 1<br />
If Vector(i).Origen = Origen And Vector(i).Destino = Destino Then Encontrado = True<br />
If Vector(i).Destino = Origen And Vector(i).Origen = Destino Then Encontrado = True<br />
Wend<br />
For j = 1 To UBound(Solucion)<br />
If Vector(i).Posicion = Solucion(j).Posicion Then Anadido = True<br />
Next j<br />
If Anadido = False Then<br />
Solucion(UBound(Solucion)) = Vector(i)<br />
ReDim Preserve Solucion(UBound(Solucion) + 1)<br />
End If<br />
End Sub<br />
<strong>9.</strong>2.2.4. Recalcular los Pesos.<br />
Método: Recalcular_Pesos.bas<br />
Option Explicit<br />
39