Algorithmic Warfare, Part 1: Fighting by a Script

On 12 July 1813, representatives from Austria, Prussia, Sweden, and Russia met at Trachenberg Palace in western Poland to plan their upcoming campaign against Napoleon. The French emperor had been driven from Russia the previous winter. His reverses encouraged Sweden and Prussia to join the war on Russia’s side, and Austria was expected to join them in the autumn. Nevertheless, Napoleon remained a hreat. He had gathered reinforcements in eastern Germany and occupied a strong position over a nearly two-hundred-mile front. Fighting in the spring had shown that his genius was undiminished, and he would be a danger to any army that faced him in the field.

The allies’ campaign protocol, known as the Trachenberg Plan, was designed to mitigate this threat. The plan was simple: three armies would advance against the French from the north, east, and south. Whenever they had a local advantage, they would attack; whenever Napoleon was present, they would withdraw a short distance. The noose would draw tighter around the French position until the allies could concentrate all their forces against Napoleon himself.*

The plan worked exactly as intended. The allies advanced relentlessly, avoiding Napoleon but inflicting continual defeats on the French. The emperor fruitlessly scrambled from one side of the front to the other, but could never achieve more than minor, unsatisfying victories. By 16 October the combined allied force was able to attack his army at the Battle of Leipzig, the largest and bloodiest battle of the Napoleonic Wars. It was a crippling defeat for Napoleon that led directly to his downfall six months later.

What made the Trachenberg Plan interesting is that it was essentially an algorithm. It provided a simple, recursive set of instructions that each army could execute indefinitely until the underlying conditions changed—that is to say, until the allies were ready to fight the culminating battle. This avoided the difficulties of detailed campaign planning against an opponent so unpredictable as Napoleon. Rather than project a campaign plan weeks into the future, the allies set upon a strategy that allowed them to make reliable forward progress.

The Trachenberg Plan also avoided the command and control problems that made coalitional warfare so difficult. European powers had been fighting in continent-wide coalitions for three centuries; these often foundered on the challenges of aligning war strategies and coordinating action. The allies avoided this by establishing a single common objective and fixing the broad ways of achieving it, but otherwise allowing the separate armies complete operational independence.

The same principles that allowed the allies to defeat Napoleon appear everywhere in modern conflicts. It is most obviously in asymmetric warfare, where both insurgencies and counterinsurgencies follow strict protocols. Each relies on distributed groups of fighters acting independently, and it is the algorithms governing these groups—their rules of engagement, targets, means of attack—that define their strategies. Counterinsurgency strategies are centrally directed and aim at the reduction of violence. With insurgencies, these rules emerge organically by trial-and-error and generally last only until the defeat of a common enemy. They arrive at the algorithm sharing techniques and imitating successful groups.

Algorithmic fighting also appears in conventional warfare between more evenly matched opponents, such as the recent Nagorno-Karabakh war. Although the Azerbaijani ground campaign appeared to be traditionally planned, the air war was algorithmic. Flights of drones flew through contested airspace, where decoys baited Armenian air defenses into revealing themselves; once they did, loitering munitions struck. Any targets of opportunity identified during this time (ground vehicles, artillery, etc.) were attacked. There does not seem to have been much of a targeting plan, just a repeatable technique for the attrition of critical assets until conditions were set for the assault on Shusha which ended the war.

Azerbaijan’s asymmetric advantage—Armenia lacked loitering munitions or adequate countermeasures—was what allowed them to fight algorithmically in the first place. This gap will eventually be closed, but the proliferation of unexplored technologies creates many more such opportunities for the offense. It will be impossible for commanders to account for all the new capabilities their adversaries possess, making the battlespace too complex to manage by central direction. This mirrors the problem faced by commanders at the end of the Napoleonic period, when armies had gotten too large to manage with the slow communications of the day—the army that was better at fighting decentralized therefore held the advantage.

Part 2 will look more at the conditions that invite algorithmic warfare.

* For a good synopsis of the Trachenberg Plan, see here: