Yeah, combining the two things would be pretty cool. You'd never want to completely eliminate the poorly performing options from the "bag of tricks", just reduce their incidence. And you'd probably want pretty good granularity, at least system-level. "This type of ship does not work well against this system". From what I've seen most other RTS games don't even do that basic type of learning, they just toss the same scripted squads against you ad nauseam. The idea, again, is to force the player to mix up their defensive setups and make the warfare more dynamic than in AIW:C, where territory is pretty static.
I guess it wouldn't make much of a difference if ship types for waves are decided randomly anyway - in that case, the AI gets what it gets and tries to help the incoming waves as best it can with whatever ships are available nearby.
As far as implementation difficulty, the learning part isn't really that difficult as an algorithm. As a first pass:
- you have a matrix of ship class x system, with each individual cell being the value of sending that type of ship into that system
- when the AI pulls together an assault fleet, it tries to maximize the value of ships being sent into the system. As a bonus, when estimating player strength in a system, use a 'last known' figure rather than perfect knowledge.
- the AI sends the fleet in (perhaps in support of a wave or some other event), and keeps track of each ship's "effectiveness", where "effectiveness" is some measure of damage delivered vs damage received
- ships with high effectiveness have their value for the system increased, ships with low effectiveness have their value for the system decreased
So the "learning" part is the construction of a fleet against a particular player system. The "emergent" part is what causes that fleet to be sent in - it might be in support of a wave, or in response to a power outage, or it simply becomes strong enough that the AI thinks it can overwhelm the local defenders. Or the AI needs reinforcements when a system comes under attack and then the nice shiny fleet gets sent into probably highly suboptimal circumstances.
The data collection will introduce a slight performance hit, since you have to record every attack made by/against a particular AI ship. However, the number of ship types and player systems is pretty low (tens), so running time and memory usage for the matrix update/fleet builder shouldn't be too bad at O(number of ships x number of systems), and it doesn't necessarily have to happen all that often.
You could also apply a similar learning mechanism to AI placement of defences, so if a player keeps using raid starships to pop command stations, you'll eventually find systems start to have a lot of orbital mass drivers and grav drills (whatever that thing is that slows everything down to crawling pace) because the other stuff proves ineffective at defence.
Sorry, I love ranting about AI and machine learning at a technical level, that's kind of my favorite comp sci problem.