2017-06-22 7 views
0

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: constraintsPuLP - 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.

Antwort

2

Ich habe einige Daten erstellt, um einige Fälle zu testen, und ich denke, das folgende sollte funktionieren. Wenn dies nicht der Fall ist, teilen Sie bitte Ihre challenge SAHRO.csv Daten und ich werde versuchen, sie zu optimieren:

+0

Vielen Dank, das hat funktioniert! – user3242036

Verwandte Themen