Skip to content

Commit

Permalink
Working on producing v1 results
Browse files Browse the repository at this point in the history
  • Loading branch information
shivamvedant committed Sep 14, 2023
1 parent 7fc4b11 commit 008e8dd
Show file tree
Hide file tree
Showing 2 changed files with 364 additions and 6 deletions.
13 changes: 7 additions & 6 deletions docs/notebooks/ivanov-model/IvanovCaseStudy.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@
_commodities = 1 # Number of commodities (rho)
_exec_scenarios = 4 # Number of execution scenarios (chi)

M = 1e5 # Big M
M = 1e3 # Big M

availability_factor_com1 = pandas.DataFrame(data={'com_cons': [1,1,1,0]})
availability_factor = pandas.DataFrame(data={'com_cons': [1, 1, 1, 0.01]})

# Define temporal scales
scales = TemporalScale(discretization_list=[_exec_scenarios, _time_intervals])
Expand Down Expand Up @@ -83,7 +83,7 @@
# Declare locations/warehouses
# ======================================================================================================================
loc1 = Location(name='loc1', processes={procure, store20}, label="Location 1", scales=scales, demand_scale_level=1,
capacity_scale_level=0, availability_scale_level=0, availability_factor={com_cons: availability_factor_com1})
capacity_scale_level=0, availability_scale_level=0, availability_factor={com_cons: availability_factor})
loc2 = Location(name='loc2', processes={store20}, label="Location 2", scales=scales, demand_scale_level=1,
capacity_scale_level=0, availability_scale_level=0)
loc3 = Location(name='loc3', processes={store20}, label="Location 3", scales=scales, demand_scale_level=1,
Expand All @@ -93,7 +93,7 @@
loc5 = Location(name='loc5', processes={store50, sell}, label="Location 5", scales=scales, demand_scale_level=1,
capacity_scale_level=0, availability_scale_level=0)
loc6 = Location(name='loc6', processes={procure, store10}, label="Location 6", scales=scales, demand_scale_level=1,
capacity_scale_level=0, availability_scale_level=0, availability_factor={com_cons: availability_factor_com1})
capacity_scale_level=0, availability_scale_level=0, availability_factor={com_cons: availability_factor})
loc7 = Location(name='loc7', processes={store10}, label="Location 7", scales=scales, demand_scale_level=1,
capacity_scale_level=0, availability_scale_level=0)

Expand Down Expand Up @@ -146,14 +146,15 @@
demand_penalty_dict = {i: {com_sold: 75} if i == loc5 else {com_sold: 0} for i in locset}

scenario = Scenario(name='scenario', scales=scales, scheduling_scale_level=1, network_scale_level=0,
purchase_scale_level=1, availability_scale_level=0, demand_scale_level=1,
purchase_scale_level=0, availability_scale_level=0, demand_scale_level=1,
network=network, demand=demand_dict, demand_penalty=demand_penalty_dict, label='scenario')

problem = formulate(scenario=scenario, constraints={Constraints.COST, Constraints.TRANSPORT,
Constraints.RESOURCE_BALANCE, Constraints.PRODUCTION,
Constraints.INVENTORY, Constraints.DEMAND}, demand_sign='geq',
Constraints.INVENTORY, Constraints.DEMAND}, demand_sign='leq',
objective=Objective.PROFIT_W_DEMAND_PENALTY)

results = solve(scenario=scenario, instance=problem, solver='gurobi', name='MILP')

print(availability_factor)
print([(key, value) for key, value in results.output['S'].items() if value != 0])
Loading

0 comments on commit 008e8dd

Please sign in to comment.