You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.2 KiB
76 lines
2.2 KiB
# UnitCommitment.jl: Optimization Package for Security-Constrained Unit Commitment
|
|
# Copyright (C) 2020, UChicago Argonne, LLC. All rights reserved.
|
|
# Released under the modified BSD license. See COPYING.md for more details.
|
|
|
|
import pandas as pd
|
|
import numpy as np
|
|
import seaborn as sns
|
|
import matplotlib.pyplot as plt
|
|
import sys
|
|
|
|
# easy_cutoff = 120
|
|
|
|
b1 = pd.read_csv(sys.argv[1], index_col=0)
|
|
b2 = pd.read_csv(sys.argv[2], index_col=0)
|
|
|
|
c1 = b1.groupby(["Group", "Instance", "Sample"])[
|
|
["Optimization time (s)", "Primal bound"]
|
|
].mean()
|
|
c2 = b2.groupby(["Group", "Instance", "Sample"])[
|
|
["Optimization time (s)", "Primal bound"]
|
|
].mean()
|
|
c1.columns = ["A Time (s)", "A Value"]
|
|
c2.columns = ["B Time (s)", "B Value"]
|
|
|
|
merged = pd.concat([c1, c2], axis=1)
|
|
merged["Speedup"] = merged["A Time (s)"] / merged["B Time (s)"]
|
|
merged["Time diff (s)"] = merged["B Time (s)"] - merged["A Time (s)"]
|
|
merged["Value diff (%)"] = np.round(
|
|
(merged["B Value"] - merged["A Value"]) / merged["A Value"] * 100.0, 5
|
|
)
|
|
merged.loc[merged.loc[:, "B Time (s)"] <= 0, "Speedup"] = float("nan")
|
|
merged.loc[merged.loc[:, "B Time (s)"] <= 0, "Time diff (s)"] = float("nan")
|
|
# merged = merged[(merged["A Time (s)"] >= easy_cutoff) | (merged["B Time (s)"] >= easy_cutoff)]
|
|
merged.reset_index(inplace=True)
|
|
merged["Name"] = merged["Group"] + "/" + merged["Instance"]
|
|
# merged = merged.sort_values(by="Speedup", ascending=False)
|
|
|
|
|
|
k = len(merged.groupby("Name"))
|
|
plt.figure(figsize=(12, 0.50 * k))
|
|
plt.rcParams["xtick.bottom"] = plt.rcParams["xtick.labelbottom"] = True
|
|
plt.rcParams["xtick.top"] = plt.rcParams["xtick.labeltop"] = True
|
|
sns.set_style("whitegrid")
|
|
sns.set_palette("Set1")
|
|
sns.barplot(
|
|
data=merged,
|
|
x="Speedup",
|
|
y="Name",
|
|
color="tab:red",
|
|
capsize=0.15,
|
|
errcolor="k",
|
|
errwidth=1.25,
|
|
)
|
|
plt.axvline(1.0, linestyle="--", color="k")
|
|
plt.tight_layout()
|
|
|
|
print("Writing tables/compare.png")
|
|
plt.savefig("tables/compare.png", dpi=150)
|
|
|
|
print("Writing tables/compare.csv")
|
|
merged.loc[
|
|
:,
|
|
[
|
|
"Group",
|
|
"Instance",
|
|
"Sample",
|
|
"A Time (s)",
|
|
"B Time (s)",
|
|
"Speedup",
|
|
"Time diff (s)",
|
|
"A Value",
|
|
"B Value",
|
|
"Value diff (%)",
|
|
],
|
|
].to_csv("tables/compare.csv", index_label="Index")
|