From c2f7ede6f13641c728cc602e7035db1dfcb2db85 Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <MichielCottaar@protonmail.com> Date: Tue, 30 Jul 2024 15:40:14 +0100 Subject: [PATCH] Add final cost function to minimise sequence length --- src/containers/base_sequences.jl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/containers/base_sequences.jl b/src/containers/base_sequences.jl index d595640..9d024e7 100644 --- a/src/containers/base_sequences.jl +++ b/src/containers/base_sequences.jl @@ -4,7 +4,7 @@ Defines [`BaseSequence`](@ref) and [`Sequence`](@ref) module BaseSequences import StaticArrays: SVector import JuMP: @constraint -import ...Variables: get_free_variable, VariableType, variables, set_simple_constraints!, make_generic, get_gradient, get_pulse, get_gradient, @defvar +import ...Variables: get_free_variable, VariableType, variables, set_simple_constraints!, make_generic, get_gradient, get_pulse, get_gradient, @defvar, add_cost_function! import ...BuildSequences: global_scanner import ...Components: EventComponent, NoGradient, edge_times import ...Scanners: Scanner, B0 @@ -151,10 +151,11 @@ struct Sequence{S, N} <: BaseSequence{N} scanner :: Scanner end -function Sequence(blocks::AbstractVector; name=:Sequence, scanner=nothing, variables...) +function Sequence(blocks::AbstractVector; name=:Sequence, scanner=nothing, vars...) blocks = to_block_pair.(blocks) res = Sequence{name, length(blocks)}(SVector{length(blocks)}(blocks), isnothing(scanner) ? global_scanner() : scanner) - set_simple_constraints!(res, variables) + set_simple_constraints!(res, vars) + add_cost_function!(variables.duration(res), 3) return res end -- GitLab