Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> Optimal Item World Strategy

 
post Nov 12 2018, 13:02
Post #1
iffelse



Nerd
****
Group: Gold Star Club
Posts: 337
Joined: 18-October 13
Level 440 (Godslayer)


I only calculated amnesia shard usage (do not calculate round; however easy to consider if I change a code little bit, I will possibly make html/js version of it and let user configure it)

If you are trying Juggernaut 5, and have dark descent hath perk, you don't have to reset on odd level.
Do not reset if there is any Jug potency, unless (sum of level of other potencies) > 5 (which is impossible to have Jug5), or Jug1 with (sum of level of other two potencies) = 5. If only one other potency is unlocked, do not reforge it. (Do not reforge Jug1Wind5). If there are no Jug and you are in even level, then reforge it. It applies for both elemental and non-elemental prefixes.
Expected shard usage is 15.24 for non-elemental prefix and 13.68 for elemental prefix.

Unfortunately, if you do not have hath perk(which is my case), you might have to reset on even on Jug2. Please refer to python code below.

Calculating way:

Basically, the strategy is simple. Calculate "expected cost"(expected shard usage) for every potency combination. If doing IW is optimal, do it. Otherwise, reforge it. So, (expected cost of potency) = min(expected cost of PXP0 + reforge potency, weighted-average of expected cost after IW). Now, you can solve this big equation and get expected shard usage.

Actually, one can prove that this equation has one and only solution. Why? If we set "expected cost of PXP0" as x, re-calculated expected cost of potency (i. e., expected cost calculated assuming (expected cost of PXP0) = x) is piecewise linear function with slope < 1, Which can be prove that fixed point exists. So, we can calculate fixed point by binary search of 0 for increasing sequence f(x)-x. f(x) can be calculated as dynamic programming, so we can calculate this.

It is assumed that probaility of potency is picked uniformly, and probability of new potency unlock is 50% and 75% for 1 or 2 potency existing except for only potency having level 5.

The following is my python3 code with results: [pastebin.com] https://pastebin.com/ditBJ7rw

((a, b, c) means Jug level a, other potency with level b and c, O means it is optimal to reforge, X means it is not optimal to reforge)

So, this will give

QUOTE
No Element Prefix, No hath perk: 22.4152587468227 shard
No Element Prefix, Hath perk: 15.239237908343782 shard
Element Prefix, No hath perk: 20.346032487944328 shard
Element Prefix, Hath perk: 13.684466313990562 shard


I use little different version, which cannot reforge at PXP level 1 and no hath perk(which is my situation), and shard usage is as follows:

QUOTE
No Elemental prefix: 29.95343014191468
Elemental prefix: 26.897609134598625

If there is any question, bug on program, request on program (consider things like credits running IW), really bad grammar, and so on; please let me know.

This post has been edited by iffelse: Nov 13 2018, 05:18
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Nov 12 2018, 14:50
Post #2
Sad Penguin



End my life
*******
Group: Catgirl Camarilla
Posts: 2,224
Joined: 26-June 15
Level 500 (Ponyslayer)


QUOTE(iffelse @ Nov 12 2018, 11:02) *

Expected shard usage is 15.24 for non-elemental prefix and 13.68 for elemental prefix.

It is assumed that probaility of potency is picked uniformly, and probability of new potency unlock is 50% and 75% for 1 or 2 potency existing except for only potency having level 5.


I think optimal usage of AS should depends on some normal distribution rather than an average only, besides did you have any samples to support it? Uniform assumption could be really wrong, especially for new potency unlock chance.

I don't see any reasons to choose "Elemental prefix" as a factor, did you found any relationship between equipment prefix and potency?

QUOTE(iffelse @ Nov 12 2018, 11:02) *

Unfortunately, if you do not have hath perk(which is my case), you might have to reset on even on Jug2. Please refer to python code below.


Many WTS provide dark descent reforge service. Market price for AS is 13-15k per each, it is a terrible idea to reforge any equip without hath perk when you considered "optimal".

This post has been edited by Lostwizard: Nov 12 2018, 14:54
User is online!Profile CardPM
Go to the top of the page
+Quote Post

 
post Nov 12 2018, 15:11
Post #3
chjj30



πŸ¦˜θ·³ζ΅·ι­”ε₯³πŸ§™ηŽ‹δΈ–εšπŸŒŠ
***********
Group: Catgirl Camarilla
Posts: 10,934
Joined: 5-January 14
Level 500 (Ponyslayer)


QUOTE(Lostwizard @ Nov 12 2018, 20:50) *

I don't see any reasons to choose "Elemental prefix" as a factor, did you found any relationship between equipment prefix and potency?



e.g. if one Equipment has Ruby Prefix, you can't get Fire Resistence in IW on this Equipment.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Nov 12 2018, 15:18
Post #4
Sad Penguin



End my life
*******
Group: Catgirl Camarilla
Posts: 2,224
Joined: 26-June 15
Level 500 (Ponyslayer)


QUOTE(chjj30 @ Nov 12 2018, 13:11) *

e.g. if one Equipment has Ruby Prefix, you can't get Fire Resistence in IW on this Equipment.

Oh yes, almost forgot those cases (IMG:[invalid] style_emoticons/default/duck.gif) . His code considered armor only, other equip such as staff with Focus suffix have the same situation, it is also interesting to calculate expected shard usage for them.
User is online!Profile CardPM
Go to the top of the page
+Quote Post

 
post Nov 12 2018, 15:24
Post #5
chjj30



πŸ¦˜θ·³ζ΅·ι­”ε₯³πŸ§™ηŽ‹δΈ–εšπŸŒŠ
***********
Group: Catgirl Camarilla
Posts: 10,934
Joined: 5-January 14
Level 500 (Ponyslayer)


QUOTE(Lostwizard @ Nov 12 2018, 20:50) *

Many WTS provide dark descent reforge service. Market price for AS is 13-15k per each, it is a terrible idea to reforge any equip without hath perk when you considered "optimal".


If you can use dark descent reforge Service, you should go to the Case "with Hath Perk". There is still Cases that you can't use dark descent reforge Service, e. g. Equipments bought from Bazzar or won from Lotteries, or Players who doesn't want to send Equipments to others.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Nov 12 2018, 15:39
Post #6
iffelse



Nerd
****
Group: Gold Star Club
Posts: 337
Joined: 18-October 13
Level 440 (Godslayer)


QUOTE(Lostwizard @ Nov 12 2018, 21:50) *

I think optimal usage of AS should depends on some normal distribution rather than an average only,


Here, I mean optimal is minimum expected amnesia shard usage.

QUOTE(Lostwizard @ Nov 12 2018, 21:50) *
besides did you have any samples to support it? Uniform assumption could be really wrong, especially for new potency unlock chance.


Item World - EHWiki tells that "Additional levels of potency are more likely to level up existing ones rather than give new ones (50% chance when you have one, 75% when you have two)."
This might be false anyway, I rather believe wiki while I do not have much data. I am gathering data for at least my IW run. I will carefully watch data for new potency unlock.

I also think uniform potency assumption is really sane; same probability for Elecproof and Juggernaut. Anyway, this might be false, but I will assume it unless I gather sufficient data for disproving it.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Nov 13 2018, 02:40
Post #7
BlueWaterSplash



Swimsuit Girl
********
Group: Members
Posts: 3,423
Joined: 15-March 11
Level 408 (Godslayer)


I tried to skim your code but I don't know python so I could not understand it well. Is that the whole code? It looks shorter than what I would expect.

QUOTE(iffelse) *
Do not reset if there is any Jug potency, unless (sum of level of other potencies) > 5 (which is impossible to have Jug5), or Jug1 with (sum of level of other two potencies) = 5. If only one other potency is unlocked, do not reforge it.

An interesting strategy. If it were me I would already reforge if I had Windproof 4 and Juggernaut 0 but this is just based on instinct. Is this what your program learned, or is this the assumption you gave your program?

QUOTE(iffelse)
Basically, the strategy is simple. Calculate "expected cost"(expected shard usage) for every potency combination. If doing IW is optimal, do it. Otherwise, reforge it. So, (expected cost of potency) = min(expected cost of PXP0 + reforge potency, weighted-average of expected cost after IW). Now, you can solve this big equation and get expected shard usage.

Expected cost is not necessarily proportional to expected shard usage because there is the cost to perform the runs. Are you saying your program already takes this into account internally as well?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Nov 13 2018, 05:17
Post #8
iffelse



Nerd
****
Group: Gold Star Club
Posts: 337
Joined: 18-October 13
Level 440 (Godslayer)


QUOTE(BlueWaterSplash @ Nov 13 2018, 09:40) *

I tried to skim your code but I don't know python so I could not understand it well. Is that the whole code? It looks shorter than what I would expect.


Yeah, It is whole code, and this logic is quite compact.

QUOTE

An interesting strategy. If it were me I would already reforge if I had Windproof 4 and Juggernaut 0 but this is just based on instinct.


I mean, do not reforge it at Jug1 and Wind4 or Jug1 and Wind5. If you have no Jug and even level, you should reset it. I think my Enlglish is bad (IMG:[invalid] style_emoticons/default/sad.gif)

QUOTE

Is this what your program learned, or is this the assumption you gave your program?


My program does not use machine learning or something similar with that. I just calculate the one and only solution of the equation based on only assumption that potency unlock probability is given as written above.

QUOTE

Expected cost is not necessarily proportional to expected shard usage because there is the cost to perform the runs. Are you saying your program already takes this into account internally as well?


Yes, Right. But here, I only count expected shard usage, but cost to perform the runs also can be counted using same skeleton code. I think I will work on it.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 


Lo-Fi Version Time is now: 7th October 2025 - 09:06