File size: 1,083 Bytes
1c5e165 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#VERSIÓN 5: VRP
#(F): A añadir en (F)uturas versiones
### CLASES DEL GRAFO ###
class Grafo:
def __init__(self, distancias: list[list[float]], demandas_clientes: list[float], num_nodos: int = None):
if num_nodos == None: num_nodos = len(distancias)
if len(demandas_clientes) == num_nodos:
self.num_nodos = num_nodos
self.distancias = distancias
self.demandas_clientes = demandas_clientes ##El almacén ya está incluido
else:
raise IndexError("Las demandas no son igual al número de clientes")
class Vehiculos:
def __init__(self, capacidad_vehiculos: list[float], num_vehiculos: int = None):
if num_vehiculos == None: num_vehiculos = len(capacidad_vehiculos)
if len(capacidad_vehiculos) == num_vehiculos or num_vehiculos == None:
self.num_vehiculos = num_vehiculos
self.capacidad_vehiculos = sorted(capacidad_vehiculos)
else:
raise IndexError("Las capacidades no son igual al número de vehiculos")
|