@@ -26,6 +26,8 @@ using OptimizationMOI: MOI as MOI
2626using DataFrames
2727using Plots
2828using StatsPlots
29+
30+ plotlyjs() # Facilitating interaction with the resulting plots
2931```
3032
3133# Benchmarks
@@ -124,7 +126,7 @@ optimizer.
124126eq_unb_problems = CUTEst.select(min_con=1, only_equ_con=true, only_free_var=true)
125127
126128# Analysis
127- eq_unb_results = run_benchmarks(unc_problems , optimizers)
129+ eq_unb_results = run_benchmarks(eq_unb_problems , optimizers)
128130
129131@df eq_unb_results scatter(:n_vars, :secs,
130132 group = :solver,
@@ -140,12 +142,70 @@ Next, we examine the same relationship for problems with inequality-constrained
140142neq_unb_problems = CUTEst.select(min_con=1, only_ineq_con=true, only_free_var=true)
141143
142144# Analysis
143- neq_unb_results = run_benchmarks(unc_problems , optimizers)
145+ neq_unb_results = run_benchmarks(neq_unb_problems , optimizers)
144146
145147@df neq_unb_results scatter(:n_vars, :secs,
146148 group = :solver,
147149 xlabel = "n. variables",
148150 ylabel = "secs.",
149151 title = "Time to solution by optimizer and number of vars",
150152 )
153+ ```
154+
155+ ## Equality/Inequality constrained problems with bounded variables
156+
157+ Now we analyze the subset of problems with equality/inequality constraints and whose
158+ variables are bounded. There are 666 such problems.
159+
160+ The following figure shows the results of the same benchmarks previously described for the
161+ problems on this section.
162+
163+ ```julia
164+ eq_bou_problems = CUTEst.select(min_con=1, only_equ_con=true, only_free_var=false)
165+
166+ # Analysis
167+ eq_bou_results = run_benchmarks(eq_bou_problems, optimizers)
168+
169+ @df eq_bou_results scatter(:n_vars, :secs,
170+ group = :solver,
171+ xlabel = "n. variables",
172+ ylabel = "secs.",
173+ title = "Time to solution by optimizer and number of vars",
174+ )
175+ ```
176+
177+ Next, we examine the same relationship for problems with inequality-constrained problems,
178+ of which there are 244.
179+
180+ ```julia
181+ neq_bou_problems = CUTEst.select(min_con=1, only_ineq_con=true, only_free_var=false)
182+
183+ # Analysis
184+ neq_bou_results = run_benchmarks(neq_bou_problems, optimizers)
185+
186+ @df neq_bou_results scatter(:n_vars, :secs,
187+ group = :solver,
188+ xlabel = "n. variables",
189+ ylabel = "secs.",
190+ title = "Time to solution by optimizer and number of vars",
191+ )
192+ ```
193+
194+ # Quadratic programs with linear constraints
195+
196+ Lastly, we examine the problems with a quadratic objective function and only linear
197+ constraints. There are 252 such problems in the suite.
198+
199+ ```julia
200+ quad_problems = CUTEst.select(objtype="quadratic", contype="linear")
201+
202+ # Analysis
203+ quad_results = run_benchmarks(quad_problems, optimizers)
204+
205+ @df neq_bou_results scatter(:n_vars, :secs,
206+ group = :solver,
207+ xlabel = "n. variables",
208+ ylabel = "secs.",
209+ title = "Time to solution by optimizer and number of vars",
210+ )
151211```
0 commit comments