Imagine a situation where a business negotiates contracts for the maintenance of widgets it sells.
- Customer buys 20 widgets.
- Customer negotiates contract for widgets to be serviced/replaced.
- Business makes money by servicing or replacing widgets at a cost lower than the contract payment.
- (Contract Payment - Actual Maintenance Cost > 0 ... profit!)
- Each contract is for multiple widgets.
- Each widget can only be in use for a specified period of time before repair. However, these repair periods can be stretched for a percentage of time with minimal risk to the widget.
- Each widget has a limited number of repair cycles before it needs to be replaced.
- Buying widgets is always more expensive than repairing widgets.
- Widget inspections must accompany every potential repair.
- Multiple inspection event types exist (Level 1, Level 2). Level 2 is MUCH more expensive.
- Level 1 can occur for a small number of widgets rather cheaply.
- Level 2 must occur for all widgets
- A repair event is cheaper if it occurs when multiple widgets can be inspected and repaired at once.
What would be appropriate algorithms to forecast the best possible schedule for inspecting/replacing/repairing widgets on a contract over time to maximize profit?
They key goal is to stagger inspection events to have the fewest inspection events and fewest new widget purchases over the life of a contract.
Example - Widget 1 can be in use for 100 hours before repair. Widget 2 can be in use for 110 hours before repair. Stagger Widget 1 forward 10 hours to inspect both at the same time instead of doing an inspection/repair at 100 and 110 hours.
I am doing research on branch and bound ... A* and minimum spanning tree algorithms, but I am not sure which approach was more appropriate for the problem.
Please note that this seems similar to What type of analysis is appropriate for assessing the performance time-series forecasts?