From fe26f8406040330e6a198fb1db7a0ff89524d1c1 Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk> Date: Sat, 27 Jan 2024 17:08:49 +0000 Subject: [PATCH] Add constraint to TR --- src/containers/sequences.jl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/containers/sequences.jl b/src/containers/sequences.jl index 21e44c3..1ecf200 100644 --- a/src/containers/sequences.jl +++ b/src/containers/sequences.jl @@ -1,5 +1,5 @@ module Sequences -import JuMP: Model +import JuMP: Model, @constraint import ...BuildSequences: @global_model_constructor import ...Variables: variables, start_time, duration, VariableType, get_free_variable, TR import ...BuildingBlocks: BuildingBlock, to_block @@ -15,11 +15,13 @@ struct Sequence <: BuildingBlock blocks :: Vector{<:BuildingBlock} TR :: VariableType function Sequence(model::Model, blocks::Vector; TR=nothing) - new( + seq = new( model, to_block.(blocks), get_free_variable(model, TR), ) + @constraint model seq.TR >= duration(seq) + return seq end end @@ -27,8 +29,8 @@ end Sequence(model::Model, blocks...; TR=nothing) = Sequence(model, [blocks...]; TR=TR) -Base.length(seq::Sequence) = length(seq) -Base.getindex(seq::Sequence, index) = seq[index] +Base.length(seq::Sequence) = length(seq.blocks) +Base.getindex(seq::Sequence, index) = seq.blocks[index] """ start_time(sequence::Sequence, index::Integer, args...) -- GitLab