You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Feature description: there are two primary levels.
Algorithm Level: A workflow for VQE executing on Qibotn backend's CuTensornet platform
An independent VQE function for Qibotn which runs the VQE minimize API of Qibo with a custom loss function that ensures the execution happens on tensor network backend and takes care of the data compatibility between what we have in Qibotn vs what minimize() wants. The inputs are Hamiltonian, Circuit Ansatz, initial parameters for optimization.
Example Usage:
importqibofromqiboimportmodels, hamiltonians, Circuit, gatesimportnumpyasnpfromvqe_tnimportrun_vqecomputation_settings= {
"MPI_enabled": False,
"MPS_enabled": False,
"NCCL_enabled": False,
"expectation_enabled": False
}
qibo.set_backend(backend="qibotn", platform="cutensornet", runcard=computation_settings)
nqubits=4c=Circuit(nqubits)
foriinrange(0, nqubits):
c.add(gates.RX(i,0))
initial_parameters=0.01*np.random.random(nqubits)
ham=hamiltonians.XXZ(nqubits)
vqe_circuit=run_vqe(c, ham, initial_parameters)
result=vqe_circuit() # Execute the circuit that has the final params from optimization setprint(result.state())
Application Level: An exploratory use case making use of the algorithm level to solve Vehicle Routing Problem, a popular combinatorial optimization problem in the field of logistics.
The VRP scenario taken here is a single vehicle traveling to n customer locations (based on the input data/distance matrix), which is formulated into a QUBO, with constraints that get imposed with penalty if violated. For example, one constraint is that the vehicle must start and end at the depot. Three such constraints are applied and linear and quadratic terms of QUBO are extracted. Since, we want to perform quantum simulation, we convert from the binary model (0,1) to an Ising model (1,-1) using the terms, allowing us to get the corresponding Hamiltonian from our QUBO formulation (inspiration taken from qibo's QAP under applications). This Hamiltonian becomes an input for our VQE function.
This feature is for my Final Year Project (2024-2025) titled "Exploring the Utilization of Tensor Networks for Quantum Circuit Simulation and its Use Case Application". The aim of the project is to implement a working workflow for VQE in Qibotn and explore an use case correspondingly.
Rationale is that VQE is a good candidate for combinatorial optimization problems like in our case, VRP, which makes it a good exploration for tensor networks.
The text was updated successfully, but these errors were encountered:
Feature description: there are two primary levels.
An independent VQE function for Qibotn which runs the VQE minimize API of Qibo with a custom loss function that ensures the execution happens on tensor network backend and takes care of the data compatibility between what we have in Qibotn vs what minimize() wants. The inputs are Hamiltonian, Circuit Ansatz, initial parameters for optimization.
Example Usage:
The VRP scenario taken here is a single vehicle traveling to n customer locations (based on the input data/distance matrix), which is formulated into a QUBO, with constraints that get imposed with penalty if violated. For example, one constraint is that the vehicle must start and end at the depot. Three such constraints are applied and linear and quadratic terms of QUBO are extracted. Since, we want to perform quantum simulation, we convert from the binary model (0,1) to an Ising model (1,-1) using the terms, allowing us to get the corresponding Hamiltonian from our QUBO formulation (inspiration taken from qibo's QAP under applications). This Hamiltonian becomes an input for our VQE function.
This feature is for my Final Year Project (2024-2025) titled "Exploring the Utilization of Tensor Networks for Quantum Circuit Simulation and its Use Case Application". The aim of the project is to implement a working workflow for VQE in Qibotn and explore an use case correspondingly.
Rationale is that VQE is a good candidate for combinatorial optimization problems like in our case, VRP, which makes it a good exploration for tensor networks.
The text was updated successfully, but these errors were encountered: