Tag Archives: Quatre Bras

A Human-Level Intelligence at Quatre Bras

Quatre Bras, June 16, 1815. Click to enlarge

Napoleon has humbugged me, by God!” Lord Wellington swore. “He has gained twenty-four hours’ march on me!” 1)David Chandler, Waterloo: The Hundred Days, Macmillan Publishing Co., Inc. New York 1980, p. 85 And, indeed, he had.

The Armée du Nord, racing north on the roadnet from Paris to Brussels, now occupied the crucial strategic ‘central position’ between the Anglo-Allied army under Wellington assembling at Quatre Bras in the west, and the Prussian army under Blücher at Ligny in the east. Napoleon, outnumbered by the combined forces of Wellington and Blücher only had one realistic option: destroy his opponent’s armies separately before they could combine and destroy him.

Napoleon divided the Armée du Nord into two wings (the left commanded by Marshal Ney and the right by the Emperor, himself). The Imperial Guard would serve as the strategic reserve. In our previous blog, we showed the MATE (Machine Analysis of Tactical Environments) artificial intelligence analysis of the battle of Ligny.

The starting positions of the Armée du Nord (Blue) and the Anglo-Allied Army (Red) at the battle of Quatre Bras. Screen shot from General Staff: Black Powder. Click to enlarge.

The positions in the above screen shot come from the West Point Atlas of the Napoleonic Wars and Chandler’s Waterloo: The Hundred Days. I’ve ordered Mike Robinson’s The Battle of Quatre Bras, 1815 (which is very highly regarded) but it’s coming from Europe and will be a while before it arrives. I’ll update the positions accordingly when it arrives.

Today MATE is going to show off a new trick that it learned.

MATE AI analysis of Blue’s position. General Staff screen shot. Click to enlarge.

Text output and author’s commentary of MATE’s analysis of Blue’s position at the battle of Quatre Bras.

The salient points of MATE’s analysis of Blue (Ney’s) position at the battle of Quatre Bras are:

  • Red (Wellington) has an open flank (in fact, both of Red’s flanks are exposed but MATE has calculated a left flanking maneuver is shorter than a right flanking maneuver)
  • Blue has a reserve cavalry division (Line #25 in the text output above, Battle Group #3, Pire’s 2nd Cavalry Division) that is in position to spearhead the left flanking maneuver ahead of
  • Battle Group #1 (the 6th Division commanded by Prince Jerome) which will follow as the main strike force of the left flanking maneuver (Line #23)
  • Battle Groups #0 and #2 (Reilles and Foy’s divisions) will be the fixing force attacking Gémioncourt in the classic envelopment maneuver (see below):
  • Battle Group #4 (Kellerman’s reserve cavalry division) will snatch the important crossroads at Thyle.

In other words, Battle Groups #3 and #1 will be the Enveloping Force and Battle Groups #0 and #2 will be the Fixing Force as illustrated in the above graphic from the U. S. Army Field Manual 3-21. Algorithms for implementing this maneuver (an early version of MATE) first appear in my paper, Implementing the Five Canonical Offensive Maneuvers in a CGF Environment.

And MATE’s new trick? It’s in line #25, above. If there is a Battle Group that is composed entirely of  cavalry and horse artillery, and it is close enough, it will be used as the spearhead for the flanking maneuver.

MATE’s analysis of Ligny. Screen shot from General Staff AI Editor. Click to enlarge.

But, in this situation (Ligny, above) MATE has calculated that Battle Group #1 will get to the crucial Choke Point (labeled in black, above) before the reserve cavalry Battle Group #4 will arrive and would create a tremendous bottleneck at the very choke point that MATE wants to quickly capture. Consequently, the cavalry has been left in reserve.

Mini MATE FAQ

Can MATE read and analyze any battle map from history?

No. MATE is integrated into the General Staff Wargaming System. MATE can only ‘understand’ Order of Battle (OOB) tables created in the General Staff Army Editor, maps created in the General Staff Map Editor and scenarios created in the General Staff Scenario Editor.

What is meant by a ‘human-level’ artificial intelligence?

Perhaps you have heard of the famous Turing Test (from Alan Turing’s Computing Machinery and Intelligence). In it he describes, “The Imitation Game,” where a computer is in one room behind a closed door, and a human is another room behind a closed door. A third person, the ‘interrogator’, can only ask questions via a teletype (an ancient I/O device consisting of a keyboard and a printer) and must determine in which room the computer is and in which room is the human. In Turing’s original paper the interrogator would ask questions of the two subjects such as, “Please write me a sonnet on the subject of the Forth Bridge,” and, “Add 34957 to 70764.” Currently, no Artificial Intelligence (AI) could pass such a test; the subject area is far too broad. However, it has been my thesis, that an AI could pass such a test if the subject area is restricted to a narrow field of human endeavor, such as commanding units on a battlefield. If, in the above Turing test, the computer in one room was replaced with MATE, the human in the other room was replaced by Napoleon, and the teletype was replaced by the General Staff Wargaming System, I argue that MATE could (or soon will be able to) pass such a test (subject matter experts would not be able to discern if it was MATE or Napoleon giving orders).

Can MATE analyze current military situations?

Though MATE came out of the TIGER (Tactical Inference GenERator) project funded by DARPA, it is currently set up specifically for the General Staff: Black Powder project which limits analysis to scenarios in the 18th and 19th centuries. It is intended that this project will be followed up with General Staff: Modern Warfare to specifically work with 20th and 21st century combat.

References

References
1 David Chandler, Waterloo: The Hundred Days, Macmillan Publishing Co., Inc. New York 1980, p. 85

Movement & Maps

Screen shot showing unit movement arrows for the battle of Antietam scenario. Note how movement is stopped by the small creek in the upper left hand corner of the screen. Click to enlarge.

I‘m in self-quarantine. As many of you know, I had a bone marrow / stem cell transplant in 2014 followed by a year of intense chemo. I’m fine (all things considering) but my immune system took a beating. In 2014 H1N1 put me in the hospital for 3 days so I’m taking COVID-19 seriously as, uh, the plague. In a way, being cooped up in the house (the weather hasn’t been cooperating, either, as I had hoped to replace my daily gym workout with long walks with my dog, George) is a lot like a typical upper Midwestern winter: it’s what I call ‘good programming weather’. There’s not much else to do but hunker down and write code. So, obviously, I’m working on General Staff and I wanted to show you an update (above).

General Staff is being written in C# and Windows Programming Foundation (WPF). There are a number of technical reasons why this was a good idea but I’m not overly familiar with WPF and doing some basic things, like creating these transparent movement arrows, took far longer, and involved a lot more programming, than I thought it would.  My partner on this project, Andy O’Neill, is a WPF rockstar; I’m a novice. I would much rather be working on the ‘under the hood’ stuff (like AI) but for the last week or so I’ve been working on movement arrows while Andy is busy with another project (the kind that pays the rent). Anyway, I’m very pleased about how they turned out. Please feel free to write me with comments.

Movement arrows for units at Quatre Bras. Note how blue units are stopped by the stream feeding the large pond. Click to enlarge.

Forward movement of this blue division is stopped by this tiny creek.

But, I also discovered a very interesting problem while testing these movement routines: our maps are too good! If you look at this detail (right) from the Antietam screen capture (above), you’ll see that movement is stopped when it encounters a tiny creek. I’ve walked that area of the Antietam battlefield and that little creek (well, I think it would be more properly called a ‘crick’) wouldn’t stop a division moving forward. However, the movement validation routines stop units from crossing bodies of water (except in column formation while crossing a bridge or a ford).  Ed Kuhrt, who digitized these great maps and copied every small detail was, perhaps, too precise. Definitely better to err on the side of being too precise when it comes to maps, Ed.

We’re seeing the same thing at Quatre Bras (above): the little streams that feed Materne Pond (Etang Materne) are also stopping the French from attacking. I haven’t been to Quatre Bras but I know the French crossed the small streams to attack the Anglo-Allied army’s positions.

Luckily, fixing this is easy. If you have done any work with the General Staff Map Editor you know that erasing terrain features, like water, is quick.

Removing the water in the little stream that feeds Antietam Creek by placing a ‘field’ over the water. Note that the ‘Field’ object is ‘above’ the ‘River’ object on the left Edit Terrain tab. Screen shot. Click to enlarge.

In the above screen shot we’ve opened the Antietam map in the General Staff Map Editor and drawn a ‘Field’ over the ‘crick’ that kept the Union forces from advancing. Note that both the Field and the River are objects and whichever object is higher in the list on the left ‘overwrites’ lower objects. If, for whatever reason, we wanted to restore the water in the creek we could either delete the Field or move it lower down the list than the River object.

Edit: After originally posting this, some readers (see comments, below) suggested that units crossing a small stream should suffer a movement penalty. This is absolutely correct. Instead of ‘painting’ with ‘field’ terrain, I should have used ‘mud’. This allows for a movement penalty (set in the Scenario Editor).

Adjusting unit type speeds across various terrain types in the General Staff Scenario Editor. Screen capture.

And now that that obstacle to movement has been eliminated the I and XII Union Corps can advance:

Now that the water has been removed from the little stream feeding Antietam Creek the Union forces can advance again. Screen shot.

As always, I would love to hear any comments or feedback that you may have.

Feeding the Machine

The famous Turing Machine1)It was first described in Turing’s, “On Computing Machines with an Application to the Entscheidungsproblem,” in 1937 which can be downloaded here: https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf. Also a very good book on the subject is Charles Petzold’s, “The Annotated Turing: A Guided Tour through Alan Turing’s Historic Paper on Computability and the Turing Machine.” was a thought experiment and, until recently did not physically exist 2)Yes, somebody has built one and you can see what Turing described here: https://www.youtube.com/watch?v=E3keLeMwfHY . When computer scientists talk about machines we don’t mean the, “lumps of silicon that we use to heat our offices,” (thanks Mike Morton for this wonderful quote), but, rather, we mean the software programs that actually do the computing. When we talk about Machine Learning we don’t think that the physical hardware actually learns anything. This is because, as Alan Turing demonstrated in the above paper, the software functions as a virtual machine; albeit, much more efficiently than creating a contraption with pens, gears, rotors and an infinitely long paper strip.

When I talk about, “feeding the machine,” I mean giving the program (the AI for General Staff is called MATE: Machine Analysis of Tactical Environments and the initial research was funded by DARPA) more data to learn from. Yesterday, the subject at machine learning school was Quatre Bras.

Screen shot of the General Staff AI Editor after analysis of Quatre Bras and calculating the flanking Schwerpunkt or point of attack (blue square).  Click to enlarge.

The MATE tactical AI algorithms produce a plan of attack around a geographic point on the battlefield that has been calculated and tagged as the Schwerpunkt, or point where maximum effort is to be applied. In the above (Quatre Bras) scenario the point of attack is the extreme left flank of the Anglo-Allied (Red) army. I apply the ‘reasonableness test’ 3)Thank you Dennis Beranek for introducing me to the concept of ‘reasonableness test’. See https://www.general-staff.com/schwerpunkt/ for explanation and think, “Yes, this looks like a very reasonable plan of attack – a flanking maneuver on the opponent’s unanchored left flank – and, in fact, is a better plan than what Marhshal Ney actually executed.

It would be good at this point to step back and talk about the differences in ‘supervised’ and ‘unsupervised’ machine learning and how they work.

Supervised machine learning employs training methods. A classic example of supervised learning is the Netflix (or any other TV app’s) movie recommendations. You’re the trainer. Every time you pick a movie you train the system to your likes and dislikes. I don’t know if Netflix’s, or any of the others, use a weighting for how long (what percentage watched over total length of show) watched but that would be a good metric to add in, too. Anyway, that’s how those suggestions get flashed up on the screen: “Because you watched Das Boot you’ll love The Sound of Music!”  Well, yeah, they both got swastikas in them, so… 4)Part of the problem with Netflix’s system is that they hire out of work scriptwriters to tag each movie with a number of descriptive phrases. Correctly categorizing movies is more complex than this.

Supervised machine learning uses templates and reinforcement. The more the user picks this thing the more the user gets this thing. MATE is unsupervised machine learning. It doesn’t care how often a user does something, it cares about always making an optimal decision within an environment that it can compare to previously observed situations. Furthermore, MATE is a series of algorithms that I wrote and that I adjust after seeing how they react to new scenarios. For example, in the above Quatre Bras scenario, MATE originally suggested an attack on Red’s right-flank. This recommendation was probably influenced by the isolated Red infantry unit (1st Netherlands Brigade) in the Bois de Bossu woods.  After seeing this I added a series of hierarchical priorities with, “a flank attack in a woods (or swamp) is not as optimal as an attack on an exposed flank with clear terrain,” as a higher importance than pouncing on an isolated unit.  And so I, the designer, learn and MATE learns.

My main concern is that MATE must be able to ‘take care of itself’ out there, ‘in the wild’, and make optimal decisions when presented with previously unseen tactical situations. This is not writing an AI for a specific battle. This is a general purpose AI and it is much more difficult to write than a battle specific AI. One of the key aspects of the General Staff Wargaming System is that users can create new armies, maps and scenarios. MATE must make good decisions in unusual circumstances.

Previously, I have shown MATE’s analysis of 1st Bull Run and Antietam. Below is the battle of Little Bighorn in the General Staff AI Editor:

The battle of Little Bighorn in the General Staff AI Editor. Normally the MATE AI would decline to attack. However, when ordered to attack, this is MATE’s optimal plan. Click to enlarge.

I would like to expose MATE to at least thirty different tactical situations before releasing the General Staff Wargame. This is a slow process. Thanks to Glenn Frank Drover of Forbidden Games, Inc. for donating the superb Quatre Bras map. He also gave us maps for Ligny and Waterloo which will be the next two scenarios submitted to MATE. We still have a way to go to get up to thirty. If anybody is interested in helping to create more scenarios please contact me directly.

References

References
1 It was first described in Turing’s, “On Computing Machines with an Application to the Entscheidungsproblem,” in 1937 which can be downloaded here: https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf. Also a very good book on the subject is Charles Petzold’s, “The Annotated Turing: A Guided Tour through Alan Turing’s Historic Paper on Computability and the Turing Machine.”
2 Yes, somebody has built one and you can see what Turing described here: https://www.youtube.com/watch?v=E3keLeMwfHY
3 Thank you Dennis Beranek for introducing me to the concept of ‘reasonableness test’. See https://www.general-staff.com/schwerpunkt/ for explanation
4 Part of the problem with Netflix’s system is that they hire out of work scriptwriters to tag each movie with a number of descriptive phrases. Correctly categorizing movies is more complex than this.