Ulti
Member
I'm sure we can agree there's gotta be a better way of accomplishing this and having to wait for the same maximize query each day in case you gained access to a new item:
It had it right on the first line, must it really loop through a million other combinations? (rhetorical question)
In the above my query was:
At first thought, I was thinking a rough estimate flag would be nice.
But, after thinking about the issue a bit longer, I think what we really need is storage capabilities for storing eliminated items to make all future executions of the same query faster. Imagine:
In the above it would check if the file "ultibot_barf_mountain.txt" exists, if not create it.
Then loop through the file's contents and add them to an exclusion list for maximize to avoid considering.
Then preform the maximizing logic as usual and add newly discovered items to the exclusion list array for writing purposes if it scores a "0".
Then write to the "ultibot_barf_mountain.txt" file if there's any new items in our exclusion list array.
Presto.
For problematic items, we could add a nocache flag if there happens to be an item out there which doesn't work well with the cache.
As an added bonus, by storing the data in an easy to access map file, scripts can easily clear the cache.
Finally, SVNs can distribute pre-generated exclusion lists to make your first maximize speedy.
I know mafia already has the ability to deal with "cached" maximizing logic the 2nd time in a day which it runs a specific query.
But, what I'm suggesting here can speed up its first execution in a day.
Code:
Maximizing (1st time may take a while)...
15711 combinations checked, best score 1,177.74
34013 combinations checked, best score 1,177.74
52626 combinations checked, best score 1,177.74
71261 combinations checked, best score 1,177.74
90072 combinations checked, best score 1,177.74
108762 combinations checked, best score 1,177.74
127482 combinations checked, best score 1,177.74
146291 combinations checked, best score 1,177.74
164537 combinations checked, best score 1,177.74
180528 combinations checked, best score 1,177.74
196353 combinations checked, best score 1,177.74
212652 combinations checked, best score 1,177.74
229142 combinations checked, best score 1,177.74
245383 combinations checked, best score 1,177.74
261457 combinations checked, best score 1,177.74
277927 combinations checked, best score 1,177.74
294068 combinations checked, best score 1,177.74
310399 combinations checked, best score 1,177.74
327137 combinations checked, best score 1,177.74
343764 combinations checked, best score 1,177.74
360995 combinations checked, best score 1,177.74
377714 combinations checked, best score 1,177.74
394767 combinations checked, best score 1,177.74
411847 combinations checked, best score 1,177.74
428975 combinations checked, best score 1,177.74
446212 combinations checked, best score 1,177.74
463280 combinations checked, best score 1,177.74
480404 combinations checked, best score 1,177.74
496696 combinations checked, best score 1,177.74
512945 combinations checked, best score 1,177.74
529913 combinations checked, best score 1,177.74
546155 combinations checked, best score 1,177.74
562826 combinations checked, best score 1,177.74
579471 combinations checked, best score 1,177.74
596619 combinations checked, best score 1,177.74
613734 combinations checked, best score 1,177.74
631225 combinations checked, best score 1,177.74
648276 combinations checked, best score 1,177.74
665119 combinations checked, best score 1,177.74
682419 combinations checked, best score 1,177.74
699941 combinations checked, best score 1,177.74
717403 combinations checked, best score 1,177.74
734878 combinations checked, best score 1,177.74
751452 combinations checked, best score 1,177.74
768750 combinations checked, best score 1,177.74
786082 combinations checked, best score 1,177.74
802816 combinations checked, best score 1,177.74
820378 combinations checked, best score 1,177.74
837889 combinations checked, best score 1,177.74
855502 combinations checked, best score 1,177.74
872407 combinations checked, best score 1,177.74
890083 combinations checked, best score 1,177.74
907494 combinations checked, best score 1,177.74
925305 combinations checked, best score 1,177.74
943179 combinations checked, best score 1,177.74
960726 combinations checked, best score 1,177.74
978739 combinations checked, best score 1,177.74
996724 combinations checked, best score 1,177.74
1014354 combinations checked, best score 1,177.74
1032147 combinations checked, best score 1,177.74
1050055 combinations checked, best score 1,177.74
1067857 combinations checked, best score 1,177.74
1085815 combinations checked, best score 1,177.74
1103216 combinations checked, best score 1,177.74
1120983 combinations checked, best score 1,177.74
1138753 combinations checked, best score 1,177.74
1157099 combinations checked, best score 1,177.74
1176878 combinations checked, best score 1,177.74
1187840 combinations checked, best score 1,177.74
Putting on Boris's Helm (askew)...
Equipment changed.
Wielding garbage sticker...
Equipment changed.
Holding Half a Purse...
Equipment changed.
Putting on Buddy Bjorn...
Equipment changed.
Putting on Pantsgiving...
Equipment changed.
Putting on cheap sunglasses...
Equipment changed.
Putting on Uncle Hobo's belt...
Equipment changed.
Putting on droll monocle...
Equipment changed.
Putting on Snow Suit...
Equipment changed.
In the above my query was:
Code:
maximize meat, +equip cheap sunglasses -tie
But, after thinking about the issue a bit longer, I think what we really need is storage capabilities for storing eliminated items to make all future executions of the same query faster. Imagine:
Code:
maximize meat, +equip cheap sunglasses -tie +cache ultibot_barf_mountain.txt
In the above it would check if the file "ultibot_barf_mountain.txt" exists, if not create it.
Then loop through the file's contents and add them to an exclusion list for maximize to avoid considering.
Then preform the maximizing logic as usual and add newly discovered items to the exclusion list array for writing purposes if it scores a "0".
Then write to the "ultibot_barf_mountain.txt" file if there's any new items in our exclusion list array.
Presto.
For problematic items, we could add a nocache flag if there happens to be an item out there which doesn't work well with the cache.
As an added bonus, by storing the data in an easy to access map file, scripts can easily clear the cache.
Finally, SVNs can distribute pre-generated exclusion lists to make your first maximize speedy.
I know mafia already has the ability to deal with "cached" maximizing logic the 2nd time in a day which it runs a specific query.
But, what I'm suggesting here can speed up its first execution in a day.