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.
- create_tsp_qc(qft_register: qiskit.QuantumRegister, eigenstate_register: qiskit.QuantumRegister, qft_classical_register: qiskit.ClassicalRegister, eigenstate: qiskit.QuantumRegister) qiskit.QuantumCircuit[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]¶
- encode_eigenstate(qc: qiskit.QuantumCircuit, eigen_register: qiskit.QuantumRegister, eigenstate: qiskit.QuantumRegister) qiskit.QuantumCircuit[source]¶