Script score impact. again

Started by Crashguard303

Crashguard303 Lv 1

Hi,
still want to remind that the recipe score impact can give strange values, if a script has been terminated, and that it shows score changes even for scripts which don't do anything to the puzzle structure at all.

This is confusing for those people, who want to try a new recipe.

For impact, I suggest fetching recent best score value before script start (As recent best can be reseted via script) and compare this value with this at script end (including real script end or script termination).

Of course, this wouldn't give any negative values anymore, but the average calculation will drop the impact value to zero, if the scripts don't do anything good for the whole time.

A step further would be including script running length (undo point count, number of tool uses) as score weighting,
so short script run times won't change impact value much, long times will change it much.
You just have to store number of operations, too.

For example:

If a script has done 70 operations, and made 50 points score difference (recent best and end minus recent best at start),
Then it is run again with 20 operations making 100 points, the average value is:

(7050+20100)/(70+20)

thanks for reading,
Alex

Rav3n_pl Lv 1

Or just simple "best score during or after script"-"score b4 script start".
Also "Script maker" runs should be not counting from obvious reasons ;]

Crashguard303 Lv 1

Very best is a special thing:
If you start a puzzle from scratch (new alignment or reset), the score gain the script would do then won't count (only it would exceed the old solution score), although it improved the new try on the puzzle.

I forgot to describe how adding new values to the old statistics work:
It will be:

x=Old average impact value
#ops_all=Number of all operations (of all script runs) so far
y=current score difference
#ops_curr=current number of operations

New impact Value (y) would then be
y=(y#ops_all+y#ops_curr)/(#ops_all+#ops_curr)

New operation number (ops_all) would be:
#ops_all=#ops_all+#ops_curr

Crashguard303 Lv 1

Sorry, there was a typo. It must be:

New impact Value (x) would then be
x=(x#ops_all+y#ops_curr)/(#ops_all+#ops_curr)

New operation number (ops_all) would be:
#ops_all=#ops_all+#ops_curr