=Paper=
{{Paper
|id=None
|storemode=property
|title= Characteristics of Computational Intelligence (Quantitative Approach)
|pdfUrl=https://ceur-ws.org/Vol-710/paper8.pdf
|volume=Vol-710
|dblpUrl=https://dblp.org/rec/conf/maics/VafadarB11
}}
== Characteristics of Computational Intelligence (Quantitative Approach)==
Characteristics of Computational Intelligence
(Quantitative Approach)
Shiva Vafadar, Ahmad Abdollahzadeh Barfourosh
Intelligent Systems Lab
Computer Engineering and Information Faculty
Amirkabir University of Technology
Tehran, Iran
vafadar@aut.ac.ir; ahmad@ce.aut.ac.ir
Abstract
These days, intelligence is one of the features of software Introduction
agents. However, developing this feature via a systematic
software engineering approach suffers from some Usually, intelligence is an expected capability of software
shortages. One of the open issues is related to specifying agents. One of the promises of agent oriented software
intelligence features that are expected from intelligent engineering is to bring artificial intelligence findings to
agents. The source of the problem is different definitions of everyday practices of software development [1]. We
intelligence that are presented from different perspectives. believe that as intelligence is one of the features of
Consequently, there is not a predefined set of software agents, similar to the other features of software
characteristics for intelligence that can be used as a
systems, it should be developed via applying a complete
baseline for specifying intelligence requirements of the
system. As a result, intelligence is defined (or interpreted) process, which covers all the activities of software
differently between various stakeholders of the system. development such as requirement engineering, analysis,
This will lead to the ambiguity of the requirements, which design, implementation and test.
is the source of serious problems in developing software However, some research have been performed on analysis
systems. and design of intelligence features of the agents (such as
In this paper, we look at intelligence of agents from a autonomy [2], reasoning [3] and learning [4]), but currently
software engineering point of view. In this way, we analyze this process is more focused on implementation of artificial
more than 70 different definitions of intelligence (in intelligence software systems. Consequently, by ignoring
different areas such as public notions, psychology and AI)
requirements specification, analysis and (somehow) design
to extract different characteristics that are considered as
features of intelligence. By eliminating non-computational of intelligence features, implementation suffers from a
capabilities of intelligence, we investigate a set of complete and comprehensive input from earlier phases of
characteristics of computational intelligence. software development. Taking into account the cost and
In this way, we use a quantitative approach. We rank probability of the failure in such an incomplete process,
identified characteristics according to the frequency of their importance of developing intelligence via an engineering
appearance in various definitions. The result is that approach is made obvious.
learning, adaptation to new situations and environment, In a complete software engineering process, the first
goal-orientation, problem solving, acquiring and using activity is defining and specifying requirements and
knowledge and reasoning are the top ranked issues of
expected features of software system. By considering
intelligence. Because the extracted features belong to
different levels of abstraction, we classify them into four intelligence as a software requirement, a set of
groups that are non-functional, general capabilities, basic characteristics is needed to be used as a reference for
AI techniques and Infrastructural. In addition, we defining intelligence requirements. But, unfortunately,
investigate the relationship between intelligence intelligence itself is a vague term and there are different
characteristics (e.g. learning) and the other quality definitions for it [6]. Consequently, there is not an
attributes of software systems. agreement on intelligence, not only between customers and
developers but also between experts of each group. This
will result ambiguity in intelligence as a requirement,
because it is interpreted differently by different
stakeholders of the system.
To solve this problem, in this paper we present a software
engineering view on intelligence as a requirement of
software agents. Our approach is decomposing intelligence of intelligence neither in psychology for human
- as an ambitious term- to a set of more concrete features intelligence nor in AI for artificial intelligence.
or characteristics that are considered as elements of One of the methods that can help us to overcome ambiguity
intelligence. In this way, we perform a quantitative of a term is to describe it via its characteristics. For
analysis on various perspectives of intelligence in different example, in software engineering quality –as a vague term,
fields (psychology and AI). According to this approach, is defined via its characteristics such as reliability,
we can distinguish the main features of intelligence based usability, etc. [5]. Therefore, to solve the same problem for
on the experts’ point of view. The frequency of each intelligence, it can be defined via its characteristics as well.
feature in different definitions can be interpreted as an In this way, we break down different definitions of
evidence of implicit agreement on it as a feature of intelligence to investigate attributes that are identified as
intelligence. To achieve this goal, we take into account characteristics of intelligence.
more than 70 different definitions of intelligence which Our observation leads us to believe that intelligence is not a
have been presented by experts in psychology and AI, in single unitary ability, but rather a composition of several
addition to the popular notions about intelligence (which functions. This result confirms our first hypothesis for
are presented in dictionaries and encyclopedias) and we defining intelligence via its characteristics that helps us to
extract different issues that are mentioned in them as specify intelligence via its features in software systems.
characteristics of intelligence. This interprets intelligence (as a vague requirement) to a
Our survey shows that there are 28 distinct characteristics set of definable features of the system.
in these definitions. By omitting non-computational In the following, we analyze definitions of intelligence in
characteristics and features that are trivial capabilities for three categories. Our analysis is performed on a set of
machines, we consider 16 characteristic as computational definitions that is considered as the largest and most well-
intelligence features which are ranked based on their references collection on intelligence [6]. It contains 71
frequency and importance in various fields. definitions of intelligence in psychology, AI and popular
The main contribution of this work is that it breaks down notions about intelligence.
intelligence into a set of more concrete characteristics that The goal of this analysis is to distinguish characteristics
can be defined and specified as requirements of software that are considered as elements of intelligence according to
agents. The result of this research is a set of characteristics the experts’ point of view in each field.
(or features) which can be considered as computational
intelligence requirements. This set can be used as a basis Public Notions of Intelligence
for eliciting and specifying intelligence requirements of the
There are 18 definitions in this group. This group
system. To this end, requirements engineer uses this set of represents definitions that have been proposed by groups or
features as a common language between different organizations and definitions of intelligence given in
stakeholders of the system to interpret intelligence from
dictionaries and encyclopedias [6]. We consider these
their point of view. This activity is the first step for
definitions as popular notions about intelligence because
moving towards a complete software engineering process
they construct or represent general ideas about intelligence
for intelligence requirements of agents. Consequently, it
in public. Since customers are a main group of stakeholders
can be used as a basis for analysis, design, implementation for defining requirements of the system, this category of
and test of these features. definitions is important in our survey because it represents
The remainder of this paper is organized as follows: In
customers’ point of view about intelligence.
Section 2, we analyze different definitions of intelligence
By reviewing these definitions, we identify the following
in public notion, psychology and AI. In Section 3, we
characteristics as attributes of intelligence: learning and
present the set of characteristics for computational
understanding (e.g., facts, truth, meanings) (12 times
intelligence by analyzing the results of Section 2 and we each), reasoning (9 times), ability to adapt to the
also classify these characteristics into four main groups. In
environment or new situations (6 times), capability to solve
Section 4, we investigate the relationship between learning
problems (5 times), capability to acquire and apply
(as an intelligence characteristic) and non-functional
knowledge (5 times), profit from experience (4 times),
requirements of software systems. Finally, in Section 5, we
capability of planning, thinking abstractly (or
conclude and introduce further works of this research. generalization) (each one 3 times), having judgment,
perceiving relationships, using memory, comprehending
Analyzing Different Definitions of Intelligence language (two times) and finally being able to classify,
calculation and imagination (each one once). Figure 1
During last century, various researches have been
performed on human and artificial intelligence. Despite shows the results of analysis of this group definition. In
such a long history, still there is not a standard definition this figure, red bars demonstrate the characteristics that are
common between all the groups that we have surveyed.
Figure1: Characteristics of Intelligence Based on Public Notion
apply knowledge (5 times each), thinking abstractly,
Psychologists Definitions having judgment, applying experience, imagination and
perceiving relationship and generalization capability (each
This category contains 35 definitions from psychologists
one 3 times), reasoning, perceptional recognition,
[6]. Taking into account these definitions in our survey
helps us to understand elements of human intelligence capability to produce product, using memory (each one
according to psychologists and consider related attributes twice), and finally planning, quickness, flexibility,
attention, pattern recognition, being educable,
for computational intelligence.
discrimination, sensation, cognitive ability (each one once).
We distinguish 23 issues that have been mentioned as
Figure 2 shows the results of analysis of this group’s
features of humane intelligence in psychologists’
definitions. In this figure, red bars highlight the
definitions. They are ranked as the following according to
their frequency in surveyed definitions: ability to adapt to characteristics that are common between all the groups that
the environment or new situations (8 times), learning, we have surveyed.
ability to solve problems and capability to acquire and
Figure2: Characteristics of Intelligence Based on Psychologists’ Definitions
orientation (9 times), ability to adapt to the environment or
AI researchers Definitions new situations (4 times), learning (3 times), capability to
In this section, we analyze 18 definitions of intelligence solve problems (2 times), capability to acquire or apply
from researches in artificial intelligence. The complete list knowledge (2 times) and applying experience and
of these definitions can be found in [6]. By reviewing these autonomy (each one once). Figure 3 shows the results of
definitions, we identify that there are eight different topics this analysis.
as characteristics of intelligence which are: Goal-
Figure3: Characteristics of Intelligence Based on AI Researchers’ Definitions
more important in computational intelligence than those
Intelligence Characteristics in Computational that are considered in human intelligence. Therefore, AI
features have more weight than features in public notions
Systems and psychology features get the least weight. The result of
By reviewing the results of analyzing definitions in this approach is shown in Figure 4. In this figure, red bars
different categories, strong similarities between many of demonstrate shared characteristics in all the groups of our
these definitions quickly becomes obvious. This shows survey.
that there is an implicit agreement on some characteristics According to this approach, features of computational
of intelligence. In addition, by taking into account their intelligence are ranked as follow:
frequency of appearance, we conclude that some of them Learning
are more accepted as intelligence characteristic among
Adaption
experts than the others.
At the other hand, some of these features (especially Goal-Orientation
features of intelligence in psychology and public Using knowledge
definitions) are not suitable options for computational Problem Solving
systems because they are not computable. In order to
choose features of computational intelligence among Reasoning
distinguished set of characteristics, we omit these types of Applying Experience
characteristics such as thinking, judgment, imagination, Generalization
understanding, attention, product production, being
Perceiving Relationships
educable, discrimination and understanding language.
Because we are interested in intelligence as a behavior of Planning
software systems, we also ignore cognitive ability from our Autonomy
list. We also omit characteristics such as using memory or
Perceptional Recognition
computational capabilities because they are the base of all
computational systems. Otherwise, all computational Classification
systems would be intelligent and we are not interested in Quickness
such a definition of intelligence. Flexibility
After removing mentioned features, 16 characteristics
remain in our list. To rank these features, we weight Pattern Recognition
characteristics of different groups. We believe that
characteristics that are mentioned by AI researchers are
Figure4: Characteristics of Computational Intelligence
By examining these characteristic, we understand that
these features are at different levels of abstractions. For Intelligence Characteristics and Non-
example, some features are more general than the others,
some of them are a subset of the others, and there are also Functional Requirements
some distinct features that refer to different capabilities of When a capability is added to a software system, it
the system. To organize them, we divide these features into improves software functionality. But there are some non-
four categories. In this classification, intelligence is a functional or quality requirements in the systems that
feature of the system that improves non-functional should be taken into account during requirements
requirements of the software system such as quickness and engineering as well. In some cases, there are contradictions
flexibility. To achieve this improvement, an intelligent between these requirements. This means that by having
system should be able to solve the problems in a goal- some requirements in the system, we may lose or degrade
oriented manner. It also should be autonomous. In order to the others. For example, by adding security features to the
provide these general capabilities, intelligent systems need system, in general, more computations should be
artificial intelligence capabilities such as reasoning, performed in the system. This can affect performance and
planning and learning that can be achieved through efficiency of the system. In these cases, software engineer
adaptation, pattern recognition, classification and applying should choose a subset of requirements by considering the
experience. Intelligence of the system is founded on an trade-off between requirements.
infrastructure that contains knowledge and sensations or For looking at intelligence as a requirement of software
perceptions. Table 1 summarizes this classification. systems, we need to analyze the side effects of intelligence
and its characteristics on the other quality attributes of the
Table1: Classification of Computational Intelligence system. For example, requirements engineer should pay
Characteristics attention to the side effects of considering learning
Type Characteristics requirement –as a feature of intelligence- on other quality
Non-Functional Quickness, Flexibility attributes of the software system. Table 2 shows the
Requirements relationship between learning and non-functional
General Problem Solving, Goal Orientation, requirements. Characteristics of quality requirements in
Capabilities Autonomy table 2 have been selected according to the classification of
AI Techniques Reasoning (Generalization), ISO 9126 [5]. In this table, “+” means that adding learning
Planning, Learning (Adaptation, improves the non-functional characteristic. “-” means that
Pattern Recognition, Classification, learning potentially may decrease the sub-characteristic and
Applying Experience,) “*” means that the relationship between learning and
Infrastructures Knowledge (Facts, Relationships), specified characteristic of non-functional requirement is
Perception (or Sensation) neutral.
As this table shows, learning has a positive effect on
characteristics of the system such as suitability, accuracy,
interoperability, security, fault tolerance and adaptability.
But it has a negative relationship with efficiency and Conclusion and Further Work
maintainability characteristics of system in general. This
means that if quick response is a critical quality The aim of this research was identifying the main
requirement and there is shortage of resources in the characteristics (or capabilities) of computational
system, then adding learning to the intelligent intelligence based on various definitions of intelligence. To
requirements of the system should be done cautiously. The achieve this goal, we analyzed more than 70 definitions of
main reason is that learning utilizes extra time and intelligence in various fields such as popular notion of
resources of the system that may decrease its efficiency. intelligence, psychology and AI. According to the results of
Adding learning to the system also makes the code more our survey, we distinguished 16 characteristics for
complex, therefore changing the code or analyzing it when computational intelligence.
there is an error in the system becomes more complex and This set can be used as a guideline (or reference) for
time consuming. Therefore, maintainability of the software eliciting and specifying expected capabilities (features) of
decreases in general. But if adaptability is a required intelligence system during requirement engineering. To
quality characteristic of the software system, adding develop an intelligent software (agent) system, first we
learning as a requirement helps to attain an adaptable should define intelligence requirements of the software
system. according to the system or stakeholder’s needs. As
extracted characteristics are based on public notions of
Table2: Relationship between learning and quality intelligence in addition to the AI experts’ point of view, it
requirements can be considered as a common language between different
stakeholders of the software such as developers and
CHARACTERISTIC SUB-CHARACTERISTIC Learning customers.
Functionality Suitability + By specifying expected features during requirements
Accuracy + engineering, later activities of software development such
Interoperability + as analysis, architectural and detailed design and test of
Security + intelligence are based on a predefined set of capabilities.
Compliance * Furthermore, this set of requirements can be used as a basis
Reliability Maturity for comparing intelligent agents in COTS (Component Of
(hardware/software/data) + The Shelf) software development. To achieve this goal,
Fault tolerance + intelligence requirements of the system (or agent) should
Recoverability (data, be specified based on the proposed set of characteristics. At
process, technology) * the other hand components that are developed should be
Compliance * defined according to this set as well. Having these
Usability Understandability * preconditions, according to the intelligence requirements of
Learnability * the system (or agent), we can choose the most appropriate
Operability * available component (or agent) for the system. For
example, available components or agents are tagged
Attractiveness * according to their capabilities. In this case, if system needs
Compliance * an intelligent agent (component) that should be
Efficiency Time behavior - autonomous and being able to learn, we can choose the
Resource utilization - agent with these capabilities, according to the tags of
Compliance - available ones.
Maintainability Analyzability - Our further works to extend our research are:
Changeability - Defining relationship between these features, in
addition to the relationship with other non-
Stability -
functional requirements of software systems.
Testability - Developing analysis patterns as the next activity
Compliance - of software development for these features such as
Portability +
Adaptability learning analysis patterns[4]
Installability * Defining validation and verification approaches
Co-existence * for these features based on the existing methods
Replaceability * for testing computational intelligence [7,8]
Compliance *
References
[1] Zambonelli, F., Omicini, A.. Challenges and Research
Directions in Agent-Oriented Software Engineering,
Autonomous Agents and Multi-Agent Systems, Volume.9
No.3, p.253-283 (2004)
[2] Weiss G., Fischer F., Nickles M., Rovatsos M. (2006).
Operational modelling of agent autonomy: theoretical
aspects and a formal language. Proceedings of the 6th
International Workshop on Agent-Oriented Software
Engineering (AOSE, pp. 1-15). Lecture Notes in Computer
Science, Vol. 3950. Springer-Verlag.
[3] Bosse T., Jonker C. M., Treur J. (2005). Requirements
Analysis of an Agent’s Reasoning Capability, Proceeding
of the 7th Intenational Workshop on Agent-Oriented
Information Systems, AOIS'05.
[4] Vafadar, S., Abdollahzadeh Barfourosh, A.: Towards
Requirement Analysis Pattern for Learning Agents, Agent
Oriented Software Engineering (AOSE) Workshop, short
paper, Toronto, Canada (2010)
[5] ISO/IEC 9126-1: Information technology - Software
quality characteristics and metrics - Part 1: Quality
characteristics and subcharacteristics
[6] Legg, S., Hutter, M. A Collection of Definitions of
Intelligence, Advances in Artificial General Intelligence:
Concepts, Architectures and Algorithms, volume 157 of
Frontiers in Artificial Intelligence and Applications (2007)
[7] Hernández-Orallo, J., Dowe, D.L. Measuring universal
intelligence: Towards an anytime intelligence test,
Artificial Intelligence Journal, Volume (2010)
[8] Sanghi, P., Dowe, D.L., A computer program capable of
passing IQ tests, in: Proceedings of the 4th ICCS
International Conference on Cognitive Science (ICCS’03),
Sydney, Australia, July 2003, pp. 570–575.