-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
26 lines (20 loc) · 1.42 KB
/
main.py
File metadata and controls
26 lines (20 loc) · 1.42 KB
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
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from pathlib import Path
from instances import NetworkGraph
from solver import Solver
if __name__ == '__main__':
num_nodes = 15 #Numero di nodi del network
num_comm = 10 #Numero di commodities da trasportare nel Network
max_cost = 3 #Costo massimo per la parte fissa negli archi toll e per la circolazione negli archi free
fuel_cost=1 #Percentuale con cui il prezzo del carburante diminuisce/aumenta (utile per l'Analisi di Sensitività)
max_cost=max_cost*fuel_cost
g = NetworkGraph(num_nodes, max_cost, num_comm)
path_edges=Path.home() / "Desktop" / "Road_Pricing_Problem" / "data" / "network_edges.csv"
path_commodities=Path.home() / "Desktop" / "Road_Pricing_Problem" / "data" / "random_commodities.csv"
g.dump_file(path_edges,path_commodities) #Metodo che permette di salavare il grafo generato nei file csv della cartella data
g.plot() #Metodo per vedere il grafo generato
show_log=False #Parametro che permette di vedere/non vedere i file di log prodotti durante l'ottimizzazione sul terminale
sol = Solver(path_edges,path_commodities,show_log)
sol.summary_solution() #Metodo per avere una panoramica completa sulla dimensione dell'istanza su cui si è ottimizzato e i valori della funzione obiettivio all'ottimo
sol.graph_solution() #Metodo per vedere graficamentre in che modo sono state trasportate le commodities all'interno del network