mirror of
https://github.com/ANL-CEEESA/UnitCommitment.jl.git
synced 2025-12-06 16:28:51 -06:00
41 lines
846 B
Julia
41 lines
846 B
Julia
using HiGHS
|
|
using MPI
|
|
using JuMP
|
|
using UnitCommitment
|
|
|
|
UnitCommitment._setup_logger(level = Base.CoreLogging.Error)
|
|
function fixture(path::String)::String
|
|
basedir = dirname(@__FILE__)
|
|
return "$basedir/../../../../fixtures/$path"
|
|
end
|
|
|
|
# Initialize MPI
|
|
MPI.Init()
|
|
|
|
# Configure progressive hedging method
|
|
ph = UnitCommitment.ProgressiveHedging()
|
|
|
|
# Read problem instance
|
|
instance = UnitCommitment.read(
|
|
[fixture("case14.json.gz"), fixture("case14.json.gz")],
|
|
ph,
|
|
)
|
|
|
|
# Build JuMP model
|
|
model = UnitCommitment.build_model(
|
|
instance = instance,
|
|
optimizer = optimizer_with_attributes(
|
|
HiGHS.Optimizer,
|
|
MOI.Silent() => true,
|
|
),
|
|
)
|
|
|
|
# Run the decentralized optimization algorithm
|
|
UnitCommitment.optimize!(model, ph)
|
|
|
|
# Fetch the solution
|
|
solution = UnitCommitment.solution(model, ph)
|
|
|
|
# Close MPI
|
|
MPI.Finalize()
|