Ich versuche, ein Papier neu zu erstellen, das lineare Programmierung verwendet, um Hotelumsätze zu optimieren. Ich habe viele verschiedene x [i, j], die ich versuche zu lösen, wo x Buchungen akzeptiert wird und ich Check-in Tag und j ist Check-out Tag. Ich habe Nachfrage nach jedem dieser [i, j] Paare, die ich importiere und dass die angenommenen Buchungen < = verlangen müssen. Für das Leben von mir kann ich nicht herausfinden, wie die Einschränkung, dass an einem bestimmten Tag k, dass die Leute bereits im Hotel + Personen am Tag k - Menschen am Tag k Check-out müssen < = Kapazität. Hier ist das, was ich versuche, bis zu kodieren: PuLP - Python - Hotel Umsatzoptimierung
Hier mein Code ist so weit:
import pandas as pd
import pulp
# Instantiate our problem class
model = pulp.LpProblem("Hotel revenue maximization", pulp.LpMaximize)
#Import demand info
demand= pd.DataFrame.from_csv("demandSAHRO.csv", index_col=
['Check_in_day_i', 'Check_out_day_j'])
#Will optimize for # bookings to accept for any i,j pairing
bookingsaccepted = pulp.LpVariable.dicts("bookingsaccepted",
((i, j) for i, j in demand.index), lowBound=0, cat='Integer')
# Objective Function - 0.84 is unit revenue per room
model += (
pulp.lpSum([
0.84 * bookingsaccepted[i, j] for i, j in demand.index])
)
# Constraints
capacity = 400
#Accepted Check in before day k + accepted check in on day k - accepted check out on day k <= capacity
model +=
for i, j in demand.index:
for k in range(1,10):
#Day k between check in and check out dates
while i<k<j:
#Rooms already occupied during night k
pulp.lpSum([bookingsaccepted[i, j] for i, j in demand.index]))
+
#Rooms checking in on day k
-
#Rooms checking out on day k
Ich bin neu bei Codierung in Python und brandneu mit Pulp so dass jede Hilfe ist stark geschätzt.
Vielen Dank, das hat funktioniert! – user3242036