
from synet.utils.common import PathReq
from synet.utils.common import ECMPPathsReq
from synet.utils.common import PathOrderReq
from synet.utils.common import Protocols
from synet.utils.common import KConnectedPathsReq

topology_file = 'topos/small/Renater2008.graphml'
seed = 2168608280
reqs_simple_1 = [
    PathReq(Protocols.OSPF, "Clermont-Ferrand", ['Paris', 'Lyon', 'Clermont-Ferrand'], False),
]

edges_cost_simple_1 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

####################

reqs_ecmp_1_2 = [
    ECMPPathsReq(Protocols.OSPF, 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti', [PathReq(Protocols.OSPF, "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", ['Cadarache', 'Marseille', 'Montpellier', 'Lyon', 'Paris', 'NodeID13', 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti'], False), PathReq(Protocols.OSPF, "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", ['Cadarache', 'Marseille', 'Montpellier', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne', 'NodeID13', 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti'], False)], False),
]

edges_cost_ecmp_1_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_kconnected_1_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti', [PathReq(Protocols.OSPF, "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", ['Cadarache', 'Marseille', 'Montpellier', 'Lyon', 'Paris', 'NodeID13', 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti'], False), PathReq(Protocols.OSPF, "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", ['Cadarache', 'Marseille', 'Montpellier', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne', 'NodeID13', 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti'], False)], False),
]

edges_cost_kconnected_1_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_order_1_2 = [
    PathOrderReq(Protocols.OSPF, 'Orleans', [PathReq(Protocols.OSPF, "Orleans", ['Paris', 'Orleans'], False), PathReq(Protocols.OSPF, "Orleans", ['Paris', 'Poiters', 'Orleans'], False)], False),
]

edges_cost_order_1_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_simple_2 = [
    PathReq(Protocols.OSPF, "Dijon", ['Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'Dijon'], False),
    PathReq(Protocols.OSPF, "Compiegne", ['Bordeaux', 'Poiters', 'Paris', 'Compiegne'], False),
]

edges_cost_simple_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 2),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

####################

reqs_ecmp_2_2 = [
    ECMPPathsReq(Protocols.OSPF, 'Rennes', [PathReq(Protocols.OSPF, "Rennes", ['Marseille', 'Montpellier', 'Toulouse', 'Bordeaux', 'Poiters', 'Nantes', 'Rennes'], False), PathReq(Protocols.OSPF, "Rennes", ['Marseille', 'Montpellier', 'Lyon', 'Paris', 'Poiters', 'Nantes', 'Rennes'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti', [PathReq(Protocols.OSPF, "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", ['Marseille', 'Montpellier', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne', 'NodeID13', 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti'], False), PathReq(Protocols.OSPF, "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", ['Marseille', 'Montpellier', 'Lyon', 'Paris', 'NodeID13', 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti'], False)], False),
]

edges_cost_ecmp_2_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 2),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_kconnected_2_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'Rennes', [PathReq(Protocols.OSPF, "Rennes", ['Marseille', 'Montpellier', 'Toulouse', 'Bordeaux', 'Poiters', 'Nantes', 'Rennes'], False), PathReq(Protocols.OSPF, "Rennes", ['Marseille', 'Montpellier', 'Lyon', 'Paris', 'Poiters', 'Nantes', 'Rennes'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti', [PathReq(Protocols.OSPF, "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", ['Marseille', 'Montpellier', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne', 'NodeID13', 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti'], False), PathReq(Protocols.OSPF, "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", ['Marseille', 'Montpellier', 'Lyon', 'Paris', 'NodeID13', 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti'], False)], False),
]

edges_cost_kconnected_2_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 2),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_order_2_2 = [
    PathOrderReq(Protocols.OSPF, 'Poiters', [PathReq(Protocols.OSPF, "Poiters", ['Nantes', 'Poiters'], False), PathReq(Protocols.OSPF, "Poiters", ['Nantes', 'Rennes', 'Caen', 'Rouen', 'Paris', 'Poiters'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Rennes', [PathReq(Protocols.OSPF, "Rennes", ['Nantes', 'Rennes'], False), PathReq(Protocols.OSPF, "Rennes", ['Nantes', 'Poiters', 'Paris', 'Rouen', 'Caen', 'Rennes'], False)], False),
]

edges_cost_order_2_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_simple_4 = [
    PathReq(Protocols.OSPF, "Toulouse", ['Corte', 'Marseille', 'Montpellier', 'Toulouse'], False),
    PathReq(Protocols.OSPF, "Nancy", ['Corte', 'Marseille', 'Montpellier', 'Lyon', 'Besancon', 'Strasbourg', 'Nancy'], False),
    PathReq(Protocols.OSPF, "SFINX", ['Corte', 'Marseille', 'Montpellier', 'Lyon', 'Paris', 'SFINX'], False),
    PathReq(Protocols.OSPF, "Paris", ['Corte', 'Marseille', 'Montpellier', 'Lyon', 'Paris'], False),
]

edges_cost_simple_4 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 2),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

####################

reqs_ecmp_4_2 = [
    ECMPPathsReq(Protocols.OSPF, 'Pau', [PathReq(Protocols.OSPF, "Pau", ['Clermont-Ferrand', 'Lyon', 'Montpellier', 'Toulouse', 'Pau'], False), PathReq(Protocols.OSPF, "Pau", ['Clermont-Ferrand', 'Limoges', 'Poiters', 'Bordeaux', 'Pau'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'NodeID13', [PathReq(Protocols.OSPF, "NodeID13", ['Clermont-Ferrand', 'Lyon', 'Paris', 'NodeID13'], False), PathReq(Protocols.OSPF, "NodeID13", ['Clermont-Ferrand', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne', 'NodeID13'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti', [PathReq(Protocols.OSPF, "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", ['Clermont-Ferrand', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne', 'NodeID13', 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti'], False), PathReq(Protocols.OSPF, "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", ['Clermont-Ferrand', 'Lyon', 'Paris', 'NodeID13', 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Orleans', [PathReq(Protocols.OSPF, "Orleans", ['Clermont-Ferrand', 'Lyon', 'Paris', 'Orleans'], False), PathReq(Protocols.OSPF, "Orleans", ['Clermont-Ferrand', 'Limoges', 'Poiters', 'Orleans'], False)], False),
]

edges_cost_ecmp_4_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_kconnected_4_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'Pau', [PathReq(Protocols.OSPF, "Pau", ['Clermont-Ferrand', 'Lyon', 'Montpellier', 'Toulouse', 'Pau'], False), PathReq(Protocols.OSPF, "Pau", ['Clermont-Ferrand', 'Limoges', 'Poiters', 'Bordeaux', 'Pau'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'NodeID13', [PathReq(Protocols.OSPF, "NodeID13", ['Clermont-Ferrand', 'Lyon', 'Paris', 'NodeID13'], False), PathReq(Protocols.OSPF, "NodeID13", ['Clermont-Ferrand', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne', 'NodeID13'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti', [PathReq(Protocols.OSPF, "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", ['Clermont-Ferrand', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne', 'NodeID13', 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti'], False), PathReq(Protocols.OSPF, "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", ['Clermont-Ferrand', 'Lyon', 'Paris', 'NodeID13', 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Orleans', [PathReq(Protocols.OSPF, "Orleans", ['Clermont-Ferrand', 'Lyon', 'Paris', 'Orleans'], False), PathReq(Protocols.OSPF, "Orleans", ['Clermont-Ferrand', 'Limoges', 'Poiters', 'Orleans'], False)], False),
]

edges_cost_kconnected_4_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_order_4_2 = [
    PathOrderReq(Protocols.OSPF, 'Besancon', [PathReq(Protocols.OSPF, "Besancon", ['Strasbourg', 'Besancon'], False), PathReq(Protocols.OSPF, "Besancon", ['Strasbourg', 'Nancy', 'Reims', 'Paris', 'InternetTTmondial', 'Lyon', 'Besancon'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Rouen', [PathReq(Protocols.OSPF, "Rouen", ['Caen', 'Rouen'], False), PathReq(Protocols.OSPF, "Rouen", ['Caen', 'Rennes', 'Nantes', 'Poiters', 'Paris', 'Rouen'], False)], False),
    PathOrderReq(Protocols.OSPF, 'InternetTTmondial', [PathReq(Protocols.OSPF, "InternetTTmondial", ['Paris', 'InternetTTmondial'], False), PathReq(Protocols.OSPF, "InternetTTmondial", ['Paris', 'Lyon', 'InternetTTmondial'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Nantes', [PathReq(Protocols.OSPF, "Nantes", ['Rennes', 'Nantes'], False), PathReq(Protocols.OSPF, "Nantes", ['Rennes', 'Caen', 'Rouen', 'Paris', 'Poiters', 'Nantes'], False)], False),
]

edges_cost_order_4_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 3),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 2),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_simple_8 = [
    PathReq(Protocols.OSPF, "Compiegne", ['Nantes', 'Poiters', 'Paris', 'Compiegne'], False),
    PathReq(Protocols.OSPF, "Martinique,TTGuadeloupe,TTCayenne", ['Nantes', 'Poiters', 'Paris', 'NodeID13', 'Martinique,TTGuadeloupe,TTCayenne'], False),
    PathReq(Protocols.OSPF, "Strasbourg", ['Nantes', 'Poiters', 'Paris', 'Lyon', 'Dijon', 'Besancon', 'Strasbourg'], False),
    PathReq(Protocols.OSPF, "Lille", ['Nantes', 'Poiters', 'Paris', 'Lille'], False),
    PathReq(Protocols.OSPF, "Marseille", ['Nantes', 'Poiters', 'Paris', 'Lyon', 'Montpellier', 'Marseille'], False),
    PathReq(Protocols.OSPF, "Rennes", ['Nantes', 'Rennes'], False),
    PathReq(Protocols.OSPF, "Limoges", ['Nantes', 'Poiters', 'Limoges'], False),
    PathReq(Protocols.OSPF, "Orleans", ['Nantes', 'Poiters', 'Orleans'], False),
]

edges_cost_simple_8 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 2),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 3),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 3),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 2),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

####################

reqs_ecmp_8_2 = [
    ECMPPathsReq(Protocols.OSPF, 'CERN', [PathReq(Protocols.OSPF, "CERN", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'CERN'], False), PathReq(Protocols.OSPF, "CERN", ['NodeID13', 'Paris', 'Lyon', 'CERN'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Clermont-Ferrand', [PathReq(Protocols.OSPF, "Clermont-Ferrand", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'Clermont-Ferrand'], False), PathReq(Protocols.OSPF, "Clermont-Ferrand", ['NodeID13', 'Paris', 'Lyon', 'Clermont-Ferrand'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Grenoble', [PathReq(Protocols.OSPF, "Grenoble", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'Grenoble'], False), PathReq(Protocols.OSPF, "Grenoble", ['NodeID13', 'Paris', 'Lyon', 'Grenoble'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Cadarache', [PathReq(Protocols.OSPF, "Cadarache", ['NodeID13', 'Paris', 'Lyon', 'Montpellier', 'Marseille', 'Cadarache'], False), PathReq(Protocols.OSPF, "Cadarache", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'Montpellier', 'Marseille', 'Cadarache'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Strasbourg', [PathReq(Protocols.OSPF, "Strasbourg", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'Besancon', 'Strasbourg'], False), PathReq(Protocols.OSPF, "Strasbourg", ['NodeID13', 'Paris', 'Lyon', 'Besancon', 'Strasbourg'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Besancon', [PathReq(Protocols.OSPF, "Besancon", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'Besancon'], False), PathReq(Protocols.OSPF, "Besancon", ['NodeID13', 'Paris', 'Lyon', 'Besancon'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Rennes', [PathReq(Protocols.OSPF, "Rennes", ['NodeID13', 'Paris', 'Poiters', 'Nantes', 'Rennes'], False), PathReq(Protocols.OSPF, "Rennes", ['NodeID13', 'Paris', 'Rouen', 'Caen', 'Rennes'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Montpellier', [PathReq(Protocols.OSPF, "Montpellier", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'Montpellier'], False), PathReq(Protocols.OSPF, "Montpellier", ['NodeID13', 'Paris', 'Lyon', 'Montpellier'], False)], False),
]

edges_cost_ecmp_8_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 2),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_kconnected_8_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'CERN', [PathReq(Protocols.OSPF, "CERN", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'CERN'], False), PathReq(Protocols.OSPF, "CERN", ['NodeID13', 'Paris', 'Lyon', 'CERN'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Clermont-Ferrand', [PathReq(Protocols.OSPF, "Clermont-Ferrand", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'Clermont-Ferrand'], False), PathReq(Protocols.OSPF, "Clermont-Ferrand", ['NodeID13', 'Paris', 'Lyon', 'Clermont-Ferrand'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Grenoble', [PathReq(Protocols.OSPF, "Grenoble", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'Grenoble'], False), PathReq(Protocols.OSPF, "Grenoble", ['NodeID13', 'Paris', 'Lyon', 'Grenoble'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Cadarache', [PathReq(Protocols.OSPF, "Cadarache", ['NodeID13', 'Paris', 'Lyon', 'Montpellier', 'Marseille', 'Cadarache'], False), PathReq(Protocols.OSPF, "Cadarache", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'Montpellier', 'Marseille', 'Cadarache'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Strasbourg', [PathReq(Protocols.OSPF, "Strasbourg", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'Besancon', 'Strasbourg'], False), PathReq(Protocols.OSPF, "Strasbourg", ['NodeID13', 'Paris', 'Lyon', 'Besancon', 'Strasbourg'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Besancon', [PathReq(Protocols.OSPF, "Besancon", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'Besancon'], False), PathReq(Protocols.OSPF, "Besancon", ['NodeID13', 'Paris', 'Lyon', 'Besancon'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Rennes', [PathReq(Protocols.OSPF, "Rennes", ['NodeID13', 'Paris', 'Poiters', 'Nantes', 'Rennes'], False), PathReq(Protocols.OSPF, "Rennes", ['NodeID13', 'Paris', 'Rouen', 'Caen', 'Rennes'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Montpellier', [PathReq(Protocols.OSPF, "Montpellier", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'Montpellier'], False), PathReq(Protocols.OSPF, "Montpellier", ['NodeID13', 'Paris', 'Lyon', 'Montpellier'], False)], False),
]

edges_cost_kconnected_8_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 2),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_order_8_2 = [
    PathOrderReq(Protocols.OSPF, 'InternetTTmondial', [PathReq(Protocols.OSPF, "InternetTTmondial", ['Lyon', 'InternetTTmondial'], False), PathReq(Protocols.OSPF, "InternetTTmondial", ['Lyon', 'Paris', 'InternetTTmondial'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Paris', [PathReq(Protocols.OSPF, "Paris", ['Rouen', 'Paris'], False), PathReq(Protocols.OSPF, "Paris", ['Rouen', 'Caen', 'Rennes', 'Nantes', 'Poiters', 'Paris'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Montpellier', [PathReq(Protocols.OSPF, "Montpellier", ['Lyon', 'Montpellier'], False), PathReq(Protocols.OSPF, "Montpellier", ['Lyon', 'Grenoble', 'Nice', 'Marseille', 'Montpellier'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Nancy', [PathReq(Protocols.OSPF, "Nancy", ['Reims', 'Nancy'], False), PathReq(Protocols.OSPF, "Nancy", ['Reims', 'Paris', 'Lyon', 'Besancon', 'Strasbourg', 'Nancy'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Poiters', [PathReq(Protocols.OSPF, "Poiters", ['Limoges', 'Poiters'], False), PathReq(Protocols.OSPF, "Poiters", ['Limoges', 'Clermont-Ferrand', 'Lyon', 'Paris', 'Poiters'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Poiters', [PathReq(Protocols.OSPF, "Poiters", ['Bordeaux', 'Poiters'], False), PathReq(Protocols.OSPF, "Poiters", ['Bordeaux', 'Pau', 'Toulouse', 'Montpellier', 'Lyon', 'Paris', 'Poiters'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Martinique,TTGuadeloupe,TTCayenne', [PathReq(Protocols.OSPF, "Martinique,TTGuadeloupe,TTCayenne", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne'], False), PathReq(Protocols.OSPF, "Martinique,TTGuadeloupe,TTCayenne", ['NodeID13', 'Paris', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Reims', [PathReq(Protocols.OSPF, "Reims", ['Paris', 'Reims'], False), PathReq(Protocols.OSPF, "Reims", ['Paris', 'Lyon', 'Besancon', 'Strasbourg', 'Nancy', 'Reims'], False)], False),
]

edges_cost_order_8_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 3),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_simple_16 = [
    PathReq(Protocols.OSPF, "Limoges", ['Besancon', 'Lyon', 'Clermont-Ferrand', 'Limoges'], False),
    PathReq(Protocols.OSPF, "Poiters", ['Besancon', 'Lyon', 'Paris', 'Poiters'], False),
    PathReq(Protocols.OSPF, "Clermont-Ferrand", ['Besancon', 'Lyon', 'Clermont-Ferrand'], False),
    PathReq(Protocols.OSPF, "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", ['Besancon', 'Lyon', 'Paris', 'NodeID13', 'LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti'], False),
    PathReq(Protocols.OSPF, "Compiegne", ['Besancon', 'Lyon', 'Paris', 'Compiegne'], False),
    PathReq(Protocols.OSPF, "Lyon", ['Besancon', 'Lyon'], False),
    PathReq(Protocols.OSPF, "Cadarache", ['Besancon', 'Lyon', 'Montpellier', 'Marseille', 'Cadarache'], False),
    PathReq(Protocols.OSPF, "Paris", ['Besancon', 'Lyon', 'Paris'], False),
    PathReq(Protocols.OSPF, "InternetTTmondial", ['Besancon', 'Lyon', 'InternetTTmondial'], False),
    PathReq(Protocols.OSPF, "Nice", ['Besancon', 'Lyon', 'Grenoble', 'Nice'], False),
    PathReq(Protocols.OSPF, "Pau", ['Besancon', 'Lyon', 'Montpellier', 'Toulouse', 'Pau'], False),
    PathReq(Protocols.OSPF, "Reims", ['Besancon', 'Lyon', 'Paris', 'Reims'], False),
    PathReq(Protocols.OSPF, "Strasbourg", ['Besancon', 'Strasbourg'], False),
    PathReq(Protocols.OSPF, "Bordeaux", ['Besancon', 'Lyon', 'Montpellier', 'Toulouse', 'Bordeaux'], False),
    PathReq(Protocols.OSPF, "Martinique,TTGuadeloupe,TTCayenne", ['Besancon', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne'], False),
    PathReq(Protocols.OSPF, "Nantes", ['Besancon', 'Lyon', 'Paris', 'Poiters', 'Nantes'], False),
]

edges_cost_simple_16 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 2),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 2),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 2),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

####################

reqs_ecmp_16_2 = [
    ECMPPathsReq(Protocols.OSPF, 'Toulouse', [PathReq(Protocols.OSPF, "Toulouse", ['Pau', 'Bordeaux', 'Toulouse'], False), PathReq(Protocols.OSPF, "Toulouse", ['Pau', 'Toulouse'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Nice', [PathReq(Protocols.OSPF, "Nice", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Marseille', 'Nice'], False), PathReq(Protocols.OSPF, "Nice", ['Pau', 'Toulouse', 'Montpellier', 'Marseille', 'Nice'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Dijon', [PathReq(Protocols.OSPF, "Dijon", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'Dijon'], False), PathReq(Protocols.OSPF, "Dijon", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'Dijon'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Strasbourg', [PathReq(Protocols.OSPF, "Strasbourg", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'Besancon', 'Strasbourg'], False), PathReq(Protocols.OSPF, "Strasbourg", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'Besancon', 'Strasbourg'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Lyon', [PathReq(Protocols.OSPF, "Lyon", ['Pau', 'Toulouse', 'Montpellier', 'Lyon'], False), PathReq(Protocols.OSPF, "Lyon", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Cadarache', [PathReq(Protocols.OSPF, "Cadarache", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Marseille', 'Cadarache'], False), PathReq(Protocols.OSPF, "Cadarache", ['Pau', 'Toulouse', 'Montpellier', 'Marseille', 'Cadarache'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Clermont-Ferrand', [PathReq(Protocols.OSPF, "Clermont-Ferrand", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'Clermont-Ferrand'], False), PathReq(Protocols.OSPF, "Clermont-Ferrand", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'Clermont-Ferrand'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Montpellier', [PathReq(Protocols.OSPF, "Montpellier", ['Pau', 'Toulouse', 'Montpellier'], False), PathReq(Protocols.OSPF, "Montpellier", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Corte', [PathReq(Protocols.OSPF, "Corte", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Marseille', 'Corte'], False), PathReq(Protocols.OSPF, "Corte", ['Pau', 'Toulouse', 'Montpellier', 'Marseille', 'Corte'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Besancon', [PathReq(Protocols.OSPF, "Besancon", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'Besancon'], False), PathReq(Protocols.OSPF, "Besancon", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'Besancon'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Marseille', [PathReq(Protocols.OSPF, "Marseille", ['Pau', 'Toulouse', 'Montpellier', 'Marseille'], False), PathReq(Protocols.OSPF, "Marseille", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Marseille'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'InternetTTmondial', [PathReq(Protocols.OSPF, "InternetTTmondial", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'InternetTTmondial'], False), PathReq(Protocols.OSPF, "InternetTTmondial", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'InternetTTmondial'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Martinique,TTGuadeloupe,TTCayenne', [PathReq(Protocols.OSPF, "Martinique,TTGuadeloupe,TTCayenne", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne'], False), PathReq(Protocols.OSPF, "Martinique,TTGuadeloupe,TTCayenne", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Caen', [PathReq(Protocols.OSPF, "Caen", ['Pau', 'Bordeaux', 'Poiters', 'Paris', 'Rouen', 'Caen'], False), PathReq(Protocols.OSPF, "Caen", ['Pau', 'Bordeaux', 'Poiters', 'Nantes', 'Rennes', 'Caen'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Grenoble', [PathReq(Protocols.OSPF, "Grenoble", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'Grenoble'], False), PathReq(Protocols.OSPF, "Grenoble", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'Grenoble'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'CERN', [PathReq(Protocols.OSPF, "CERN", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'CERN'], False), PathReq(Protocols.OSPF, "CERN", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'CERN'], False)], False),
]

edges_cost_ecmp_16_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 2),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 2),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 3),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 3),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 2),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 2),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_kconnected_16_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'Toulouse', [PathReq(Protocols.OSPF, "Toulouse", ['Pau', 'Bordeaux', 'Toulouse'], False), PathReq(Protocols.OSPF, "Toulouse", ['Pau', 'Toulouse'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Nice', [PathReq(Protocols.OSPF, "Nice", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Marseille', 'Nice'], False), PathReq(Protocols.OSPF, "Nice", ['Pau', 'Toulouse', 'Montpellier', 'Marseille', 'Nice'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Dijon', [PathReq(Protocols.OSPF, "Dijon", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'Dijon'], False), PathReq(Protocols.OSPF, "Dijon", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'Dijon'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Strasbourg', [PathReq(Protocols.OSPF, "Strasbourg", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'Besancon', 'Strasbourg'], False), PathReq(Protocols.OSPF, "Strasbourg", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'Besancon', 'Strasbourg'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Lyon', [PathReq(Protocols.OSPF, "Lyon", ['Pau', 'Toulouse', 'Montpellier', 'Lyon'], False), PathReq(Protocols.OSPF, "Lyon", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Cadarache', [PathReq(Protocols.OSPF, "Cadarache", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Marseille', 'Cadarache'], False), PathReq(Protocols.OSPF, "Cadarache", ['Pau', 'Toulouse', 'Montpellier', 'Marseille', 'Cadarache'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Clermont-Ferrand', [PathReq(Protocols.OSPF, "Clermont-Ferrand", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'Clermont-Ferrand'], False), PathReq(Protocols.OSPF, "Clermont-Ferrand", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'Clermont-Ferrand'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Montpellier', [PathReq(Protocols.OSPF, "Montpellier", ['Pau', 'Toulouse', 'Montpellier'], False), PathReq(Protocols.OSPF, "Montpellier", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Corte', [PathReq(Protocols.OSPF, "Corte", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Marseille', 'Corte'], False), PathReq(Protocols.OSPF, "Corte", ['Pau', 'Toulouse', 'Montpellier', 'Marseille', 'Corte'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Besancon', [PathReq(Protocols.OSPF, "Besancon", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'Besancon'], False), PathReq(Protocols.OSPF, "Besancon", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'Besancon'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Marseille', [PathReq(Protocols.OSPF, "Marseille", ['Pau', 'Toulouse', 'Montpellier', 'Marseille'], False), PathReq(Protocols.OSPF, "Marseille", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Marseille'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'InternetTTmondial', [PathReq(Protocols.OSPF, "InternetTTmondial", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'InternetTTmondial'], False), PathReq(Protocols.OSPF, "InternetTTmondial", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'InternetTTmondial'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Martinique,TTGuadeloupe,TTCayenne', [PathReq(Protocols.OSPF, "Martinique,TTGuadeloupe,TTCayenne", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne'], False), PathReq(Protocols.OSPF, "Martinique,TTGuadeloupe,TTCayenne", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'Martinique,TTGuadeloupe,TTCayenne'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Caen', [PathReq(Protocols.OSPF, "Caen", ['Pau', 'Bordeaux', 'Poiters', 'Paris', 'Rouen', 'Caen'], False), PathReq(Protocols.OSPF, "Caen", ['Pau', 'Bordeaux', 'Poiters', 'Nantes', 'Rennes', 'Caen'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Grenoble', [PathReq(Protocols.OSPF, "Grenoble", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'Grenoble'], False), PathReq(Protocols.OSPF, "Grenoble", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'Grenoble'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'CERN', [PathReq(Protocols.OSPF, "CERN", ['Pau', 'Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'CERN'], False), PathReq(Protocols.OSPF, "CERN", ['Pau', 'Toulouse', 'Montpellier', 'Lyon', 'CERN'], False)], False),
]

edges_cost_kconnected_16_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 1),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 2),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 3),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 3),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 2),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 1),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 2),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 2),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 2),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 1),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 2),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 2),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

reqs_order_16_2 = [
    PathOrderReq(Protocols.OSPF, 'Poiters', [PathReq(Protocols.OSPF, "Poiters", ['Bordeaux', 'Poiters'], False), PathReq(Protocols.OSPF, "Poiters", ['Bordeaux', 'Toulouse', 'Montpellier', 'Lyon', 'InternetTTmondial', 'Paris', 'Poiters'], False)], False),
    PathOrderReq(Protocols.OSPF, 'InternetTTmondial', [PathReq(Protocols.OSPF, "InternetTTmondial", ['Paris', 'InternetTTmondial'], False), PathReq(Protocols.OSPF, "InternetTTmondial", ['Paris', 'Lyon', 'InternetTTmondial'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Montpellier', [PathReq(Protocols.OSPF, "Montpellier", ['Toulouse', 'Montpellier'], False), PathReq(Protocols.OSPF, "Montpellier", ['Toulouse', 'Bordeaux', 'Poiters', 'Paris', 'Lyon', 'Montpellier'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Paris', [PathReq(Protocols.OSPF, "Paris", ['Rouen', 'Paris'], False), PathReq(Protocols.OSPF, "Paris", ['Rouen', 'Caen', 'Rennes', 'Nantes', 'Poiters', 'Paris'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Strasbourg', [PathReq(Protocols.OSPF, "Strasbourg", ['Nancy', 'Strasbourg'], False), PathReq(Protocols.OSPF, "Strasbourg", ['Nancy', 'Reims', 'Paris', 'Lyon', 'Besancon', 'Strasbourg'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Paris', [PathReq(Protocols.OSPF, "Paris", ['NodeID13', 'Paris'], False), PathReq(Protocols.OSPF, "Paris", ['NodeID13', 'Martinique,TTGuadeloupe,TTCayenne', 'Lyon', 'InternetTTmondial', 'Paris'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Nice', [PathReq(Protocols.OSPF, "Nice", ['Marseille', 'Nice'], False), PathReq(Protocols.OSPF, "Nice", ['Marseille', 'Montpellier', 'Lyon', 'Grenoble', 'Nice'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Bordeaux', [PathReq(Protocols.OSPF, "Bordeaux", ['Pau', 'Bordeaux'], False), PathReq(Protocols.OSPF, "Bordeaux", ['Pau', 'Toulouse', 'Bordeaux'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Grenoble', [PathReq(Protocols.OSPF, "Grenoble", ['Nice', 'Grenoble'], False), PathReq(Protocols.OSPF, "Grenoble", ['Nice', 'Marseille', 'Montpellier', 'Lyon', 'Grenoble'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Paris', [PathReq(Protocols.OSPF, "Paris", ['Lille', 'Paris'], False), PathReq(Protocols.OSPF, "Paris", ['Lille', 'Compiegne', 'Paris'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Rouen', [PathReq(Protocols.OSPF, "Rouen", ['Caen', 'Rouen'], False), PathReq(Protocols.OSPF, "Rouen", ['Caen', 'Rennes', 'Nantes', 'Poiters', 'Paris', 'Rouen'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Poiters', [PathReq(Protocols.OSPF, "Poiters", ['Limoges', 'Poiters'], False), PathReq(Protocols.OSPF, "Poiters", ['Limoges', 'Clermont-Ferrand', 'Lyon', 'InternetTTmondial', 'Paris', 'Poiters'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Rennes', [PathReq(Protocols.OSPF, "Rennes", ['Nantes', 'Rennes'], False), PathReq(Protocols.OSPF, "Rennes", ['Nantes', 'Poiters', 'Paris', 'Rouen', 'Caen', 'Rennes'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Lyon', [PathReq(Protocols.OSPF, "Lyon", ['Dijon', 'Lyon'], False), PathReq(Protocols.OSPF, "Lyon", ['Dijon', 'Besancon', 'Lyon'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Toulouse', [PathReq(Protocols.OSPF, "Toulouse", ['Bordeaux', 'Toulouse'], False), PathReq(Protocols.OSPF, "Toulouse", ['Bordeaux', 'Pau', 'Toulouse'], False)], False),
    PathOrderReq(Protocols.OSPF, 'InternetTTmondial', [PathReq(Protocols.OSPF, "InternetTTmondial", ['Lyon', 'InternetTTmondial'], False), PathReq(Protocols.OSPF, "InternetTTmondial", ['Lyon', 'Paris', 'InternetTTmondial'], False)], False),
]

edges_cost_order_16_2 = [
    ("Orleans", "Paris", 1),
    ("Orleans", "Poiters", 1),
    ("Lyon", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Lyon", "Montpellier", 1),
    ("Lyon", "Paris", 3),
    ("Lyon", "Grenoble", 1),
    ("Lyon", "Dijon", 1),
    ("Lyon", "CERN", 1),
    ("Lyon", "Besancon", 1),
    ("Lyon", "InternetTTmondial", 1),
    ("Lyon", "Clermont-Ferrand", 1),
    ("Pau", "Bordeaux", 1),
    ("Pau", "Toulouse", 1),
    ("Strasbourg", "Besancon", 1),
    ("Strasbourg", "Nancy", 1),
    ("Lille", "Paris", 1),
    ("Lille", "Compiegne", 1),
    ("Paris", "Reims", 1),
    ("Paris", "Lyon", 1),
    ("Paris", "SFINX", 1),
    ("Paris", "Lille", 1),
    ("Paris", "Compiegne", 1),
    ("Paris", "NodeID13", 1),
    ("Paris", "Orleans", 1),
    ("Paris", "Rouen", 1),
    ("Paris", "Poiters", 1),
    ("Paris", "InternetTTmondial", 1),
    ("Paris", "Geant2", 1),
    ("Poiters", "Paris", 1),
    ("Poiters", "Orleans", 1),
    ("Poiters", "Bordeaux", 1),
    ("Poiters", "Nantes", 1),
    ("Poiters", "Limoges", 1),
    ("Compiegne", "Paris", 1),
    ("Compiegne", "Lille", 1),
    ("Limoges", "Poiters", 1),
    ("Limoges", "Clermont-Ferrand", 1),
    ("Reims", "Paris", 1),
    ("Reims", "Nancy", 1),
    ("InternetTTmondial", "Paris", 1),
    ("InternetTTmondial", "Lyon", 1),
    ("NodeID13", "Paris", 1),
    ("NodeID13", "LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", 1),
    ("NodeID13", "Martinique,TTGuadeloupe,TTCayenne", 1),
    ("Clermont-Ferrand", "Lyon", 1),
    ("Clermont-Ferrand", "Limoges", 2),
    ("Grenoble", "Lyon", 1),
    ("Grenoble", "Nice", 1),
    ("Cadarache", "Marseille", 1),
    ("Nantes", "Rennes", 1),
    ("Nantes", "Poiters", 1),
    ("LaTTReunion,TTNouvelleTTCaledonie,TTMayotte,TTTahiti", "NodeID13", 1),
    ("Dijon", "Lyon", 1),
    ("Dijon", "Besancon", 1),
    ("Nancy", "Reims", 1),
    ("Nancy", "Strasbourg", 1),
    ("Rennes", "Caen", 1),
    ("Rennes", "Nantes", 1),
    ("Bordeaux", "Poiters", 1),
    ("Bordeaux", "Toulouse", 1),
    ("Bordeaux", "Pau", 1),
    ("Marseille", "Corte", 1),
    ("Marseille", "Cadarache", 1),
    ("Marseille", "Montpellier", 1),
    ("Marseille", "Nice", 1),
    ("Toulouse", "Bordeaux", 1),
    ("Toulouse", "Pau", 1),
    ("Toulouse", "Montpellier", 1),
    ("Montpellier", "Lyon", 1),
    ("Montpellier", "Marseille", 1),
    ("Montpellier", "Toulouse", 1),
    ("CERN", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "Lyon", 1),
    ("Martinique,TTGuadeloupe,TTCayenne", "NodeID13", 2),
    ("SFINX", "Paris", 1),
    ("Caen", "Rennes", 1),
    ("Caen", "Rouen", 1),
    ("Nice", "Marseille", 1),
    ("Nice", "Grenoble", 1),
    ("Besancon", "Lyon", 1),
    ("Besancon", "Dijon", 1),
    ("Besancon", "Strasbourg", 1),
    ("Rouen", "Paris", 1),
    ("Rouen", "Caen", 1),
    ("Corte", "Marseille", 1),
    ("Geant2", "Paris", 1),
]

####################

reqs_simple = [reqs_simple_1,reqs_simple_2,reqs_simple_4,reqs_simple_8,reqs_simple_16]

reqs_simple_vals = [edges_cost_simple_1,edges_cost_simple_2,edges_cost_simple_4,edges_cost_simple_8,edges_cost_simple_16]

####################

reqs_ecmp = [reqs_ecmp_1_2,reqs_ecmp_2_2,reqs_ecmp_4_2,reqs_ecmp_8_2,reqs_ecmp_16_2]

reqs_ecmp_vals = [edges_cost_ecmp_1_2,edges_cost_ecmp_2_2,edges_cost_ecmp_4_2,edges_cost_ecmp_8_2,edges_cost_ecmp_16_2]

####################

reqs_kconnected = [reqs_kconnected_1_2,reqs_kconnected_2_2,reqs_kconnected_4_2,reqs_kconnected_8_2,reqs_kconnected_16_2]

reqs_kconnected_vals = [edges_cost_kconnected_1_2,edges_cost_kconnected_2_2,edges_cost_kconnected_4_2,edges_cost_kconnected_8_2,edges_cost_kconnected_16_2]

####################

reqs_order = [reqs_order_1_2, reqs_order_2_2, reqs_order_4_2, reqs_order_8_2, reqs_order_16_2]

reqs_order_vals = [edges_cost_order_1_2, edges_cost_order_2_2, edges_cost_order_4_2, edges_cost_order_8_2, edges_cost_order_16_2]

####################

