|
|
@ -197,7 +197,7 @@ function get_solution(model::ManufacturingModel)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
for plant in instance.plants
|
|
|
|
for plant in instance.plants
|
|
|
|
skip_plant = false
|
|
|
|
skip_plant = true
|
|
|
|
process_node = plant_to_process_node[plant]
|
|
|
|
process_node = plant_to_process_node[plant]
|
|
|
|
plant_dict = Dict{Any, Any}(
|
|
|
|
plant_dict = Dict{Any, Any}(
|
|
|
|
"input" => Dict(),
|
|
|
|
"input" => Dict(),
|
|
|
@ -261,40 +261,42 @@ function get_solution(model::ManufacturingModel)
|
|
|
|
output["costs"]["variable operating"] += dict["variable operating cost"]
|
|
|
|
output["costs"]["variable operating"] += dict["variable operating cost"]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
# # Outputs
|
|
|
|
# Outputs
|
|
|
|
# for shipping_node in plant_to_shipping_nodes[plant]
|
|
|
|
for shipping_node in plant_to_shipping_nodes[plant]
|
|
|
|
# product_name = shipping_node.product.name
|
|
|
|
product_name = shipping_node.product.name
|
|
|
|
# plant_dict["total output"][product_name] = 0.0
|
|
|
|
plant_dict["total output"][product_name] = zeros(T)
|
|
|
|
# plant_dict["output"]["send"][product_name] = product_dict = Dict()
|
|
|
|
plant_dict["output"]["send"][product_name] = product_dict = Dict()
|
|
|
|
|
|
|
|
|
|
|
|
# disposal_amount = JuMP.value(vars.dispose[shipping_node])
|
|
|
|
disposal_amount = [JuMP.value(vars.dispose[shipping_node, t]) for t in 1:T]
|
|
|
|
# if disposal_amount > 1e-5
|
|
|
|
if sum(disposal_amount) > 1e-5
|
|
|
|
# plant_dict["output"]["dispose"][product_name] = disposal_dict = Dict()
|
|
|
|
skip_plant = false
|
|
|
|
# disposal_dict["amount"] = JuMP.value(model.vars.dispose[shipping_node])
|
|
|
|
plant_dict["output"]["dispose"][product_name] = disposal_dict = Dict()
|
|
|
|
# disposal_dict["cost"] = disposal_dict["amount"] * plant.disposal_cost[shipping_node.product]
|
|
|
|
disposal_dict["amount"] = [JuMP.value(model.vars.dispose[shipping_node, t]) for t in 1:T]
|
|
|
|
# plant_dict["total output"][product_name] += disposal_amount
|
|
|
|
disposal_dict["cost"] = [disposal_dict["amount"][t] * plant.disposal_cost[shipping_node.product][t]
|
|
|
|
# output["costs"]["disposal"] += disposal_dict["cost"]
|
|
|
|
for t in 1:T]
|
|
|
|
# end
|
|
|
|
plant_dict["total output"][product_name] += disposal_amount
|
|
|
|
|
|
|
|
output["costs"]["disposal"] += disposal_dict["cost"]
|
|
|
|
# for a in shipping_node.outgoing_arcs
|
|
|
|
end
|
|
|
|
# val = JuMP.value(vars.flow[a])
|
|
|
|
|
|
|
|
# if val <= 1e-3
|
|
|
|
for a in shipping_node.outgoing_arcs
|
|
|
|
# continue
|
|
|
|
vals = [JuMP.value(vars.flow[a, t]) for t in 1:T]
|
|
|
|
# end
|
|
|
|
if sum(vals) <= 1e-3
|
|
|
|
# skip_plant = false
|
|
|
|
continue
|
|
|
|
# dict = Dict(
|
|
|
|
end
|
|
|
|
# "amount" => val,
|
|
|
|
skip_plant = false
|
|
|
|
# "distance" => a.values["distance"],
|
|
|
|
dict = Dict(
|
|
|
|
# "latitude" => a.dest.location.latitude,
|
|
|
|
"amount" => vals,
|
|
|
|
# "longitude" => a.dest.location.longitude,
|
|
|
|
"distance" => a.values["distance"],
|
|
|
|
# )
|
|
|
|
"latitude" => a.dest.location.latitude,
|
|
|
|
# if a.dest.location.plant_name ∉ keys(product_dict)
|
|
|
|
"longitude" => a.dest.location.longitude,
|
|
|
|
# product_dict[a.dest.location.plant_name] = Dict()
|
|
|
|
)
|
|
|
|
# end
|
|
|
|
if a.dest.location.plant_name ∉ keys(product_dict)
|
|
|
|
# product_dict[a.dest.location.plant_name][a.dest.location.location_name] = dict
|
|
|
|
product_dict[a.dest.location.plant_name] = Dict()
|
|
|
|
# plant_dict["total output"][product_name] += val
|
|
|
|
end
|
|
|
|
# end
|
|
|
|
product_dict[a.dest.location.plant_name][a.dest.location.location_name] = dict
|
|
|
|
# end
|
|
|
|
plant_dict["total output"][product_name] += vals
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if !skip_plant
|
|
|
|
if !skip_plant
|
|
|
|
if plant.plant_name ∉ keys(output["plants"])
|
|
|
|
if plant.plant_name ∉ keys(output["plants"])
|
|
|
|