Author Topic: MWLL-RDLG v1.5 - Random Droplist Generator  (Read 4107 times)

0 Members and 1 Guest are viewing this topic.

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #15 on: February 08, 2015, 04:07:15 PM »
Right now I don't have any idea but I'll think about it.

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.1 - Random Droplist Generator
« Reply #16 on: May 12, 2015, 06:37:37 PM »
A small update from me:
I was looking into pre-compiling a Linux-version of the program, which didn't quite work. I probably shouldn't have used the latest version of Qt, since that's not available in the package repositories yet - so far the only way I found to compile the program is to install the Qt SDK from here and then compiling the code with it.
There probably is another way which involves solving a bunch of dependencies which I couldn't be bothered with right now. Sorry. :(

Regarding some changes: I found a probably annoying bug that reenabled certain criteria whenever the program was launched, even if they should have actually been disabled.
Also, I tried to do what xInVicTuSx suggested, as good as possible: Lists that are generated are now printed in a certain order - tonnage, BV and total cost are taken into account (from most to least important). You could just generate 100 lists for two separate pairs of settings each and paste the results in e.g. Excel right next to each other. Due to the ordering it should be very easy to pair up lists. If any more usability changes need to be made, let me know.

EDIT: I just sat down and created an commandline-only version. Feed it with the right .ini-files and maybe an option or two (how many players and lists) and output is written to a console. That version should be easier to compile, since it has almost no dependencies except for the most basic Qt elements.

EDIT2: The source-code repository now contains the commandline-version and instructions in the file COMPILE.TXT are updated. If anybody would be willilng to compile that version himself, it should be possible now (at least it was under Ubuntu).

Offline xInVicTuSx

  • Apprentice Dev
  • Living Legend
  • *
  • Posts: 3683
  • l33tp0intz: +193/-5
  • Knight of the Inner Sphere
Re: MWLL-RDLG v1.2 - Random Droplist Generator
« Reply #17 on: May 13, 2015, 04:16:43 PM »
Thanks man.
Gonna have to remember how much I've changed though... I've hacked the crap out of my assets ini to custom tweak stuff.  :P

Only thing I've really had trouble with is getting Longtoms to show up in lists. I think it has something todo with them being so heavy and yet so cheap. I can get them to show eventually but at much lower cbills counts than I'm targeting.
-Invictus ne Vindicetur-

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.2 - Random Droplist Generator
« Reply #18 on: May 13, 2015, 07:51:03 PM »
Gonna have to remember how much I've changed though... I've hacked the crap out of my assets ini to custom tweak stuff.  :P
I did not change anything concerning the .ini-files, just continue using yours then. ;)


Only thing I've really had trouble with is getting Longtoms to show up in lists. I think it has something todo with them being so heavy and yet so cheap. I can get them to show eventually but at much lower cbills counts than I'm targeting.
Are you using any "average"-criteria? Should you for example say that an asset has to weigh 80 tons on average and cost 80k CBills on average, both combined with a "softness"-value smaller than 1, the Longtom will in almost all cases fail one of the criteria.
However, I think Longtoms are something you shouldn't easily distribute randomly in the first place. Consciously handing them out would probably be better to keep teams balanced, wouldn't it?

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.2 - Random Droplist Generator
« Reply #19 on: May 14, 2015, 09:03:47 PM »
At this point I would be willing to invest a little more work. Whatever might improve the usability, let me know. And if the "random" choices seem to be biased in some way, it would be nice if you could provide me with a criteria.ini (settings.ini and assets.ini only if your settings/changes seem to justify it) and a sufficiently detailed description of what bias might exist. I will try to think of a way to properly investigate that kind of problem.

Offline xInVicTuSx

  • Apprentice Dev
  • Living Legend
  • *
  • Posts: 3683
  • l33tp0intz: +193/-5
  • Knight of the Inner Sphere
Re: MWLL-RDLG v1.2 - Random Droplist Generator
« Reply #20 on: May 15, 2015, 04:45:03 PM »
I only have one Longtom list per player count over 6 players available at any time.

I don't use averages in my filters. Its just odd that they have a hard time showing up at all sometimes. When I do get them to show up the randomizer doesn't seem to figure out where to spend the unexpected money as the lists are always substantially under cost to my target. Does it pick in a particular order?

As far as biases? Hmmm, nothing too noticeable so far. I usually create a bunch of lists and then handpick 2 lists of cbills within ~1% of each other. Sorting by cost should speed up creation time by a lot as I've gotten it to still create lists with fixed BV and tonnages (softness 0) fairly quickly.

I've thought about simply creating artillery lists with one player count lower with room for 4 BV and 95 tons and then just manually adding the Longtom on one that better fits my price range.
And its good to hear I can use my old assets.ini!

Thanks for the continued support. 8)
-Invictus ne Vindicetur-

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.2 - Random Droplist Generator
« Reply #21 on: May 15, 2015, 05:32:17 PM »
I've thought about simply creating artillery lists with one player count lower with room for 4 BV and 95 tons and then just manually adding the Longtom on one that better fits my price range.
If you want to enforce a Longtom, you can always just add a criterion that does "N(Longtom) == 1".

Regarding your further input, I will sit down and investigate a bit. :)

Offline xInVicTuSx

  • Apprentice Dev
  • Living Legend
  • *
  • Posts: 3683
  • l33tp0intz: +193/-5
  • Knight of the Inner Sphere
Re: MWLL-RDLG v1.2 - Random Droplist Generator
« Reply #22 on: May 15, 2015, 05:45:17 PM »
Also do you know what it means when it says "Highest amount of assets found during the last 50 tries: 8/8"
Or some such. Basically that it supposedly found all units but still rejected the list?

I'm having a problem getting the randomizer to pick any APCs over crappy solitaires to round out its lists.

This is what the two units look like in notepad++

[ALL_HAPC]
battlevalue=3
category=APC
equipment=1 LAMS, 5 Spawns
faction=Clan, Inner Sphere
free_tons=4
heatsinks=0
mass=35
name=Heavy APC
parent_vehicle=HAPC
price=41000
range=
type=StdWheeled
variant=Prime
weapons=Mgun, Mgun
weapons_short=2 Mgun

[ALL_LAPC]
battlevalue=2
category=APC
equipment=1 LAMS, 3 Spawns
faction=Clan, Inner Sphere
free_tons=4
heatsinks=0
mass=25
name=Light APC
parent_vehicle=LAPC
price=31000
range=
type=StdWheeled
variant=Prime
weapons=Mgun, Mgun
weapons_short=2 Mgun

While I can occasionally force a list to include one... It seems EXTREMELY reluctant to make lists including one... I tried to have their weight, price, BV close to the average of 25 and 35 ton assets respectively but almost always it simply refuses to include them over picking some random trashy solitaire or garden variety 35 ton mech/chevy.
« Last Edit: May 15, 2015, 05:59:50 PM by xInVicTuSx »
-Invictus ne Vindicetur-

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.2 - Random Droplist Generator
« Reply #23 on: May 15, 2015, 08:18:31 PM »
Also do you know what it means when it says "Highest amount of assets found during the last 50 tries: 8/8"
Of course I know.^^
That is a bit misleading: Basically the program found 7 assets fitting all criteria, then randomly picked an 8th one which for some reason made the whole list not fit all criteria anymore. The error-message then just states that there currently are "8 assets" in a list which doesn't fit the criteria. I should probably change that.


I'm having a problem getting the randomizer to pick any APCs over crappy solitaires to round out its lists.
I think I should find a way to visualize what choices are made for what reason. I am currently trying to find a way to do this. Maybe there even is a bug when it rejects an "8/8" list.

Thanks for the asset-entries, I will make use of them.

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.2 - Random Droplist Generator
« Reply #24 on: May 16, 2015, 02:34:19 AM »
I did a full rebalancing of the random generation, the different types of criteria should be balanced better against each other now. Maybe the generation got faster, too - but that's hard to tell due to the complexity and randomness of the whole process.

LongToms are still somewhat rare but they did show up in roughly 10% of the lists I generated (nothing but reasonable mass-, BV- and price-restrictions), which by my taste seems to be a reasonable value. After all there are like 200 other assets to choose from.
APCs were much more rare. I would estimate ~3% of lists to contain one (I generated 150 lists to check that).

The "8/8"-error message has been removed. Assets that will make a list fail the final tests cannot be picked anymore.

By the way:
I would suggest changing the parent_vehicle of your APCs to just APC. It's not too important but it should provide some protection against seeing lists with one of each type of APC (if you apply any anti-repetition-criteria).
Code: [Select]
parent_vehicle=APC
Once the next version goes up (it's late at night here, so I'll probably do that tomorrow), I also suggest changing the "softness"-value of all anti-repetition-criteria you might be using. A value of 0.2 or below is suggested. The rebalancing made it so that the former value of 0.8 (i.e. "80% softness") is a very loose requirement (in version <=v1.2 0.8 was a pretty strict limit). 0.2 or maybe even less should be a much more reasonable choice now, only allowing for "emergency" duplicate variants.


How confusing are the criterion-parameters, by the way? Is that stuff decently understandable or did I overdo it?

EDIT:
A little toy was added. There are waaaaay too many Partisans at the moment, only very few APCs and Novacats. I'll try another combination of settings (just a couple more CBills than before).

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.4 - Random Droplist Generator
« Reply #25 on: May 18, 2015, 01:43:39 AM »
I couldn't resist digging a little bit deeper into the statistics. While playing around, a couple of little features crept in and a couple of bugs crept out. I consider the program done. Again. (Bugfixes will of course follow, if necessary.)

Now to some of the "scientific" results:

This is what happens when one chooses nothing but an average CBill-criterion with a softness of 0.2. Only assets within a certain range of the chosen CBill-value are allowed (80k), others are greatly suppressed. The graph is the result of a lot more fine-tuning.


The same graph with a softness of 0.6.


A softness of 1.0, still using a center-value of 80k CBills. To get a more even distribution, the value should be at roughly 100k. The very slight drop-off at the edges should give a nice suppression of Solitaires and Daishis, among others.

Here a more interesting image:

The standard criterion, 85k CBills per asset - i.e. 680k for 8 players. To once and for all make out biases and inconsistencies in the statistics. The very lightest and the heaviest asset show some irregularities, while everything else is approximately flat. The outer assets occur roughly twice as often as others - which, regarding the total amount of assets in the graph, wouldn't be noticeable. The reason is just that the outmost assets can sometimes be chosen to "save" an otherwise useless list. And so they are, it seems.

The last image is very large (12MP), I advise against clicking on it.

This is what happens when a bunch of criteria interact: 640k CBills per 8-player team, CBills centered around 105k, "no" duplicates, 480t per 8-player team, 18 BV per 8-player team.
Even though the single criteria are statistically "clean", the result is not at all predictable. There are a lot of Partisan E (well, probably a manageable amount), while Daishis, Fafnirs and BloodAsps are decently rare. Overall still a nice result, I think.
PS: The Partisan-Mysterie is solved and could be explained using some mathematical and statistical tools...but I'll just leave a short comment: Decrease tonnage or increase CBills, both will result in less Partisans. There is a sweet spot to be found.

Conclusion
I never thought this program would become so much more than the sum of its very simple parts. There are so many interdependencies between the different criteria/variables, many combinations will result in biases towards certain assets or at least give somewhat surprising results. I think I had my share of fun with this and made a statement about my utter nerdiness. Hopefully the work will be slightly useful. :)


To top things off, the list of criteria used for the last graph:
Code: [Select]
Criterion (Type): "               Battle Value (Total)" (BTOT) - Asset-property: "    battlevalue" - Softness: 0.05 - 2.07-2.25
Criterion (Type): "                       Mass (Total)" (BTOT) - Asset-property: "           mass" - Softness: 0.00 - 57.00-60.00
Criterion (Type): "              No Duplicate Variants" (DUPL) - Asset-property: "           name" - Softness: 0.10
Criterion (Type): "              No Duplicate Vehicles" (DUPL) - Asset-property: " parent_vehicle" - Softness: 0.20
Criterion (Type): "              Price (Center Around)" (BSGL) - Asset-property: "          price" - Softness: 1.00 - ~105000.00
Criterion (Type): "                      Price (Total)" (BTOT) - Asset-property: "          price" - Softness: 0.01 - 75200.00-78400.00

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.5 - Random Droplist Generator
« Reply #26 on: May 19, 2015, 08:35:56 PM »
I did a bit of profiling to increase the speed of the generator. Even with many criteria active it should now work roughly 5 times as fast as before.

Offline cest73

  • Star Captain
  • ***
  • Posts: 752
  • l33tp0intz: +21/-19
  • there are links in my signature -->
    • MW:LL game status online (kudos: Spooky)
Re: MWLL-RDLG v1.5 - Random Droplist Generator
« Reply #27 on: May 23, 2015, 01:36:16 PM »
 8)
::thumbsup::
 :o

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.5 - Random Droplist Generator
« Reply #28 on: November 07, 2016, 12:46:37 PM »
Is this still being used, i.e. does it need to be updated by me? The process should be easy, so I would prefer if anybody else could handle it.^^