mqt.ionshuttler.single_shuttler.memory_sat

Module Contents

create_graph(m: int, n: int, ion_chain_size_vertical: int, ion_chain_size_horizontal: int) Graph[source]
get_possible_moves_through_node(nx_g: Graph, idc_dict: dict[int, Edge], node: Node) list[tuple[int, int]][source]
plot_state(nx_g: Graph, plot_ions: bool = True) None[source]
create_idc_dictionary(nx_g: Graph) dict[int, Edge][source]
get_idx_from_idc(edge_dictionary: dict[int, Edge], idc: Edge) int[source]
get_idc_from_idx(edge_dictionary: dict[int, Edge], idx: int) Edge[source]
get_path_to_node(nx_g: Graph, src: Node, tar: Node) list[Edge][source]
get_junctions(nx_g: Graph, node: Node, other_node: Node, ion_chain_size_horizontal: int, ion_chain_size_vertical: int) list[Node][source]
get_possible_moves_over_junction(nx_g: Graph, edge: Edge, ion_chain_size_horizontal: int, ion_chain_size_vertical: int) list[Edge][source]
create_graph_dict(nx_g: Graph, func: Callable[[Graph, Edge, int, int], list[Edge]], ion_chain_size_horizontal: int, ion_chain_size_vertical: int, edges: list[Edge] | str = 'all') dict[Edge, list[Edge]][source]
get_path_between_edges(nx_g: Graph, src_edge: Edge, tar_edge: Edge) list[Edge][source]
get_possible_previous_edges_from_junction_move(nx_g, edge, ion_chain_size_horizontal, ion_chain_size_vertical)[source]
class MemorySAT(graph: Graph, ion_chain_size_horizontal: int, ion_chain_size_vertical: int, ions: list[int], timesteps: int)[source]
graph
ion_chain_size_horizontal
ion_chain_size_vertical
idc_dict
entry_node
exit_node
ions
timesteps
s
states
create_constraints(starting_traps: list[Edge]) None[source]
evaluate(sequence: list[int | tuple[int, ...]], num_of_registers: int) bool[source]
plot(show_ions: bool = False) None[source]