Autonomous adaptation of software
to changes in its environment

Autonomous adaptation of software to changes in its environment

Autonomously adapting software

The DoD spends countless hours adapting software to operate effectively when hardware and external resources change. If this software could adapt automatically to these ecosystem changes, it would significantly reduce the time and effort required for maintenance.

To address this challenge, Charles River Analytics and our partners developed PRINCESS (Probabilistic Representation of Intent Commitments to Ensure Software Survival). 

Using the REMUS 600 autonomous underwater vehicle as a platform, we successfully demonstrated software adaptation to internal and external changes:

  • Upgraded sensors and new architectures
  • System failures and degraded sensors
  • Changes in the ecosystem
Image from Charles River Analytics project PRINCESS.

Research for PRINCESS was grounded in the needs of UUV platforms, which must quickly acclimate to new missions. (Photo source:

“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 Pfeffer
Principal Investigator on the 

Novel methods to promote robustness

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.

Working with partners from the University of Southern California, Harvard University, the University of Birmingham, and Metron, Charles River developed novel methods and incorporated ideas from diverse fields to research, design, and build PRINCESS. To help software systems understand, learn, and adapt to changes, PRINCESS incorporates advances in machine learning and probabilistic modeling. 

Advantages of the PRINCESS approach:

  • Automatic acclimation to ecosystem changes during critical military missions
  • Reduction in software maintenance costs and obsolescence of otherwise sound systems

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.

Applying PRINCESS to UUVs

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

We experimented with different techniques in machine learning and probabilistic programming to enable UUV software to adapt to internal changes, including 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 developed 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.
  • Operating system (OS) adaptation responds to changes in the UUV’s computer hardware by synthesizing parts of the OS and compiler tool chain.
Image from Charles River Analytics project PRINCESS.

UUVs, such as this REMUS 600 autonomous underwater vehicle, tackle challenging missions under changing conditions. PRINCESS applies machine learning and probabilistic programming to help software adapt to these changes. (Photo source: U.S. Navy photo by John F. Williams)

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. 

Contact us to learn more about PRINCESS and our other robotics and autonomy capabilities. 

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.

Our passion for science and engineering drives us to find impactful, actionable solutions.