Navigation

    TripleA Logo

    TripleA Forum

    • Register
    • Login
    • Search
    • TripleA Website
    • Categories
    • Recent
    • Popular
    • Users
    • Groups
    • Tags

    AI and over stacking of defensive units on Capitals

    AI
    4
    10
    85
    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.
    • TheDog
      TheDog last edited by TheDog

      Beware guesswork follows;

      This bit of code it taken from here
      \TripleaCode\game-core\src\main\java\games\strategy\triplea\ai\pro\ProNonCombatMoveAi.java
      line 582
      // Calculate defense value for prioritization
      final double territoryValue =
      unitOwnerMultiplier
      * (2.0 * production
      + 10.0 * isFactory
      + 0.5 * cantMoveUnitValue
      + 0.5 * neighborValue)
      * (1 + 10.0 * isMyCapital)
      * (1 + 4.0 * isEnemyOrAlliedCapital);
      moveMap.get(t).setValue(territoryValue);
      }

      Having looked through the whole file, a pure guess is that the isMyCapital and isFactory and production all combine to have a very high defensive value that causes over stacking of Defensive units?

      I notice that 2.0 * production + 10.0 * isFactory will give a value that exceeds the isMyCapital alone, does this mean that a Factory with 3 production with have a value of 16 verses 11 for isMyCapital ?

      Also should there more brackets in the math to make sure the logic is clear?

      If so I think this is wrong, maybe the following values might go towards fixing the over stacking of defensive units.
      1.0 * production
      2.0 * isFactory
      This would still give a working production 3 isFactory a value of 5, that would equal isEnemyOrAlliedCapital, so these values might have to be lower?
      .

      1 Reply Last reply Reply Quote 1
      • TheDog
        TheDog last edited by TheDog

        Just found this;

        This bit of code it taken from here
        \TripleaCode\game-core\src\main\java\games\strategy\triplea\ai\pro\ProPurchaseAi.java
        line 635
        // Calculate defense value for prioritization
        final double territoryValue =
        (2.0 * production + 4.0 * isFactory + 0.5 * defendingUnitValue)
        * (1 + isFactory)
        * (1 + 10.0 * isMyCapital);
        placeTerritory.setDefenseValue(territoryValue);
        }

        Note the difference in the isFactory values, 1 for above but in the previous post 10, I would expect them to be similar, if not the same.

        Maybe the 10 in the previous post should be 1 like above?

        Also note the use of isFactory twice, this is a BIG value and can be bigger than isMyCapital, if a Factory is not in the isMyCapital terrirtory.

        Could this cause the AI to abandon the Capital in favour of a factory?
        .

        TheDog 1 Reply Last reply Reply Quote 1
        • TheDog
          TheDog @TheDog last edited by

          Thinking about this a bit more, maybe the formula is incomplete?

          Perhaps the variable enemyDistance should be taken into account and checked if the enemy is 4+ territories away?

          If so, then the following might be considered?

          In both files ProNonCombatMoveAi and ProPurchaseAi
          The Capital values should not be calculated, as its not under threat?

          In ProPurchaseAi the defendingUnitValue could also be excluded, as that territory is not under threat?
          .

          1 Reply Last reply Reply Quote 0
          • Schulz
            Schulz last edited by

            Is it possible to design a specific AI for particular maps by containing its files along zips?

            1 Reply Last reply Reply Quote 0
            • TheDog
              TheDog last edited by

              I would say yes, but the ends dont justify the means, which translates as, it would take too long to customise the AI for just one map verses the hours played, it would just not be worth the time spent, unless you did it for yourself.

              1 Reply Last reply Reply Quote 0
              • Schulz
                Schulz last edited by

                But how could a common AI perform well in any maps even if developed well enough? I mean games uses very different rules just wondering if a common AI could be capable of dealing these differences.

                1 Reply Last reply Reply Quote 0
                • F
                  ff03k64 last edited by

                  Redrum (i think) was hoping to eventually make a map specific AI properties file to help it with individual maps.

                  1 Reply Last reply Reply Quote 1
                  • Schulz
                    Schulz last edited by

                    Are users allowed to change the codes? If yes how long it will take for the new ai adopt the changes? Did you ever test the ai with these changes?

                    1 Reply Last reply Reply Quote 0
                    • TheDog
                      TheDog last edited by

                      Currently users cannot change the codes/values.

                      In case you have not seen Trevan post here
                      https://forums.triplea-game.org/topic/2494/how-to-improve-the-ai-without-the-devs-doing-too-much-testing/2

                      No I did not test the AI, Im just best guessing at what to do as the AI is complicated.

                      redrum 1 Reply Last reply Reply Quote 1
                      • redrum
                        redrum Admin @TheDog last edited by redrum

                        @TheDog The value is used to prioritize which territories to try to defend (do I defend my capital or this factory or this random territory) not how much to defend them with. So this probably is not causing overstacking of capitals.

                        1 Reply Last reply Reply Quote 0
                        • 1 / 1
                        • First post
                          Last post
                        Copyright © 2016-2018 TripleA-Devs | Powered by NodeBB Forums