9. Anexos.
9. Anexos. 9. Anexos.
Option Base 1 Anexos. Public Sub Calcular_Pesos(ByRef Solucion() As Reg_Arcos, ByRef VectorRecal() As Reg_Arcos, ByRef CosteTotal As Long) Dim Xij() As Double Dim Fij() As Double Dim i As Integer Dim A As Long, M As Long Dim Minimo As Long Calcular_Flujo Solucion(), Xij() ReDim Fij(UBound(Xij)) For i = 1 To UBound(Xij) If i = 1 Then Minimo = Xij(i) Else If Minimo > Xij(i) Then Minimo = Xij(i) End If End If Next i For i = 1 To UBound(Xij) Xij(i) = Xij(i) / Minimo Next i M = UBound(NodosOrigen) - 1 A = (M ^ 2 - 3) For i = 1 To UBound(Xij) ' Fij(i) = 1 - (Xij(i) ^ 3 - 3 * Xij(i) + 2) / (A * Xij(i) + 2) Fij(i) = 1 - (Xij(i) - 1) ^ 2 / (Xij(i) ^ 2 + 1) ' Fij(i) = 1 - (Exp(Log(2) * (1 - Xij(i))) - 1) ^ 2 Fij(i) = Solucion(i).Longitud * Fij(i) VectorRecal(Solucion(i).Posicion).Longitud = Fij(i) Next i CosteTotal = 0 For i = 1 To UBound(Solucion) 40
CosteTotal = CosteTotal + Vector(Solucion(i).Posicion).Longitud Next i End Sub Public Sub Calcular_Flujo(ByRef Solucion() As Reg_Arcos, ByRef Xij() As Double) Dim NodosAdyReC() As Lista_Ady Dim Trafico() As Long Dim Salir As Boolean, Eliminar As Boolean, Encontrado As Boolean Dim i As Integer, j As Integer, k As Integer, h As Integer Dim Destino As Integer ReDim Xij(UBound(Solucion)) For h = 1 To UBound(NodosOrigen) 'Este for lo he añadido para calcular tráfico con broadcasting Calcular_Adyacentes Solucion(), NodosAdyReC(), True ReDim Trafico(UBound(NodosAdyReC)) Salir = False While Salir = False Salir = True For i = 1 To UBound(NodosAdyReC) If NodosAdyReC(i).numero = 1 And i NodosOrigen(h) Then Eliminar = True For k = 1 To UBound(NodosOrigen) If i = NodosOrigen(k) Then Trafico(i) = Trafico(i) + 1 End If Next k End If If Eliminar = True Then For k = 1 To UBound(NodosAdyReC(i).Mady) If NodosAdyReC(i).Mady(k).Nodo 0 Then Anexos. 41
- 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 and 38: j = j + 1 Wend ReDim Mat_L(NumeroNo
- Page 39: Wend AnadirArco Vector, Solucion, O
- 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
Option Base 1<br />
<strong>Anexos</strong>.<br />
Public Sub Calcular_Pesos(ByRef Solucion() As Reg_Arcos, ByRef VectorRecal() As Reg_Arcos, ByRef<br />
CosteTotal As Long)<br />
Dim Xij() As Double<br />
Dim Fij() As Double<br />
Dim i As Integer<br />
Dim A As Long, M As Long<br />
Dim Minimo As Long<br />
Calcular_Flujo Solucion(), Xij()<br />
ReDim Fij(UBound(Xij))<br />
For i = 1 To UBound(Xij)<br />
If i = 1 Then<br />
Minimo = Xij(i)<br />
Else<br />
If Minimo > Xij(i) Then<br />
Minimo = Xij(i)<br />
End If<br />
End If<br />
Next i<br />
For i = 1 To UBound(Xij)<br />
Xij(i) = Xij(i) / Minimo<br />
Next i<br />
M = UBound(NodosOrigen) - 1<br />
A = (M ^ 2 - 3)<br />
For i = 1 To UBound(Xij)<br />
' Fij(i) = 1 - (Xij(i) ^ 3 - 3 * Xij(i) + 2) / (A * Xij(i) + 2)<br />
Fij(i) = 1 - (Xij(i) - 1) ^ 2 / (Xij(i) ^ 2 + 1)<br />
' Fij(i) = 1 - (Exp(Log(2) * (1 - Xij(i))) - 1) ^ 2<br />
Fij(i) = Solucion(i).Longitud * Fij(i)<br />
VectorRecal(Solucion(i).Posicion).Longitud = Fij(i)<br />
Next i<br />
CosteTotal = 0<br />
For i = 1 To UBound(Solucion)<br />
40