Advertisement
Abhisek92

maximize_profit.py

May 21st, 2024 (edited)
582
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.73 KB | None | 0 0
  1. import numpy as np
  2. from scipy.optimize import linear_sum_assignment
  3.  
  4.  
  5. def maximize_profit(buy_prices, sell_prices):
  6.     diff = np.triu(m=(-buy_prices[:, None] + sell_prices[None, :]), k=0)
  7.     diff[diff < 0] = 0
  8.     with np.printoptions(precision=2, suppress=True, linewidth=256):
  9.         print(diff)
  10.     row_idx, col_idx = linear_sum_assignment(-diff)
  11.     print(f"Rows: {row_idx}")
  12.     print(f"Cols: {col_idx}")
  13.     profits = diff[row_idx, col_idx]
  14.     return profits.sum()
  15.  
  16. if __name__ == "__main__":
  17.     import pandas as pd
  18.     df = pd.read_excel(io="data.xlsx", header=0)
  19.     b_prices = df["2024 FCR-N Down"].to_numpy()
  20.     s_prices = df["2024 FCR-N Up"].to_numpy()
  21.  
  22.     print(f"Profit: {maximize_profit(b_prices, s_prices)}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement