Business Decision Analytics under Uncertainty
商业分析代写 With a Python program, use dynamic programming to compute the part ordering policy that minimizes the expected present value of your
Q1: Airline Yield Management 商业分析代写
Consider the following simplified model of airline yield management: your airline has a flight that has 50 unfilled coach seats and is due to depart in 10 days. There are two fares: full fare for $500 and discount for $250. Each day, you must decide how many seats to release for discount sales. Assume you are using the following simplified demand model:
On day t, you model demand for full fare seats to be a Poisson random variable with mean Ft.
On this flight, your experience is that all seats released for the discount fare will be sold the day they are released. But you have a corporate policy limiting the number of discount seats released on day t to at most Dt (this policy is to prevent business flyers from “gaming the system”). The incremental cost of having a seat occupied as opposed to empty is $8. (Note that the real situation is more complicated in several ways, but fundamentally similar.)
Create a Python program that computes pattern of discount seat releases that maximizes the total expected profit from the flight. Its output should indicate how many seats should be released each day. As a function of how many seats remain unsold. To condense your output, you need not print anything in situations in which zero seats are released at the discount fare.
A preamble section containing the above data may be downloaded from the website at http://eckstein.rutgers.edu/bdauu. You may use the functions in the binomialPoisson module presented in class and are encouraged to use the Python codes and templates distributed in class as a template for your code.
Print out and hand in both the source code for your program and its output. In addition, upload your source code to BlackBoard, under “Assignments” and “Homework Assignment 7, Q1”.
Q2: Managing Spare Parts 商业分析代写
Your factory uses a supply of parts at a steady rate of 10 per month. You have inventory capacity to hold 40 of the parts. And holding parts in inventory for one month incurs a direct cost of $0.50 per part per month. Your firm also has an internal cost of funds of 0.5% per month. At the beginning of each month, you may place an order for parts. Which cost $200 each, plus an overhead cost of $65 for each order placed. You have very stringent quality requirements for the parts, which your supplier, despite being the best one available, often does not meet. Each part ordered has an independent 6% chance of not meeting your standards.
You immediately return such rejected parts for a full refund.
But shipping them back to the supplier costs $7 per part. Along with parts already in inventory, parts ordered at the beginning of the month may be used to meet the current month's usage. So long as they are not rejected. If you fall short of the usage requirement for a given month, each part you are “short” that month incurs a $450 opportunity cost.
With a Python program, use dynamic programming to compute the part ordering policy that minimizes the expected present value of your costs over the next 12 months. Under the constraint that you are not permitted to overflow your inventory capacity. Assume that parts left in inventory at the end of the 12 months have a salvage value of $180 each, and you start with an inventory of 15 parts.
Hint: this problem is somewhat similar to the probabilistic inventory problem in class. Except that the uncertainty is not in the demand but in the number of acceptable versus defective parts that might arrive in each batch of ordered parts. That aspect is somewhat similar to the “multiple machine breakdowns” example from class. Except that the “failures” are in the batches that you order, not the items you already have in stock.
Hand in a hardcopy printout of your Python program and a printout of its output. Also submit your Python code to Blackboard as an attachment under the “Assignments” tab and “Homework Assignment 7, Q2”.