Currently, the Ai does not meaningfully expand its empires much past colonization. Through the mid game, their empires do not grow and expand to become a challenge to the human player. They turtle in their provincial empires and fall like dominoes after you take your first few planets. The AI planet count per empire at turn 100 is roughly the same as it is at turn 250. If you're playing in a galaxy filled with peace loving scientists and traders, that makes sense. In a game with warlike races, and an Ai that prefers a military conquest strategy almost all the time, it does not make sense. Part of the problem is the wildly ineffective Ai military strategy.
The Ai is good at starting wars. It's decent at ship design to counter opponents. It builds decent fleets. But it's terrible at actually invading and holding planets, and planetary growth is the key to winning the game. (Icemania's 1 world challenge aside lol).
No doubt others have suggestions on what needs fixing, but these are the things I've noticed:
1) Put a higher priority on engines. Invasion fleets with a speed of 3 rarely, if ever make it to the target. Rapid outpacing of the Ai by the human player as far as ship speed goes is a major factor in the ease of defeating the Ai's fleets.
2) Use more than 1 transport if necessary, and use more than 2.5 troops/ship.Surely the Ai can do the 'invasion math'? Pop A divided by sectors B, modified by tech, = optimal number of troops to send for success. To paraphrase, count twice, invade once lol...
I can't count the amount of times I've seen an Ai empire with 10+ planets spend 100+ turns trying to conquer a minor race's single planet because the base 2.5 pop is never enough.
3) Fleet attack more than once per turn. If a fleet has a move of 5, and spends 1 attack clearing the defenders, why can't it invade the same turn?
Many times I;ve seen attacking Ai with an invasion fleet next to a planet spend dozens of turns trying to invade it, but failing because the defender can get 1 ship to garrison every turn, using up the 1 attack/turn. Humans can exploit that any number of ways.
4) Defend conquered planets. Should be self evident.
Checking end game stats, you often see 2 adjacent empires, each with 8 planets captured. But if you had a scout/base/fleet there and watched it throughout the game, you see it's just the same planet changing hands 16 times because neither side garrisons it!
5) Better prioritization of targets. Some planets are more valuable than others, like precursor worlds. Stop invading the closest one over and over, and invade the ones that will hurt the other side more. Taking a class 16 industrial planet will hurt a war effort a lot more than a class 9 research planet.
6) Use multiple fleets. Don't waste logistics in the 'assault' fleet with the transport (s). Have 1 all combat fleet for eliminating defense and another mixed for invasion and garrison after.
7) Protect range extender starbases. The Ai uses military starbases as range extenders, which is good. But it always builds them in the same place if destroyed, and never garrisons them. Change locations and send a fleet with the constructor to garrison the beachhead after.