Progetti

Note generali

Seguono i principali aspetti relativi ai progetti da svolgere per l'esame:

  • Il progetto è comunque facoltativo, e può essere rimpiazzato da una prova orale sul programma del corso (la cui preparazione richiede tuttavia un tempo analogo)
  • Il progetto è scelto dallo studente in accordo col docente, può essere eseguito da un gruppo di 1, 2 o 3 persone (dipendentemente dall'impegno richiesto e dalle modalità specifiche scelte per quel progetto), e deve comportare un impegno temporale di circa 80 ore a testa (ogni studente è tenuto a tenere traccia delle ore impiegate per svolgere il progetto)
  • Una volta assegnato il progetto, verrà concordata anche la data di consegna (non più tardi di 2 mesi dall'inizio del progetto, in genere). 
  • In questa pagina si elencano proposte del docente per i progetti. Si rammenta che altre possibilità possono essere relative a progetti suggeriti da docenti di altri corsi (normalmente dello stesso profilo), o possono anche venire dagli studenti stessi. 
  • Questa lista è dinamica: verrà estesa via via nel tempo, anche dopo la fine del corso.
  • Identificata una area di interesse, lo studente chieda le delucidazioni del caso al docente proponente del progetto.

Complex Systems Science (A.Roli)

  • Distributed classification in a group of robots: The projects consists in programming the individual controller of a group of robots with the aim of enabling the robots classifying the pattern painted on the arena floor. The robots know only the ground colour of their location (by means of the ground sensor) and the pieces of information received by their neighbours (by means of the range-and-bearing device). The goal is to design a controller (the same for every robot) that makes it possible to let the robot reach a consensus on the basis of local information. The project can be developed with ARGoS or in a customised simulator.
  • Complexity measures: The projects consists in surveying the complexity measures proposed in the literature and applying them to notable complex dynamical systems, such as random Boolean networks.
  • Evolution of self-organised behaviours by means of information-theoretic measures: The projects consists in experimenting with artificial evolution of robots or agents with a fitness function not tailored to a specific task, but rather aimed at optimising a general criterion defined in terms of information properties, such as mutual information, integration and empowerment.
  • Robustness and evolvability: The projects consists in reproducing the results achieved in the paper "Robustness and evolvability in genetic regulatory networks" by Aldana et al. (J. Theor. Bio., 245, 2007). In the paper, the athors show that evolution seems to optimise robustness and evolvabilty by favouring the reproduction of critical dynamics. The work should be complemented with a survey of the state of the art of the topic "robustness, evolvabilty and complexity".

Simulation tools for self-organisation (M.Viroli)

  • Simulators overview: Many stochastic simulation tools exist around, but they are rarely used to simulate self-organisation mechanisms (especially when dealing with spatial patterns). The goal of this project is to survey such tools, find those that could be used, perform experiments, and provide a comparative analysis of performance.
  • Alchemist DSL 2.0: Alchemist DSL has many shortcomings. The goal of this project is to design a new version of it, making it a more suitable tool to structure complex specifications, also enhancing its expressiveness. This project will include implementation of the new extension in Xtext, as well as conductment of few experiments in self-organisation mechanisms.
  • Alchemist functional DSL: Alchemist is a DSL-independent tool, and it would be interesting to evaluate different ways to specify simulations, e.g., going into the direction of languages such as Proto. The goal of this project is to design an entirely new DSL, porting a tiny but expressive fragment of Proto into Alchemist. This project will include implementation of the new extension in Xtext, as well as conductment of few experiments in self-organisation mechanisms.
  • Alchemist interactive GUI: Alchemist has currently little support for interacting during simulation. The goal of this project is extend its GUI to allow basic interaction abilities, including the possibility of adding/removing/moving nodes, adding/removing/changing LSAs in a node, and so on. Other than development of these new features, this project will deliver a demo based on some experiments in self-organisation mechanisms.

Design of new self-organisation mechanisms (M.Viroli)

  • Anticipative crowd-steering strategies: Gradient-based structures are useful to steer people in crowded areas, and there is a potential for making the resulting system intelligent and adaptive not only to current contingencies, but also to what can presumably happen in the future. The goal of this project is to design mechanisms and patterns to properly deviate a standard gradient based on the information about agents ascending the gradient itself, so as to intercept future congestions. This project will be developed possibly using a combination of Alchemist and Proto to specify and then evaluate the proposed solution.
  • Detection of distributed contingencies: A key application of self-organisation is in detecting distributed contingencies, namely, situations expressed in terms of a non-local pattern. The goal of this project is to design gradient-based mechanisms and patterns to intercept a possibly wide set of such contingencies, including gathering information from a large neighbourhood, finding consensu values, identifying clusters of nodes (centers and size) featuring certain local properties. This project will be developed possibly using a combination of Alchemist and Proto to specify and then evaluate the proposed solution.

Prototyping self-organisation platforms and applications for smart-devices (M.Viroli)

  • BLE-based spatial applications: The framework used in the magic-carpet demonstrator can be extended with Bluetooth Low-Energy capabilities, namely, BLE stickers and beacons. This project will extend some of the existing NFC-based applications (Channel, FlagFinder, Partition) with BLE, allowing to smoothly move from the carpet to a bigger indoor setting.
  • GPS-based spatial applications: The framework used in the magic-carpet demonstrator can be extended with GPS capabilities, namely, the abilities of smartdevices to retrieve their GPS location. This project will extend some of the existing NFC-based applications (Channel, FlagFinder, Partition) with GPS, allowing to smoothly move from the carpet to a bigger outdoor setting.
  • Virtual beacon by Rasperry PI: BLE-based beacons are in their infancy, and some more flexible devices could be useful for experimentation purposes. This project aims at developing a virtual BLE-based beacon, using Raspberyy PI (or Arduino) devices with BLE dongles, to be used in applications of spatial computing.
  • Spatial DSL for smart-devices: The framework used in the magic-carpet demonstrator allows one to write applications in Java, using the proper API, while it would be interesting to consider a DSL (and related underlying API) based on the functional abilities of Proto. This project is aimed at designing either an API or a DSL (or both) to ease development of applications for the smart-carpet demonstrator.

Architectures for complex large-scale systems (A.Ricci)

  • City game 01 - Design e sviluppo prototipale di un sistema distribuito basato su cloud che permetta di monitorare la posizione e stato di un insieme aperto di utenti (dotati di smartphone/tablet), organizzati per "livelli". Per interagire con il sistema, un utente deve unirsi (join) ad un certo livello X disponibile. Il livello deve essere stato creato da un altro utente "amministratore". Entrato nel livello, l'utente può percepire la posizione e stato di tutti gli utenti che sono in quel momento nel livello (eventualmente ulteriormente selezionati mediante filtri, es: nel raggio di 100 metri dalla posizione dell'utente). Lo stato degli utenti è rappresentato da un colore, che gli utenti stessi possono cambiare dal loro smartphone. Ogni utente può visualizzare sul suo smartphone/tablet/PC una mappa che include la posizione e stato attuale degli altri utenti (es. sottoforma di cerchietto colorato).
  • Service-oriented computing and Internet of Things -  Obiettivo del progetto è il design e lo sviluppo prototipale di una infrastruttura service-oriented REST che permetta di integrare e sfruttare i servizi forniti da un insieme aperto di dispositivi, considerando il PSLab come caso di studio. Toy examples:
    • applicazione di monitoraggio della temperatura (misurata da un dispositivo su Raspberry Pi), visualizzata su uno dei big-screen (pilotato da un altro raspberry Pi) e consultabile via app su tablet
    • applicazione di monitoraggio del numero delle persone nella stanza (rilevata mediante kinect o equivalenti), visualizzata su uno dei big-screen (pilotato da un altro raspberry Pi) e consultabile via app su tablet
  • City game 02 - Mobile AR - Design e sviluppo prototipale di un video-game basato basato su cloud e mobile Augmented Reality denominato "Ghosts in the city". Il video-game consiste in 2 team che devono trovare tesori sparsi per la città (e.g. Cesena) cercando di non farsi prendere da fantasmi che si muovono per la città stessa. Vince la quadra che colleziona più tesori. Il video-game è organizzato a livelli. Ogni livello è creato da un utente amministratore, e consiste in un certo insieme di tesori (in posizione prefissata, visualizzabile su una mappa) e un certo insieme di fantasmi (che non si vedono sulla mappa). I fantasmi sono percepibili da un player (in forma di realtà aumentata o sulla mappa) solo quando gli sono sufficientemente vicini. Se il fantasma cattura un player (raggiungendolo nella posizione in cui si trova), il player è escluso dal gioco. Un player raccoglie un tesoro recandosi in prossimità del tesoro stesso e raccogliendolo "virtualmente" mediante lo smartphone.