Forming Ensembles at Runtime: A Machine Learning Approach
  Smart system applications (SSAs) built on top of cyber-physical and
socio-technical systems are increasingly composed of components that can work
both autonomously and by cooperating with each other. Cooperating robots,
fleets of cars and fleets of drones, emergency coordination systems are
examples of SSAs. One approach to enable cooperation of SSAs is to form dynamic
cooperation groups-ensembles-between components at runtime. Ensembles can be
formed based on predefined rules that determine which components should be part
of an ensemble based on their current state and the state of the environment
(e.g., "group together 3 robots that are closer to the obstacle, their battery
is sufficient and they would not be better used in another ensemble"). This is
a computationally hard problem since all components are potential members of
all possible ensembles at runtime. In our experience working with ensembles in
several case studies the past years, using constraint programming to decide
which ensembles should be formed does not scale for more than a limited number
of components and ensembles. Also, the strict formulation in terms of hard/soft
constraints does not easily permit for runtime self-adaptation via learning.
This poses a serious limitation to the use of ensembles in large-scale and
partially uncertain SSAs. To tackle this problem, in this paper we propose to
recast the ensemble formation problem as a classification problem and use
machine learning to efficiently form ensembles at scale.
