Complex Systems​

The research area of Complex Systems at LIACC strives to uncover fundamental principles and to develop new methods and tools to model, understand and manage the behaviour that emerges as a consequence of the interaction that occurs, asynchronously and at multiple points, between individual intelligent and heterogeneous components and between these and the environment.

The objective is to derive rules about how the behavior of the system depends on the combined properties of its individual elements, the nature of the interactions between the individual elements and the topology of the interactions between them, in order to understand, predict and be able to control the system.

This research area in LIACC is devoted to the coordination of the interoperability of these systems, and concrete tasks addressing problems requiring distributed, decentralized solutions in dynamic, cooperative or competitive environments. A special emphasis is being done to agent and multi-agent methodology in complex systems modeling. Another concern of the laboratory in this research area is the learning and control of complex dynamic systems, where conditions are constantly shifting and hard to predict.

Intelligent Simulation​

The research area of Intelligent Simulation within LIACC is devoted to devising simulation theories and methodologies highly enriched with AI, in all phases of the simulation project lifecycle. From a more practical perspective, other research areas and thematic lines profit from intelligent simulation as the natural grounds for empirical AI, allowing intelligent systems to be tested with and evaluated appropriately. Another important use of simulation is for decision support, resorting to different modelling purposes, namely descriptive, normative, predictive, speculative (also called as scenarisation, allowing for what-if analysis), and prescriptive.

LIACC likewise explores advanced methods of modelling and simulation, including distributed simulation techniques and simulator interoperability, human-in-the-loop and participatory simulation, synthetisation of artificial systems and digital twins, simulation games, and virtual reality for immersive behavioral simulation. Additionally to different modelling techniques and discrete systems modelling metaphors, the Intelligent Simulation research area gives special emphasis to agent-based modelling and simulation. On the one hand, the agent and multiagent system metaphors are particularly suitable to support the analysis of highly complex and dynamic systems.

On the other hand, agent-driven simulation offers a plethora of opportunities for the development of intelligent simulation methods and tools, supporting the optimisation of parametric and meta-models and improving the efficiency of large-scale, multi-parametric, and multi-objective simulation models. Application-wise, LIACC has applied Intelligent Simulation in different domains, including intelligent robotics, social simulation and complex systems analysis, autonomous vehicles and multi-vehicle mission coordination, intelligent transportation and mobility systems, logistics, disruption management, sports, digital games, behavioural modelling, data synthetisation, and many others.

Intelligent Robotics​

In the area of Intelligent Robotics LIACC has been researching in continuous black-box optimization and developed a battery of new, state-of-the-art algorithms to tackle continuous black-box optimization problems in the area of Robotics such as Trust Region Covariance Matrix Evolution Strategy (TR-CMA-ES) and Model-Based Relative Entropy Stochastic Search (MORE). The work was also applied in the FC Portugal robotic soccer team for the optimization of low-level and mid-level robot skills and helped FC Portugal team to achieve 10 international awards including the winner of three RoboCup scientific/free challenges. The ability for a robot to coordinate with others within a system is a valuable property in multi-robot systems.

Robots either cooperate as a team to accomplish a common goal or adapt to opponents to complete different goals without being exploited. Research has shown that learning multi-agent/multi-robot coordination is significantly more complex than learning policies in single agent/robot environments and requires a variety of techniques to deal with the properties of a system where agents learn concurrently. In this context we have been researching how can machine learning be used to achieve coordination within a multi-agent/multirobot system and what techniques can be used to tackle the increased complexity of such systems and their credit assignment challenges, how to achieve coordination, and how to use communication to improve the behaviour of a team.

Many algorithms for competitive environments are tabular-based, preventing their use with high-dimension or continuous state-spaces, and may be biased against specific equilibrium strategies. We have proposed multiple deep learning extensions for competitive environments, allowing algorithms to reach equilibrium strategies in complex and partially observable environments, relying only on local information. We also have developed multi-agent algorithms where agents learn communication protocols to compensate for local partial-observability and remain independently executed. A centralized learning phase can incorporate additional environment information to increase the robustness and speed with which a team converges to successful policies.

Natural Language Processing​

Natural Language Processing (NLP) concerns the development of techniques that enable computers to fruitfully process, manipulate and understand language as used by humans. NLP has seen a drastic increase in research throughout the last decade, boosted by disruptive advancements in deep learning, more specifically with the development of word embedding representations, attention models, transformer architectures and complex neural language models. These advancements have seen widespread adoption due to the fact that they enable taking advantage of huge amounts of unlabeled data in an unsupervised fashion. At the same time, recent models have shown impressive state-of-the-art results across different NLP tasks.

Within LIACC, NLP research covers topics such as language models, benchmarking, question generation/answering, paraphrase generation, argument mining, machine translation for low-resourced languages, and historical language processing. LIACC also conducts cross-research between NLP and deep learning, including cross-lingual approaches, adversarial training, unsupervised language adaptation, and transfer learning. Research on NLP is at the core of relevant research projects with the public administration and is sparking several collaborations with other institutions.

Machine Learning​

Our research in Machine Learning is expansive, addressing a multitude of domains within supervised, unsupervised, and reinforcement learning frameworks. In supervised learning, our focus spans a diverse array of tasks including descriptive, predictive, and prescriptive analytics. We explore various types of data such as tabular, time-series and data streams, text, and more complex multimedia inputs. Our studies also delve into challenges posed by data anomalies and unbalanced class distributions. In terms of model development, our lab prioritizes advancements in model explainability and fairness, integrating cutting-edge techniques like adversarial learning and causal inference to ensure robust and equitable AI solutions. Our algorithmic research extends to deep neural networks, decision trees, ensemble methods, and innovative recommender systems, constantly pushing the boundaries of what these technologies can achieve. We are also deeply engaged in the field of Machine Learning Operations (MLOps), where we develop and refine tools and methodologies to enhance the deployment, monitoring, and maintenance of machine learning models in real-world settings. This includes automated machine learning (AutoML) and meta-learning, where our significant contributions help refine algorithm recommendation systems and deepen our understanding of algorithmic behavior under varied conditions. Applications of our research are widespread, impacting sectors such as retail, industrial automation, healthcare, and public services. In the realm of reinforcement learning, our lab is at the forefront of creating innovative algorithms that adapt and excel in complex environments. Our work includes developing techniques that allow machines to learn from sparse rewards and multi-agent interactions, applicable to both robotic systems and strategic game settings. Recent projects have tackled intricate challenges in robotics, enhancing robotic dexterity and decision-making, and in computer games, improving AI gameplay strategies and interactive learning scenarios. Through these diverse research streams, our lab not only contributes to theoretical advancements in machine learning but also ensures practical, real-world applicability, driving forward the frontiers of technology and its beneficial impact on society.

Software Engineering​

Software engineering is the systematic application of engineering approaches to the development of software. The mission of the LIACC’s Software Engineering Research Group is: to develop a deep understanding of how people build and evolve software systems; to develop novel methods, techniques, theories, and tools that advance the way in which software is built and adjusted; to ensure that our research results have a lasting impact in software development practice. In particular, our current research revolves around helping developers in improving the internal and external quality of their software systems.

Some current topics include: Use of static analysis tools: How are developers using automatic static analysis tools for improving their code quality? Can we improve the existing tools? Use of code reviews: How do code reviews contribute to code quality? Who should perform code reviews? Influence of development tools or paradigms: How does pull-based development influence quality? How does Continuous Integration (CI) help? What does DevOps do in terms of improving code quality? Code quality measurement: What are the best ways to measure the quality of source code? Software refactoring: How can we help developers in refactoring their large-scale complex software systems? Can we automatically recommend pieces of code that need refactoring? Mutation testing: how can we make mutation testing easier to apply to real-world software systems? Test analytics: how can we make software engineers more aware of their test activities (and help them in steering their future test activities); Test code quality: How does test code quality influence the ease by which bugs can be located? Test case generation: related to the work done in the CI4SE research line; Developer-centric perspective on testing: what are some of the difficulties that developers encounter when starting/willing to test?
The software engineering group is also involved in more practical projects such as all the projects concerning the application of AI for Public Administration and Governance.

Declarative Programming​

Declarative programming is the research area which studies the definition, implementation and applications of logic and functional programming languages. Logic programming has a long tradition in AI (expert systems, knowledge representation, natural language processing) and more recently in deductive databases and optimization using its constraint logic programming extensions. Functional programming has gained a new hype in the last decade mostly due to the applications of OCaml and Haskell by several top software companies and projects such as Microsoft, Intel, AT&T, Facebook and Github. LIACC has been doing research in declarative programming from its early days, and now the focus of this research area in LIACC is program analysis and verification of logic and functional programming languages.

High-Performance Computing​

The group researches on Parallel and Distributed Computing, Heterogeneous Computing, Scheduling in Heterogeneous Environments and Cloud Computing. The group has been developing strategies for running linear algebra kernels on heterogeneous platforms, algorithms for DAG scheduling, scheduling of mixed parallel applications and concurrent DAG scheduling. One of the target applications has been image data (medical image) that has been using to validate algorithms. These algorithms and scheduling strategies aim to optimize the computational resources used to solve a given problem with a dynamic load, i.e., load that is only known at runtime. Many real world applications fit in this context such as recognition in video surveillance, microscopic image processing, biomechanical analysis and image registration.