The Need

Current military operators require many hours to adapt software when hardware, resources, or external conditions (i.e., ecosystems) change. As part of its Building Resource Adaptive Software Systems (BRASS) program, the Defense Advanced Research Projects Agency (DARPA) aims to build adaptable software systems that are robust enough to change autonomously, both internally and in their external ecosystems. 

The Solution

Charles River Analytics, and our partners at the University of Southern California, Harvard University, the University of Birmingham, and Metron, developed Probabilistic Representation of Intent Commitments to Ensure Software Survival (PRINCESS). PRINCESS incorporates new advances in machine learning and probabilistic modeling to help build adaptable software systems so they can understand, learn, and adapt to changes. We grounded our research in unmanned underwater vehicle (UUVs) platforms, which must quickly acclimate to new missions.

The Benefit

Under PRINCESS, we developed novel methods and incorporated ideas from diverse fields to research, design, and build adaptable software systems. PRINCESS enables these software systems to acclimate automatically to changes in their ecosystem during a critical military mission. Because PRINCESS enables software systems to evolve when the ecosystem changes, we can help reduce software maintenance costs and premature obsolescence of otherwise sound systems.

PRINCESS Demonstrates the Latest in Autonomous Naval Technologies

Charles River’s PRINCESS incorporates machine learning and probabilistic modeling to build adaptable software systems


Sailors move a REMUS UUV during a research and training exercise [Defense.gov photo]

"We envision military software that can make significant adaptations on its own. With PRINCESS, we are closer to software that can quickly and autonomously adapt to changes in its environment." - Dr. Avi Pfeiffer, PRINCESS Principal Investigator

Many DoD software systems run on long-lifespan platforms that operate in diverse environments. Countless hours are spent manually adapting this software to operate effectively when hardware and external resources change. If this software could automatically adapt to these ecosystem changes, it would significantly reduce the time and effort required for maintenance.

Applying PRINCESS to UUVs

Unmanned underwater vehicles (UUV) tackle challenging missions in changing internal conditions and external ecosystems. These vehicles must adapt to system failures (e.g., a battery loss) and changes to the environment (e.g., a force on the UUV).

In our PRINCESS effort, part of DARPA’s BRASS program, we developed methods that would allow the UUV’s software to adapt to change, both within the UUV itself and in its external ecosystem. We experimented with different techniques in machine learning and probabilistic programming to enable UUV software to adapt to internal change, such as upgraded sensors or computer hardware. We also explored how UUVs can acclimate to an evolving external ecosystem, such as a mission’s changing priorities.

Our team researched three UUV software adaptations:

  • Sensor adaptation accommodates new and upgraded sensors, and compensates for sensor degradation while the UUV is on a mission.
  • Control adaptation responds to online system failures in real time. Our probabilistic verification techniques ensure that these adaptations do not result in dangerous plans for the UUV.
  • OS adaptation responds to changes in the UUV’s computer hardware by synthesizing parts of the OS and compiler tool chain. 

A UUV such as the REMUS 600 is an ideal platform to study many aspects of software adaptation. In PRINCESS, we successfully demonstrated adaptation to upgraded and degraded sensors, system failures, new architectures, and changes in the ecosystem.


A REMUS 600 autonomous underwater vehicle (U.S. Navy photo by John F. Williams/Released). PRINCESS applies machine learning and probabilistic programming to help UUV software adapt to ever-changing ecosystems.

Beyond UUVs: Next Steps for PRINCESS

In our ongoing PRINCESS research, we will generalize our methods to apply to other software systems. For example, our control adaptation uses general techniques of program transformation and machine learning, which can be applied to a wide variety of systems in different programming languages. When software can organically adapt to its dynamic internal and external environments, its lifespan will increase, saving time and money for any system or platform.

Distribution Statement "A" (Approved for Public Release, Distribution Unlimited) 

This material is based upon work supported by the United States Air Force and the Defense Advanced Research Projects Agency (DARPA) under Contract No. FA8750-16-C-0045. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Air Force and DARPA.

Contact Us