Generally speaking, the strategic AI routines use a min-max algorithm whose parameters are modified by hundreds of heuristics both on input and after output. Unfortunately I can't really clarify the heuristics, as each one is rather particular. There are heuristics that keep the AI from attacking when it is overpowered, but these criteria are not always applied absolutely, and often the AI might anticipate that reinforcements will be available that may, during the movement, not actually be. We've experimented with both a more timid and more aggressive AI, and, in general, the testers prefered the more aggressive one. I remember the days in which the Union AI would sit for two years before it would launch a major attack, until it had an absolute mathematical advantage... it may have played a stronger game, but the testers (and this was my opinion as well) prefered a game with a bit more action.
I have considered allowing the AI to cheat and to avoid movements that result in battles iwth suicidal odds during the movement phase. The AI is not as good as a human at synchronizing and anticipating, and this would address that shortcoming. I think this would be a significant improvement, and it would be transparent to the player.