Intelligent data dissemination for smart environments [taken]
Advances in sensors, wireless communications, and mobile devices have enabled the possibility of creating ad-hoc networks over which information can be shared more easily and even be pushed to the cloud in a straightforward manner. The computational power of all these devices has also grown in recent years which makes it now possible for intelligent algorithms to be run on these devices. This in turn deploys innumerable practical applications in a wide variety of domains, such as smart home systems, heart implants, smart grids, intelligent fleet tracking, intelligent car systems, smart factories, etc. As a concrete application consider a smart thermostat system. Next to learn individual data patterns from the heating system to predict preferred end-user temperature like the Nest thermostat does, the “next gen” smart thermostat can use information from numerous devices (like nearby smartphones, lights, etc., ...) to predict optimal temperature for enhancing energy consumption.
The growing heterogeneity of low-cost embedded devices equipped with different networking capabilities (e.g., BluethoothLE, wifi, and cellular) allows a variety of types of networks which depart from the traditional networks connecting devices to a central server over the Internet. In these networks, devices can communicate and collaborate directly in a loosely-coupled manner without relying on infrastructure. In addition, devices can actually collaborate in order to gather data and learn information in a crowd-based way. To this end, it is necessary a software framework that simplifies the usage of all these new devices embedded in the physical environment and allows the integration of machine learning algorithms which can leverage the additional information that becomes available through the network.
In prior work at SOFT, we have developed a tuple space-based communication framework called TOTAM . TOTAM provides a good abstraction level to allow agents on the network to discover each other and disseminate data in a loosely coupled manner. Interactions between agents is implemented by injecting data in the network which can be read by all the other agents in the network. The data that is injected into the network will be routed throughout the distributed agent network and hop from agent to agent according to rules that are attached to the data itself. Agents register interests in relevant information from other agents with a publish/subscribe system that goes beyond simple pattern matching.
The goal of this thesis is to further explore tuple space based communication for easing the development of smart applications which rely on crowd-based machine learning techniques (i.e. agents hosted by devices in the environment collaborate and learn information in a decentralized but coordinated way). To this end, it is important to (1) incorporate spatial information about the network topology and the physical location of the agents and (2) add mechanisms to increase the robustness of the interactions between the distributed agents while minimizing rollbacks in the decision making of agents.
The goal of this thesis is not the design of a new machine learning algorithm (we will employ a classical Q-learning reiforcement learning approach ). Instead the focus lies on the design and implementation of dissemination abstractions and how they interact with a machine learning algorithm run by agents on the devices. Spatial information will be made accessible to expert programmers to optimise the communication between the distributed agents. While incorporating spatial information in the model is a first step, incorporating this information in every subscription would be error prone. Therefore high-level language abstractions to reason about spatial constraints should be developed to ease the development of distributed data dissemination. On one hand, the communication framework should be able to provide advanced guarantees over the network interactions. Invariants over the network will be expressed as propagation strategies on the interchanged data (ie. tuples).