ホテルの収益を最適化するために線形計画を使用する論文を再作成しようとしています。 私は多くの異なるx [i、j]を解決しようとしていますが、xは予約が受け入れられ、私はチェックイン、jはチェックアウトです。私はこれらの[i、j]ペアのそれぞれについて、私が輸入しているものと、予約が受け入れられたものがそれぞれ< = demandであることを要求しています。 私の人生のために、どのくらいの日のkでも、すでにホテルにいる人+日kにチェックインしている人 - 日kにチェックアウトしている人は< =容量でなければならないという制約をプログラムする方法を考え出すことはできません。ここ は、私がアップコーディングしようとしているものです: PuLP - Python - ホテル収入の最適化
ここでは、これまでに私のコードです:
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
私はPythonでコーディングに新たなんだので、任意の助けをパルプを使用する新しいブランドが大いにあります感謝。
ありがとう、これは機能しました! – user3242036