UBoats in the Bay of Biscay

UBoats in the Bay of Biscay preview image

1 collaborator

20210816_123009 Ken Comer (Author)

Tags

airplane 

Tagged by Ken Comer about 5 years ago

asw 

Tagged by Ken Comer about 5 years ago

naval history 

Tagged by Ken Comer about 5 years ago

search model 

Tagged by Ken Comer about 5 years ago

search model- 

Tagged by Ken Comer about 5 years ago

Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.1.1 • Viewed 525 times • Downloaded 57 times • Run 0 times
Download the 'UBoats in the Bay of Biscay' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


A Model of the U-boat Campaign in the Bay of Biscay (UCBB)

This is a "baseline" ABM of the Allied campaign to interdict Nazi U-boats as they sortied from the five ports in occupied France to the North Atlantic. It can be adapted to answer any of a large number of questions regarding search theory, especially the many-on-many search for a population of evasive targets. This creates, in NETLOGO, a computational approach to a problem that had been evaluated using mathematical search theory and game theory.

Historical Background

The Battle of the Bay of Biscay began in late 1940 and lasted until early 1944. Activity did not begin in earnest until late 1941, and data only becomes available in January 1942. By the spring of 1944 the British had nearly complete dominance of the approaches to the French coast. Submarine deployments after that point were limited to small numbers and transits nearly stopped completely after D-Day (June 1944).

This model was built around the high-tempo operations of 1942 and 1943. It was a battle between the German submarine force and the Royal Air Force. For the most part these were German Type VIIC submarines and British Short Sunderland (S.25) four-engine ASW aircraft. The British were based in Plymouth and the Germans were evenly spread among the five U-boat bases. U-boats in port were protected by thick concrete "pens" that are so indestructible that they remain in these five ports to this day. The only way to counter a U-Boat was to sink it at sea.

The German mission was to move the U-boats to the North Atlantic where they would attack convoys. The UK mission was to sink as many transiting U-boats as possible, and to delay the others. British operations research co-founder Arthur Waddington referred to the British goal as the creation of an "unclimable fence". The fence would be so wide that a U-boat could not traverse it completely submerged. This years-long operation was seen by both sides as critical to victory. Winston Churchill famously said, "The only thing that ever really frightened me during the war was the U-Boat peril."

ASW The Birth of Operations Research

The field of operations research began with the U-boat problem in World War II. In both the US and Britain multidisciplinary teams gathered to analyze and optimize antisubmarine operations. There were no computers -- this was a painstaking mathematical exercise. Scientists, statisticians, and mathematicians together determined the best search patterns, the best tactics, the best flight schedules, and the best use of new technology.

The shift to simulation in answering ASW questions was slow, mostly because of the mathematical legacy and the prestige of the WWII practitioners. Much later, during the Cold War, the scientists working this issue gave grudging acceptance to computational approaches. In reality, there are so many interacting irregular components of the ASW process that a pure mathematical solution can only be achieved through crippling simplification.

The Technological Race

Numerous advances would change the balance of power during the campaign. The British quickly developed enhancements for night time operations: the Leigh Light and various radars. The Germans developed a sequence of radar detecting equipment that allowed the submarine to dive before it was detected. The Germans tried out radar decoys and anti-aircraft guns to limited effect. These detection and counter-detection technologies can be adjusted by adjusting the vision sliders and the S25 cone angle.

For these reasons, it was decided not to distinguish daytime from nighttime in the base model. History shows that the S.25 could be just as deadly at night.

The most important submarine technology advance was the snorkel, developed by the Dutch before the war. A snorkel (or "snort" in this model from the German name) allows a submarine to remain submerged with only a "breathing tube" breaking the surface. Thus, the submarine can recharge batteries and remain nearly undetectable. German submarines were not equipped with snorkels, however, until mid-1944.

Operational Choices

The Germans made some radical adjustments to the percent of time their submarines would operate submerged. A fully submerged submarine (as opposed to a snorkeling submarine) is essentially undetectable from the air in 1943. But, their underwater endurance was limited and they were far from able to move across the barrier without surfacing to recharge batteries. The Germans had periods where they adopted a "maximum submergence" policy, and periods when they tried to sprint across on the surface. You can try both methods out.

Model Parameters

The grid of patches in this model is approximately one nautical mile per patch. The background map is a conical projection (not a Mercator), so the scale is relatively constant throughout. Each time step is one minute. A day is 1440 time steps.

Speed seems to work best by dividing real-world speed (in kts) by 100. Thus, a 10-kt U-boat should move across the ocean at the right pace if you set the speed as 0.10.

During the period of interest, there were about 50 U-boat transits per month or 0.00116 per minute. There were also over 4000 aircraft patrol hours per month. The aircraft departure rate per minute (0.01) in the model was tuned to deliver somewhat over 4000 patrol hours per 30-day period.

U-boats depart from points near the mouth of bays and estuaries outside of the five ports. Aircraft all depart from southwestern Plymouth. U-Boats move at direction 290. Aircraft have variable patrol patterns (this can be examined experimentally), but when their fuel status reaches 25% they depart for home and stop their patrol status.

Model Output

The two key measures of output are "Gone", the number of escaped U-boats (those that arrive in the North Atlantic) and the average transit time. These are both measured for one month of minute-turns. Also counted: "escapes", the number of times a submerged U-boat passes under the cone of an S25; "encounters", the number of turns that an S25 passes over a surfaced U-Boat in its cone, and "opportunities", the number of turns an S25 passes over any U-Boat (submerged or surfaced) in its cone.

Potential Experiments

This is really just the stub of a model. Much has been written in the OR literature about search patterns and tactics. Numerous historians have suggested "what if" scenarios that are worthy of experimental examination.

Probably the most fertile area for experimentation is the logic for the S25 agents as they deploy to the Bay of Biscay. In the current version, they just randomly search in the box between cell 190 and cell 375 -- ostensibly a 285 nm wall astride the U-boat transit routes.

In the current version there are no submarine kills. There are potential interactions (aircraft and U-boat are within range, and U-boat is in the cone of acquisition of the aircraft), but and "encounter" does not get counted unless the U-boat is surfaced. If the U-boat is dived, the "opportunity" is scored as an "escape". In the current construction, opportunities and encounters are counted per minute. Escapes are counted only once when the range and conditions are right. This enables the application of a key element of search theory, "glimpses", to the aircraft search, but helps to understand the operational impact of a submarine escaping under the ASW air fleet.

Experiments should probably begin by making the attack more robust. In the real world, after detection the aircraft has to classify, localize, and attack. Classify means determining if the detection was real or a false alarm. Localize means determining the position with sufficient certainty to conduct a successful attack. And, of course, attack means significant aircraft maneuver outside of the search pattern.

The literature suggests that, once an aircraft has conducted an actual attack, the aircraft returns to base. This is the behavior in this model, but it is worth examining if this is the right procedure. The Sunderland is a four-engine airplane and it has the ability to carry several bombs. What would be the impact on the campaign if the airplane continued on its mission (provided there is enough fuel)?

The model is an excellent opprtunity to explore a wide range of proposals about the best search patterns to use.

Most models, even when they don't seem to hold up to historical accuracy, can be valuable in sensitivity analysis. For this model, the sensitivity of improving detection and counter-detection ranges would be an excellent research thread. Some improvements are likely to make a big difference while others are not.

The model illuminates several variables that can't be assessed in the real world. It also provides system-wide behavioral information that would be known by commanders. As a result, it can help address the hypothesis that one thing measures another. Does the contact and attack rate, for example, affect the total number of U-boats that get through and the transit time?

Additionally, experiments can be built around weapons technology. Most of these aircraft were carrying bombs. But, an antisubmarine homing torpedo (MK 24 "Fido") sank its first U-boat in May 1943. What would be the impact of introducing such a weapon earlier or faster?

The Germans attempted using decoys and anti-aircraft artillery in the early stages of this fight. Did they give up too soon? How effective do decoys or AAA have to be in order to make their use viable?

Extending the Model

This model shows how a map can be imported and used as a substrate for analysis. There are several other areas of the world where the interaction of topography and military maneuver forces can be the basis for computational analysis. The Mediterranean, the Barents, and the western Pacific are good examples.

The overall structure of this model can also be extended to the "main event", the Battle of the Atlantic. There are many unanswered questions about action-reaction strategies in convoy attack and defense that can be evaluated using the basic structure of this model.

NETLOGO Considerations

One challenge was the structure of the Netlogo command "in-cone". The "in-cone" formulation is particularly useful for this particular problem. Unfortunately, the statement appears only to be structured to return an agentset, asin "let target-list (uboats) in-cone 5 120". Such a statement returns an agentlist, target-list. This limits the code structure available to move on from there. You can see how that was solved in the "search" procedure.

ASW in Context: Other ABMs of Military History

The most prominent predecessor to this model was developed by a team at the Air Force Institue of Technology, Lance Champagne, R. Greg Carl, and Raymond Hill (of nearby Wright State University). During the period 2003 to 2009 this team produced a number of scientific articles based on their agent-based model of this problem. The AFIT model was written in Java, and is not available publicly.

Few other naval campaign scenarios have been subjected to an ABM treatment. This historical example occupies a unique, data-driven "sweet spot". It is not a singular engagement like, for example, Midway or Trafalgar. This is a campaign that takes place over two years, and extensive data sets have been preserved from both sides of the conflict. It is a rare example in which a model and an underlying theory can be tested in real-world data.

Credits and References

Churchill, Winston S. The Second World War Vol. II., Their Finest Hour. Boston: Houghton Mifflin, 1949

McCue, Brian. U-Boats in the Bay of Biscay, An Essay in Operations Analysis. Newport, RI: Alidade Press, 2008

Washburn, Alan R. Search and Detection. Arlington, VA: Operations Research Society of America, 1981

(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)

Authorship

(C) 2020 This model was created by Dr. Ken Comer as the basis for a series of historical studies, evaluating measures of effectiveness, sensitivity analysis, tradeoffs and parametric experiments.

Comments and Questions

Background and Information

This is a “baseline” ABM of the Allied campaign to interdict Nazi U-boats as they sortied from the five ports in occupied France to the North Atlantic. It can be adapted to answer any of a large number of questions regarding search theory, especially the many-on-many search for a population of evasive targets. This creates, in NETLOGO, a computational approach to a problem that had been evaluated using mathematical search theory and game theory.

Posted about 5 years ago

Historical Context

The Battle of the Bay of Biscay began in late 1940 and lasted until early 1944. Activity did not begin in earnest until late 1941, and data only becomes available in January 1942. By the spring of 1944 the British had nearly complete dominance of the approaches to the French coast. Submarine deployments after that point were limited to small numbers and transits nearly stopped completely after D-Day (June 1944). This model was built around the high-tempo operations of 1942 and 1943. It was a battle between the German submarine force and the Royal Air Force. For the most part these were German Type VIIC submarines and British Short Sunderland (S.25) four-engine ASW aircraft. The British were based in Plymouth and the Germans were evenly spread among the five U-boat bases. U-boats in port were protected by thick concrete “pens” that are so indestructible that they remain in these five ports to this day. The only way to counter a U-Boat was to sink it at sea. The German mission was to move the U-boats to the North Atlantic where they would attack convoys. The UK mission was to sink as many transiting U-boats as possible, and to delay the others. British operations research co-founder Arthur Waddington referred to the British goal as the creation of an “unclimable fence”. The fence would be so wide that a U-boat could not traverse it completely submerged. This years-long operation was seen by both sides as critical to victory. Winston Churchill famously said, “The only thing that ever really frightened me during the war was the U-Boat peril.”

Posted about 5 years ago

Unfortunally not working

import-pcolors: /mnt/b8129935-5500-41ca-a219-329ea630ef31/NetLogo 6.1.1/Ken_Comer/UBoats_in_the_Bay_of_Biscay/Bay_of_Biscay_Short.bmp (Bestand of map bestaat niet) error while observer running IMPORT-PCOLORS called by procedure SETUP called by Button 'Setup' Regards, Tom

Posted about 5 years ago

Map file Bay_of_Biscay_Short.bmp has been added.

The error is generated when the model calls the background map. If this is in the path, the model should run. Let me know...

Posted about 5 years ago

Bay_of_Biscay_Short.bmp

The BMP file was corrupted on both Mac Probook and Windows 10. I've managed to repair it and now it works fine. A nice model.

Posted about 3 years ago

Click to Run Model

; Developed by Ken Comer to evaluate kinematic activity in the Bay of Biscay
breed [uboats uboat] ; There is only one kind of U-boat
uboats-own [dest speed submerged? status dived? battery transittime lastescape]
breed [s25s s25]
s25s-own [fuel speed nearest patrol? outbound? pathrs contacts]
globals [Brest LOrient SaintNazere Plymouth LaRochelle Bordeaux
  deployed encounters totalpatrolhrs opportunities escapes ttimes s25-arrate
  ports ocean]
patches-own [
  region ; the number of the region that the patch is in, patches outside all regions have region = 0
]



To Setup
  __clear-all-and-reset-ticks
  import-pcolors "Bay_of_Biscay_Short.bmp"
  set Brest patch 418 316
  set LOrient patch 434 280
  set SaintNazere patch 471 256
  set LaRochelle patch 546 201
  set Bordeaux patch 560 171
  set Plymouth patch 435 440
  set-default-shape uboats "suboat"
  set-default-shape s25s "airplane 2"
  set ports (list Brest lorient saintnazere larochelle bordeaux)
  set ocean patches with [pcolor = 9.9]
  set deployed 0
  set encounters 0 ; The number of minute-turns in which a surfaced U-boat is in cone of an S25
  set totalpatrolhrs 0
  set opportunities 0 ; The number of minute-turns in which a U-boat (surfaced or dived) is in cone of an S25
  set escapes 0
  set ttimes []
  set s25-arrate ph-generator / 4000 * 0.013 ; the s.25 arrival rate from slider

End ; setup

To Go
;  ask agents Move
  if ticks < 2 [StartUboat]
  if random-float 1 < 0.0013 [StartUboat]
  if random-float 1 < s25-arrate [StartS25] ; gives about 4K TPH
  ask turtles [move]
  ask s25s [search] ; Search after you turn, submarines set status, check fuel
  Tick
  if ticks = 43204 [stop] ; Each run lasts 30 days
End  ;go

To StartUBoat ; This procedure creates a U-boat at one of the ports and sends it west.
  create-uboats 1 [
    set size 10
    set speed 10  ; Uboats transit from the coast at 10 kts.
    move-to one-of ports ; Randomly start at one of the ports.
    set heading 275 + random 35  ; Fan out randomly.
    set dived? FALSE  ; Surfaced transit.
    set status "egress" ; Ensures it doesn't dive during egress
    set transittime 0 ; I'm going to determine total minutes to transit
    set lastescape 0  ; Used to avoid double-counting escapes.

  ]
End ; Create Uboat

To StartS25
  create-S25s 1 [
    set size 20
    move-to Plymouth
    set heading 200 + random 50
    set fuel 100
    set label-color 10
    set patrol? FALSE    ; Used to measure TPH and limit search subroutine
    set outbound? TRUE   ; Used to transition to patrol on outbound leg
    set pathrs 0
    set contacts []
  ]
End ; StartS25

To Move ;Actual movement in the main command. This depletes fuel and battery.
  if (breed = uboats) [
    fd speed / 60
    set transittime transittime + 1
    if-else dived? [  ; Consume battery for submerged submarines
      set battery battery - .25 ; Battery life 5.2 hrs
      if battery < 20 [surface] ; Battery too low to stay down
    ] [               ; Charge battery for surfaced submarines
      if battery < 100 [set battery battery + .3] ; Recharge in 4.33 hrs
      if maxsubmergence? [
        if battery > 98 [submerge] ; battery full, dive in Max Submgnce
      ]
    ] ; if-else dived?
    checkPosition ; Transition egress to transit or transit to done
  ] ; ask uboats
; Now for the s25s
  if (breed = s25s) [
    fd airspeed / 60
    set fuel fuel - 0.12 ; Gives 10.4 hours operational flight before RTB
    if-else labels? [set label round pathrs] ; For visual debugging
    [set label ""]
    checkStatus          ; Transition to patrol, Maneuver in the box, check fuel, Land
  ]

End ; move

to CheckPosition  ;Uboats look at what its doing
  if xcor < 370 [ ; Check to see if I'm in the op area
    if status = "egress" [ ; if I just entered the op area...
      submerge             ; dive and chamge my status to transit
      set status "transit"
    ] ; a transiting, non-dived uboat
  ]
  if xcor < 100 or ycor > 520 [         ; If I've reached the North Atlantic...
    set deployed deployed + 1   ; Add me to the tally of deployed Uboats
    set ttimes lput transittime ttimes
    die                  ; And remove me from the model
  ]
end  ; CheckPosition for Uboats

to CheckStatus ;After S25 moves, check to see if they need to change something
  if outbound? [
    if xcor < 340 [
      set patrol? TRUE
      set outbound? FALSE
      set heading 235
    ]
  ]

  if patrol? [
    if xcor > 360 [ ; Eastern boundary, head West
      set heading 225 + random 90
    ]
    if xcor < 190 [ ; Western boundary, head East
      set heading 45 + random 90
    ]
    if ycor < 200 [ ; Southern boundary, head North
      set heading 295 + random 90
    ]
    if ycor > 430 [ ; Northern boundary, head South
      set heading 135 + random 90
    ]
   if fuel < 25
     [face Plymouth
      set patrol? FALSE
    ] ; RTB Out of gas
    set pathrs pathrs + 1 / 60
  ] ; end of "if on patrol block"



  if ycor > 444 ;arrived at Plymouth
    [set totalpatrolhrs totalpatrolhrs + pathrs
     die]
end  ; S25 status

to search ; Executed by every S25 every turn.
  if not patrol? [stop] ; non-patrolling aircraft should not be searching
  if count uboats < 1 [stop] ; No use searching an empty ocean.

  let target-set uboats in-cone S25-vision cone-angle ; Creates the set of all uboats in my cone
  if count target-set > 0 [   ; There's a Uboat in the cone
    let target min-one-of (uboats) [distance myself] ; Don't look for closest unless there's one in the cone.
    set nearest distance target

    if (member? target target-set) [ ; True if target is in my cone, false if nearest uboat is outside cone
;    user-message(word "Target is in the cone. Who is: " who)
      set opportunities opportunities + 1 ; Count number of turns a U-boat is in the cone of an S25
      ask target [

           if-else not dived? [
;        user-message(word "Uboat in cone of: " who "and surfaced. Battery: " round battery)
              if dived? [user-message("I am submerged!")]
              if random-float 1 < 0.1 [ ; S25s attack only 10% of what they CAN see (surfaced, in their cone) per turn.
                 ask myself [attack]
           ]
              set encounters encounters + 1  ; I count all encounters S25 to surfaced U-bot per turn, not all attacks.
          ; Note the above statment may count multiple encounters for the same interaction.
           ] ; end if target is surfaced, now else (target is dived in the cone)
           [ ; Target is selected but is dived, so...
           if (ticks - 1) > lastescape [ ; This target was NOT escaping last run. This UBoat skipped a turn in this loop.
            ; Note: this if condition means escapes are counted only once while opportunities & encounters happen every min.
             set escapes escapes + 1] ; Counts the number a submerged U-boats pass under an S25 detection cone (overall, not per min)
           set lastescape ticks ; Links this minute to the next in case I'm still in the cone.
           ]; target was dived
       ] ; stop asking target to do things
    ] ; Closest uboat in the cone selected.
  ] ; There's a uboat in the cone
  ask uboats in-cone uboatvision 360 [ ; Finds Uboats that can see me out to their vision.
    if not dived? [
;  user-message(word "Uboat crash dives. Battery: " round battery)


    submerge ; and asks them to dive if they are not dived already.
    ] ; This allows half to escape
  ]
end  ; search

to submerge
  set shape "uuboat"
  set speed 2
  set dived? TRUE
;  let attacker min-one-of (s25s) [distance myself]  ;these report distance to nearest Sunderland
;  let disttoS25 distance attacker  ;
;  user-message(word "Uboad dived, plane is nm: " disttos25)
end  ;

to snort
  set shape "uboat"
  set speed 5
  set dived? FALSE
end 

to surface
  set shape "suboat"
  set speed UT-speed
  set dived? FALSE
end 

to attack
  watch-me
;  wait 15
  set shape "attacking"
  set patrol? FALSE
  face plymouth
end  ; attack

; to-report intvalue [x]
;  set x round x
;  report x
; end

There are 2 versions of this model.

Uploaded by When Description Download
Ken Comer almost 4 years ago New Version of Model Download this version
Ken Comer about 5 years ago Initial upload Download this version

Attached files

File Type Description Last updated
Bay_of_Biscay_Short.bmp background This is the background map called for in the code. It should be in the model's directory. about 5 years ago, by Ken Comer Download
UBoats in the Bay of Biscay.png preview Preview for 'UBoats in the Bay of Biscay' about 5 years ago, by Ken Comer Download

This model does not have any ancestors.

This model does not have any descendants.