Saturday, October 31, 2009

More on DPS modeling

More thoughts on this topic:

1. DPS is a high-order Markov process: It's high order for a few events, like when to use cool-downs (and in some cases it can be a forward-looking process, where you make a decision based on a cooldown [heroism/bloodlust] that will be used in the future). But, for the vast majority of events, it should still be well described by a first order Markov process. That's important for computability. We can, for the sake of completeness, model these separately. We'll compute most variables on a first-order Markov process, and then inject these more sporadic, high order processes into the system propagation. Presumably the number of events which affect these high-order events is low, meaning one doesn't really consider what one is going to cast after using a cool-down, they just want to ensure that all cooldowns are used in the most stacked manner possible. After the cooldown is used, decisions are once again made on a first-order Markov basis.

2. Related Event Modeling: In some cases, two events are going to be obviously related. The existence of immolate on the boss and the event of casting immolate are going to be very anti-correlated. I think it might be advantageous, then to create two separate "adiabatic" basis vectors describing these: "cast immolate, immolate not present on target" and "cast immolate, immolate present on target", rather than having two ambiguously coupled states, where for example the lack of immolate could affect decisions for spells other than immolate. This, of course, would be an approximation -- there are a few edge cases where one might incinerate without immolate being on the boss, if the boss is going to die very soon, but I think this a corner that could safely be cut.

3. Convergence test for Significant Events? One idea I'm toying around with is to collect statistics based on significant events for a variable amount of time dependent on the convergence of the first order Markov transition matrix. For example, you go into the combat log and pull out the event: "Immolate falls off target". Then you collect the sequence of spells cast after that event until some core block of the transition matrix converges (that core belonging to events which cast the primary spells of the rotation). Failure to converge within some time window would mean that there was a significant, rotation altering event that occurred in the interim.


More thoughts later...

No comments:

Post a Comment