harshangrjn / QuantumCircuitOpt.jl

A Julia/JuMP Package for Optimal Quantum Circuit Design
Other
56 stars 15 forks source link

Optimal solution issue #8

Closed harshangrjn closed 3 years ago

harshangrjn commented 3 years ago

Without turning on any extra valid inequalities, the basic compact formulation decomposition for this input

    params = Dict{String, Any}(

    "num_qubits" => 3, 
    "depth" => 3,    
    "elementary_gates" => ["U3", "Identity"], 
    "target_gate" => QCO.kron_single_gate(3, QCO.RXGate(π/4), "q3"),
    "U_θ_discretization" => [0, π/4],
    "U_ϕ_discretization" => [0, -π/2],
    "U_λ_discretization" => [0, π/2],    
    "objective" => "minimize_depth", 
    "decomposition_type" => "exact",
    "optimizer" => "cplex",
    )

is coming as

U3 (3, (0.0,-90.0,0.0)) * U3 (3, (45.0,0.0,90.0))

while the optimal solution has to be:

 U3 (3, (45.0,-90.0,90.0)) 

Either a bug in the formulation or in the way gates are eliminated. This issue appears only when the eliminate_identical_gates is true.

harshangrjn commented 3 years ago

Looks like ,the issue with the CPLEX's presolve. Turning it off solves this issue!

harshangrjn commented 3 years ago

9