TIES4530 Collective Intelligence and Agent Technology (5–7 cr)
The course focuses on the use of Distributed Artificial Intelligence methods, and more specifically of Intelligent Agents Technologies, for development of complex distributed software systems. Intelligent software agents are such self-managed (autonomic) software entities that are capable to carry out some goal-driven and knowledge-based behavioral activities on behalf of a user or some other software application, which created it. This theory-oriented part of the course reviews appropriate AI methods and technologies needed to enable intelligent agents. The course is lectured in English.
Main Content Components
The course provides knowledge about autonomous intelligent agents, agent technologies, mobility of agents, agent platforms, multi-agent systems, agent communication, agent coordination, agent negotiation, agent intelligence, semantic modelling of agents, agent-based industrial applications and systems.
Course-Related Context and Motivation:
According to http://www.agentbuilder.com/Documentation/whyAgents.html
“The next wave of technological innovation must integrate linked organizations and multiple application platforms. Developers must construct unified information management systems that use the World Wide Web and advanced software technologies. Software agents, one of the most exciting new developments in computer software technology, can be used to quickly and easily build integrated enterprise systems. The idea of having a software agent that can perform complex tasks on our behalf is intuitively appealing. The natural next step is to use multiple software agents that communicate and cooperate with each other to solve complex problems and implement complex systems. Software agents provide a powerful new method for implementing these next-generation information systems.”
An agent (aka software robot) is simply another kind of software abstraction in the same way that methods, functions, and objects are software abstractions. An object is a high-level abstraction that describes methods and attributes of a software component. An agent, however, is an extremely high-level software abstraction which provides a convenient and powerful way to describe a complex software entity. Rather than being defined in terms of methods and attributes, an agent is defined in terms of its autonomic behavior. This is important because programming an agent-based system is primarily a matter of specifying agent behavior instead of identifying classes, methods and attributes. It is much easier and more natural to specify behavior than to write code. Software agents, like people, can be most useful when they work with other software agents in performing a task. A collection of software agents that communicate and cooperate with each other is called an agency or a Multi-Agent System (MAS). System designers using agents must consider the capabilities of each individual agent and how multiple agents can work together. Agents in MAS need to communicate with each other and must have the capability of working together to achieve a common set of goals. Agents provide a new way of managing complexity of software systems because they provide a new relatively simple way of describing a complex system or process in terms of agent-mediated processes. Agents and agent technologies are well-suited for use in applications that involve distributed computation (also reasoning) or communication between components, sensing or monitoring of the environment, or autonomous operation. Agent-based approaches are very popular in Web applications and in applications that require distributed, concurrent processing capabilities. Autonomous agents are capable of operating without user input or intervention being an excellent tool for plant and process automation, workflow management, robotics, etc. [http://www.agentbuilder.com/Documentation/whyAgents.html, November 15, 2011].
Among other Master programs the closest one is Software Engineering (or similar) program as the course provides useful high-level software abstraction (behavior vs. classes and methods) and a tool to design complex software systems.
The course is also suitable for the Data Analysis (or similar) program as the course provides the framework for autonomic and parallel processing of data in the Web.
The course is also suitable for the Cyber Security (or similar) Master Program as the agent technologies provide new sophisticated security threats and concerns but in the same time can be utilized to design systems with autonomic self-protection behavior.
Being naturally autonomic and very flexible computational systems, agents and agent technologies are useful subject to study in various fields of computing and decision support within appropriate master programs.
Assignment (for 5 credits), plus second assignment (limited offer) for extra 2 credits.
Mandatory is the theoretical part of the course and its assignment resulting in 5 ECTS credits.
Learning outcomes of this course are closely correlated with several other courses, e.g., Semantic Web and Ontology Engineering, Deep Learning for Cognitive Computing, SOA and Cloud Computing and Cognitive Service Development project
Modes of study: Lectures, assignment
Lectures and assignments (5–7 cr)
In-class or remotely