Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy
- from binomialPoisson import *
- hugeNumber = float("inf")
- unused = -1000
- stages = 10
- seats = 50
- fullFare = 500
- discountFare = 250
- costOccupied = 8
- meanFullDemand = numpy.array([unused,
- 1.3, 1.4, 1.9, 2.0, 2.2,
- 2.8, 2.2, 2.4, 1.8, 3.7])
- maxCanRelease = [unused, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5]
- f = numpy.zeros([stages+2, seats+1])
- x = numpy.zeros([stages+1, seats+1], dtype=int)
- # Iterate through stages
- for t in range(stages, 0, -1):
- demandProbability = poisson(meanFullDemand[t], seats)
- # Iterate through possible states (ie, number of seats unoccupied)
- for i in range(seats + 1):
- value = -hugeNumber
- maxReleased = min(maxCanRelease[t], seats-i)
- for d in range(maxReleased):
- moveValue = -costOccupied*d + 250*d
- seatsOccupied = i + d
- seatsUnoccupied = seats - seatsOccupied
- for r in range(seatsUnoccupied + 1):
- moveValue += demandProb[r]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement