Module pyastrobee.config.iss_paths
Alternative method for searching the graph of safe sets in the ISS
The safe-set of boxes in the ISS is pretty small, so it's not too hard to just enumerate all of the paths between different boxes and use a lookup table.
PATHS[start][end] will yield a list of safe boxes from start to end
As compared with depth-first-search, the lookup table is about 10x faster using timeit
To recompute the lookup table, re-run the script, copy the output here, and autoformat the file with Black
View Source
"""Alternative method for searching the graph of safe sets in the ISS
The safe-set of boxes in the ISS is pretty small, so it's not too hard to just enumerate all of the paths between
different boxes and use a lookup table.
PATHS[start][end] will yield a list of safe boxes from start to end
As compared with depth-first-search, the lookup table is about 10x faster using timeit
To recompute the lookup table, re-run the script, copy the output here, and autoformat the file with Black
"""
from pprint import pprint
from collections import defaultdict
from pyastrobee.config.iss_safe_boxes import compute_iss_graph
from pyastrobee.utils.algos import dfs
# Slightly hacky but it works
def _dp_dfs(graph: dict[str, list[str]]) -> dict[str, dict[str, list[str]]]:
dp = defaultdict(dict)
for start in graph:
for end in graph:
if start in dp and end in dp[start]:
continue
else:
path = dfs(graph, start, end)
for i in range(len(path)):
for j in range(i, len(path)):
dp[path[i]][path[j]] = path[i : j + 1]
return dp
def print_path_lookup_table():
graph = compute_iss_graph()
all_paths = _dp_dfs(graph)
pprint(dict(all_paths), indent=0, compact=True, width=200)
def print_graph():
graph = compute_iss_graph()
pprint(graph, indent=0, compact=True, width=200)
GRAPH = {
"cupola": ["n3_cupola_corridor"],
"eu_lab": ["n2_eu_corridor"],
"jpm": ["jpm_n2_corridor"],
"jpm_n2_corridor": ["jpm", "node_2"],
"n1_n3_corridor": ["node_1", "node_3_a"],
"n2_eu_corridor": ["node_2", "eu_lab"],
"n2_us_corridor": ["node_2", "us_lab"],
"n3_cupola_corridor": ["node_3_b", "cupola"],
"node_1": ["us_n1_corridor", "n1_n3_corridor"],
"node_2": ["jpm_n2_corridor", "n2_eu_corridor", "n2_us_corridor"],
"node_3_a": ["node_3_b", "n1_n3_corridor"],
"node_3_b": ["node_3_a", "n3_cupola_corridor"],
"us_lab": ["n2_us_corridor", "us_n1_corridor"],
"us_n1_corridor": ["us_lab", "node_1"],
}
PATHS = {
"cupola": {
"cupola": ["cupola"],
"eu_lab": [
"cupola",
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
"eu_lab",
],
"jpm": [
"cupola",
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
"jpm",
],
"jpm_n2_corridor": [
"cupola",
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
],
"n1_n3_corridor": [
"cupola",
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
],
"n2_eu_corridor": [
"cupola",
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
],
"n2_us_corridor": [
"cupola",
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
],
"n3_cupola_corridor": ["cupola", "n3_cupola_corridor"],
"node_1": [
"cupola",
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
],
"node_2": [
"cupola",
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
],
"node_3_a": ["cupola", "n3_cupola_corridor", "node_3_b", "node_3_a"],
"node_3_b": ["cupola", "n3_cupola_corridor", "node_3_b"],
"us_lab": [
"cupola",
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
],
"us_n1_corridor": [
"cupola",
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
],
},
"eu_lab": {
"cupola": [
"eu_lab",
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
"cupola",
],
"eu_lab": ["eu_lab"],
"jpm": ["eu_lab", "n2_eu_corridor", "node_2", "jpm_n2_corridor", "jpm"],
"jpm_n2_corridor": ["eu_lab", "n2_eu_corridor", "node_2", "jpm_n2_corridor"],
"n1_n3_corridor": [
"eu_lab",
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
],
"n2_eu_corridor": ["eu_lab", "n2_eu_corridor"],
"n2_us_corridor": ["eu_lab", "n2_eu_corridor", "node_2", "n2_us_corridor"],
"n3_cupola_corridor": [
"eu_lab",
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
],
"node_1": [
"eu_lab",
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
],
"node_2": ["eu_lab", "n2_eu_corridor", "node_2"],
"node_3_a": [
"eu_lab",
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
],
"node_3_b": [
"eu_lab",
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
],
"us_lab": ["eu_lab", "n2_eu_corridor", "node_2", "n2_us_corridor", "us_lab"],
"us_n1_corridor": [
"eu_lab",
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
],
},
"jpm": {
"cupola": [
"jpm",
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
"cupola",
],
"eu_lab": ["jpm", "jpm_n2_corridor", "node_2", "n2_eu_corridor", "eu_lab"],
"jpm": ["jpm"],
"jpm_n2_corridor": ["jpm", "jpm_n2_corridor"],
"n1_n3_corridor": [
"jpm",
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
],
"n2_eu_corridor": ["jpm", "jpm_n2_corridor", "node_2", "n2_eu_corridor"],
"n2_us_corridor": ["jpm", "jpm_n2_corridor", "node_2", "n2_us_corridor"],
"n3_cupola_corridor": [
"jpm",
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
],
"node_1": [
"jpm",
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
],
"node_2": ["jpm", "jpm_n2_corridor", "node_2"],
"node_3_a": [
"jpm",
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
],
"node_3_b": [
"jpm",
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
],
"us_lab": ["jpm", "jpm_n2_corridor", "node_2", "n2_us_corridor", "us_lab"],
"us_n1_corridor": [
"jpm",
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
],
},
"jpm_n2_corridor": {
"cupola": [
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
"cupola",
],
"eu_lab": ["jpm_n2_corridor", "node_2", "n2_eu_corridor", "eu_lab"],
"jpm": ["jpm_n2_corridor", "jpm"],
"jpm_n2_corridor": ["jpm_n2_corridor"],
"n1_n3_corridor": [
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
],
"n2_eu_corridor": ["jpm_n2_corridor", "node_2", "n2_eu_corridor"],
"n2_us_corridor": ["jpm_n2_corridor", "node_2", "n2_us_corridor"],
"n3_cupola_corridor": [
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
],
"node_1": [
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
],
"node_2": ["jpm_n2_corridor", "node_2"],
"node_3_a": [
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
],
"node_3_b": [
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
],
"us_lab": ["jpm_n2_corridor", "node_2", "n2_us_corridor", "us_lab"],
"us_n1_corridor": [
"jpm_n2_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
],
},
"n1_n3_corridor": {
"cupola": [
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
"cupola",
],
"eu_lab": [
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
"eu_lab",
],
"jpm": [
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
"jpm",
],
"jpm_n2_corridor": [
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
],
"n1_n3_corridor": ["n1_n3_corridor"],
"n2_eu_corridor": [
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
],
"n2_us_corridor": [
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
],
"n3_cupola_corridor": [
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
],
"node_1": ["n1_n3_corridor", "node_1"],
"node_2": [
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
],
"node_3_a": ["n1_n3_corridor", "node_3_a"],
"node_3_b": ["n1_n3_corridor", "node_3_a", "node_3_b"],
"us_lab": ["n1_n3_corridor", "node_1", "us_n1_corridor", "us_lab"],
"us_n1_corridor": ["n1_n3_corridor", "node_1", "us_n1_corridor"],
},
"n2_eu_corridor": {
"cupola": [
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
"cupola",
],
"eu_lab": ["n2_eu_corridor", "eu_lab"],
"jpm": ["n2_eu_corridor", "node_2", "jpm_n2_corridor", "jpm"],
"jpm_n2_corridor": ["n2_eu_corridor", "node_2", "jpm_n2_corridor"],
"n1_n3_corridor": [
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
],
"n2_eu_corridor": ["n2_eu_corridor"],
"n2_us_corridor": ["n2_eu_corridor", "node_2", "n2_us_corridor"],
"n3_cupola_corridor": [
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
],
"node_1": [
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
],
"node_2": ["n2_eu_corridor", "node_2"],
"node_3_a": [
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
],
"node_3_b": [
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
],
"us_lab": ["n2_eu_corridor", "node_2", "n2_us_corridor", "us_lab"],
"us_n1_corridor": [
"n2_eu_corridor",
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
],
},
"n2_us_corridor": {
"cupola": [
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
"cupola",
],
"eu_lab": ["n2_us_corridor", "node_2", "n2_eu_corridor", "eu_lab"],
"jpm": ["n2_us_corridor", "node_2", "jpm_n2_corridor", "jpm"],
"jpm_n2_corridor": ["n2_us_corridor", "node_2", "jpm_n2_corridor"],
"n1_n3_corridor": [
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
],
"n2_eu_corridor": ["n2_us_corridor", "node_2", "n2_eu_corridor"],
"n2_us_corridor": ["n2_us_corridor"],
"n3_cupola_corridor": [
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
],
"node_1": ["n2_us_corridor", "us_lab", "us_n1_corridor", "node_1"],
"node_2": ["n2_us_corridor", "node_2"],
"node_3_a": [
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
],
"node_3_b": [
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
],
"us_lab": ["n2_us_corridor", "us_lab"],
"us_n1_corridor": ["n2_us_corridor", "us_lab", "us_n1_corridor"],
},
"n3_cupola_corridor": {
"cupola": ["n3_cupola_corridor", "cupola"],
"eu_lab": [
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
"eu_lab",
],
"jpm": [
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
"jpm",
],
"jpm_n2_corridor": [
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
],
"n1_n3_corridor": [
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
],
"n2_eu_corridor": [
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
],
"n2_us_corridor": [
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
],
"n3_cupola_corridor": ["n3_cupola_corridor"],
"node_1": [
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
],
"node_2": [
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
],
"node_3_a": ["n3_cupola_corridor", "node_3_b", "node_3_a"],
"node_3_b": ["n3_cupola_corridor", "node_3_b"],
"us_lab": [
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
],
"us_n1_corridor": [
"n3_cupola_corridor",
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
],
},
"node_1": {
"cupola": [
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
"cupola",
],
"eu_lab": [
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
"eu_lab",
],
"jpm": [
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
"jpm",
],
"jpm_n2_corridor": [
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
],
"n1_n3_corridor": ["node_1", "n1_n3_corridor"],
"n2_eu_corridor": [
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
],
"n2_us_corridor": ["node_1", "us_n1_corridor", "us_lab", "n2_us_corridor"],
"n3_cupola_corridor": [
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
],
"node_1": ["node_1"],
"node_2": ["node_1", "us_n1_corridor", "us_lab", "n2_us_corridor", "node_2"],
"node_3_a": ["node_1", "n1_n3_corridor", "node_3_a"],
"node_3_b": ["node_1", "n1_n3_corridor", "node_3_a", "node_3_b"],
"us_lab": ["node_1", "us_n1_corridor", "us_lab"],
"us_n1_corridor": ["node_1", "us_n1_corridor"],
},
"node_2": {
"cupola": [
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
"cupola",
],
"eu_lab": ["node_2", "n2_eu_corridor", "eu_lab"],
"jpm": ["node_2", "jpm_n2_corridor", "jpm"],
"jpm_n2_corridor": ["node_2", "jpm_n2_corridor"],
"n1_n3_corridor": [
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
],
"n2_eu_corridor": ["node_2", "n2_eu_corridor"],
"n2_us_corridor": ["node_2", "n2_us_corridor"],
"n3_cupola_corridor": [
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
],
"node_1": ["node_2", "n2_us_corridor", "us_lab", "us_n1_corridor", "node_1"],
"node_2": ["node_2"],
"node_3_a": [
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
],
"node_3_b": [
"node_2",
"n2_us_corridor",
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
],
"us_lab": ["node_2", "n2_us_corridor", "us_lab"],
"us_n1_corridor": ["node_2", "n2_us_corridor", "us_lab", "us_n1_corridor"],
},
"node_3_a": {
"cupola": ["node_3_a", "node_3_b", "n3_cupola_corridor", "cupola"],
"eu_lab": [
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
"eu_lab",
],
"jpm": [
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
"jpm",
],
"jpm_n2_corridor": [
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
],
"n1_n3_corridor": ["node_3_a", "n1_n3_corridor"],
"n2_eu_corridor": [
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
],
"n2_us_corridor": [
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
],
"n3_cupola_corridor": ["node_3_a", "node_3_b", "n3_cupola_corridor"],
"node_1": ["node_3_a", "n1_n3_corridor", "node_1"],
"node_2": [
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
],
"node_3_a": ["node_3_a"],
"node_3_b": ["node_3_a", "node_3_b"],
"us_lab": ["node_3_a", "n1_n3_corridor", "node_1", "us_n1_corridor", "us_lab"],
"us_n1_corridor": ["node_3_a", "n1_n3_corridor", "node_1", "us_n1_corridor"],
},
"node_3_b": {
"cupola": ["node_3_b", "n3_cupola_corridor", "cupola"],
"eu_lab": [
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
"eu_lab",
],
"jpm": [
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
"jpm",
],
"jpm_n2_corridor": [
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
],
"n1_n3_corridor": ["node_3_b", "node_3_a", "n1_n3_corridor"],
"n2_eu_corridor": [
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
],
"n2_us_corridor": [
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
],
"n3_cupola_corridor": ["node_3_b", "n3_cupola_corridor"],
"node_1": ["node_3_b", "node_3_a", "n1_n3_corridor", "node_1"],
"node_2": [
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
],
"node_3_a": ["node_3_b", "node_3_a"],
"node_3_b": ["node_3_b"],
"us_lab": [
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
"us_lab",
],
"us_n1_corridor": [
"node_3_b",
"node_3_a",
"n1_n3_corridor",
"node_1",
"us_n1_corridor",
],
},
"us_lab": {
"cupola": [
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
"cupola",
],
"eu_lab": ["us_lab", "n2_us_corridor", "node_2", "n2_eu_corridor", "eu_lab"],
"jpm": ["us_lab", "n2_us_corridor", "node_2", "jpm_n2_corridor", "jpm"],
"jpm_n2_corridor": ["us_lab", "n2_us_corridor", "node_2", "jpm_n2_corridor"],
"n1_n3_corridor": ["us_lab", "us_n1_corridor", "node_1", "n1_n3_corridor"],
"n2_eu_corridor": ["us_lab", "n2_us_corridor", "node_2", "n2_eu_corridor"],
"n2_us_corridor": ["us_lab", "n2_us_corridor"],
"n3_cupola_corridor": [
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
],
"node_1": ["us_lab", "us_n1_corridor", "node_1"],
"node_2": ["us_lab", "n2_us_corridor", "node_2"],
"node_3_a": [
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
],
"node_3_b": [
"us_lab",
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
],
"us_lab": ["us_lab"],
"us_n1_corridor": ["us_lab", "us_n1_corridor"],
},
"us_n1_corridor": {
"cupola": [
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
"cupola",
],
"eu_lab": [
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
"eu_lab",
],
"jpm": [
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
"jpm",
],
"jpm_n2_corridor": [
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"jpm_n2_corridor",
],
"n1_n3_corridor": ["us_n1_corridor", "node_1", "n1_n3_corridor"],
"n2_eu_corridor": [
"us_n1_corridor",
"us_lab",
"n2_us_corridor",
"node_2",
"n2_eu_corridor",
],
"n2_us_corridor": ["us_n1_corridor", "us_lab", "n2_us_corridor"],
"n3_cupola_corridor": [
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
"n3_cupola_corridor",
],
"node_1": ["us_n1_corridor", "node_1"],
"node_2": ["us_n1_corridor", "us_lab", "n2_us_corridor", "node_2"],
"node_3_a": ["us_n1_corridor", "node_1", "n1_n3_corridor", "node_3_a"],
"node_3_b": [
"us_n1_corridor",
"node_1",
"n1_n3_corridor",
"node_3_a",
"node_3_b",
],
"us_lab": ["us_n1_corridor", "us_lab"],
"us_n1_corridor": ["us_n1_corridor"],
},
}
if __name__ == "__main__":
print_path_lookup_table()
print("\n--------------------------\n")
print_graph()
Variables
GRAPH
PATHS
Functions
print_graph
def print_graph(
)
View Source
def print_graph():
graph = compute_iss_graph()
pprint(graph, indent=0, compact=True, width=200)
print_path_lookup_table
def print_path_lookup_table(
)
View Source
def print_path_lookup_table():
graph = compute_iss_graph()
all_paths = _dp_dfs(graph)
pprint(dict(all_paths), indent=0, compact=True, width=200)