Elitist Jerks Uptime

 06/01/07, 10:06 PM #1 Demi9OD Don Flamenco   Demilicious Orc Warlock   Shadowmoon Uptime I am looking for some generic equations to plug numbers into for trinkets and procs with and without internal cooldowns. Basically I want to get the average spell damage values for a couple of procs like Spellstrike 2pc, Voidheart 2pc, and the upcoming Scale of the Sands exalted ring. Of course the applications can extend beyond these three procs. I believe there are only two equations for these type of procs (that don't involve haste), since casts/second is relatively static. One equation describes uptime for a proc with no cooldown, and takes into account overlaps. The other equation describes uptime for a proc with an internal cooldown, and takes into account the hard set gap between procs. I've looked through a couple of threads but since I stopped keeping up with rogue/hunter/warrior mechanics I've fallen a bit behind on the math. Edit Procs with no cooldown Uptime = 1-(1-P)^(D/S) Where P is the probability of the proc going off, D/S is the number of casts you'd get over the duration of a proc. Procs with cooldown (this only works if H > D, which is almost always the case) Uptime = D/(H+(S/P)) Where P is the probability of the proc going off, D is the duration of the proc, S how often you cast, and H is the hidden cooldown. Last edited by Demi9OD : 06/21/07 at 12:45 PM.
 06/02/07, 8:13 AM #2 Drukal Von Kaiser   Drukal Tauren Shaman   Stonemaul (EU) The former (procs with no cooldown) is quite simple and elegant: Uptime = 1-(1-P)^(C/D) Where P is the probability of the proc going off, C/D is the number of casts you'd get over the duration of a proc. For ones with internal cooldowns, I'm not so sure of an elegant way to do it. I'm sure there is one, but like you I haven't been looking at the appropriate topics lately so I can't recall having seen one.
 06/02/07, 1:10 PM #3 heel Great Tiger   heel Dwarf Priest   Mannoroth If you are taking an action every S seconds that has a P chance to proc an effect with a duration of D and a hidden cooldown of H, you can expect 60/(H+(S/P)) procs per minute. If the proc has a duration, the expected uptime of the proc is D/(H+(S/P)).
 06/02/07, 5:09 PM #4 Demi9OD Don Flamenco   Demilicious Orc Warlock   Shadowmoon Exalted Scale of the Sands ring. Band of the Eternal Sage. http://www.thottbot.com/s35083 http://www.thottbot.com/s35084 Based on the WoW rep pages, all of these items have been upgraded in stats along with the 2.1 ilvl boosts. While we don't know the stat upgrade, they are pretty easy to guestimate, and it looks like the proc has been upgraded to 15 second duration and 10% chance. Affliction locks cast about 20 offensive spells a minute. Using the "proc with no cooldown" equation above the proc on this ring looks like it comes out to 39dmg passive. Which is... unbelievably good.
 06/03/07, 11:56 PM #5 Vhad Don Flamenco   Scyn Night Elf Warrior   Silvermoon (EU) if it can proc from each wave of AM the uptime would with some luck be 100% with 10% proc, 60 "casts" pr minute with AM spam. Sounds juicy, can't wait to get my hands on it. What!?
06/04/07, 12:28 PM   #6
Homercles
Piston Honda

No Wow Account
Tauren Warrior

No WoW Account
 Originally Posted by Drukal The former (procs with no cooldown) is quite simple and elegant: Uptime = 1-(1-P)^(C/D) Where P is the probability of the proc going off, C/D is the number of casts you'd get over the duration of a proc.
Calling the exponent C/D [casts/duration] threw me off, surely the number of casts you get over the duration is D/C? 3 seconds per cast over a 15 second proc duration is 5 casts, not 0.2. Ignoring that quibble, how is this formula logically derived?

Last edited by Homercles : 06/04/07 at 12:29 PM. Reason: DAMN YOU INTERNETS

06/04/07, 12:37 PM   #7
Jezele
Piston Honda

Draenei Shaman

 Originally Posted by Homercles Ignoring that quibble, how is this formula logically derived?
Essentially, you're determining the likelihood that in X number of casts you don't get a proc. For example, with 3 casts in a given amount of time, with a 25% chance to proc, you have a 75%*75%*75% chance of not proc'ing any of those 3 casts. 1 minus this amount gives you the likelihood that one of those casts wasn't a non-proc.

Clear as mud?

Last edited by Jezele : 06/04/07 at 12:44 PM. Reason: Grammar

06/04/07, 1:23 PM   #8
The Iron Colonel
Don Flamenco

Dwarf Hunter

Mug'thol
 Originally Posted by Jezele Essentially, you're determining the likelihood that in X number of casts you don't get a proc. For example, with 3 casts in a given amount of time, with a 25% chance to proc, you have a 75%*75%*75% chance of not proc'ing any of those 3 casts. 1 minus this amount gives you the likelihood that one of those casts wasn't a non-proc. Clear as mud?
http://www.probabilitytheory.info/to...robability.htm
Essentially, it's the method of converse probability; in a nutshell, you calculate the odds of something NOT happening and then subtract that from 1. It's easy with procs, because if you know the chance that it WILL happen for any given shot, you can determine the likelihood of it NOT proccing. Remember, the sum all of probabilities for a closed system is 1, therefore the probability of NOT proccing would be 1-ChanceOfProc. Given that you can calculate the likelihood of independent events by multiplying their individual probabilities together, you get the method Jezele posted (calculate the probability of NOT getting the event by the law of independent events, then realize that ANY other outcome involves AT LEAST 1 proc, therefore subtract the probability of not getting a proc and you have the answer).

06/04/07, 2:24 PM   #9
Drukal
Von Kaiser

Tauren Shaman

Stonemaul (EU)
 Originally Posted by Homercles Calling the exponent C/D [casts/duration] threw me off, surely the number of casts you get over the duration is D/C? 3 seconds per cast over a 15 second proc duration is 5 casts, not 0.2. Ignoring that quibble, how is this formula logically derived?
Heh, you're quite right, I forgot to think about how my statement would sound to other people. I had originally written it as a single variable CPD (cast per duration) but thought it looked ugly so changed it to C/D, while still thinking of it as a single variable instead of two seprate ones, which I suppose nobody who wasn't inside my head would have done. Sorry for the confusion there.

 06/19/07, 6:40 AM #10 Lazare Piston Honda   Lazare Human Priest   Lightbringer I understand the derivation of the "no hidden cooldown" formula, but I don't quite understand the cooldown formula. If you take an action every S seconds that has a P chance to proc an effect with a duration of D and a hidden cooldown of H, heel said the formula was: Uptime = D/(H+(S/P)) But if you set H to 0, that gives: Uptime = D/(S/P) That's obviously quite different than the "no cooldown" formula of: Uptime = 1-(1-P)^(D/S) For example, with P of 10%, S of 3s, D of 15s, and H of 0s, we get: D/(S/P) = 15/(3/0.1) = 0.5 = 50% uptime 1-(1-P)^(D/S) = 1-(1-0.1)^(15/3) = 1 - 0.9^5= .40951 = 41% uptime Where does the cooldown formula come from? Is there some reason why it doesn't work for the special case of H = 0? Am I just missing something?
 06/19/07, 8:30 AM #11 CheshireCat Bald Bull     Tzara Blood Elf Priest   Mal'Ganis Here's how I did uptime calculations for something with a hidden cooldown: You can get an "expected time till proc" of a cooled down item using a binomial distribution. The expected time until success in the absence of a cooldown is just (time per cast/proc chance). Then, just add the cooldown to find the average time between procs. (You might want to account for the edge effects that deal with the probability of the cooldown finishing during a cast.) Divide the duration by the time between casts for uptime.
 06/19/07, 10:52 AM #12 Lazare Piston Honda   Lazare Human Priest   Lightbringer Hrm... Alright dividing the number of seconds taken per action by the proc chance yields seconds per proc, which is average time between procs...so... Time between cooldown ending and the next proc = S/P Time between procs = H + S/P If there are T seconds between procs, and the proc lasts for D seconds, then uptime is given by... D/T. Expanding, that's just: Uptime = D/(H + S/P). Which is what was already posted. :-) Okay, so as long as H > D, you can ignore the chance of multiple procs during D, which simplifies the probability calculation a lot. But if D > H, then some procs will happen while the proc is up, wasting the remaining duration of the buff, causing a reduction in uptime. Hmm, seems like if the cooldown was non-zero, but less than the duration, the math would get trickier, no? But since hidden cooldowns usually have H = 3D, I suppose it doesn't matter... Thanks for the explanation. :-)
 06/21/07, 10:04 AM #13 nenad Piston Honda   nenad Undead Warlock   Doomhammer (EU) Viability of uptime formula depends on relation between effect duration time(D), time between actions that can trigger effect (S) and cooldown time if any (H). There are actually 6 possible relations: 1) H
 06/21/07, 1:03 PM #14 The Iron Colonel Don Flamenco     Welshy Dwarf Hunter   Mug'thol Although most of this post has already been covered by previous posters (damn yoy CheshireCat!), I feel the need to engage in math discussion. One thing to consider is that hidden cooldown procs can be easily calculated as Poisson Distributions (or binomial distributions, the result works out the same). Essentially, the time (or average number of 'counts' or 'entries') between events is 1/chance. If the chance to find someone who has murdered 10 people is 0.000001%, you'd have to ask 1/0.000001=1E6 people (on average) before finding your killer. The same method is applied to procs. If a proc is 10% on crit, you have to cast 1/(0.10*crit%) casts to get a proc. You can find time between procs by an analogous method that accounts for rate of attempts (whether it's casts, attacks, w/e). If I cast 1 spell every n seconds, I can do dimensional analysis to determine the time between procs. [code] 1/[(crits / shot)*(procs / crit)]=1/(procs / shot) (seconds/shot)*1/(procs/shot)=seconds / proc[code] So I just need to multiply my 'attempts between proc' number by the time per attempt to get the time between procs. For hidden cooldowns, I know that there is a minimum amount of time I must wait before another proc, so I can just add this to the average time between procs to get the total time between procs. Now that you have the time between buffs (procs), you can easily calculate %uptime. I should note that this is somewhat of a simplification and only considers the special case in which the hidden cooldown is longer than the duration of the buff. However, because there are no cases in which h!=0 AND the cooldown is shorter than the duration of the buff (of which I know, at least), I'm not going to go through that math. You should just know that the reason you use a different formula for H=0 scenarios is that you are considering a closed set of events - you KNOW how many chances you'll have during the duration of the buff to refresh it, so you can use converse probability to calculate the chance of refreshing the buff. The Poisson Distribution is only generally useful for finding the 'time' (again, I use time generally as a 'distance' between events) as the number of events approaches infinity. In fact, the limit on the binomial distribution as the number of events approaches infinity IS the Poisson Distribution. The reason we can use either for hidden cooldown procs is that for an open set of chances (or rather, an arbitrarily large set of attempts to get a proc) this is valid; for procs without a hidden cooldown, you have a real number of attempts for a proc, and you can calculate the specific probabilities of getting another proc. Ugh, that got long winded and messy, and I'm sure I made at least a few errors there. Anyway, hope that helps, and hope someone who's a probability person can fix any mistakes I made (I dabble in probability, but it's not my forte).
06/21/07, 7:11 PM   #15
Lazare
Piston Honda

Human Priest

Lightbringer
 Originally Posted by nenad Viability of uptime formula depends on relation between effect duration time(D), time between actions that can trigger effect (S) and cooldown time if any (H). There are actually 6 possible relations: 1) H
At the risk of derailing the discussion, that's a good description of most on use trinkets such as Essence of the Martyr. S is the time between activations, P is 100%, and D is obvious.

 Elitist Jerks Uptime