mqt.problemsolver.tsp

Module Contents

class TSP[source]
print_problem(solution: list[int] | None = None) → None[source]

Method to visualize the problem.

Parameters:

solution – If provided, the solution is visualized. Otherwise, the problem without solution is shown.

solve(dist_1_2: int, dist_1_3: int, dist_1_4: int, dist_2_3: int, dist_2_4: int, dist_3_4: int, objective_function: str = 'shortest_path', quantum_algorithm: str = 'QPE', num_qubits_qft: int = 8) → list[int] | bool[source]

Method to solve the problem.

Parameters:
  • dist_1_2 – Distance between vertices 1 and 2.

  • dist_1_3 – Distance between vertices 1 and 3.

  • dist_1_4 – Distance between vertices 1 and 4.

  • dist_2_3 – Distance between vertices 2 and 3.

  • dist_2_4 – Distance between vertices 2 and 4.

  • dist_3_4 – Distance between vertices 3 and 4.

  • objective_function – Optimization goal.

  • quantum_algorithm – Selected quantum algorithm to solve problem.

  • num_qubits_qft – Number of qubits used for QFT if “QPE” is selected as the algorithm.

Returns:

Solution to the problem if it exists.

solve_using_qpe() → list[int][source]
create_tsp_qc(qft_register: qiskit.QuantumRegister, eigenstate_register: qiskit.QuantumRegister, qft_classical_register: qiskit.ClassicalRegister, eigenstate: qiskit.QuantumRegister) → qiskit.QuantumCircuit[source]
get_all_phases() → list[float][source]
simulate(qc: qiskit.QuantumCircuit) → str[source]
get_classical_result() → list[int][source]
controlled_unitary(qc: qiskit.QuantumCircuit, qubits: list[qiskit.QuantumRegister], phases: list[float]) → None[source]
u(qc: qiskit.QuantumCircuit, control_qreg: qiskit.QuantumRegister, eigenstate_register: qiskit.QuantumRegister) → None[source]
final_u(times: int, eigenstate_register: qiskit.QuantumRegister) → Gate[source]
encode_eigenstate(qc: qiskit.QuantumCircuit, eigen_register: qiskit.QuantumRegister, eigenstate: qiskit.QuantumRegister) → qiskit.QuantumCircuit[source]
int_to_phase(distance: int) → float[source]
phase_to_float(phase: float) → float[source]
eigenvalue_to_route(eigenvalue: str) → list[int][source]
extract_selected_graph(solution: list[int]) → networkx.Graph[source]
get_available_quantum_algorithms() → list[str][source]

Method to get all available quantum algorithms in a list.

show_classical_solution() → None[source]

Method to visualize the solution of a classical solver.