Proficiency learning optimizer

Forum for game modifications and custom clients.

Proficiency learning optimizer

Postby Luaan » Wed Jan 28, 2015 8:58 pm

I've made a simple stupid and inefficient application to help with learning proficiencies (and skills).

Image

You can download the app at https://github.com/Luaancz/SalemOptimizer/releases.

Unless mentioned otherwise the inspirational values in the Github's archive are not up to date.
So additionally please download the most recent Inspirationals.tab file to overwrite the old one on your drive.

If later you want to contribute to keep the values up to date:
  • Head to the helper spreadsheet
  • Add or modify a line and save
  • Copy the edited line (ctrl-c)
  • Go to the end-user inspirationals file
  • Open it with Drive Notepad or any other text editor from the third-party apps list
  • Paste the line(s) you copied from the helper spreadsheet and save

One thing to note is that the solutions found aren't actually optimal (although you probably will not find better ones with the usual guessing process). Basically, the application simulates organisms (inspirational combinations) and using mutation and crossovers, tries to get to a better solution over time. This is something that can be tweaked a lot in code (both for speed and precision), but I'm pretty happy with the way it works now. It wastes a lot of CPU, but most of the time it only takes about half a second to find a solution on my computer. If you don't like the presented solution, you can press "Retry with best", and the top 5 organisms from the last evolution will be used in the next attempt - so you'll never get a *worse* result, and you have a chance of getting something nicer.

It feels good to see how the proficiencies you don't need tend to stay low, and the fit on those you do need tends to be quite tight as well :)

Of course, unlike a "smart" solution, this is stupid enough to be easy to adapt to pretty much any rule changes I can think of - outside of adding a random element (like with glutony). So if you find out something doesn't work out right, just post me and I'll fix it.
Luaan
 
Posts: 10
Joined: Mon Jun 17, 2013 8:44 am

Re: Proficiency learning optimizer

Postby Kandarim » Wed Jan 28, 2015 9:33 pm

Nicely done! But I'm always sad to see how much love genetic algorithms are getting :(
I have neither the crayons nor the time to explain it to you.
Fiduciani wrote:You can trust us. We're the good guys.
User avatar
Kandarim
Customer
 
Posts: 5199
Joined: Mon Jan 21, 2013 4:18 pm

Re: Proficiency learning optimizer

Postby Luaan » Wed Jan 28, 2015 10:15 pm

It's a great hammer for all your vaguely nailish needs ¦]
Luaan
 
Posts: 10
Joined: Mon Jun 17, 2013 8:44 am

Re: Proficiency learning optimizer

Postby JohnCarver » Wed Jan 28, 2015 10:16 pm

This looks like a nice thing.
Nsuidara wrote:it is a strange and difficult game in no positive way
User avatar
JohnCarver
Site Admin
 
Posts: 6199
Joined: Fri Jun 06, 2014 3:02 am

Re: Proficiency learning optimizer

Postby HolyLight » Wed Jan 28, 2015 10:24 pm

JohnCarver wrote:This looks like a nice thing.


Confidmed JC will never endorse it.

¦]

It does look very nice indeed, will be helpful to newer players and old ones.
Last edited by HolyLight on Wed Jan 28, 2015 10:26 pm, edited 2 times in total.
User avatar
HolyLight
 
Posts: 1635
Joined: Sat Jul 05, 2014 3:45 pm

Re: Proficiency learning optimizer

Postby bashnagdul » Wed Jan 28, 2015 10:25 pm

i love it allready
User avatar
bashnagdul
 
Posts: 115
Joined: Thu Jan 30, 2014 6:31 pm

Re: Proficiency learning optimizer

Postby majtejn » Wed Jan 28, 2015 10:28 pm

Nice work. You were faster than me... I'm almost done with the same :(
majtejn
 
Posts: 119
Joined: Sat Oct 05, 2013 5:13 pm

Re: Proficiency learning optimizer

Postby Luaan » Wed Jan 28, 2015 10:36 pm

majtejn wrote:Nice work. You were faster than me... I'm almost done with the same :(


Hah, yeah, I've noticed yours just after I uploaded my first version. Incredible coincidence :)
Luaan
 
Posts: 10
Joined: Mon Jun 17, 2013 8:44 am

Re: Proficiency learning optimizer

Postby majtejn » Wed Jan 28, 2015 10:46 pm

Yours is a bit nicer, and at least it does something. Mine is only a concept yet and I don't want to do the same thing exactly. I like your work, and I hope you continue the development.

PS: how do you parse the wiki? I have a nice solution for now if you didn't come up with a better one.
majtejn
 
Posts: 119
Joined: Sat Oct 05, 2013 5:13 pm

Re: Proficiency learning optimizer

Postby Gernot » Wed Jan 28, 2015 11:54 pm

Nice work.

Logic wise, however, it seems to me a greedy strategy based on the actual ratio of useful vs. wasted inspiration would be more efficient. For reasons of simplicity, assume the desired proficiencies are actually required for ONE level up. Further, let's assume you do not weigh the one you are actually going to click as double (or - more sensible - the others as half). The latter assumption simplifies the matter a bit, but weights can also be easily included. The main consideration would be to ascertain levelling multiple ones at once is actually cheaper than doing it one by one (since you get two points for the one you click).

In pseudocode:

1) for all inspirationals: sum up the proficiencies that are wanted and divide by total inspiration cost (this is the same value as found in the wiki, albeit for more than one proficiency at once).
2) then, calculate the same ratios for multiple uses (2 uses, 3 uses, etc.). After these steps, you should have a list like (stocks and cultivars) Mayapple 1st use: 49,4%, Mayapple 2nd use: 32,9%, Giant Willow Aphid 1st use: 45,9%
2) order the list by the ratio, then select the top X items till one of the desired proficiencies is reached.
3) remove this one from the list of wanted proficiencies and go back to step one. repeat till list of desired proficiencies is empty.
Gernot
 
Posts: 38
Joined: Tue Dec 04, 2012 2:46 am

Next

Return to Artifice & Arcana

Who is online

Users browsing this forum: No registered users and 1 guest