@@ -600,7 +600,44 @@ function test_vector_of_variables_objective()
600
600
MOI. set (model, MOI. ObjectiveFunction {typeof(f)} (), f)
601
601
MOI. add_constraint (model, sum (1.0 * xi for xi in x), MOI. GreaterThan (1.0 ))
602
602
MOI. optimize! (model)
603
- MOI. get (model, MOI. TerminationStatus ()) == MOI. OPTIMAL
603
+ @test MOI. get (model, MOI. TerminationStatus ()) == MOI. OPTIMAL
604
+ return
605
+ end
606
+
607
+ function test_issue_105 ()
608
+ cost = [100.0 , 120.0 , 150.0 , 110.0 , 200.0 , 170.0 ]
609
+ time = [8.0 , 3.0 , 4.0 , 2.0 , 5.0 , 4.0 ]
610
+ capacity = [10.0 , 8.0 ]
611
+ demand = [5.0 , 8.0 , 5.0 ]
612
+ m, n = 2 , 3
613
+ model = MOI. instantiate (; with_bridge_type = Float64) do
614
+ return MOA. Optimizer (HiGHS. Optimizer)
615
+ end
616
+ MOI. set (model, MOA. Algorithm (), MOA. DominguezRios ())
617
+ MOI. set (model, MOI. Silent (), true )
618
+ x = MOI. add_variables (model, m * n)
619
+ MOI. add_constraint .(model, x, MOI. GreaterThan (0.0 ))
620
+ MOI. add_constraint .(model, x, MOI. Integer ())
621
+ X = reshape (x, m, n)
622
+ for i in 1 : m
623
+ f_i = MOI. ScalarAffineFunction (MOI. ScalarAffineTerm .(1.0 , X[i, :]), 0.0 )
624
+ MOI. add_constraint (model, f_i, MOI. LessThan (capacity[i]))
625
+ end
626
+ for j in 1 : n
627
+ f_j = MOI. ScalarAffineFunction (MOI. ScalarAffineTerm .(1.0 , X[:, j]), 0.0 )
628
+ MOI. add_constraint (model, f_j, MOI. EqualTo (demand[j]))
629
+ end
630
+ f = MOI. Utilities. operate (
631
+ vcat,
632
+ Float64,
633
+ MOI. ScalarAffineFunction (MOI. ScalarAffineTerm .(cost, x), 0.0 ),
634
+ MOI. ScalarAffineFunction (MOI. ScalarAffineTerm .(time, x), 0.0 ),
635
+ MOI. ScalarAffineFunction (MOI. ScalarAffineTerm .(1.0 , x), 0.0 ),
636
+ )
637
+ MOI. set (model, MOI. ObjectiveSense (), MOI. MIN_SENSE)
638
+ MOI. set (model, MOI. ObjectiveFunction {typeof(f)} (), f)
639
+ MOI. optimize! (model)
640
+ @test MOI. get (model, MOI. ResultCount ()) == 6
604
641
return
605
642
end
606
643
0 commit comments