The problem I have seems fairly simple and I feel it must have some kind of name. I have a (directed cyclic) graph. Each node has an associated reward for visiting it, and each arc costs a certain amount of time to traverse it. The reward is consumed on visiting once, so a path may visit a node multiple times but receives 0 reward for future visits.
Is there an algorithm for maximising the reward while proceeding from node A to node B (or back to A again) in a given maximum amount of time available?
Note that the times and rewards cannot be combined as a single "weight".
The data is sparse and isn't that big: a few hundred nodes which typically have less than 5 arcs each.
Any tips on modelling and/or algorithms greatly appreciated.