TripleA Logo TripleA Forum
    • TripleA Website
    • Categories
    • Recent
    • Popular
    • Users
    • Groups
    • Tags
    • Register
    • Login

    Unit-strength function

    Scheduled Pinned Locked Moved Feature Requests & Ideas
    31 Posts 8 Posters 8.9k Views 8 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • V Offline
      VictorIn_Pacific @alkexr
      last edited by

      @alkexr Seven stars, and seven stones, and one white tree.

      What you refer to there, surely that is a paradox! And surely it indicates that someone has done a lot of calculations with the combat system, because I cannot believe that that was found on the spur of the moment.

      Random thought: If red tank (3/2) beats blue tank, and blue tank beats green tank, does that mean that red tank beats green tank?

      Less random thought: The AAA combat system is deterministic, even if it involves probabilities. Thus a non-deterministic outcome is impossible, even if there is no error in the example you showed. And I could not find an error. But there is a solution to this paradox, and it is that the strength of an army is not a fixed value, but is instead a relative value, thus: red army > blue army > green army > red army. Indeed, there is no paradox.

      1 Reply Last reply Reply Quote 0
      • V Offline
        VictorIn_Pacific
        last edited by

        Note: What I am talking about in these posts assumes use of the Low Luck system. Results obtained under the ordinary system have larger variations, and for small sample sets, fluctuations (luck) can dominate the major effects.

        When I ran a few simulations, I found that all it takes to bring a combat result from a 50% chance to win to approximately 100% is ONE extra unit, or even ONE extra combat point. The first seems reasonable, the second less so, until you consider that that single extra combat point can add up to multiple extra hits over multiple combat rounds. Accordingly, I propose the following unit-strength function:

        P = .5 + .5 U + .5 C ,

        where P = probability of winning, U = Unit differential, C = combat strength differential.

        Now, I know that this function is wrong, but it is a good start. I expect it to provide a decent result, as long as the the unit count is 10 or more. You can see that it works for the limiting cases. Results for P > 1 are taken to be P = 1.

        There are two other factors that should be considered: the Average combat strength, although this may already be accounted for by unit count and combat strength, and Skewness, which is a measure of the deviation of the unit strengths from the average. I would expect one point of Skewness to have almost the same effect as an extra combat point.

        Ultimately, I will try to solve the differential equations governing the combat. (I'm sure someone has already done this.) Basically, there are two linked differential equations that describe the situation; they state that the reduction in strength of an army is proportional to the strength of the opposing army. This problem could also be solved using the finite-difference approach, and even a program as simple as Excel can handle that.

        Spoiler alert: My second-stage test function, which incorporates Skewness and a fudge factor, can predict the result A > B > C > A. I will post that when I have more time.

        alkexrA 1 Reply Last reply Reply Quote 0
        • alkexrA Offline
          alkexr @VictorIn_Pacific
          last edited by

          @VictorIn_Pacific Impossibility... I do not think it means what you think it means. Mathematical impossibility simply means that the negation of a given statement is true under certain axioms.

          You were looking for a function that gives back the strength of a unit. What I have shown is that you were asking the wrong question. You cannot evaluate the value of a unit, not even that of an army.

          Linear formulas will also break down. If the value of a unit is scalar1 * hp + scalar2 * power, then the unit will, under its lifetime, kill expected_combat_rounds_survived * power / dicesides hitpoints, so you can write the equation expected_combat_rounds_survived * power / dicesides * scalar1 = scalar2 * power. But expected_combat_rounds_survived depends both on the average power and the deviation of power of ALL units on the board, and so does the ratio of scalar1 and scalar2.

          In short, if all units have 1 power, then 1 power is worth X utilons. If all units have 2 power, then 1 power is worth X/2 utilons.

          As for the differential equations for which I admittedly do not have a great affinity, my attempts at giving any sort of useful general solution failed miserably, so did those of others I asked about it. The simplified case where every unit has the same power is clearly solvable, but uninteresting, so I decided not to bother.

          Anyway... I really shouldn't be spending time writing comments here. Or if I focused my attention on TripleA, I could at least get back to working on my map. So... good luck with those nasty differential equations.

          "For the world is changing: I feel it in the water, I feel it in the earth, and I smell it in the air."

          1 Reply Last reply Reply Quote 1
          • Captain CrunchC Offline
            Captain Crunch Banned
            last edited by Captain Crunch

            wow Victorin_Pacific has now brought deontic logic into this! Hint, knowing deontic logic will boost your IQ test score 5-10 points ez believe me!

            Oh by the way, I learned from a great tv show years ago back when tv shows were actually educational that the Nash Embedding Theory proved the paradox that "linear equations are modular" ... which won Nash a Nobel and shows OBVIOUS paradox

            annyways, I'm waiting for redrum's final word since he programs the battle calculator logic and would know for sure what is and what isn't possible with this game engine

            CrazyGC 1 Reply Last reply Reply Quote 0
            • Captain CrunchC Offline
              Captain Crunch Banned
              last edited by

              hey how come we can't see who downvotes?

              prastleP alkexrA 2 Replies Last reply Reply Quote 2
              • prastleP Offline
                prastle Moderators Admin @Captain Crunch
                last edited by prastle

                @Captain-Crunch Pokes for a test @ Cap 😉
                Interesting you are correct

                If we open a quarrel between past and present, we shall find that we have lost the future! Sir Winston Churchill

                Captain CrunchC 1 Reply Last reply Reply Quote 0
                • Captain CrunchC Offline
                  Captain Crunch Banned @prastle
                  last edited by

                  @prastle si

                  prastleP 1 Reply Last reply Reply Quote 0
                  • prastleP Offline
                    prastle Moderators Admin @Captain Crunch
                    last edited by

                    @Captain-Crunch just made all votes public interesting @RoiEX ideas?

                    If we open a quarrel between past and present, we shall find that we have lost the future! Sir Winston Churchill

                    Captain CrunchC 1 Reply Last reply Reply Quote 0
                    • Captain CrunchC Offline
                      Captain Crunch Banned @prastle
                      last edited by

                      @prastle I still can't see who is downvoting -.-

                      1 Reply Last reply Reply Quote 0
                      • Captain CrunchC Offline
                        Captain Crunch Banned
                        last edited by

                        @Victorin_Pacific hey whats next ... the Bell Inequalities??

                        😜

                        1 Reply Last reply Reply Quote 0
                        • alkexrA Offline
                          alkexr @Captain Crunch
                          last edited by

                          @Captain-Crunch I downvoted. That comment didn't appear to be very useful, since to my understanding, checksums have little to do with the topic, math is never paradoxical, the Heisenburg Uncertainty Principle is actually called Heisenberg Uncertainty Principle, and that's not even mathemathics, it's quantum physics.

                          "For the world is changing: I feel it in the water, I feel it in the earth, and I smell it in the air."

                          1 Reply Last reply Reply Quote 0
                          • CrazyGC Offline
                            CrazyG Moderators @Captain Crunch
                            last edited by

                            @Captain-Crunch said in Unit-strength function:

                            annyways, I'm waiting for redrum's final word since he programs the battle calculator logic and would know for sure what is and what isn't possible with this game engine

                            The battlcalculator just simulates the battle and tells you the % won and lost. Which is an accurate (though sometimes time consuming way) to get a decent prediction. What I (and I think other experienced players) often do is just open the battlecalc to check how many units each side would have, and after seeing the unit numbers the answer is sometimes obvious. Its not 100% accurate with more complex units, but that's okay.

                            I don't think you can make an equation that produces a single number for the strength of an army (or a unit), because its dependent on your opponent's forces. Its been explained pretty well why. You can't make an equation for individual units either (I tried a while ago), its just not the correct approach.

                            Captain CrunchC 1 Reply Last reply Reply Quote 1
                            • Captain CrunchC Offline
                              Captain Crunch Banned @CrazyG
                              last edited by

                              @CrazyG so his question isn't about the engine but about some chart to help him predict his chances in a battle?

                              Ok thanks!

                              1 Reply Last reply Reply Quote 0
                              • V Offline
                                VictorIn_Pacific
                                last edited by

                                Ah, I see there is a miscommunication here. When I wrote unit-strength function at the top, I did not mean "strength of a unit", but "strength of an army as a function of its number of units and combat strength", shortened to unit-strength function. I considered using the header unit/strength function instead, and for this very reason, but decided it wasn't that important, and that the specific meaning would come out in the discussion. In any case, I was myself only starting to think about the concepts and develop the required language.

                                So let's call it the "stack power function" instead.

                                There is a practical purpose to this. Supposing you have some collection of units, and some territory to defend, and the bad guys could attack you with some other collection of units. How much do you need to put there to secure the territory? Or a similar question. Now, you could eyeball it and hope you are right. Or you could move a tentative stack there and then run the Battle Calculator with hypothetical enemy attack stacks, that would be all possible hypothetical attack stacks, unless you want to trust to luck. OK, that may be doable, but it could take a long time. But what if the hypothetical attack is going to happen 3 turns in the future, and it's your capitol, and the outcome of that future hypothetical battle will be used to decide your strategy for the next few turns? Pretty hard to use the Battle Calculator in such a situation, and remember, if you get it wrong, you're out of the game.

                                So what we seek is some sort of a "stack power function" that will give an approximate but very good estimate of whether your stack will beat the enemy stack. That's what I'm trying to do here. And I think I have something useful - stay tuned.

                                Now, before I get into more detailed calculations, I will show a graphical solution to the paradox A > B > C > A. In the context of the AAA combat system, we know that both number of hit points and combat power are essential in evaluating an army. Thus we are looking at 2-D vectors, and perhaps higher dimensionalities. Add 3 vectors together: you can easily form a triangle, and in fact, in the context of this problem, the evaluation A->B, B->C, C->A must form a triangle. However, it can be seen that if you add only the lengths of these vectors (i.e. attempting to express the values as scalars, you get no useful result.0_1544507867903_triangle.jpg

                                Next, let me show a "stack power" function that can properly solve the paradox Alkexr posed in post 3 of this thread.

                                Stack A is 10x6. Stack B is 2x6 plus 27 padding. Stack C is 1x6 plus 55 padding. A beats B, B beats C, and C beats A.

                                Now, it may be obvious, but this is a clear example of the competition between combat power and hit points. Thus I propose a "stack power" function P = U + C, where U = Unit differential, C = combat strength differential. But wait, you say! You promised that you would consider Skewness as well. I won't do that yet, but I will introduce a new term R to express the relative Reduction in the combat strengths as the rounds progress. Let P = U + C - R. It is important, as you know, because if you bring a whole bunch of padding to your gunfight, the other guy can shoot and shoot, and have no effect on your combat strength. On the other hand, the unpadded stack suffers near-linear reduction in its combat power over time. For a linear decrease, the effective combat strength is just 1/2 of the maximum. But wait, you say! The combat strength acts over a number of combat rounds. Of course; my test function is actually P = U + N*(C - R)/6. N is the number of combat rounds; division by 6 is necessary because it takes 6 combat points to get a hit.

                                The calculations: Stack A has zero padding, and thus suffers a linear strength decrease. Stacks B and C suffer no decrease over time. In the BC combat, the relative strength reduction is zero. In the CA combat, stack C shoots at padding only, so the Reduction factor is applied to every combat round. The effective value of C is 5.5x6 (R = 27). In the AB combat, stack C shoots at padding for 4 rounds. The effective value of C is 7x6 (R = -18).

                                In the AB combat, there are 5 rounds. In the BC combat, it takes 27 rounds to hack through the padding, and there are 28 rounds. In the CA combat, there are 10 rounds. In each case, the winner has exactly one unit left.

                                P(A->B) = -19 + 5*(48 - 18)/6 = + 6
                                P(B->C) = -27 + 28*(6 - 0)/6 = + 1
                                P(C->A) = 46 + 10*(-54 + 27)/6 = + 1

                                You will note that all the U's sum to zero, all the C's sum to zero, and all the S's sum to zero, but the weighting of the factors differs in each case.

                                But mostly, you will note that all the relative stack power functions evaluate positive, which means that A > B > B > C.

                                Still, although I have showed that it is possible to construct a function that models several situations correctly, this is not the real stack power function that I will be proposing. More later.

                                alkexrA 1 Reply Last reply Reply Quote 0
                                • CrazyGC Offline
                                  CrazyG Moderators
                                  last edited by

                                  In actual game play, the Army A defeats Army B, and B defeats C, but A loses to C is virtually unheard of, so I wouldn't focus on this. It basically only happens if there are huge mismatches of power and fodder. A good player would be actively building to avoid this situation.

                                  There isn't a great mystery on how to predict battle outcomes, especially if you are doing low luck only. Probability trees do it, most battles don't see more than 4 or 5 rounds of combat so they aren't difficult to use.

                                  A few extremely common battles have been done out with a probability tree on the axis and allies forums (dice and low luck).

                                  1 Reply Last reply Reply Quote 1
                                  • alkexrA Offline
                                    alkexr @VictorIn_Pacific
                                    last edited by

                                    @VictorIn_Pacific The solution to the linear equations when all units have the same power gives the remarkably simple and elegant solution of sqrt(A^2 - B^2) for the expected number of units surviving, where A is the total initial strength of the stronger side, B is that of the weaker one. Despite being a continuous approximation, it seems to have an error margin of only around 5% for larger stacks (relative to A), and is invariably an upper estimate. This result is absolutely anticlimactic, by the way.

                                    "For the world is changing: I feel it in the water, I feel it in the earth, and I smell it in the air."

                                    1 Reply Last reply Reply Quote 0
                                    • RoiEXR Offline
                                      RoiEX Admin
                                      last edited by

                                      @prastle Not sure about the downvotes. I can see them No Problem. (On a phone btw)

                                      About the topic: Not an expert on maths, but I don't think there's a way to calculate some sort of strength of an army without knowing the opponents, there are just too many factors involved.
                                      Because of this the hard AI at least simply uses the BattleCalculator to determine whether or not it's a good idea to attack a certain territory.
                                      Also the reason the AI is relatively CPU-Heavy.

                                      1 Reply Last reply Reply Quote 0
                                      • Captain CrunchC Offline
                                        Captain Crunch Banned
                                        last edited by Captain Crunch

                                        I'm still trying to figure out whether he's opened up a can of worms or not yet (I'm guessing no because CrazyG said this doesn't involve the game engine)

                                        this thread is typically why I still read this forum though ... math, ai , strategy etc. etc! so interesting!

                                        1 Reply Last reply Reply Quote 0
                                        • redrumR Offline
                                          redrum Admin
                                          last edited by redrum

                                          So to add to this, even if you came up with some function that could handle strength and HP to say 99% of the time. Most of the newer maps actually have things like targeted rolls, multi-HP units, positive/negative support, suicide units, etc. These make things much more complex to the point that its very difficult to even find the optimal casualties to select each round let alone have some function of the armies strength that predicts the winner. They also make it so A > B > C > A will always exist because I can have an AT gun army, a tank army, and an infantry army which form counters to each other with targeted attacks (AA like rolls).

                                          Given all that, this is why the battle calc is very important and that we generally just use a strength estimate of 2*HP+power to give a very high level estimate of army strength as that is a fairly good yet simple formula.

                                          The biggest issue with the A&A combat system tends to be that 1 or 2 additional units changes a battle from 50/50 to 95% win chance (especially true for LL). The ways to address this drawback is:

                                          • Have more of a ranged suicide unit type map where armies are mostly firing units at each other rather than entire stack vs stack
                                          • Have limited combat rounds so that you can only inflict so many casualties per turn to avoid the first round of battle deciding the fate of the entire stack of units. This allows more tactics around retreating, counterattacking, reinforcing, etc.

                                          TripleA Developer with a Passion for AI: https://forums.triplea-game.org/topic/105/ai-development-discussion-and-feedback

                                          1 Reply Last reply Reply Quote 2
                                          • CrazyGC Offline
                                            CrazyG Moderators
                                            last edited by

                                            2*HP + power was something I used before (when playing on a board game, when you have to do all the math on your own!)
                                            Even then, you really need to factor what units die, if one side is losing more power than the other (a, its a big deal. Occasionally on World War 2 Revised, Germany attacking Russia looks like an even fight, but its heavily German favored (Germany loses low value 1 attack units, while Russia is losing 2 defense units).

                                            If you want another interesting case, look at TWW. Its not uncommon for a heavily fortified Russian city to have fewer hitpoints and lower defense than an attacking German army, but still win the battle 90 to 100% of the time., due to a combination of targeted attacks and 'Skewness'. Even without targeted attacks, less complex abilities such as units supporting each other or having two hitpoints make a big difference.

                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Copyright © 2016-2018 TripleA-Devs | Powered by NodeBB Forums