Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
Empty file added src/AsymptoticBound/Holevo.jl
Empty file.
Empty file.
Empty file.
Empty file added src/OptAlgorithm/DDPG.jl
Empty file.
Empty file added src/OptAlgorithm/DE.jl
Empty file.
Empty file added src/OptAlgorithm/GRAPE.jl
Empty file.
Empty file added src/OptAlgorithm/NM.jl
Empty file.
Empty file added src/OptAlgorithm/PSO.jl
Empty file.
1 change: 1 addition & 0 deletions src/algorithm/algorithm.jl → src/algorithm.jl
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
abstract type AbstractAlgorithm end

5 changes: 4 additions & 1 deletion src/dynamics/dynamics.jl → src/dynamics.jl
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ abstract type noisy <: AbstractNoise end
abstract type AbstractCtrl end
abstract type free <: AbstractCtrl end
abstract type controlled <: AbstractCtrl end
abstract type timedepend <: AbstractCtrl end

# check if the dynamics are with noise
isNoisy(::noiseless) = false
Expand All @@ -21,5 +22,7 @@ isNoisy(dynamics::AbstractDynamics) = dynamics.noise_type|>eval|>isNoisy
# check if the dynamics are in control
isCtrl(::free) = false
isCtrl(::controlled) = true
isCtrl(dynamics::AbstractDynamics) = dynamcs.ctrl_type|>eval|>isCtrl
isCtrl(dynamics::AbstractDynamics) = dynamics.ctrl_type|>eval|>isCtrl

include("dynamics/Lindblad.jl")
include("dynamics/Kraus.jl")
19 changes: 19 additions & 0 deletions src/dynamics/Kraus.jl
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,22 @@ end
# Constructor for Kraus dynamics
Kraus(K::AbstractVector, dK::AbstractVector, ρ::AbstractMatrix) = Kraus{dm}(Kraus_data(K,dK,ρ), :noiseless, :free, :dm)
Kraus(K::AbstractVector, dK::AbstractVector, ψ::AbstractVector) = Kraus{ket}(Kraus_data(K,dK,ψ), :noiseless, :free, :ket)

#### evolution of pure states under time-independent Hamiltonian without noise and controls ####
function evolve(dynamics::Kraus{noiseless, free, ket})
(K, dK, ψ₀) = dynamics
ρ₀ = ψ₀*ψ₀'
ρ = [K*ρ₀*K' for K in K]|>sum
dρ = [[dK*ρ₀*K' + K*ρ₀*dK']|>sum for dK in dK]

ρ, dρ
end

#### evolution of density matrix under time-independent Hamiltonian without noise and controls ####
function evolve(dynamics::Kraus{noiseless, free, dm})
(K, dK, ρ₀) = dynamics
ρ = [K*ρ₀*K' for K in K]|>sum
dρ = [[dK*ρ₀*K' + K*ρ₀*dK']|>sum for dK in dK]

ρ, dρ
end
294 changes: 263 additions & 31 deletions src/dynamics/Lindblad.jl

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions src/objective.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
abstract type AbstractObj end
abstract type AbstractObjData end


include("AsymptoticBound/CramerRao.jl")
include("AsymptoticBound/Holevo")