Lekcja – Podgrafy
lines = {
'BE' : ['IT', 'DE'],
'IT' : ['ES', 'PT'],
'DE' : ['PL'],
'LT' : ['SE'],
'ES' : ['DE', 'BE'],
'PT' : ['ES'],
'PL' : ['LT'],
'SE' : []
}
req1 = {
'IT': ['PT'],
'PT': ['ES'],
'ES': ['BE', 'DE']
}
req2 = {
'BE': ['DE'],
'DE': ['SE']
}
req3 = {
'GB': ['BE'],
'BE': ['DE']
}
def is_subgraph(V, V_sub):
for v in V_sub.keys():
if not v in V.keys():
print('Missing node:', v)
return False
else:
for e in V_sub[v]:
if not e in V[v]:
print('Missing connection:', v, e)
return False
return True
print('REQ-1:', is_subgraph(lines, req1))
print('REQ-2:', is_subgraph(lines, req2))
print('REQ-3:', is_subgraph(lines, req3))
Lab
cantor = {
'EUR' : ['USD', 'GBP', 'CHF'],
'USD' : ['EUR', 'GBP', 'CHF'],
'SEK' : ['EUR'],
'JPY' : ['EUR', 'USD'],
'CAD' : ['USD', 'EUR'],
'GBP' : [],
'CHF' : []
}
client1 = {
'EUR' : ['USD'],
'USD' : []
}
client2 = {
'EUR' : ['CAD'],
'USD' : ['EUR' ],
'SEK' : ['EUR'],
'CAD' : []
}
client3 = {
'JPY' : [],
'EUR' : ['USD'],
'USD' : ['JPY']
}
def is_subgraph(V, V_sub):
for v in V_sub.keys():
if not v in V.keys():
print('Missing node:', v)
return False
else:
for e in V_sub[v]:
if not e in V[v]:
print('Missing connection:', v, e)
return False
return True
print(f"Client1: {is_subgraph(cantor, client1)}")
print(f"Client2: {is_subgraph(cantor, client2)}")
print(f"Client3: {is_subgraph(cantor, client3)}")