Artificial Intelligence for Software Engineering

We use Artificial Intelligence (AI) for building Software Engineering (SE). We apply complex optimization concepts plus machine learning and data science to solve SE challenges: testing, software repair, software product lines, programming intelligent tools. We include here the important worldwide research line of search-based software engineering, that we face with both exact and approximate algorithms.

Software Engineering for Building Trusworthy Artitificial Intelligence

We focus on building intelligent software endowed with advanced optimization and deep learning engines that can be used to solve real problems in engineering, energy, economy, health, Smart Cities, and Industry 4.0. We do so by applying common SE tools to finally get a trustworthy intelligent tool that has been tested to perform the required work as expected, and that it is easier to understand and explain. As with any other software, the AI embedded in a software package can be analyzed, improved, and made safer for the scientific and industrial applications where it is going later to be used under hard production requirements.

Security by Design and Intelligent Automatic Software Quality Assessment

We define AI methods (optimization, data science, deep learning) for assessing the quality of software in its many different axes: functionality, performance, security, reliability, usability, maintainability, compatibility and portability. We provide new techniques, working prototypes, and tools for the automatic static analysis of software, plus new studies on quality in dynamic software environments. We focus on software systems in general and in cyber-physical systems in particular, IoT embedded software, and smart cities middleware.

Distributed and Ubiquitous Intelligent Systems: HPC, Edge Computing and Big Data

We use modern specialized hardware for building intelligent systems that can later be used in real world applications where high amounts of data and tight time restrictions are both in place, under uncertainties and dynamic changes in the working environment. We use multiprocessors, clusters of workstations, GPUs, and smartphones/raspberry pi for demanding optimization and learning tasks. We work both in central processing where the data flow towards the computing resources and in edge/fog computing, where computing happens just where the information is sensed or the result is expected for the final user. We provide tools for crowd-computing in web browsers so that socially important problems are solved voluntarily in user’s devices, and we also focus on new techniques for highly efficient learning tasks in computing labs. We also deal with smart vehicles, V2V communications and micro-simulations.

Intelligent Systems for Smart Cities: Transport, Energy, Environment, Living

We approach Smart Cities (SC) in a holistic manner and make R&Di to improve the level of development and management of the city in a broad range of services by using information and communication technologies. We work in the expected standard six axes of SC: Smart Economy, Smart People, Smart Governance, Smart Mobility, Smart Environment, and Smart Living. We use bio-inspired techniques, deep learning and build new AI techniques for smart mobility in a very special intensive way: low pollution routes, traffic lights optimal programming, prediction of parking slots in subterranean car parks, avoidance of jams, V2V communications and services, road planning, safety of passengers, multimodal mobility, and much more. We also research and develop intelligent systems for energy (like adaptive lighting in streets), environmental applications (like mobile sensors for air pollution and noise), smart building (intelligent design), and several other applications linked to smart living, tourism, and smart municipal governance.

Green Computing and Sustainable Communications: 5G and Intelligent Systems

En el desarrollo y mantenimiento de software inteligente y de las nuevas redes 5G es imprescindible asegurar su sostenibilidad reduciendo su impacto climático, manteniendo la eficiencia e incluyendo objetivos típicos de la economía y sociedad digitales actuales. En esta línea de investigación trabajamos en proponer nuevas técnicas basadas en optimización compleja y aprendizaje máquina para conseguir dichos objetivos de sostenibilidad sin descuidar la eficiencia resultante, produciendo software avanzado para realizer computación y comunicaciones de baja huella de carbono.

Circular Economy, Environment, Pollution Reduction

We research in different intelligent techniques like bio-inspired algorithms, deep neural networks and use data science to build new systems targeted to circular economy so that we can re-use usual waste (like plastic, crystal, paper…) and start a new cycle in building new goods (like cloth hangers, tv covers…) that have market value. We can predict the level of filling of waste containers, optimize truck routes, and give intelligent interfaces for workers in environmentally friendly works. We aim a reducing pollution in our research and working prototypes, and in general provide state of the art intelligent systems for sustainability: energy, water, road traffic, etc.

Prescriptive Analytics: Diagnosis, Prediction, and Optimization in Complex Real Systems

We build new AI techniques (deep learning, co-evolutionary solvers, optimization engines, calculus-based controllers, theory) for the general filtering and analysis of data, with an intensification in predicting values and scenarios of risk, plus informed computerized assistants to help in acting onto real Smart City or Industry 4.0 premises. In particular, we can predict the next state of real systems, like the number of future free parking slots for cars, the filling levels of waste containers, the future hottest spots in a city from a civil security point of view, and the places for potential future errors in large software systems. We can build digital twins of such systems and test on the new policies, detect wrong scenarios and advice on how to act to get a higher benefit, lower cost, and improved safety.

Software Engineering and AI on Quantum Computers

We here implement and run Artificial Intelligence (AI) techniques on Quantum Computers (QC’s) like IBM QE, DWAVE, Fujitsu DA2, and also on simulators of these computers running on classical machines. In addition to solving NP-hard problems in QC’s we address software testing, debugging and other software quality assessment tasks especially targeted to the software developed for QC’s themselves.