Base Class

class arline_quantum.qubit_connectivity.qubit_connectivity.All2All(num_qubits)

Bases: arline_quantum.qubit_connectivity.qubit_connectivity.QubitConnectivity

Fully-Connected Qubit Connectivity

Description:

Fully-Connected Qubit Connectivity
Parameters:num_qubits (int) – number of qubits
add_connection(node_1, node_2)

Add connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
add_node()

Add node

check_connection(connections)

Check connection between qubits

Parameters:connnections (tuple) – nodes numbers
Returns:True: if qubit is connected to other

False: if it is not connected

Return type:bool
check_fully_connected()

Check fully connection qubits or not

Returns:True: if it is fully connected

False: if it is not fully connected

Return type:bool
connectivity

Return connectivity

delete_connection(node_1, node_2)

Delete connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
delete_node(node)

Delete node

Parameters:node (int) – node number
find_all_paths(start, end, path=[])

Find all paths between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of paths

Return type:

list

find_path(start, end, path=[])

Find path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

find_shortest_path(start, end, path=[])

Find the shortest path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

static from_config(hardware_cfg)
get_coupling_map()

Convert adj_matrix to coupling map (list of [i,j])

get_least_connected_nodes()

Get list of the least connected nodes

Returns:list of the least connected nodes
Return type:list
get_most_connected_nodes()

Get list of the most connected nodes

Returns:list of the most connected nodes
Return type:list
get_num_nodes_with_given_num_connections(num_connections)

Get number of nodes with given number of connections

num_connections (int): number of connections

Returns:number of nodes with given number of connections
Return type:int
get_total_num_nets()

Get total number of nets

Returns:number of nets

False: if it is not fully connected

Return type:int or bool
name

Return name

num_qubits

Return number of qubits

print_connectivity()

Print connectivity

class arline_quantum.qubit_connectivity.qubit_connectivity.QubitConnectivity(name, num_qubits, connections_list=None, adj_matrix=None)

Bases: object

Qubit Connectivity

Description:

An abstract qubit connectivity class
Parameters:
  • name (str) – name of connectivity
  • num_qubits (int) – number of qubits
  • adj_matrix (list) – adjacency matrix, 2D array of shape (num_qubits, num_qubits)
  • connections_list (list) – list of tuples, each tuple describes one connection if form (qubit_from, qubit_to)
add_connection(node_1, node_2)

Add connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
add_node()

Add node

check_connection(connections)

Check connection between qubits

Parameters:connnections (tuple) – nodes numbers
Returns:True: if qubit is connected to other

False: if it is not connected

Return type:bool
check_fully_connected()

Check fully connection qubits or not

Returns:True: if it is fully connected

False: if it is not fully connected

Return type:bool
connectivity

Return connectivity

delete_connection(node_1, node_2)

Delete connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
delete_node(node)

Delete node

Parameters:node (int) – node number
find_all_paths(start, end, path=[])

Find all paths between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of paths

Return type:

list

find_path(start, end, path=[])

Find path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

find_shortest_path(start, end, path=[])

Find the shortest path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

static from_config(hardware_cfg)
get_coupling_map()

Convert adj_matrix to coupling map (list of [i,j])

get_least_connected_nodes()

Get list of the least connected nodes

Returns:list of the least connected nodes
Return type:list
get_most_connected_nodes()

Get list of the most connected nodes

Returns:list of the most connected nodes
Return type:list
get_num_nodes_with_given_num_connections(num_connections)

Get number of nodes with given number of connections

num_connections (int): number of connections

Returns:number of nodes with given number of connections
Return type:int
get_total_num_nets()

Get total number of nets

Returns:number of nets

False: if it is not fully connected

Return type:int or bool
name

Return name

num_qubits

Return number of qubits

print_connectivity()

Print connectivity

IBM Connectivity

Inheritance diagram of arline_quantum.qubit_connectivity.ibm_connectivity
class arline_quantum.qubit_connectivity.ibm_connectivity.Rueschlikon

Bases: arline_quantum.qubit_connectivity.qubit_connectivity.QubitConnectivity

Rueschlikon Qubit Connectivity

Description:

Rueschlikon Qubit Connectivity
add_connection(node_1, node_2)

Add connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
add_node()

Add node

check_connection(connections)

Check connection between qubits

Parameters:connnections (tuple) – nodes numbers
Returns:True: if qubit is connected to other

False: if it is not connected

Return type:bool
check_fully_connected()

Check fully connection qubits or not

Returns:True: if it is fully connected

False: if it is not fully connected

Return type:bool
connectivity

Return connectivity

delete_connection(node_1, node_2)

Delete connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
delete_node(node)

Delete node

Parameters:node (int) – node number
find_all_paths(start, end, path=[])

Find all paths between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of paths

Return type:

list

find_path(start, end, path=[])

Find path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

find_shortest_path(start, end, path=[])

Find the shortest path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

static from_config(hardware_cfg)
get_coupling_map()

Convert adj_matrix to coupling map (list of [i,j])

get_least_connected_nodes()

Get list of the least connected nodes

Returns:list of the least connected nodes
Return type:list
get_most_connected_nodes()

Get list of the most connected nodes

Returns:list of the most connected nodes
Return type:list
get_num_nodes_with_given_num_connections(num_connections)

Get number of nodes with given number of connections

num_connections (int): number of connections

Returns:number of nodes with given number of connections
Return type:int
get_total_num_nets()

Get total number of nets

Returns:number of nets

False: if it is not fully connected

Return type:int or bool
name

Return name

num_qubits

Return number of qubits

print_connectivity()

Print connectivity

class arline_quantum.qubit_connectivity.ibm_connectivity.RueschlikonSymmetrical

Bases: arline_quantum.qubit_connectivity.qubit_connectivity.QubitConnectivity

Rueschlikon Symmetrical Qubit Connectivity

Description:

Rueschlikon Symmetrical Qubit Connectivity
add_connection(node_1, node_2)

Add connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
add_node()

Add node

check_connection(connections)

Check connection between qubits

Parameters:connnections (tuple) – nodes numbers
Returns:True: if qubit is connected to other

False: if it is not connected

Return type:bool
check_fully_connected()

Check fully connection qubits or not

Returns:True: if it is fully connected

False: if it is not fully connected

Return type:bool
connectivity

Return connectivity

delete_connection(node_1, node_2)

Delete connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
delete_node(node)

Delete node

Parameters:node (int) – node number
find_all_paths(start, end, path=[])

Find all paths between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of paths

Return type:

list

find_path(start, end, path=[])

Find path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

find_shortest_path(start, end, path=[])

Find the shortest path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

static from_config(hardware_cfg)
get_coupling_map()

Convert adj_matrix to coupling map (list of [i,j])

get_least_connected_nodes()

Get list of the least connected nodes

Returns:list of the least connected nodes
Return type:list
get_most_connected_nodes()

Get list of the most connected nodes

Returns:list of the most connected nodes
Return type:list
get_num_nodes_with_given_num_connections(num_connections)

Get number of nodes with given number of connections

num_connections (int): number of connections

Returns:number of nodes with given number of connections
Return type:int
get_total_num_nets()

Get total number of nets

Returns:number of nets

False: if it is not fully connected

Return type:int or bool
name

Return name

num_qubits

Return number of qubits

print_connectivity()

Print connectivity

Rigetti Connectivity

Inheritance diagram of arline_quantum.qubit_connectivity.rigetti_connectivity
class arline_quantum.qubit_connectivity.rigetti_connectivity.Agave

Bases: arline_quantum.qubit_connectivity.qubit_connectivity.QubitConnectivity

Agave Qubit Connectivity

Description:

Agave Qubit Connectivity
add_connection(node_1, node_2)

Add connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
add_node()

Add node

check_connection(connections)

Check connection between qubits

Parameters:connnections (tuple) – nodes numbers
Returns:True: if qubit is connected to other

False: if it is not connected

Return type:bool
check_fully_connected()

Check fully connection qubits or not

Returns:True: if it is fully connected

False: if it is not fully connected

Return type:bool
connectivity

Return connectivity

delete_connection(node_1, node_2)

Delete connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
delete_node(node)

Delete node

Parameters:node (int) – node number
find_all_paths(start, end, path=[])

Find all paths between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of paths

Return type:

list

find_path(start, end, path=[])

Find path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

find_shortest_path(start, end, path=[])

Find the shortest path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

static from_config(hardware_cfg)
get_coupling_map()

Convert adj_matrix to coupling map (list of [i,j])

get_least_connected_nodes()

Get list of the least connected nodes

Returns:list of the least connected nodes
Return type:list
get_most_connected_nodes()

Get list of the most connected nodes

Returns:list of the most connected nodes
Return type:list
get_num_nodes_with_given_num_connections(num_connections)

Get number of nodes with given number of connections

num_connections (int): number of connections

Returns:number of nodes with given number of connections
Return type:int
get_total_num_nets()

Get total number of nets

Returns:number of nets

False: if it is not fully connected

Return type:int or bool
name

Return name

num_qubits

Return number of qubits

print_connectivity()

Print connectivity

class arline_quantum.qubit_connectivity.rigetti_connectivity.AgaveSymmetrical

Bases: arline_quantum.qubit_connectivity.qubit_connectivity.QubitConnectivity

Agave Symmetrical Qubit Connectivity

Description:

Agave Symmetrical Qubit Connectivity
add_connection(node_1, node_2)

Add connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
add_node()

Add node

check_connection(connections)

Check connection between qubits

Parameters:connnections (tuple) – nodes numbers
Returns:True: if qubit is connected to other

False: if it is not connected

Return type:bool
check_fully_connected()

Check fully connection qubits or not

Returns:True: if it is fully connected

False: if it is not fully connected

Return type:bool
connectivity

Return connectivity

delete_connection(node_1, node_2)

Delete connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
delete_node(node)

Delete node

Parameters:node (int) – node number
find_all_paths(start, end, path=[])

Find all paths between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of paths

Return type:

list

find_path(start, end, path=[])

Find path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

find_shortest_path(start, end, path=[])

Find the shortest path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

static from_config(hardware_cfg)
get_coupling_map()

Convert adj_matrix to coupling map (list of [i,j])

get_least_connected_nodes()

Get list of the least connected nodes

Returns:list of the least connected nodes
Return type:list
get_most_connected_nodes()

Get list of the most connected nodes

Returns:list of the most connected nodes
Return type:list
get_num_nodes_with_given_num_connections(num_connections)

Get number of nodes with given number of connections

num_connections (int): number of connections

Returns:number of nodes with given number of connections
Return type:int
get_total_num_nets()

Get total number of nets

Returns:number of nets

False: if it is not fully connected

Return type:int or bool
name

Return name

num_qubits

Return number of qubits

print_connectivity()

Print connectivity

class arline_quantum.qubit_connectivity.rigetti_connectivity.Aspen

Bases: arline_quantum.qubit_connectivity.qubit_connectivity.QubitConnectivity

Aspen Qubit Connectivity

Description:

Aspen Qubit Connectivity
add_connection(node_1, node_2)

Add connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
add_node()

Add node

check_connection(connections)

Check connection between qubits

Parameters:connnections (tuple) – nodes numbers
Returns:True: if qubit is connected to other

False: if it is not connected

Return type:bool
check_fully_connected()

Check fully connection qubits or not

Returns:True: if it is fully connected

False: if it is not fully connected

Return type:bool
connectivity

Return connectivity

delete_connection(node_1, node_2)

Delete connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
delete_node(node)

Delete node

Parameters:node (int) – node number
find_all_paths(start, end, path=[])

Find all paths between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of paths

Return type:

list

find_path(start, end, path=[])

Find path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

find_shortest_path(start, end, path=[])

Find the shortest path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

static from_config(hardware_cfg)
get_coupling_map()

Convert adj_matrix to coupling map (list of [i,j])

get_least_connected_nodes()

Get list of the least connected nodes

Returns:list of the least connected nodes
Return type:list
get_most_connected_nodes()

Get list of the most connected nodes

Returns:list of the most connected nodes
Return type:list
get_num_nodes_with_given_num_connections(num_connections)

Get number of nodes with given number of connections

num_connections (int): number of connections

Returns:number of nodes with given number of connections
Return type:int
get_total_num_nets()

Get total number of nets

Returns:number of nets

False: if it is not fully connected

Return type:int or bool
name

Return name

num_qubits

Return number of qubits

print_connectivity()

Print connectivity

class arline_quantum.qubit_connectivity.rigetti_connectivity.AspenSymmetrical

Bases: arline_quantum.qubit_connectivity.qubit_connectivity.QubitConnectivity

Aspen Symmetrical Qubit Connectivity

Description:

Aspen Symmetrical Qubit Connectivity
add_connection(node_1, node_2)

Add connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
add_node()

Add node

check_connection(connections)

Check connection between qubits

Parameters:connnections (tuple) – nodes numbers
Returns:True: if qubit is connected to other

False: if it is not connected

Return type:bool
check_fully_connected()

Check fully connection qubits or not

Returns:True: if it is fully connected

False: if it is not fully connected

Return type:bool
connectivity

Return connectivity

delete_connection(node_1, node_2)

Delete connection between two nodes

Parameters:
  • node_1 (int) – node number
  • node_2 (int) – node number
delete_node(node)

Delete node

Parameters:node (int) – node number
find_all_paths(start, end, path=[])

Find all paths between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of paths

Return type:

list

find_path(start, end, path=[])

Find path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

find_shortest_path(start, end, path=[])

Find the shortest path between two nodes

Parameters:
  • start (int) – start node number
  • end (int) – end node number
  • path (list) – list of nodes
Returns:

list of nodes

Return type:

list

static from_config(hardware_cfg)
get_coupling_map()

Convert adj_matrix to coupling map (list of [i,j])

get_least_connected_nodes()

Get list of the least connected nodes

Returns:list of the least connected nodes
Return type:list
get_most_connected_nodes()

Get list of the most connected nodes

Returns:list of the most connected nodes
Return type:list
get_num_nodes_with_given_num_connections(num_connections)

Get number of nodes with given number of connections

num_connections (int): number of connections

Returns:number of nodes with given number of connections
Return type:int
get_total_num_nets()

Get total number of nets

Returns:number of nets

False: if it is not fully connected

Return type:int or bool
name

Return name

num_qubits

Return number of qubits

print_connectivity()

Print connectivity