Root Admin Chewett Posted May 4, 2021 Root Admin Report Posted May 4, 2021 You likely will want to run the simulation a good number of times (at least 100 times but probably 1000 or more) to even out the effect that the random start has. Either that or run one run for every permutation of random ordering. Yoshi 1 Quote
Demonic God Posted May 4, 2021 Author Report Posted May 4, 2021 2 hours ago, Chewett said: You likely will want to run the simulation a good number of times (at least 100 times but probably 1000 or more) to even out the effect that the random start has. Either that or run one run for every permutation of random ordering. 1000 wouldn't be difficult. I'll do 100, 1000, and 5000 I guess, and tally up the number for each one. All permutation route might be problematic since the current code wasn't designed to do it atm, imo. Thanks for your advice! Quote
Demonic God Posted May 6, 2021 Author Report Posted May 6, 2021 Judging will begin between 12 - 24 hours from now! Quote
Demonic God Posted May 7, 2021 Author Report Posted May 7, 2021 So let's start the competition! As we have cases of ties for top position (the criteria for elimination being least wins > most loses > losing to all others performing similarly) for each individual "mini tournament", I've devised two system to keep track of performance: Counting wins - including shared All winners shares a point pool of 2520, divided to all winners (2520 being the least common multiple for 1 - 10, as we have 10 participants), Totaling to 25,200,000 points In addition, I've also logged every individual face-off to determine how well a strategy does into another, so you can view each pairing performance! Hopefully I made no mistake while translating the strategies. But as time constraint, this is as much testing I can do. CC'ing the participants: @Aia del Mana, @Nepgear, @Else, @Dracoloth, @Pipstickz, @Ledah, @Aelis, @Yoshi, @Kaya, @Tissy The tournament will be ran 10,000 times. As Chew pointed out, a larger number would be better to show a clear trend, and as the simulator can be ran as many time as needed, why not even more? Below you can find the compressed file for the final version of codes used. It includes all player strategies, and some strategies used for testing purposes. MD RPC.rar Without further ado... here are the top performers: Points: Kaya - 15,554,496 Tissy - 4,392,408 Else - 3,094,608 Wins: Kaya - 6804 Tissy - 2779 Else - 2144 As there's no discrepancy between the ordering, the top 3 winners are as such. Congratulations! Here's the full performance sheet from all participants: Cumulative wins: Kaya: 6804 wins Else: 2144 wins Dracoloth: 1368 wins Tissy: 2779 wins Yoshi: 435 wins Aia: 537 wins Pipstickz: 5 wins Aelis: 3 wins Cumulative points: Kaya: 15554496 points Else: 3094608 points Dracoloth: 1343460 points Tissy: 4392408 points Yoshi: 312024 points Aia: 495144 points Pipstickz: 3240 points Aelis: 4620 points Aia's cumulative match results: Aelis: 30867 wins, 0 loses, 0 draws Yoshi: 0 wins, 44920 loses, 0 draws Kaya: 3225 wins, 42405 loses, 0 draws Tissy: 45289 wins, 0 loses, 0 draws Else: 0 wins, 44206 loses, 0 draws Ledah: 17408 wins, 0 loses, 0 draws Pipstickz: 0 wins, 30632 loses, 0 draws Dracoloth: 45061 wins, 0 loses, 0 draws Nepgear: 17984 wins, 0 loses, 0 draws Aelis's cumulative match results: Aia: 0 wins, 30867 loses, 0 draws Else: 0 wins, 31326 loses, 0 draws Yoshi: 0 wins, 31044 loses, 0 draws Pipstickz: 18369 wins, 6765 loses, 0 draws Tissy: 30762 wins, 0 loses, 0 draws Kaya: 5849 wins, 25100 loses, 0 draws Dracoloth: 0 wins, 0 loses, 31342 draws Nepgear: 10780 wins, 0 loses, 6165 draws Ledah: 11045 wins, 3438 loses, 0 draws Ledah's cumulative match results: Kaya: 6523 wins, 10592 loses, 0 draws Tissy: 0 wins, 17408 loses, 0 draws Dracoloth: 0 wins, 17408 loses, 0 draws Else: 16974 wins, 0 loses, 0 draws Pipstickz: 13645 wins, 0 loses, 0 draws Aia: 0 wins, 17408 loses, 0 draws Nepgear: 0 wins, 10546 loses, 0 draws Yoshi: 0 wins, 17408 loses, 0 draws Aelis: 3438 wins, 11045 loses, 0 draws Kaya's cumulative match results: Ledah: 10592 wins, 6523 loses, 0 draws Aia: 42405 wins, 3225 loses, 0 draws Tissy: 36398 wins, 25519 loses, 0 draws Dracoloth: 50136 wins, 9526 loses, 0 draws Aelis: 25100 wins, 5849 loses, 0 draws Pipstickz: 1170 wins, 34551 loses, 0 draws Yoshi: 49919 wins, 3117 loses, 0 draws Nepgear: 16466 wins, 1368 loses, 0 draws Else: 36806 wins, 20579 loses, 0 draws Tissy's cumulative match results: Ledah: 17408 wins, 0 loses, 0 draws Dracoloth: 59247 wins, 0 loses, 0 draws Aia: 0 wins, 45289 loses, 0 draws Else: 0 wins, 56006 loses, 0 draws Aelis: 0 wins, 30762 loses, 0 draws Pipstickz: 36655 wins, 0 loses, 0 draws Nepgear: 17984 wins, 0 loses, 0 draws Kaya: 25519 wins, 36398 loses, 0 draws Yoshi: 52312 wins, 0 loses, 0 draws Dracoloth's cumulative match results: Ledah: 17408 wins, 0 loses, 0 draws Tissy: 0 wins, 59247 loses, 0 draws Else: 55622 wins, 0 loses, 0 draws Pipstickz: 36644 wins, 0 loses, 0 draws Kaya: 9526 wins, 50136 loses, 0 draws Nepgear: 0 wins, 6251 loses, 11683 draws Yoshi: 53086 wins, 0 loses, 0 draws Aelis: 0 wins, 0 loses, 31342 draws Aia: 0 wins, 45061 loses, 0 draws Else's cumulative match results: Aelis: 31326 wins, 0 loses, 0 draws Dracoloth: 0 wins, 55622 loses, 0 draws Aia: 44206 wins, 0 loses, 0 draws Tissy: 56006 wins, 0 loses, 0 draws Ledah: 0 wins, 16974 loses, 0 draws Nepgear: 0 wins, 17876 loses, 0 draws Pipstickz: 36641 wins, 0 loses, 0 draws Yoshi: 0 wins, 50990 loses, 0 draws Kaya: 20579 wins, 36806 loses, 0 draws Yoshi's cumulative match results: Aia: 44920 wins, 0 loses, 0 draws Aelis: 31044 wins, 0 loses, 0 draws Pipstickz: 23884 wins, 10671 loses, 0 draws Nepgear: 17984 wins, 0 loses, 0 draws Dracoloth: 0 wins, 53086 loses, 0 draws Else: 50990 wins, 0 loses, 0 draws Tissy: 0 wins, 52312 loses, 0 draws Ledah: 17408 wins, 0 loses, 0 draws Kaya: 3117 wins, 49919 loses, 0 draws Pipstickz's cumulative match results: Aelis: 6765 wins, 18369 loses, 0 draws Yoshi: 10671 wins, 23884 loses, 0 draws Dracoloth: 0 wins, 36644 loses, 0 draws Tissy: 0 wins, 36655 loses, 0 draws Ledah: 0 wins, 13645 loses, 0 draws Aia: 30632 wins, 0 loses, 0 draws Else: 0 wins, 36641 loses, 0 draws Nepgear: 17037 wins, 0 loses, 0 draws Kaya: 34551 wins, 1170 loses, 0 draws Nepgear's cumulative match results: Tissy: 0 wins, 17984 loses, 0 draws Else: 17876 wins, 0 loses, 0 draws Ledah: 10546 wins, 0 loses, 0 draws Yoshi: 0 wins, 17984 loses, 0 draws Dracoloth: 6251 wins, 0 loses, 11683 draws Pipstickz: 0 wins, 17037 loses, 0 draws Aelis: 0 wins, 10780 loses, 6165 draws Kaya: 1368 wins, 16466 loses, 0 draws Aia: 0 wins, 17984 loses, 0 draws I'll let the players decide if they want to explain their strategy themselves. I'll be posting my commentary (and the missing strategies) later Aelis, Aia del Mana, Yoshi and 2 others 5 Quote
Kaya Posted May 7, 2021 Report Posted May 7, 2021 TLDR: My strategy was build on being as unpredictable as possible, and only striking when I need to to get just enough of an edge to win the match. The base of my strategy reveals itself in the results. It is the only strategy that isn't hard countered, but also does not hard counter any other strategies. My strategy isn't build to come out on top all the time, but aims to come out on top more often than the others, at which it succeeded even better than I expected (With the exception being when up against Pip, which I'll get to). Random wins 50% of the time against any strategy. I kind of abused this fact by making a strategy that uses a large list of moves and looping through them to pick my attacks as the base of my strategy. To prevent prying eyes I switched up the way I loop through them between fights. This alone, however, is not enough to win. When my Aramor was starting to feel a bit bruised, and I only had 4 lives left, I would enter what I at some point lovingly dubbed emergency mode (Although it's nowhere in the code). Once in emergency mode I would start to try and match a number of patterns, like repetitions of the same move, cycling through the moves and some attempts at countering. When I matched something I would act on it, otherwise I continue looping through the list. The moment I no longer match anything I also continue cycling through my list. As to why I lost to Pip... My move list was heavily biased against scissors, making my lose to Pip's papermancy. I did change the list at some point to be more balanced, but forgot to let DG know, so it didn't actually make its way into the final code ^^' Interestingly when I reduce the move list to just 7 elements (2 paper, 2 scissors and 3 rock) and run for 1000 rounds my strategy seems to improve: Spoiler Cumulative wins: Kaya: 831 wins Else: 48 wins Dracoloth: 32 wins Aia: 180 wins Yoshi: 61 wins Tissy: 81 wins Nepgear: 5 wins Cumulative points: Kaya: 2012088 points Else: 39600 points Dracoloth: 26832 points Aia: 321840 points Yoshi: 42120 points Tissy: 75720 points Nepgear: 1800 points Pipstickz's cumulative match results: Tissy: 0 wins, 1608 loses, 0 draws Kaya: 173 wins, 1418 loses, 0 draws Dracoloth: 0 wins, 1607 loses, 0 draws Yoshi: 534 wins, 1046 loses, 0 draws Ledah: 0 wins, 1034 loses, 0 draws Aelis: 351 wins, 971 loses, 0 draws Nepgear: 1423 wins, 0 loses, 0 draws Aia: 1545 wins, 0 loses, 0 draws Else: 0 wins, 1607 loses, 0 draws Tissy's cumulative match results: Pipstickz: 1608 wins, 0 loses, 0 draws Nepgear: 4758 wins, 0 loses, 0 draws Yoshi: 5809 wins, 0 loses, 0 draws Kaya: 868 wins, 5457 loses, 0 draws Aelis: 0 wins, 2752 loses, 0 draws Dracoloth: 5232 wins, 0 loses, 0 draws Ledah: 1857 wins, 0 loses, 0 draws Else: 0 wins, 4247 loses, 0 draws Aia: 0 wins, 6293 loses, 0 draws Else's cumulative match results: Kaya: 679 wins, 3681 loses, 0 draws Yoshi: 0 wins, 4324 loses, 0 draws Aia: 4210 wins, 0 loses, 0 draws Dracoloth: 0 wins, 4097 loses, 0 draws Nepgear: 0 wins, 3794 loses, 0 draws Aelis: 2752 wins, 0 loses, 0 draws Ledah: 0 wins, 1813 loses, 0 draws Tissy: 4247 wins, 0 loses, 0 draws Pipstickz: 1607 wins, 0 loses, 0 draws Kaya's cumulative match results: Else: 3681 wins, 679 loses, 0 draws Pipstickz: 1418 wins, 173 loses, 0 draws Tissy: 5457 wins, 868 loses, 0 draws Yoshi: 5921 wins, 0 loses, 0 draws Aelis: 2450 wins, 287 loses, 0 draws Dracoloth: 3612 wins, 1516 loses, 0 draws Aia: 4771 wins, 1743 loses, 0 draws Ledah: 824 wins, 1021 loses, 0 draws Nepgear: 0 wins, 4676 loses, 0 draws Nepgear's cumulative match results: Tissy: 0 wins, 4758 loses, 0 draws Yoshi: 0 wins, 4758 loses, 0 draws Ledah: 1854 wins, 0 loses, 0 draws Dracoloth: 1564 wins, 0 loses, 2940 draws Else: 3794 wins, 0 loses, 0 draws Pipstickz: 0 wins, 1423 loses, 0 draws Aelis: 0 wins, 1108 loses, 1616 draws Aia: 0 wins, 4758 loses, 0 draws Kaya: 4676 wins, 0 loses, 0 draws Yoshi's cumulative match results: Tissy: 0 wins, 5809 loses, 0 draws Kaya: 0 wins, 5921 loses, 0 draws Else: 4324 wins, 0 loses, 0 draws Pipstickz: 1046 wins, 534 loses, 0 draws Nepgear: 4758 wins, 0 loses, 0 draws Dracoloth: 0 wins, 4979 loses, 0 draws Aia: 5766 wins, 0 loses, 0 draws Aelis: 2752 wins, 0 loses, 0 draws Ledah: 1857 wins, 0 loses, 0 draws Dracoloth's cumulative match results: Pipstickz: 1607 wins, 0 loses, 0 draws Aelis: 0 wins, 0 loses, 2741 draws Else: 4097 wins, 0 loses, 0 draws Tissy: 0 wins, 5232 loses, 0 draws Yoshi: 4979 wins, 0 loses, 0 draws Nepgear: 0 wins, 1564 loses, 2940 draws Ledah: 1857 wins, 0 loses, 0 draws Kaya: 1516 wins, 3612 loses, 0 draws Aia: 0 wins, 5093 loses, 0 draws Aelis's cumulative match results: Kaya: 287 wins, 2450 loses, 0 draws Tissy: 2752 wins, 0 loses, 0 draws Dracoloth: 0 wins, 0 loses, 2741 draws Aia: 0 wins, 2752 loses, 0 draws Pipstickz: 971 wins, 351 loses, 0 draws Ledah: 1466 wins, 214 loses, 0 draws Else: 0 wins, 2752 loses, 0 draws Yoshi: 0 wins, 2752 loses, 0 draws Nepgear: 1108 wins, 0 loses, 1616 draws Aia's cumulative match results: Aelis: 2752 wins, 0 loses, 0 draws Else: 0 wins, 4210 loses, 0 draws Ledah: 1857 wins, 0 loses, 0 draws Yoshi: 0 wins, 5766 loses, 0 draws Kaya: 1743 wins, 4771 loses, 0 draws Pipstickz: 0 wins, 1545 loses, 0 draws Dracoloth: 5093 wins, 0 loses, 0 draws Nepgear: 4758 wins, 0 loses, 0 draws Tissy: 6293 wins, 0 loses, 0 draws Ledah's cumulative match results: Aia: 0 wins, 1857 loses, 0 draws Nepgear: 0 wins, 1854 loses, 0 draws Pipstickz: 1034 wins, 0 loses, 0 draws Aelis: 214 wins, 1466 loses, 0 draws Dracoloth: 0 wins, 1857 loses, 0 draws Tissy: 0 wins, 1857 loses, 0 draws Else: 1813 wins, 0 loses, 0 draws Yoshi: 0 wins, 1857 loses, 0 draws Kaya: 1021 wins, 824 loses, 0 draws Pipstickz 1 Quote
Demonic God Posted May 10, 2021 Author Report Posted May 10, 2021 Alright - time to write commentaries! Aia: Her strategy consist of 2 simple states, and a way to "seed" the encounter. Her first move is determined by a pseudo-random criteria (if she's facing a male or female opponent). She has 2 states: countering her opponent last move, or lose against it. Swaps every 3 turns depending on performance. Notably, she also checks for fixed patterns - and although it's not too useful against most strategies, it does work against Ledah's. However, it is also quite slow to adapt to match condition, and even if one of the two state counters someone - this slow adaptation can lead to consistently close - but losing matches. Notably, against Pip Aelis: His strategy is to count his opponent move: their first move and their move against him, and output a counter to their most commonly used move. There's a decay value to keep the recent moves more relevant. He also have a panic mode to swap his moves around. I'd say the main downfall of this strategy (I was excited to see how well it would perform) - would be a few things: There's a very clear and apparent weakness against strategies that swap frequently. Where the move that was "most recently and most played" changes constantly - and the least likely to be played again. His panic mode helps - but the point difference could easily be too great to overcome, and many have states they could flip as well - back and forth, meaning the swap isn't too useful. He is one of the "tie trio" between him, Nep, and Draco - mainly due to the constant swapping. Notably - while Nep and Draco ties are understandable due to their highly similar strategies, Aelis output constantly changes when facing opponents with a fast changing output. Which lead to Nep/Draco strategy to immediately play against his move to output differently. Thus leading to an endless draw spiral. His first move strategy does however - lead to a consistent edge against certain strategies Against Nepgear - this gave him an edge to tie or win all encounters Against Draco rotating first move - this led to an endless tie, always. I'd say that the strategy itself has a lot of merit, as part of a bigger analytical engine The main downfall imo, would be that such strategy requires far, far more tuning in terms of number Such strategy also need to be a lot more complicated, has multiple prediction and categorization routes, which couldn't be done without a bigger model and more data/observation. Ledah: He rotates around 6 moves - PSRRSP Simple, but not a throw. This fixed pattern has a very strong counter potential to strategies that assume their opponent has a strategy This meant while not a strong contender, his strategy consistently beat certain strategies. Kaya: Well, Kaya posted their own tactic, so I'll just add a commentary: The mix of unpredictability and strategy is the main keypoint of this strategy It allows the strategy to strongly counters certain strategies It allows the strategy to try and keep an equal footing against others Random by itself - performs badly. The larger the tournament, the less likely that Random drops out before the finals This is clearly not the case - and the main reason why Kaya's strategy was allowed to sit in the gray zone. Tissy: A complicated mess of a Finite State Machine. His strategy simply has 6 states, corresponding to counter/lose/draw against his or his opponent last move. He updates the state every 2 moves, which allows a certain degree of flexibility I'd say in general, his strategy is good at predicting certain counter-move strategies, and it seems designed to do just that I'm not sure if there's any reason for the states to cycle, and you'll have to inquire him for any special reasoning! Draco & Nep: I'm grouping these two due to their similar strategies. They're both: Strategies with a self-determined first move Reacts immediately to opponent moves Both tries to directly counter opponent's move if they lost last move The main key difference would be of these three details: Draco cycles his first move - whereas Nep has a fixed first move Draco groups/considers draws and winning as "similar" outcome to react upon, Nep groups draws and losing. Draco counters his last move upon winning (or draw), whereas Nep copies his enemy last move This does lead to a surprising outcome - while Aelis draws with Draco and consistently beats or draw Nep - Nep consistently beat or draw with Draco This is due to the limited potential interaction between the two - based on Draco first move. 2 of which leads to a draw, whereas 1 of which leads to a loss The skew of the 1-2 ratio could be explained by the skewed first-move Draco give if they face against eachother at latter rounds Else: His strategy is a weighted counter based on his opponent last two moves - simple, but surprisingly resilient. By default - it counters certain pattern, and is countered by other patterns - hence it can lead to strong counter/weakness against strategy that is somewhat consistent in what they output Against strategies without a complex observation/time based state (which is most) - his strategy result in a clear win or loss. Which, in this tournament, is basically everyone but Kaya. Yoshi: He incorporates some logic with a simple rotating pattern for tiebreaker: If he wins, play same move If he ties, choose a pseudo-random rotating move If he loses, counters the enemy last move (not the way he described it, but that's effectively what it ends up being) He also have a panic mode during which he just straight up copies his enemy's last move. Pipstickz: He always play paper. Except when he sees his opponent play Scissors for their last move - then he plays Scissors. Surprisingly effective at countering counter-strategies despite its simplicity Despite its simplicity - he did manage to win the tournament under specific orderings - just not very consistent. ============================= Commentary: Well, most of my observation are listed at the above strategy discussion. There are also some key things I noticed during testing various setup, interactions, changing the participants, adding test strategies, removing certain participants to observe the rest and... It was honestly, a fun experience seeing how things clashed out. The tournament is actually a lot closer than it first seem to be - other than Kaya domination being a seemingly constant as long as her confusion array isn't horridly countered due to bad distributions. There are a few main things I'd like to talk about: The tournament has a very, very strong counter dynamic. A > B > C > A relations can be easily observed if you look at the documented pairing outcome - and that was a very, very strong determinant of how the results ends up to be. Nobody completely dominated everyone else - It was consistency against a larger, higher performing crowd that also likely to make it to latter rounds that gave Kaya their domination. Ledah and Pip - arguably the underdogs of this tournament, both have a very, very strong track record of beating Kaya. However, they are unlikely to make it to the inner rounds - giving Kaya a very strong advantage, facing mostly opponents they're comfortable beating past the first round. As such - a change of the tournament roster have been observed to drastically change the top spots. Pipstick - a strong Aia counter, when removed, bumps her position/ranking dramatically. Without neither Kaya or Pip - Aia actually consistently wins - or tie top spot in almost, if not all tournament. Notably however, the chances for ties also increases dramatically. Similarly with some slight changes - Draco actually comes out as a top winner, not Tissy nor Else as anticipated. The existence of observation/random-ish strategy serves as a very, very nice method of making the tournament outcome more interesting to observe - while strong counters gave rise to an interesting variation in dynamics as the participant changes, adaptation and non deterministic outcome (not strong counter - can win/lose/draw at specific ratio, such as the 1:2 win/draw chances of a faceoff between Nep and Draco) leads to variation in how likely someone will win given the same roster, giving rise to underdogs winning tournaments. This is an element that makes many sports interesting to see as well! All in all, I had great fun hosting this, and I hope all participants feels similarly. It is unlikely this event will be re-run anytime soon (due to the nature of it all) - but expect to see similar events in the future! Thank you all for your participation! Dracoloth, Pipstickz, Aia del Mana and 1 other 3 1 Quote
Ledah Posted May 10, 2021 Report Posted May 10, 2021 The first part of my strategy was to have Ledah declared the winner every time, but unfortunately that didn't make it in. Quote
Aia del Mana Posted May 11, 2021 Report Posted May 11, 2021 (edited) I have awarded Kaya the Wishpoint on behalf of Demonic God. edit: I have made a mistake in the description of the wishpoint reward; the reward I had meant to grant had been for Kaya's performance in the wonderful quest "A Hunt for Darvin" - please pay no heed to that which I had declared above. Edited May 11, 2021 by Aia del Mana Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.