Theck's MATLAB thread  Cataclysm/4.x
Moderators: Fridmarr, Worldie, Aergis, theckhd
Re: Theck's MATLAB thread  Cataclysm/4.x
About to head off to a movie, so I don't have much time to post. I spent the morning on the priority simulation code, which is almost done. It's functional now, but I want to do some polishing to it.
It currently calculates damage two ways  for one, it recalculates ability_model every iteration and jots down the damage caused by each spell when it fires. The other is more abstract, in that it tracks SD, Inqusition, and every spell that's cast, and at the end generates spell weighting coefficients for each.
The general concept is that once you have the coefficients, your DPS is (coeff*dmg.SpellName) for each spell. The coefficient is basically (casts)/(total time), but modified to account for Inquisition and SD procs.
I prefer the coefficient method because it gives me an easy way to do the stat calculations later on (using the old method). However, there's one big caveat  since ShoR can be avoided, I can't use the coefficients for hit or expertise (because that changes the rotation).
I'm mulling over which damage calculation I prefer  I still think I prefer the coefficient method, since I don't have to rerun the simulation for other stats and it's redundant with the "onthefly" calculation if I rerun the simulation anyhow. It's also much faster if I don't run ability_model every iteration, for obvious reasons.
Would like some feedback on this, will check back in after the movie.
It currently calculates damage two ways  for one, it recalculates ability_model every iteration and jots down the damage caused by each spell when it fires. The other is more abstract, in that it tracks SD, Inqusition, and every spell that's cast, and at the end generates spell weighting coefficients for each.
The general concept is that once you have the coefficients, your DPS is (coeff*dmg.SpellName) for each spell. The coefficient is basically (casts)/(total time), but modified to account for Inquisition and SD procs.
I prefer the coefficient method because it gives me an easy way to do the stat calculations later on (using the old method). However, there's one big caveat  since ShoR can be avoided, I can't use the coefficients for hit or expertise (because that changes the rotation).
I'm mulling over which damage calculation I prefer  I still think I prefer the coefficient method, since I don't have to rerun the simulation for other stats and it's redundant with the "onthefly" calculation if I rerun the simulation anyhow. It's also much faster if I don't run ability_model every iteration, for obvious reasons.
Would like some feedback on this, will check back in after the movie.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7849
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: Theck's MATLAB thread  Cataclysm/4.x
tlitp wrote:Interested in seeing several data sets on the topic of avoidance DR, conveying both 80ptr and 85beta.
 pure dodge (i.e. no buffs, no gear with agility)
 pure agility (no buffs, no gear with dodge)
 parry
Only character panel info is needed at this time.
EDIT : also include a set of data conveying base values. No buffs, naked, untalented. Fetch base stats (mention race) and base dodge.
Dwarf Paladin level 80 Protection spec'd but only with 3/3 Divinity and 3/3 SotP
No gear:
156 Str
86 Agi
165 Sta
97 Int
104 Spirit
0 armor
2.31% dodge
5% parry
21% block chance
Sta Gear:
1757 Str
128 Agi
4598 Sta
97 Int
104 Spirit
26475 Armor
22.32 Dodge (tooltip says 1209 dodge rating adds 26.72% before DR)
15.47 Parry (tooltip says 539 parry rating adds 11.91% parry before DR)
21% Block chance
Mastery 8 (base mastery, no rating)
Avoidance/Mastery Gear:
1712 Str
158 Agi
4336 Sta
97 Int
104 Spirit
25327 Armor
20.65% Dodge (tooltip says 1039 dodge rating adds 22.96% before DR)
16.39% Parry (tooltip says 596 rating adds 13.17% parry before DR)
38.16% Block
16.58 Mastery (394 rating adds 8.58 mastery)
Ret Gear (no defensive stats  nightmare tear for added int/spirit), no talents or spec choice
1820 Str
496 Agi
2696 Sta
107 Int
114 Spirit
15670 armor
9.64% dodge
5.00% parry
5.00% block
294 Agi  7.97% dodge
219 Agi  4.88% dodge
117 Agi  2.92% dodge
Varying only dodge but not agi or parry
1209 Dodge Rating  26.72% before DR  22.32% dodge on char sheet
1141 Dodge Rating  25.22% before DR  21.55% dodge on char sheet
1014 Dodge Rating  22.41% before DR  20.03% dodge on char sheet
941 Dodge Rating  20.80% before DR  19.17% dodge on char sheet
839 Dodge Rating  18.54% before DR  17.78% dodge on char sheet
766 Dodge Rating  16.93% before DR  16.77% dodge on char sheet
579 Dodge Rating  12.80% before DR  13.86% dodge on char sheet * this also has a 10 agi from 1 shifting dreadstone
The only thing that changes when I have an empty talent spec is that my stamina gets reduced and my block rating becomes 5% (because I lose Divine Bulwark).
~Arathor~
Arianne  80 Paladin  Protection
Arianne  80 Paladin  Protection
 Arianne
 Posts: 502
 Joined: Wed Jul 11, 2007 1:22 pm
Re: Theck's MATLAB thread  Cataclysm/4.x
theckhd wrote:That shouldn't be too hard though, I really just need to compare 0/3 to 3/3 and see how much of an increase we get. The other two sets (1/3 and 2/3) are just sanity checks.
Also, try and take note of Censure damage if you could. It scales with SP and AP, so performing the test naked (except for weapon) might be better for that. I think SotP might be affecting Censure based on Kysen's data in another thread, this test would confirm or refute that.
http://www.worldoflogs.com/reports/u67j ... details/9/
This is a log of 5 minute increments of testing of SotP with ~1 minute intervals in between on the Heroic Training Dummy in Exodar on the PTR 9/25/2010. I tried to make sure there was nothing affecting damage on the dummy and some extended pauses were to wait for things to wear off. The dummy appears to be bugged in that Frost Fever does not have a duration and is always present. I dunno if that would cause any issues.
This was done with the same set of gear except for varying weapons.
1: No Talents. Mithrios 271 reforged to have 15 mastery (56 str, 239.4 dps, 111 sta, parry 74, expertise 23, mastery 15).
2: Protection + 3/3 Divinity. Mithrios
3: Protection + 3/3 Divinity. Last Word (250.5 dps, 124 sta)
4: Protection + 3/3 Divinity. Bloodfall (2 hand, 325.8 dps, 175 agi, 251 sta, 60 str, 122 crit strike, 98 haste)
5: Protection + 3/3 Divinity + 1 SotP. Mithrios
6: Protection + 3/3 Divinity + 1 SotP. Last Word
7: Protection + 3/3 Divinity + 2 SotP. Mithrios
8: Protection + 3/3 Divinity + 2 SotP. Last Word
9: Protection + 3/3 Divinity + 3 SotP. Mithrios
10:Protection + 3/3 Divinity + 3 SotP. Last Word (10 minutes)
Last edited by Arianne on Sat Sep 25, 2010 3:07 pm, edited 1 time in total.
~Arathor~
Arianne  80 Paladin  Protection
Arianne  80 Paladin  Protection
 Arianne
 Posts: 502
 Joined: Wed Jul 11, 2007 1:22 pm
Re: Theck's MATLAB thread  Cataclysm/4.x
Thanks. Just looking at parses 3 and 10, it's clear that you get a 15% boost to Censure's tick damage with 3 points in SotP. Myth confirmed!
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7849
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: Theck's MATLAB thread  Cataclysm/4.x
Need anything else?
~Arathor~
Arianne  80 Paladin  Protection
Arianne  80 Paladin  Protection
 Arianne
 Posts: 502
 Joined: Wed Jul 11, 2007 1:22 pm
Re: Theck's MATLAB thread  Cataclysm/4.x
Arianne wrote:Need anything else?
More time to code!
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7849
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: Theck's MATLAB thread  Cataclysm/4.x
Just committed what is likely the "final" version of prio_sim, as far as framework is concerned. I abandoned the "onthefly" damage calculations  they gave me no more flexibility than the postprocessing versions and slowed the simulation down significantly.
The sample queue seems to be giving good results. A simulation of one hour of combat (36000 timesteps of 0.1s each) gives me consistency within +/ 10 DPS for each ability in the queue, and only takes roughly 10 seconds on my laptop. It should scale mostly linearly, so a 5hours simulation should only take about a minute. Obviously it'll all be faster on a faster machine.
I have a raid tonight and want to try and spend some time on the beta before that. I'll try and find some time tomorrow to continue coding. Here's where we're going next:
1) I'd like one or two people to check the prio_sim code for consistency. Read over it and see if it makes sense, ask questions about how it works, run it and see if the results are sensible. I didn't comment it as well as I would like, but it should be fairly obvious what's going on.
2) We need to nail down the ability_module code to make sure it's spitting out reasonable ability damages. I plan on defining a default gear set comprised of the tanking gear on the lvl 85 premades on beta  using this and no buffs, we should be able to check for significant errors in this module. If anyone would like to work one step ahead of me and parse a bunch of abilities on a boss dummy with a premade for me, that would be great. What we're looking for is the average damage each ability does to an undebuffed dummy. For a "default" spec, just spec into every prot talent and none in ret or holy, that way there's no question what talents we have.
3) We need to code prio_model with all of the possible priority queues we're interested in. This includes everything from AS>CS vs. CS>AS to replacing ShoR with Inq for single targets to AoE rotations. If you guys could get brainstorming about realistic possibilities for rotations and post them here, that would help. As an example, the default is:
There are a number of obvious variations we'll want to try though. For example:
SD>ShoR>AS>CS>Jud>HoWr>Cons ("Is it worth pushing CS back for AS?)
SD>ShoR(if ccd.CS<1.5)>AS>ShoR>CS>Jud>HoWr>Cons ("Is it worth saving ShoR for the very last second?")
SD>AS>ShoR>CS>Jud>HoWr>Cons ("Is it worth pushing CS and ShoR back for AS?")
AS>ShoR>CS>Jud>HoWR>Cons ("Is it worth trying to get Sacred Duty procs?")
SD>(2+)ShoR (if SD up)>CS>Jud>AS>HoWr>Cons ("Is it worth using ShoR with 2 holy power as long as SD is active?")
The sample queue seems to be giving good results. A simulation of one hour of combat (36000 timesteps of 0.1s each) gives me consistency within +/ 10 DPS for each ability in the queue, and only takes roughly 10 seconds on my laptop. It should scale mostly linearly, so a 5hours simulation should only take about a minute. Obviously it'll all be faster on a faster machine.
I have a raid tonight and want to try and spend some time on the beta before that. I'll try and find some time tomorrow to continue coding. Here's where we're going next:
1) I'd like one or two people to check the prio_sim code for consistency. Read over it and see if it makes sense, ask questions about how it works, run it and see if the results are sensible. I didn't comment it as well as I would like, but it should be fairly obvious what's going on.
2) We need to nail down the ability_module code to make sure it's spitting out reasonable ability damages. I plan on defining a default gear set comprised of the tanking gear on the lvl 85 premades on beta  using this and no buffs, we should be able to check for significant errors in this module. If anyone would like to work one step ahead of me and parse a bunch of abilities on a boss dummy with a premade for me, that would be great. What we're looking for is the average damage each ability does to an undebuffed dummy. For a "default" spec, just spec into every prot talent and none in ret or holy, that way there's no question what talents we have.
3) We need to code prio_model with all of the possible priority queues we're interested in. This includes everything from AS>CS vs. CS>AS to replacing ShoR with Inq for single targets to AoE rotations. If you guys could get brainstorming about realistic possibilities for rotations and post them here, that would help. As an example, the default is:
 Code: Select all
Judge (for SD) if 'hopo>=3 && ccd.CS>1.5 && ccd.Jud<=0 && dur.SD<=0';...
ShoR if 'hopo>=3';...
CS if 'ccd.CS<=0';...
Judgement if 'ccd.Jud<=0';...
AS if 'ccd.AS<=0';...
Holy Wra if 'ccd.HoWr<=0'; ...
Cons if 'ccd.Cons<=0'};
There are a number of obvious variations we'll want to try though. For example:
SD>ShoR>AS>CS>Jud>HoWr>Cons ("Is it worth pushing CS back for AS?)
SD>ShoR(if ccd.CS<1.5)>AS>ShoR>CS>Jud>HoWr>Cons ("Is it worth saving ShoR for the very last second?")
SD>AS>ShoR>CS>Jud>HoWr>Cons ("Is it worth pushing CS and ShoR back for AS?")
AS>ShoR>CS>Jud>HoWR>Cons ("Is it worth trying to get Sacred Duty procs?")
SD>(2+)ShoR (if SD up)>CS>Jud>AS>HoWr>Cons ("Is it worth using ShoR with 2 holy power as long as SD is active?")
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7849
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: Theck's MATLAB thread  Cataclysm/4.x
Testing to see whether Inquisition is better than Shield of the Righteous is simple.
Inquisition buffs all Holy damage by 30% and lasts 12 seconds with 3 Holy Power. So if 30% of all our other Holy damage is more than SotR would hit for, Inquisition becomes better. Technically, there is one GCD that won't be covered by Inquisition each time, but that should be the CS that gives us our third Holy Power for the next Inquisition.
1 / 1.3 = 0.7692 (the breakeven point for total Holy damage other than SotR)
So if SotR is less than 23.08% of our total Holy damage, Inquisition becomes better for singletarget threat.
EDIT: Actually, there's one more factor  that CS after Inquisition fades will proc the SoT instant damage, which won't be affected by Inquisition. There's also a chance of an autoattack during that GCD. However, if the code determines ability damage before it runs priority simulations it could use 23% as a test to determine whether it's worth bothering to test for replacing SotR with Inquisition for singletarget.
Inquisition buffs all Holy damage by 30% and lasts 12 seconds with 3 Holy Power. So if 30% of all our other Holy damage is more than SotR would hit for, Inquisition becomes better. Technically, there is one GCD that won't be covered by Inquisition each time, but that should be the CS that gives us our third Holy Power for the next Inquisition.
1 / 1.3 = 0.7692 (the breakeven point for total Holy damage other than SotR)
So if SotR is less than 23.08% of our total Holy damage, Inquisition becomes better for singletarget threat.
EDIT: Actually, there's one more factor  that CS after Inquisition fades will proc the SoT instant damage, which won't be affected by Inquisition. There's also a chance of an autoattack during that GCD. However, if the code determines ability damage before it runs priority simulations it could use 23% as a test to determine whether it's worth bothering to test for replacing SotR with Inquisition for singletarget.
 Alandrek
 Posts: 19
 Joined: Sat Jan 23, 2010 12:16 am
Re: Theck's MATLAB thread  Cataclysm/4.x
While that's true in a general sense, it's not a sufficient condition. By looking at holy damage in aggregate, you're averaging out all of our holy abilities.
However, not all GCDs are created equal. Since HW and Cons are on fairly long cooldowns, there will be periods in our rotation where Inq is more attractive than others.
Example, ignoring GC procs:
ShoRCSJXCSXXCSJShoRCSHWConsCSJXCSShoRX
Now if you replace the first ShoR with Inq, you just get two Judgements worth of boost (plus any AS procs). However, if you replace the second ShoR with Inq, you buff the underline section  J, HW, and Cons (again, plus any AS procs). So using Inq lined up with your Cons cooldown could potentially be a DPS increase, even when ShoR is more damage than the limiting condition you listed.
Of course, this will all depend somewhat on the final damage tuning of Cons, HW, and Judgement.
However, not all GCDs are created equal. Since HW and Cons are on fairly long cooldowns, there will be periods in our rotation where Inq is more attractive than others.
Example, ignoring GC procs:
ShoRCSJXCSXXCSJShoRCSHWConsCSJXCSShoRX
Now if you replace the first ShoR with Inq, you just get two Judgements worth of boost (plus any AS procs). However, if you replace the second ShoR with Inq, you buff the underline section  J, HW, and Cons (again, plus any AS procs). So using Inq lined up with your Cons cooldown could potentially be a DPS increase, even when ShoR is more damage than the limiting condition you listed.
Of course, this will all depend somewhat on the final damage tuning of Cons, HW, and Judgement.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7849
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: Theck's MATLAB thread  Cataclysm/4.x
True  I was ignoring Consecration in particular, probably because I'm hoping they'll adjust our rotation so we don't want to use it for singletarget tanking.
 Alandrek
 Posts: 19
 Joined: Sat Jan 23, 2010 12:16 am
Re: Theck's MATLAB thread  Cataclysm/4.x
Alandrek wrote:True  I was ignoring Consecration in particular, probably because I'm hoping they'll adjust our rotation so we don't want to use it for singletarget tanking.
Same, currently to me the rotation feels pretty "clunky" with the downtime. It's not terrible but I think they could make some improvements by giving us one more option to push. Maybe an exo proc or something, i'm not sure really yet. It has potential though, I look forward to them adjusting it.
The rotation i was using to start out for single target was.
CS, AS, ShoR, Judgement Trying to mix in Holy Wrath whenever possible, i had no mana issues. Wouldn't mind seeing possibly judgement generating a holy power though or something to that effect.
Looking forward to the theorycrafting and more testing.

Lionnis  Maintankadonor
 Posts: 43
 Joined: Tue Mar 16, 2010 6:04 am
Re: Theck's MATLAB thread  Cataclysm/4.x
Requesting a very specific data set to finish up the ability_model module.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7849
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: Theck's MATLAB thread  Cataclysm/4.x
Indeed, that is possibly the most important graph I've ever created.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7849
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: Theck's MATLAB thread  Cataclysm/4.x
How much worse for threat is Seal of Insight vs Seal of Truth?
 wrathblood
 Posts: 38
 Joined: Wed Aug 15, 2007 4:17 pm
Return to Advanced Theorycraft and Calculations
Who is online
Users browsing this forum: No registered users and 1 guest