Agreed, but if the battle software can't effectively fight the different fleets, we can't select the better mutations. The Eurisko class might be evolved this way, but hardly the entire fleet.
You could fight fleets with a genetic algorithm and a monte-carlo sim. You could have genes for the design and genes for the battle line. However, on reading into EURISKO a little further it sounds like an expert system (of a type that were all the rage around that time and could get ARPA funding).
http://aliciapatterson.org/stories/eurisko-computer-mind-its-own
From the article I think it may still have been using a monte-carlo model to resolve the battles but I think it was using an inference base to optimise the ships. You can do that sort of thing with backward chaining. In fact, in an AI course I did once, one of the other students did this with battle lines for medieval forces.
You could have a process for optimising the ships, and then taking the fleet into a battle against another fleet and trying different line compositions. Depending on how well EURISKO joined up the dots these computations could be integrated into a single larger model. From the article it was basically a knowledge representation language, so if you could implement frames with rules that allowed collections or splitting collections you could try different lines. Certainly Prolog is smart enough to generate frames to try by splitting other frames or making up different collections. That's a small enough problem to fit into an undergraduate assignment.
EURISKO is written in RLL, a frame based language according to Wikipedia (I've used FLEX, a frame based system that sits on LPA Prolog). These systems are turing complete and you can generate new frames programatically - you could use this to try different combinations of battery size and count. Backward chaining lets you search through a wide variety of combinations. As long as you have an evaluation function that can determine fitness (e.g. a battle simulation) you could use an algorithm as basic as minimax to optimise battle strategy.
So, as it stands now, I can see two ways you could optimise a fleet using fairly mature and well-known AI techniques. Either a frame-based knowledge representation like EURISKO or with a genetic algorithm. Battles could be calculated based on an evaluation function (compute a result surface for hits and damage based on a range of parameters) or by running a monte-carlo sim of the model.
Last edited: