11235813 / matlabadin Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/matlabadin
Automatically exported from code.google.com/p/matlabadin
- Subclass GraphParameters into RetGraphParameters and ProtGraphParameters
- Add HoW ability & logic
- Add TV ability & logic
- Add DS ability & logic
- Add Exo ability & logic
- Add Inq ability
-- Add (Inq) Action suffix
- Add SW ret logic
- Track Physical Vulnerability uptime (Judgments of the Bold)
Original issue reported on code.google.com by [email protected]
on 29 Mar 2012 at 4:29
What steps will reproduce the problem?
1. run calc_statscaling after updating the C# code
2. Once the code starts the hit scaling loop and enters the "if useParallel"
section of rotation_model, the following error occurs:
Deleting file
data\\^WB_^SS_SotR_CS_J_AS_Cons_HW\\Prot_003000\\T3_10000_90000_1_.csv as it
was generated by a previous build.
Deleting file
data\\^WB_^SS_SotR_CS_J_AS_Cons_HW\\Prot_003000\\T3_10000_90000_1_.csv as it
was generated by a previous build.
Deleting file
data\\^WB_^SS_SotR_CS_J_AS_Cons_HW\\Prot_003000\\T3_10000_90000_1_.csv as it
was generated by a previous build.
Deleting file
data\\^WB_^SS_SotR_CS_J_AS_Cons_HW\\Prot_003000\\T3_10000_90000_1_.csv as it
was generated by a previous build.
Deleting file
data\\^WB_^SS_SotR_CS_J_AS_Cons_HW\\Prot_003000\\T3_10000_90000_1_.csv as it
was generated by a previous build.
Deleting file
data\\^WB_^SS_SotR_CS_J_AS_Cons_HW\\Prot_003000\\T3_10000_90167_1_.csv as it
was generated by a previous build.
Deleting file
data\\^WB_^SS_SotR_CS_J_AS_Cons_HW\\Prot_003000\\T3_10000_90167_1_.csv as it
was generated by a previous build.
Deleting file
data\\^WB_^SS_SotR_CS_J_AS_Cons_HW\\Prot_003000\\T3_10000_90167_1_.csv as it
was generated by a previous build.
Deleting file
data\\^WB_^SS_SotR_CS_J_AS_Cons_HW\\Prot_003000\\T3_10000_90167_1_.csv as it
was generated by a previous build.
Deleting file
data\\^WB_^SS_SotR_CS_J_AS_Cons_HW\\Prot_003000\\T3_10000_90167_1_.csv as it
was generated by a previous build.
Deleting file
data\\^WB_^SS_SotR_CS_J_AS_Cons_HW\\Prot_003000\\T3_10000_90167_1_.csv as it
was generated by a previous build.
Deleting file
data\\^WB_^SS_SotR_CS_J_AS_Cons_HW\\Prot_003000\\T3_10000_90167_1_.csv as it
was generated by a previous build.
Deleting file
data\\^WB_^SS_SotR_CS_J_AS_Cons_HW\\Prot_003000\\T3_10000_90167_1_.csv as it
was generated by a previous build.
Unhandled Exception: System.AggregateException: One or more errors occurred.
---> System.Collections.Generic.KeyNotFoundException: The given key was not
present in the dictionary.
at Matlabadin.MatlabadinGraph`1.<>c__DisplayClassb.<.ctor>b__5(Choice c)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Matlabadin.MatlabadinGraph`1..ctor(MatlabadinGraph`1 graph, GraphParameters`1 gp)
at Matlabadin.Program.GenerateGraph(Int64GraphParameters gp, String rotation, Double[]& hintPr)
at Matlabadin.Program.ProcessGraph(TextWriter stream, String rotation, Int32 stepsPerGcd, PaladinSpec spec, PaladinTalents talents, Double haste, Double mehit, Double sphit)
at Matlabadin.Program.ProcessGraph(String file, String rotation, Int32 stepsPerGcd, PaladinSpec spec, PaladinTalents talents, Double haste, Double mehit, Double sphit)
at Matlabadin.Program.ProcessParams(String[] args)
at System.Threading.Tasks.Task.Execute()
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout)
at System.Threading.Tasks.Task.WaitAll(Task[] tasks)
at Matlabadin.Program.ParallelProcess(TextReader input)
at Matlabadin.Program.Main(String[] args)
and a pop-up window warning that fsm.exe has crashed appears. Clicking "OK" on
the window will allow the program to resume, but the same error may occur
multiple times in both the hit and exp loops.
Original issue reported on code.google.com by theckhd
on 8 Apr 2012 at 11:11
fsm.exe needs to adjust the duration of Weakened Blows based on the
presence/absence of Glyph of Hammer of the Righteous
-add glyph input to fsm.exe
-modify WB duration just as we did for AW with Sanctified Wrath talent
Original issue reported on code.google.com by theckhd
on 3 Aug 2012 at 7:20
- HA ability
- HA buff
* Wowhead & battle.net currently (2012-03-29) have different version of this
ability that require quite different implementations. The wowhead version does
not have a GoaK link which I assume is later because it's a better design for
Prot.
Original issue reported on code.google.com by [email protected]
on 29 Mar 2012 at 4:40
Initial support for Sanctity of Battle:
-add haste argument to FSM inputs
-adjust J/CS cooldowns based on haste
-determine appropriate time-step scaling (likely cdCS/10 or so?)
Original issue reported on code.google.com by theckhd
on 2 Apr 2012 at 2:19
Instead of converging state probabilities to steady-state t=inf solution, a
duration could be specified and all possible outcomes up to t=n could be
calculated.
Eg: J>Cons
t=0, 1 initial starting state[CS next]
t=1.5, 2 states: J miss[Cons next], J hit[Cons next]
t=3, 2 states: [J next]
...
t=600
This gives us an exact result without having to run simulations for many
timesteps. Some state coalescence logic will be required to prevent an
explosion of states for high values of t.
Original issue reported on code.google.com by [email protected]
on 29 Mar 2012 at 6:03
Update the matlab-C# command-line interface to pass actual talent choices
instead of true/false values.
- Pass the 6 talents chosen as per talent.m into fsm
- Add a spec parameter to the talent choices
- Update GraphParameters<T> with a Talent structure
- Update GraphParameters<T> with a Spec enum
- Int64StateManager: perform buff compression based on Talent/Spec
-- Allocate space for only one of the SH/EF/SS buffs
-- GC for prot, sunder for ret, etc
Original issue reported on code.google.com by [email protected]
on 30 Mar 2012 at 2:24
As a way to test whether a rotation is self-sustaining, which is potentially an
issue in 4.0.6, I want to implement mana tracking.
Basic concept:
+new structure in [AM] called mana.* which stores the mana cost of each ability
in the same form as raw.*, dmg.*, etc.
+costs will be be positive, gains (SoI, J) can be negative
+if desired, we can go with a more faithful representation that includes both
costs and gains? Mostly useful for real-time mana management in [PM],[PS]
+mana and pmana fields in val for postprocessing
+A rotation can be evaluated just on the basis of its ability weighting, in a
similar fashion to dps or healing. This will give us some idea of whether the
rotation is self-sustainable, or whether we should reduce Cons/HW filler usage.
Original issue reported on code.google.com by theckhd
on 14 Feb 2011 at 7:22
as title
Original issue reported on code.google.com by theckhd
on 22 Mar 2011 at 4:44
- DP trigger logic
- DP buff
- DP buff logic
- Rotation conditional changes?
-- Should we use DP conditionals in rotation or pretend we have 5 HP?
-- Eg ^SS>SotR5>CS>J>AS>Cons
--- DP procs off CS @ 2 HP: do we SotR immediately? I think we do.
Original issue reported on code.google.com by [email protected]
on 29 Mar 2012 at 4:46
The Art of War, Sanctity of Battle require significant changes to the model. In
particular:
- Auto-attack tracking
-- Can treat as a buff/ability CD
-- Need to create a graph branch whenever the swing timer reaches 0
Crusader's Zeal is easy to implement once the above is in place
With the above in place, we can improve the output to track:
- Track auto-attack swings since we have the info to do it
-- Seals
Original issue reported on code.google.com by [email protected]
on 29 Mar 2012 at 4:34
-Add ES ability & logic
Original issue reported on code.google.com by theckhd
on 29 Mar 2012 at 2:14
Support low-HP EF in fsm.exe through stacks (see comment in
StateTransition.UseAbility(), case EF).
Original issue reported on code.google.com by theckhd
on 3 Aug 2012 at 11:57
Shield of the Righteous Level 90
3 Holy Power Melee Range
Instant cast 1.5 sec cooldown
Requires Shields
Instantly slam the target with your shield, causing 4063 Holy damage, reducing
the physical damage you take by 30% for 3 sec, and causing Bastion of Glory.
Bastion of Glory
Increases the strength of your next Word of Glory when used to heal yourself by
10%. Stacks up to 5 times.
Changes Required:
- Additional suffix to WoG to indicate BoG stacks
- BoG buff: 20s duration, 5 stacks
Original issue reported on code.google.com by [email protected]
on 29 Apr 2012 at 10:08
http://db.mmo-champion.com/i/68739
added in 4.0.6
Also testing the issue tracker
Original issue reported on code.google.com by theckhd
on 14 Feb 2011 at 7:13
This is both a test of the issue tracker and a legitimate question.
There are two ways to handle the equipped gear set (egs) structure. The
first is to define egs slots by name, as such:
egs.head
egs.shoulder
egs.chest
and so forth. Each of these would be its own structure, so that typing
egs.head.sta
would return the amount of stamina on the equipped head slot item.
This has the advantage of being very straightforward and easy to code and
remember. The downside is that if we want, for example, to pull out the
total stamina contribution from gear, we need to do it by hand:
total_sta = egs.head.sta+egs.shoulder.sta+egs.chest.sta+...
Another possibility is to store the egs structure very similarly to the idb
structure. Each slot gets an index that corresponds to the slot id
in-game. This makes egs a 1xN structure array, where N is the number of
slots on the paper doll.
The advantage here is that every slot has the same stat fields, so
calculations of total contributions are very easy. The total stam is just:
sum([egs.sta]).
I'm leaning towards the second one, even though that means we'll have to
remember all the slot IDs. We could potentially work around this by adding
a second, optional argument to the equip() function that specifies the
slot. The second argument could take numeric or string inputs so that
equip(12345,'head')
would equip item 12345 in the head slot.
Original issue reported on code.google.com by theckhd
on 3 Jun 2010 at 8:09
SW
- No CD on J during AW
- [Ret] No CD on HoW during AW
Original issue reported on code.google.com by [email protected]
on 29 Mar 2012 at 4:06
-Add LH ability & logic
Original issue reported on code.google.com by theckhd
on 29 Mar 2012 at 2:14
Add support for GoWoG in fsm.exe
-add glyph input to fsm.exe
-add GoWoG buff, track duration (varies with HP used when cast)
-append (GoWoG) to output action strings when cast under buff
Original issue reported on code.google.com by theckhd
on 3 Aug 2012 at 7:22
In r495 I adjusted the arguments being written to file in fsm_gen to handle
permanent buffs (see line 59 of r495, compared to line 75 of r472). For some
reason, at this time fsm.exe started perceiving the '\n' terminator as an
argument and threw errors, so I removed it.
However, now any time we attempt to use parallel processing, the file is
written improperly and fsm.exe sees many input arguments (instead of 9).
Returning the newline character re-introduces the error in single calculations
(sees 10 inputs instead of 9), and causes crashes with the parallel processing.
Original issue reported on code.google.com by theckhd
on 3 Aug 2012 at 7:07
Run:
c=build_config('hit',2,'exp',2,'queue','SotR>CS');
[c.rot.hpg/3 c.rot.cps(8)]
ans =
0.0604 0.0741
The SotR cast rate is consistently 22.7% higher than the HPG rage
(ans(2)/ans(1)=1.2270). It sill occurs with longer queues (i.e. 'SotR>CS>J',
'SotR>CS>J>AS', etc.) and the ratio is always 22.7% for 2% hit and exp.
Note that c.rot.cps(8) matches the actionPr output for SotR, so the error must
lie somewhere within the FSM code. I've double-checked that the HPG rate is
correct (based on CS and J cast rates and miss percentages).
Interestingly, the ratio seems to depend on hit/exp. At 7.5% hit, 7.5% exp,
the ratio is 1.0811, which is (probably not coincidentally) 1/0.9250, or
1/(1-0.075), where 0.075 is the remaining chance to be parried.
As such, my assumption is that actionPr is errantly dividing SotR cast rates by
an extra factor of mdf.mehit.
Original issue reported on code.google.com by theckhd
on 14 Apr 2012 at 10:37
Run calc_statscaling in r504 (uploading shortly)
During the hit/hit calcs (hit scaling for hit) and hit/haste calcs (hit scaling
for haste), the code has to generate a large number of results. During these
long generation periods, fsm.exe will crash several times. Occasionally this
will throw an error in matlab as well (see below).
Unhandled Exception: System.AggregateException: One or more errors occurred.
---> System.IndexOutOfRangeException: Index was outside the bounds of the
array.
at Matlabadin.MatlabadinGraph`1.UpdateFromFixedWidthNextState(Double[] pr, Double[] nextPr)
at Matlabadin.MatlabadinGraph`1.CalculateNextStateProbability(Double[] pr, Double decayFactor)
at Matlabadin.MatlabadinGraph`1.ConvergeStateProbability(Int32& iterationsPerformed, Double& finalRelTolerance, Double& finalAbsTolerance, Double relTolerance, Double absTolerance, Int32 maxIterations, Int32 iterationStride, Double[] initialState)
at Matlabadin.Program.ProcessGraph(TextWriter stream, String rotation, PaladinSpec spec, PaladinTalents talents, Int32 stepsPerHastedGcd, Double haste, Double mehit, Double rahit, Buff[] permanentBuffs)
at Matlabadin.Program.ProcessGraph(String file, String rotation, PaladinSpec spec, PaladinTalents talents, Int32 stepsPerHastedGcd, Double haste, Double mehit, Double rahit, Buff[] permanentBuffs)
at Matlabadin.Program.ProcessParams(String[] args)
at System.Threading.Tasks.Task.Execute()
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout)
at System.Threading.Tasks.Task.WaitAll(Task[] tasks)
at Matlabadin.Program.ParallelProcess(TextReader input)
at Matlabadin.Program.Main(String[] args)
??? Error using ==> feof
Invalid file identifier. Use fopen to generate a valid file identifier.
Error in ==> memoized_fsm>load_fsm_csv at 62
while not(feof(fid))
Error in ==> memoized_fsm at 45
[actionPr, metadata, uptime] = load_fsm_csv(filename);
Error in ==> rotation_model at 131
[c.rot.actionPr, ...
Error in ==> calc_statscaling at 172
c=rotation_model(c);
I've also included two of the error log files below, if they're at all useful:
WERF90A.tmp.appcompat.txt:
<?xml version="1.0" encoding="UTF-16"?>
<DATABASE>
<EXE NAME="fsm.exe" FILTER="CMI_FILTER_PRIVACY">
<MATCHING_FILE NAME="fsm.exe" SIZE="69632" CHECKSUM="0x192F32F9" BIN_FILE_VERSION="0.0.0.0" BIN_PRODUCT_VERSION="0.0.0.0" PRODUCT_VERSION="0.0.0.0" FILE_DESCRIPTION=" " FILE_VERSION="0.0.0.0" ORIGINAL_FILENAME="fsm.exe" INTERNAL_NAME="fsm.exe" LEGAL_COPYRIGHT=" " VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="0.0.0.0" UPTO_BIN_PRODUCT_VERSION="0.0.0.0" LINK_DATE="08/05/2012 18:19:17" UPTO_LINK_DATE="08/05/2012 18:19:17" VER_LANGUAGE="Language Neutral [0x0]" EXE_WRAPPER="0x0" FILE_ID="00001e6cb8b89d71726254c70c1e6f4e9008f9bf74c0" PROGRAM_ID="0000da39a3ee5e6b4b0d3255bfef95601890afd80709" />
</EXE>
<EXE NAME="clr.dll" FILTER="CMI_FILTER_THISFILEONLY">
<MATCHING_FILE NAME="clr.dll" SIZE="9793280" CHECKSUM="0x42B57458" BIN_FILE_VERSION="4.0.30319.269" BIN_PRODUCT_VERSION="4.0.30319.269" PRODUCT_VERSION="4.0.30319.269" FILE_DESCRIPTION="Microsoft .NET Runtime Common Language Runtime - WorkStation" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Microsoft® .NET Framework" FILE_VERSION="4.0.30319.269 (RTMGDR.030319-2600)" ORIGINAL_FILENAME="clr.dll" INTERNAL_NAME="clr.dll" LEGAL_COPYRIGHT="© Microsoft Corporation. All rights reserved." VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x964183" LINKER_VERSION="0xA0000" UPTO_BIN_FILE_VERSION="4.0.30319.269" UPTO_BIN_PRODUCT_VERSION="4.0.30319.269" LINK_DATE="12/15/2011 11:15:45" UPTO_LINK_DATE="12/15/2011 11:15:45" EXPORT_NAME="mscorwks_ntdef.dll" VER_LANGUAGE="English (United States) [0x409]" EXE_WRAPPER="0x0" FILE_ID="00006b8286f068db77de56a171a076b6c62322b221ba" PROGRAM_ID="0000d2ebf46831d2cb329af767293eb20cfd0000ffff" />
</EXE>
<EXE NAME="kernel32.dll" FILTER="CMI_FILTER_THISFILEONLY">
<MATCHING_FILE NAME="kernel32.dll" SIZE="1162752" CHECKSUM="0x38678646" BIN_FILE_VERSION="6.1.7601.17651" BIN_PRODUCT_VERSION="6.1.7601.17651" PRODUCT_VERSION="6.1.7600.16385" FILE_DESCRIPTION="Windows NT BASE API Client DLL" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Microsoft® Windows® Operating System" FILE_VERSION="6.1.7600.16385 (win7_rtm.090713-1255)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="© Microsoft Corporation. All rights reserved." VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x12386D" LINKER_VERSION="0x60001" UPTO_BIN_FILE_VERSION="6.1.7601.17651" UPTO_BIN_PRODUCT_VERSION="6.1.7601.17651" LINK_DATE="07/16/2011 05:27:23" UPTO_LINK_DATE="07/16/2011 05:27:23" EXPORT_NAME="KERNEL32.dll" VER_LANGUAGE="English (United States) [0x409]" EXE_WRAPPER="0x0" FILE_ID="0000ade184001d3b1d5cb68c5922428c6148303b63cd" PROGRAM_ID="0000f519feec486de87ed73cb92d3cac802400000000" />
</EXE>
</DATABASE>
WERDFEE.tmp.WERInternalMetadata.xml:
<?xml version="1.0" encoding="UTF-16"?>
-<WERReportMetadata> -<OSVersionInformation>
<WindowsNTVersion>6.1</WindowsNTVersion> <Build>7601 Service Pack 1</Build>
<Product>(0x30): Windows 7 Professional</Product>
<Edition>Professional</Edition>
<BuildString>7601.17835.amd64fre.win7sp1_gdr.120503-2030</BuildString>
<Revision>1130</Revision> <Flavor>Multiprocessor Free</Flavor>
<Architecture>X64</Architecture> <LCID>1033</LCID> </OSVersionInformation>
-<ParentProcessInformation> <ParentProcessId>3968</ParentProcessId>
<ParentProcessPath>C:\Windows\System32\cmd.exe</ParentProcessPath>
<ParentProcessCmdLine>cmd /e:4096 /c "fsm.exe
<data\\fsm_gen_input_227665.tmp"</ParentProcessCmdLine>
</ParentProcessInformation> -<ProblemSignatures>
<EventType>APPCRASH</EventType> <Parameter0>fsm.exe</Parameter0>
<Parameter1>0.0.0.0</Parameter1> <Parameter2>501eb925</Parameter2>
<Parameter3>clr.dll</Parameter3> <Parameter4>4.0.30319.269</Parameter4>
<Parameter5>4ee9d6e1</Parameter5> <Parameter6>c0000005</Parameter6>
<Parameter7>00000000001750b8</Parameter7> </ProblemSignatures>
-<DynamicSignatures> <Parameter1>6.1.7601.2.1.0.256.48</Parameter1>
<Parameter2>1033</Parameter2> <Parameter22>b84f</Parameter22>
<Parameter23>b84fd7d7c9e22eb02ea540ad81d51552</Parameter23>
<Parameter24>bf45</Parameter24>
<Parameter25>bf45684e865a267a41b0062934da7820</Parameter25>
</DynamicSignatures> -<SystemInformation>
<MID>74F9EC72-2ED0-4560-9F94-300B79A3ADC9</MID> <SystemManufacturer>System
manufacturer</SystemManufacturer> <SystemProductName>System Product
Name</SystemProductName> <BIOSVersion>1305</BIOSVersion> </SystemInformation>
</WERReportMetadata>
Original issue reported on code.google.com by theckhd
on 5 Aug 2012 at 8:22
Run performance profiling on C# fsm code and optimise
Rotations including AW have very large state spaces and take a long time - need
to improve generation speed.
Original issue reported on code.google.com by [email protected]
on 1 Apr 2012 at 1:12
Add AW to MoP FSM
- AW ability
- AW buff
- (AW) suffix to casts
Original issue reported on code.google.com by [email protected]
on 29 Mar 2012 at 4:05
- Add Selfless Healer Graph Parameter
- Extend state tracking to record # buff stacks for stacking buffs
- Add buff stack rotation conditional eg: FoL[#SH=2]
Original issue reported on code.google.com by [email protected]
on 29 Mar 2012 at 4:13
-Add Holy prism abilities & logic
-HPE and HPA for enemy and ally targets, respectively
-FSM can treat it as a single ability; MATLAB needs to know which to use for
damage/heal calcs
Original issue reported on code.google.com by theckhd
on 29 Mar 2012 at 2:12
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.