83,396 research outputs found
Dynamic Optimization of Network Routing Problem through Ant Colony Optimization (ACO)
Search Based Software Engineering (SBSE) is a new paradigm of Software engineering, which considers software engineering problems as search problems and emphasizes to find out optimal solution for the given set of available solutions using metaheuristic techniques like hill climbing simulated annealing, evolutionary programming and tabu search. On the other hand AI techniques like Swarm particle optimization and Ant colony optimization (ACO) are used to find out solutions for dynamic problems. SBSE is yet not used for dynamic problems. In this study ACO techniques are applied on SBSE problem by considering Network routing problem as case study, in which the nature of problem is dynamic. Keywords: SBSE, ACO, Metaheuristic search techniques, dynamic optimizatio
Artificial Intelligence in Process Engineering
In recent years, the field of Artificial Intelligence (AI) is experiencing a boom, caused by recent breakthroughs in computing power, AI techniques, and software architectures. Among the many fields being impacted by this paradigm shift, process engineering has experienced the benefits caused by AI. However, the published methods and applications in process engineering are diverse, and there is still much unexploited potential. Herein, the goal of providing a systematic overview of the current state of AI and its applications in process engineering is discussed. Current applications are described and classified according to a broader systematic. Current techniques, types of AI as well as pre- and postprocessing will be examined similarly and assigned to the previously discussed applications. Given the importance of mechanistic models in process engineering as opposed to the pure black box nature of most of AI, reverse engineering strategies as well as hybrid modeling will be highlighted. Furthermore, a holistic strategy will be formulated for the application of the current state of AI in process engineering
Towards a Semi-Automated Data-Driven Requirements Prioritization Approach for Reducing Stakeholder Participation in SPL Development
Presented at the 4th XoveTIC Conference, A CoruƱa, Spain, 7ā8 October 2021.[Abstract] Requirements prioritization (RP), part of Requirements engineering (RE), is an essential activity of Software Product-Lines (SPL) paradigm. Similar to standard systems, the identification and prioritization of the user needs are relevant to the software quality and challenging in SPL due to common requirements, increasing dependencies, and diversity of stakeholders involved. As prioritization process might become impractical when the number of derived products grows, recently there has been an exponential growth in the use of Artificial Intelligence (AI) techniques in different areas of RE. The present research aims to propose a semi-automatic multiple-criteria prioritization process for functional and non-functional requirements (FR/NFR) of software projects developed within the SPL paradigm for reducing stakeholder participation
Software engineering for deep learning applications: usage of SWEng and MLops tools in GitHub repositories
The rising popularity of deep learning (DL) methods and techniques has
invigorated interest in the topic of SE4DL, the application of software
engineering (SE) practices on deep learning software. Despite the novel
engineering challenges brought on by the data-driven and non-deterministic
paradigm of DL software, little work has been invested into developing
AI-targeted SE tools. On the other hand, tools tackling more general
engineering issues in DL are actively used and referred to under the umbrella
term of ``MLOps tools''. Furthermore, the available literature supports the
utility of conventional SE tooling in DL software development. Building upon
previous MSR research on tool usage in open-source software works, we identify
conventional and MLOps tools adopted in popular applied DL projects that use
Python as the main programming language. About 70% of the GitHub repositories
mined contained at least one conventional SE tool. Software configuration
management tools are the most adopted, while the opposite applies to
maintenance tools. Substantially fewer MLOps tools were in use, with only 9
tools out of a sample of 80 used in at least one repository. The majority of
them were open-source rather than proprietary. One of these tools, TensorBoard,
was found to be adopted in about half of the repositories in our study.
Consequently, the use of conventional SE tooling demonstrates its relevance to
DL software. Further research is recommended on the adoption of MLOps tooling
by open-source projects, focusing on the relevance of particular tool types,
the development of required tools, as well as ways to promote the use of
already available tools
Using Microservices to Design Patient-facing Research Software
With a significant amount of software now being developed for use in patient-facing studies, there is a pressing need to consider how to design this software effectively in order to support the needs of both researchers and patients. We posit that a microservice architectureāwhich offers a large amount of flexibility for development and deployment, while at the same time ensuring certain quality attributes, such as scalability, are presentāprovides an effective mechanism for designing such software. To explore this proposition, in this work we show how the paradigm has been applied to the design of CONSULT, a decision support system that provides autonomous support to stroke patients and is characterised by its use of a data-backed AI reasoner. We discuss the impact that the use of this software architecture has had on the teams developing CONSULT and measure the performance of the system produced. We show that the use of microservices can deliver software that is able to facilitate both research and effective patient interactions. However, we also conclude that the impact of the approach only goes so far, with additional techniques needed to address its limitations.10.13039/501100000266-UK Engineering & Physical Sciences Research Council (EPSRC) (Grant Number: EP/P010105/1
On Agent-Based Software Engineering
Agent-based computing represents an exciting new synthesis both for Artificial Intelligence (AI) and, more generally, Computer Science. It has the potential to significantly improve the theory and the practice of modeling, designing, and implementing computer systems. Yet, to date, there has been little systematic analysis of what makes the agent-based approach such an appealing and powerful computational model. Moreover, even less effort has been devoted to discussing the inherent disadvantages that stem from adopting an agent-oriented view. Here both sets of issues are explored. The standpoint of this analysis is the role of agent-based software in solving complex, real-world problems. In particular, it will be argued that the development of robust and scalable software systems requires autonomous agents that can complete their objectives while situated in a dynamic and uncertain environment, that can engage in rich, high-level social interactions, and that can operate within flexible organisational structures
Pitfalls of Agent-Oriented Development
While the theoretical and experimental foundations of agent-based systems are becoming increasingly well understood, comparatively little effort has been devoted to understanding the pragmatics of (multi-) agent systems development - the everyday reality of carrying out an agent-based development project. As a result, agent system developers are needlessly repeating the same mistakes, with the result that, at best, resources are wasted - at worst, projects fail. This paper identifies the main pitfalls that await the agent system developer, and where possible, makes tentative recommendations for how these pitfalls can be avoided or rectified
- ā¦