Elitist Jerks OptiGear - BiS warlock gear optimiser (alpha)

07/02/09, 5:03 AM   #16
VenomByte
Von Kaiser

Blood Elf Warlock

Bronze Dragonflight (EU)
 Originally Posted by Cohren I think something that needs to be added would be something for professions. Being a Jewelcrafter would affect the results. I also think there needs to be a way to filter gems because at BiS gear levels gemming for hit is not a good thing. Another thing I noticed was when I put in 342 hit rating even if I checked off force hit rating, it still calculated the gear with 350 hit. Overall I like the functionality and the ease to use it. I look forward to tracking the development.
Something for professions is on my 'to do' list. Blacksmithing is trivial, but Jewelcrafting is another matter. Having up to three prismatic gems adds a large amount of complexity to the algorithm. I am not sure whether there is much value in doing this when JC gems will lose their prismatic advantages in the next patch anyway. Professions aren't high up the priority list just yet for this reason.

As for filtering ordinary gems, I see no real value in this. Gems are cheap and readily available. If you believe the ones the program is telling you to use are not optimal and could be better replaced by different gear selections, then you should raise the issue and I will investigate whether there is a bug in the system. The program should be returning you the most efficient way to reach the hit cap, regardless of what part of that comes from gear and what part from gems.

EDIT:
Further on gems, I wonder if it might be worth challenging the assumption that
* [Runed Scarlet Ruby]
* [Reckless Monarch Topaz]
* [Veiled Monarch Topaz]
* [Purified Twilight Opal]
are the only worthwhile gems.

If you run the app with the default affliction settings, with head slot locked to 'Enamored Cowl', you will see it gemmed with a Shining Forest Emerald - Item - World of Warcraft. This fills 1 blue gem towards the meta requirement, as well as completing the +9sp yellow socket bonus and giving the last few hit points needed to get over the cap. I cannot be 100% sure the calculation was bug free, but logically I can't fault the decision to put a green gem there. This is admittedly a rare situation, but one worth considering.

Thoughts?

Last edited by VenomByte : 07/02/09 at 6:22 AM.

 07/02/09, 5:57 AM #17 VenomByte Von Kaiser   Bloodrac Blood Elf Warlock   Bronze Dragonflight (EU) A few more fixes: v0.63 - 2/7/09 - Fixed bug where gems assigned to locked items would not be displayed - Compacted layout slightly - Prevented crash when clicking on an link with no item assigned - Added labels to the left of items so you can more clearly see what slot it is for - Prevented app becoming disabled when invalid weight data was input
 07/02/09, 7:20 AM #18 Troffel Von Kaiser   Troffel Gnome Warlock   Der Rat von Dalaran (EU) Stone me to death, but I have to say, that the method of gear optimisation is wrong. Even if it became widely accepted: You can not use linear weights to value the items and use this linear function as a objective function for BiS-items. If you take the dps of a tank'n'spank fight over 3 minutes as the objective function, the function is neither linear nor multilinear. Even if all other stats are fixed, the change of one stat is only linear for spell power. The reason that the objective function is not linear, if the other stats are fixed: hit rating: The cap crit rating: The cap and mechanics: pyroclasm haste rating: The gcd cap and spell cooldowns. The cooldowns of chaos bolt and conflagrate make the objective function looks like a "step function". After this criticism I want to indicate a method how to get a proper best equipment set: Choose a concrete talent spec, number of T-items and type of fight Generate a statistical model Estimate the parameters of the model Verify that the resulting concrete model is proper. If not, go back to step 2 Derive the objective function Use as the search space all possible item combinations of gear and do a brute force search over the whole space to maximise the objective function Beware: If you change something of step 1, you have to do the whole method again.
 07/02/09, 7:24 AM #19 khel Piston Honda   Jcpandamme Pandaren Monk   Stormreaver (EU) Wouldn't it be fairly easy to make this applicable to any class? With decent estimates for set bonus dps values, and allowing the user to enter in stat values themselves, I would love to use this for my moonkin, but the tier gear messes it up right now.
 07/02/09, 7:46 AM #20 Rakzul Glass Joe   Rakzul Undead Warlock   Magtheridon (EU) There seems to be a bug in the process of gemming to match the meta requirement. In screenshot 1 below you can see that the application chose to gem 3 Purified Twilight Opal's, and specifically one into a red socket in the head piece. Gemming a Runed Scarlet Ruby into this slot would yield more DPS with the given weights, since the meta is still activated by the two other blue gems. Locking the "No Meta Gem" option for the head piece correctly converts the Purified Twilight Opal into a Runed Scarlet Ruby as can be seen in screenshot 2. (1): http://img525.imageshack.us/img525/5918/opti1.jpg (2): http://img20.imageshack.us/img20/6641/opti2.jpg
 07/02/09, 9:01 AM #21 thetrueavatar Von Kaiser   Makilélè Undead Warlock   Sargeras (EU) @Troffel I do agree with you, when say that the approach is not right if we want to have a exact BIS equipment. Model is non-linear. If it was, scale factor would always be the same and model would be DPS(haste,crit,sp,hit,int,sp)=Fixed_DPS+SF_haste*haste+SF_crit*crit+SF_SP+.... . But we saw that SF change depending the gear you have. So SF_haste would be a function like SF_haste(haste,crit,SP,...). Scale factors are fined for a one by one equipment switch but not to find a combinaison of gears. However, I think that simcraft has done most of the reverse engineering to get a model close enough to the wow reality. Is there any mathematical representation of that model ? So why not just trying every combination but use the simcraft result instead of using scale factors ? For the programme, maybe could you how us a sorted list of the best in slot gearset instead of the very best that nobody won't ever see ^^. Last edited by thetrueavatar : 07/02/09 at 9:30 AM.
 07/02/09, 9:47 AM #22 VenomByte Von Kaiser   Bloodrac Blood Elf Warlock   Bronze Dragonflight (EU) Scale factors are calculated from an arbitary 'top level' set of gear. Since this app is calculating top level gear, it is likely those scale factors will be very close to the perfect values which would be accurate for the gear eventually chosen. These values are generally accepted as accurate guidelines when comparing a couple of items which might change one or two of your stats by a few percentage points - which essentially, is all this app will do over a good manually guesstimated BiS list. Comprehensivly exhausting every combination is not feasible.... especially not if you want to Simcraft every single one. Simcraft isn't perfect, nor is recount, or any other tool for simulating or calculating damage or gear. You'll never know for sure what the true 'best' setup is. But this is a step in the right direction. Last edited by VenomByte : 07/02/09 at 10:04 AM.
07/02/09, 10:18 AM   #23
bastetswarrior
Glass Joe

Human Warlock

Terenas
Piecewise linearity

 Originally Posted by Troffel Even if all other stats are fixed, the change of one stat is only linear for spell power. The reason that the objective function is not linear, if the other stats are fixed: hit rating: The cap crit rating: The cap and mechanics: pyroclasm haste rating: The gcd cap and spell cooldowns. The cooldowns of chaos bolt and conflagrate make the objective function looks like a "step function".
If you can model linear objective functions, then piecewise linear functions such as max and min just take a bit of trickery. I don't know about the algorithm of OptiGear, although the original post mentioned exhaustive search. If it works based on linear programming principles, then one can rephrase the obvious contrainsts to slightly different constraints which are linear.

For example, let's consider a simplified example where we will just focus on hit of N slots of gear, each with possible L_i choices of items. I'll ignore gem slots and 1H/2H for this example.
• Let $x_{i,j}$ for $1 \leq i \leq N, 1 \leq j \leq L_i$, be 0-1 integer variables representing whether or not to use the $x_{i,j}$ piece of gear.
• Let $h_{i,j}$ be the amount of hit on the $x_{i,j}$ item.
• Let $W_h$ be the hit scaling factor.
• Let $s_{i,j}$ be the weighted (multiplied by scaling factor) other stats on the $x_{i,j}$ item.
• Let $H$ be the hit cap.

The informal problem (I suppress obvious limits of indices for readability) is to maximize
$W_h*\min ( H, \sum_{ i,j } h_{i,j} x_{i,j} ) + \sum_{i,j } s_{i,j} x_{i,j}$

with the decision variables $x_{i,j}$,
subject to the constraints

$\sum_{j} x_{i,j} \leq 1$ , for each $1 \leq i \leq N$.
This represents 1 piece of gear per category.

For the formal version, we simply introduce a new decision variable Z and add more constraints.
The formal problem rephrased into a proper linear program is to maximize
$Z + \sum_{i,j } s_{i,j} x_{i,j}$
with decision variables $Z$, $x_{i,j}$
subject to
• $Z \leq H$
• $Z \leq \sum_{ i,j } h_{i,j} x_{i,j}$ - equations to enforce min
• $\sum_{j} x_{i,j} \leq 1$ , for each $1 \leq i \leq N$. This represents 1 piece of gear per category

I was meaning to implement this in Solver in OpenOffice/Excel for the past couple weeks for testing but hadn't gotten to it due to work and being tired.

Last edited by bastetswarrior : 07/02/09 at 11:34 AM. Reason: Clarified weight means scaling factor

 07/02/09, 10:57 AM #24 thetrueavatar Von Kaiser   Makilélè Undead Warlock   Sargeras (EU) I understand your point if you only goal is to provide the very best in slot gears. I was hoping application could help to choose upgrade until we reach the top BIS. About brute force algorithm, you are right it will take too much time with simcraft. However I was asking me how do you manage computing your BIS with scale factors ? Do you use kind of greedy algorithm ?
 07/02/09, 1:26 PM #25 angaroth Piston Honda   Greebo Undead Warlock   Twisting Nether Looks interesting - wrt to the white list/black list/gear filtering options - it might be nice to be able to choose which bosses are available, and which modes (10/25/hard). This would be a Best Available In Slot.
07/02/09, 11:02 PM   #26
Raugturi
Glass Joe

Gnome Warlock

Korgath
 Originally Posted by VenomByte If you run the app with the default affliction settings, with head slot locked to 'Enamored Cowl', you will see it gemmed with a Shining Forest Emerald - Item - World of Warcraft. This fills 1 blue gem towards the meta requirement, as well as completing the +9sp yellow socket bonus and giving the last few hit points needed to get over the cap. I cannot be 100% sure the calculation was bug free, but logically I can't fault the decision to put a green gem there. This is admittedly a rare situation, but one worth considering. Thoughts?
The problem with I am seeing is that even in situations where it has 2 or more blue sockets already gemmed with [Purified Twilight Opal] I am getting a [Shining Forest Emerald] in one blue or yellow socket. If you leave all gear available and the current stat weights from http://elitistjerks.com/f80/t48311-s...ost_3_1_specs/ for 0/13/58 the set it returns has [Boots of Fiery Resolution] with a [Runed Scarlet Ruby] and a [Shining Forest Emerald] (Full set it returns here: OptiGear profile on WoWHead). However, there are already 3 blue sockets being filled with [Purified Twilight Opal], so the meta requirement is more than met. In that situation the correct gemming would be to use a single [Veiled Monarch Topaz] in one of the yellow sockets, otherwise you are giving up 9sp for 8 haste (Moving the emerald to a blue socket would give up 9sp for 8 haste also as it frees up a yellow socket for a reckless rather than veiled).

So, you may be right that [Shining Forest Emerald] has a niche in sets with <2 blue sockets available that also requires some hit rating from gems to reach the cap. But right now the tool is using it when there are better options available.

Last edited by Raugturi : 07/02/09 at 11:11 PM.

 07/03/09, 4:32 AM #27 VenomByte Von Kaiser   Bloodrac Blood Elf Warlock   Bronze Dragonflight (EU) Yas, there was an issue with the app overgemming for meta requirements. Someone else picked up on this too. I believe it's now fixed in the latest version v0.64 3/7/09 - adjusted default profile weights to match simcraft - fixed meta requirement overgemming bug
 07/03/09, 5:35 AM #28 Xera81 Von Kaiser   Xeraya Human Warlock   Spinebreaker (EU) You have the basis of a very handy little app here. Once the basic mathematical bugs have been ironed out, the main issue is a little bit of polish. Echoing others sentiment: - Whitelist - Selectable Tiers of items available. e.g Non hard mode items for 25 man or Certain bosses like Algalons tables to be ignored (I am unlikely to get Starshard edge or any of his items in the coming weeks ) . See Rawr for how they implemented this. - Format for display of items. A classic view as shown in the armoury, or again Rawr would be nice. - Ability to further whitelist a selection of items for optimization with a simple flag. rather than having to pick through the entire loot table. - Ability to save a profile. - Ability to input your own stat weights, this allows who are not sold on the static stat weight concept free reign to calculate their own scales. (May also make the app easier to maintain). - Mouseover tooltips (Wowhead) - Cold beer dispenser. Hope this helps, as I would look forward to seeing some or all of this implemented in your application
 07/04/09, 1:30 PM #29 AquentVP Banned   AquentVP Undead Warlock   Malfurion App seems very handy and easy to use, but I'm finding that, with or without the "Force hit rating" box checked, the app is overstating my hit. For example, with “Force hit rating” checked, and “Target Hit Rating” at 368, the app states that my “Total hit” will be 375, but with the recommended gear/gems, my actual hit is at 332. By swapping the recommended trinket “Dying Curse” with “Elemental Focus Stone” I’m at 369. I see from previous posts that trinkets are treated differently. Could that be the issue?
 07/04/09, 5:29 PM #30 VenomByte Von Kaiser   Bloodrac Blood Elf Warlock   Bronze Dragonflight (EU) I haven't seen that with any of the settings I've tested so far. Can you tell me what settings you're running the search with (or send a screenshot) so I can repeat it for debugging? Also confirm you're running the latest version, currently v0.64.

 Elitist Jerks OptiGear - BiS warlock gear optimiser (alpha)