1. Trang chủ
  2. » Thể loại khác

Self aware computing systems an engineering approach

348 181 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 348
Dung lượng 6 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

While a number of books on related topics such as self-adaption and self-organisation, and even self-awareness concepts in computing, have already beenpublished, this book is unique as i

Trang 1

Natural Computing Series

An Engineering Approach

Trang 2

Natural Computing Series

Series Editors: G Rozenberg

Th Bäck A.E Eiben J.N Kok H.P Spaink

Leiden Center for Natural Computing

˘

ttp://www.springer.com/series/

Advisory Board: S Amari G Brassard K.A De Jong C.C.A.M Gielen

T Head L Kari L Landweber T Martinetz Z Michalewicz M.C Mozer

E Oja G Paun J Reif H Rubin A Salomaa M Schoenauer H.-P Schwefel C Torras D Whitley E Winfree J.M Zurada

Trang 4

Peter R Lewis • Marco Platzner • Bernhard Rinner

Trang 5

ISSN 1619-7127

Natural Computing Series

ISBN 978-3-319-39674-3 ISBN 978-3-319-39675-0 (eBook)

DOI 10.1007/978-3-319-39675-0

Library of Congress Control Number:

© Springer International Publishing Switzerland 2016

This work is subject to copyright All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed

The use of general descriptive names, registered names, trademarks, service marks, etc in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use

The publisher, the authors and the editors are safe to assume that the advice and information in this book are believed to be true and accurate at the date of publication Neither the publisher nor the authors or the editors give a warranty, express or implied, with respect to the material contained herein

or for any errors or omissions that may have been made

Printed on acid-free paper

This Springer imprint is published by Springer Nature

The registered company is Springer International Publishing AG Switzerland

2016942574

School of Engineering & Applied Science

Aston University

Germany Bernhard Rinner

Institute of Networked and Embedded Systems

Department of Informatics Alpen-Adria-Universität Klagenfurt

University of Oslo Klagenfurt am Wörthersee

Oslo, Norway Austria

Xin Yao

University

Birmingham, United Kingdom of Birmingham

Department of Computer SciencePaderborn University

School of Computer Science

Jim T rresenø

Trang 6

This book considers the design of new computation systems that are in some waysmore responsive to the environment and their own state than current system designsand aim to be more reliable through the creation of self-aware and self-expressivesystems One of the driving forces of this work is the realisation of the growth insystem complexity and the difficulty of using current “standard” methods and de-signs to continue to create working systems This is certainly relevant, as the interest

in the design and understanding of complex computing systems in technical cations has been growing significantly in various research initiatives like autonomic,organic, pervasive or ubiquitous computing and in the multi-agent system commu-nity There have been many novel applications demonstrating a wide range of self-*properties, as well as studies looking also at emerging global behaviour due to self-organised local interaction The authors of this book present the results of a largeEuropean cooperative project focusing specifically on self-awareness, which may

appli-be seen as one of the essential backgrounds for developing and supporting the otherself-* properties, which is addressed here by the term “self-expression”

Ever since researchers have realised that machines could be programmed to haveincreasingly adaptive behaviors, there has been much research on how to introduceadaptive behaviour and more biological like capabilities into systems – more types

of reasoning, more types of awareness, and more types of intelligent processing.Particularly important in adaptation is that the system has the knowledge and thecapabilities that allow it to do these adaptations in novel situations and at runtime.There are many examples of large-scale programmes to foster the understanding

of the necessary attributes and architectures of systems capable of these tions Hence there were programs on adapting routers and networks in real time(e.g., DARPA’s Active Networks), platforms and other plug and play architectureswith robust real time services (e.g., DARPA’s META program; Europe’s AUTOSAR(AUTomotive Open System ARchitecture), programs that worked to understandemergent behaviour and make use of it (Europe’s Organic Computing), systemswith computational reflection used for resource management (e.g., reflective archi-tectures), and, of course, an enormous amount of work on multi-agent systems andautonomous computing

adapta-v

Trang 7

In this landmark EU project, these slowly developing themes, drawn from a widediversity of fields, have been brought together and further developed with boththoughtful discussions on foundations and new research and developments in theengineering of several application areas.

One particularly important aspect of this book is the way in which it builds upour repertoire of engineering methods for self-awareness by purposely drawing itsconcepts for self-awareness from a diversity of fields and its examples from a diver-sity of applications Most importantly, these applications span across different levels

of computational systems, from agents and applications (interactive music systems

in Chapter 14) to middleware services (Chapter 11) to adaptive networks (Chapter10) and even hardware (Chapters 8, 9 and 12.)

Starting from insights into “self-awareness” achieved by other disciplines likepsychology and philosophy, the notions of “computational self-awareness” and

“self-expression” are systematically developed The majority of the book focuses

on computational systems that require some form of anticipation where the new gorithms and methods are needed to provide the appropriate anticipatory behaviour

al-In practice, these methods can include different forms of self-awareness (such asawareness of goals, of the current state and readiness of system resources, of one’splanning process and of the ordering of events), such that the system is not sim-ply reacting to events and changes, but can anticipate them The ideas and mecha-nisms outlined are applied to a number of interesting applications: Computationalfinance applications using heterogeneous computing clusters are investigated and in-clude self-adaptive algorithms that are supported by hardware; low-latency adaptivenetwork processing; run-time reconfigurable hardware acceleration; heterogeneouscomputing and hardware/software co-processing for algorithmic trading and recon-figurable hardware acceleration of self-optimisation of reconfigurable hardware de-signs Self-awareness in distributed smart camera networks is considered for bothsingle cameras at a node level and multiple camera systems within a network In-teresting bio-inspired methods are aimed at the network level, artificial pheromonesare employed to construct a local neighbourhood graph, allowing adaptation in thenetwork as topologies change A hypermusic demonstrator is considered as a thirdapplication This considers various methods and techniques to enable adaptability(self-expression) in musical output Three methods within this application are thefocus of this work, each providing different input information and overall levels

of information: SoloJam provides rather overarching rhythmic shaping; Funky Sole

Music provides what might be considered more specific, lower level, inputs such as

walking tempo, movement types and foot activity; PheroMusic considers more links

between musical soundscapes

Thus, the book provides a comprehensive introduction to self-aware computationproviding a broad range of new theoretical background and foundation before mov-ing on to consider details of architectures and techniques to help design self-awarecomputational systems, from nodes to networks Many of the problems that havebeen addressed in this book will continue to be timely for many years to come andcould well provide the focus of research strands within many research fields Partic-ular challenges remain with respect to performance, safety and security properties

Trang 8

of such systems Although self-awareness is supposed to improve the performance

of computational systems in complex environments, there is still a lack of formalframeworks for rigorously arguing about the behaviour of such systems

The authors are all well known in this research area and the editors, Lewis,what is an excellent book

March 2016

vii

Platzner, Rinner, T rresen and Yao have done an excellent job in pulling togetherø

Trang 10

This book is the first ever to focus on the emerging field of self-aware computingfrom an engineering perspective It first comprehensively introduces fundamentalsfor self-awareness and self-expression in computing systems, proposing the new

notion of computational self-awareness It then focuses on architectures and

tech-niques for designing self-aware computing systems at the node and network levels.Finally, the effectiveness of these techniques is demonstrated on a variety of casestudies While a number of books on related topics such as self-adaption and self-organisation, and even self-awareness concepts in computing, have already beenpublished, this book is unique as it provides a holistic view of self-aware comput-ing including its relationship with self-expression, and the process of engineeringsuch systems, i.e., a thorough understanding of how to model and build self-awarecomputing systems based on design patterns and techniques

This book targets graduate students and professionals in the fields of computerscience, computer engineering, and electrical engineering, but also practitioners andscientists from other fields interested in engineering systems with advanced proper-

ix

Self-aware computing is an emerging field of research It considers systems and plications able to proactively gather and maintain knowledge about aspects of them-selves, learning and reasoning on an ongoing basis, and finally expressing them-selves in dynamic ways, in order to meet their goals under changing conditions Theaspects they might be aware of include their own internal state, capabilities, goals,environment, behaviour and interactions The presence of gathered knowledge per-mits advanced intelligent decision making leading to self-expression: that is, effec-tive, autonomous and adaptive behaviour, based on self-awareness Self-awarenessand self-expression capabilities are key to designing and operating future computingsystems that will inherently and autonomously deal with high levels of dynamicsand uncertainty, heterogeneity, scalability, resource constraints and decentralisation.Concepts of self-awareness have been established in psychology, philosophy andcognitive science but are relatively new to computing In computing systems, ourconcepts of self-awareness and self-expression integrate and enhance a number ofrecent approaches dealing with systems with so-called self-* properties, e.g., self-adaptation, self-organisation and self-healing

Trang 11

ap-ties relying on their ability to reason about themselves in a complex environment.The authors and editors of this book are active researchers in various aspects related

to self-aware computing systems They have a strong track record in successfullycollaborating on this topic, for example, through the European FET project “Engi-neering Proprioception in Computing Systems (EPiCS)” The extensive joint expe-rience of the contributors makes this edited book consistent and well integrated

The book reports some of the latest results in self-aware and self-expressive puting, and we hope it serves as a launchpad for further research discussions andnew ideas in the future

Trang 12

• Chapters 6 and 7 were also supported by EPSRC Grants (Nos EP/I010297/1,

EP/K001523/1 and EP/J017515/1)

• Chapter 8 was also supported by the German Research Foundation (DFG)

within the Collaborative Research Centre “On-The-Fly Computing” (SFB 901)and the International Graduate School on Dynamic Intelligent Systems ofPaderborn University

• Chapter 9 was also supported in part by HiPEAC NoE, by the European Union

Seventh Framework Programme under grant agreement numbers 287804 and

318521, by the UK EPSRC, by the Maxeler University Programme, and byXilinx

• Chapter 12 was also supported in part by the China Scholarship Council, by

the European Union Seventh Framework Programme under grant agreementnumbers 287804 and 318521, by the UK EPSRC, by the Maxeler UniversityProgramme, and by Xilinx

• Chapter 13 was also supported by the research initiative Mobile Vision with

funding from the Austrian Institute of Technology and the Austrian FederalMinistry of Science, Research and Economy HRSMV programme BGBl II

no 292/2012

• Chapter 14 was also supported by the Research Council of Norway under grant

agreement number 240862/F20

• Peter Lewis would like to thank the participants of the Dagstuhl Seminar

“Model-Driven Algorithms and Architectures for Self-aware Computing tems”, Seminar Number 15041, for many insightful discussions on notions ofself-aware computing

Trang 14

1 Self-aware Computing: Introduction and Motivation . 1

Peter R Lewis, Marco Platzner, Bernhard Rinner, Jim T rresen, and Xin Yao 1.1 Self-aware Computing: A New Paradigm 1

1.2 Organisation of This Book 4

Part I Concepts and Fundamentals 2 Self-awareness and Self-expression: Inspiration from Psychology . 9

Peter R Lewis, Arjun Chandra, and Kyrre Glette 2.1 Introduction to Self-awareness 9

2.2 Key Concepts for Self-aware Systems 11

2.2.1 Public and Private Self-awareness 12

2.2.2 Levels of Self-awareness 13

2.2.3 Self-awareness in Collective Systems 15

2.2.4 Self-expression 15

2.3 Computational Self-awareness 16

2.3.1 Private and Public Computational Self-awareness 16

2.3.2 Levels of Computational Self-awareness 17

2.3.3 Collective and Emergent Computational Self-aware Systems 19

2.4 Summary 21

3 Relationships to Other Concepts 23

Kyrre Glette, Peter R Lewis, and Arjun Chandra 3.1 Introduction 23

3.2 Self-awareness in Artificial Intelligence 25

3.3 Self-awareness in Collective Systems 25

3.4 Formal Models for Self-awareness 26

3.5 Self-awareness in Engineering 27

3.6 Self-awareness in Pervasive Computing 29

xiii

ø

Trang 15

3.7 Self-awareness in Robotics 29

3.8 Self-awareness in Autonomic Systems 30

3.9 Self-awareness in Organic Computing 32

3.10 Self-expression in Computing 33

3.11 Summary 34

4 Reference Architecture for Self-aware and Self-expressive Computing Systems 37

Arjun Chandra, Peter R Lewis, Kyrre Glette, and Stephan C Stilkerich 4.1 Introduction 37

4.2 Architectures for Designing Self-adaptive Systems 38

4.3 Generic Reference Architecture for Designing Self-aware and Self-expressive Computing Systems 42

4.3.1 Reference Architecture for Agents 43

4.3.2 Architecting Collectives 47

4.4 Reference Architecture in Practice 49

Part II Patterns and Techniques 5 Design Patterns and Primitives: Introduction of Components and Patterns for SACS 53

Tao Chen, Funmilade Faniyi, and Rami Bahsoon 5.1 Introduction and Motivation 53

5.2 Patterns for Self-aware Architecture Style 54

5.2.1 Basic Notations 54

5.2.2 The Self-aware Patterns 56

5.3 Architectural Primitives and Attributes for Self-aware Systems 70

5.3.1 Taxonomy of Primitives 71

5.3.2 List of Architectural Primitives and Attributes 71

5.4 Discussion 73

5.4.1 Phase 1: Collect Requirements and Constraints 73

5.4.2 Phase 2: Propose Candidate Architecture 74

5.4.3 Phase 3: Select the Best Pattern(s) 74

5.4.4 Phase 4: Fit the Selected Pattern(s) 75

5.4.5 Step 5: Determine the Important Primitives and the Possible Alternatives for Non-functional Requirements 75

5.4.6 Step 6: Create Scenarios 76

5.4.7 Step 7: Score the Alternative of Primitives Against Each Non-functional Attribute Using Analytical or Simulation Models 76

5.4.8 Step 8: Find the Best Alternatives for the Final Architecture View 78

5.5 Conclusion 78

Trang 16

Contents xv

6 Knowledge Representation and Modelling: Structures and

Trade-Offs 79

Leandro L Minku, Lukas Esterle, Georg Nebehay, and Renzhi Chen 6.1 Introduction 80

6.2 Adaptivity 80

6.2.1 Definition and Examples 81

6.2.2 Implications 83

6.3 Robustness 89

6.3.1 Definitions and Examples 89

6.3.2 Implications 92

6.4 Multi-objectivity 96

6.4.1 Definition and Examples 96

6.4.2 Implications 99

6.5 Decentralisation 104

6.5.1 Definitions and Examples 105

6.5.2 Implications 108

6.6 Summary 111

7 Common Techniques for Self-awareness and Self-expression 113

Shuo Wang, Georg Nebehay, Lukas Esterle, Kristian Nymoen, and Leandro L Minku 7.1 Introduction 114

7.2 Online Learning 114

7.2.1 Example Application 115

7.2.2 Benefits and Challenges at Levels of Self-awareness 119

7.2.3 Other Related Techniques 120

7.3 Nature-Inspired Learning 125

7.3.1 Example Application 125

7.3.2 Benefits and Challenges at Levels of Self-awareness 130

7.3.3 Other Related Techniques 132

7.4 Socially-Inspired Learning in Collective Systems 133

7.4.1 Example Application 134

7.4.2 Benefits and Challenges at Levels of Self-awareness 139

7.4.3 Other Related Techniques 141

Part III Nodes and Networks 8 Self-aware Compute Nodes 145

Andreas Agne, Markus Happe, Achim L¨osch, Christian Plessl, and Marco Platzner 8.1 Heterogeneous Multi-cores 146

8.2 Related Work on Self-aware Compute Nodes 147

8.3 Reference Architecture for Self-aware Compute Nodes 150

8.4 ReconOS 151

8.4.1 Architecture and Programming 152

8.4.2 Partial Reconfiguration 153

Trang 17

8.4.3 Sensors and Actuators 154

8.4.4 Availability of ReconOS 156

8.5 Case Study for a Self-aware Heterogeneous Multi-core 156

8.5.1 Self-expression Under Performance Constraints 158

8.5.2 Self-expression Under Conflicting Constraints 162

8.5.3 Comparison of Self-expression Strategies 163

8.6 Discussion and Conclusion 165

9 Self-adaptive Hardware Acceleration on a Heterogeneous Cluster 167

Xinyu Niu, Tim Todman, and Wayne Luk 9.1 Overview of Heterogeneous Computing 168

9.1.1 Heterogeneous Clusters: Performance 168

9.1.2 Heterogeneous Clusters: Verification 172

9.2 Architectures of Heterogeneous Clusters 173

9.2.1 Overview of Existing Heterogeneous Clusters 173

9.2.2 Software Layers in Heterogeneous Clusters 174

9.3 Self-aware and Self-adaptive Applications for Heterogeneous Clusters 177

9.3.1 Self-awareness in Heterogeneous Clusters 177

9.3.2 Runtime Scenarios 178

9.3.3 Monitoring 179

9.3.4 Adaptive Strategies in Heterogeneous Clusters 182

9.3.5 Computational Capacity 182

9.3.6 Workload Distribution 183

9.3.7 Communication Scheduling 183

9.4 Evaluation Results 184

9.4.1 Benchmark Applications 184

9.4.2 Self-adaptive Temperature Control 186

9.4.3 Self-adaptivity for Resource Availability Variations 186

9.5 Verification of Heterogeneous Clusters 188

9.5.1 Verification of Hardware-Software Codesign 189

9.5.2 Runtime Verification by In-Circuit Statistical Assertions 191 9.5.3 Results 192

9.6 Summary 192

10 Flexible Protocol Stacks 193

Markus Happe and Ariane Trammell-Keller 10.1 Introduction 194

10.2 Concepts and Methodologies 194

10.2.1 Self-aware/expressive Network Node Architecture 197

10.2.2 Protocol Stack Negotiation and Adaptations 198

10.2.3 Dynamic Hardware/Software Mapping 199

10.3 EmbedNet Execution Environment 200

10.4 Case Studies 202

10.4.1 Sensor Network 203

10.4.2 Smart Camera Network 204

Trang 18

Contents xvii

10.5 Comparison to Related Research Projects 211

10.6 Conclusion 213

11 Middleware Support for Self-aware Computing Systems 215

Jennifer Simonjan, Bernhard Dieber, and Bernhard Rinner 11.1 Introduction to Middleware Systems 216

11.1.1 Middleware Basics 216

11.1.2 Application Example of a Distributed Self-aware Computing System 217

11.2 Middleware Requirements 219

11.3 Middleware Paradigms 221

11.3.1 Host-Centric Middleware 222

11.3.2 Content-Centric Middleware 225

11.3.3 Requirements Conformity of Middleware Paradigms 227

11.4 Publish/Subscribe 228

11.4.1 Publish/Subscribe Flavours 230

11.4.2 Decoupling 231

11.4.3 Publish/Subscribe for SACS 231

11.5 Ella: A Publish/Subscribe-Based Hybrid Middleware 232

11.5.1 Architecture 232

11.5.2 SACS-Specific Features in Ella 235

11.5.3 Ella in Practice 236

11.6 Conclusion 237

Part IV Applications and Case Studies 12 Self-aware Hardware Acceleration of Financial Applications on a Heterogeneous Cluster 241

Maciej Kurek, Tobias Becker, Ce Guo, Stewart Denholm, Andreea-Ingrid Funie, Mark Salmon, Tim Todman, and Wayne Luk 12.1 Introduction 242

12.1.1 Overview of Techniques and Tools 242

12.2 Rule-Based Algorithmic Trading 243

12.3 Model-Based Algorithmic Trading 245

12.4 Market Data Feed Arbitration 245

12.5 In Detail: ARDEGO — Machine Learning-Based Optimisation of Reconfigurable Systems 246

12.5.1 Background 247

12.5.2 ARDEGO Approach 251

12.5.3 Acceleration of ARDEGO 255

12.5.4 Evaluation 256

12.6 Conclusion 260

Trang 19

13 Self-aware Object Tracking in Multi-Camera Networks 261

Lukas Esterle, Jennifer Simonjan, Georg Nebehay, Roman Pflugfelder, Gustavo Fern´andez Dom´ınguez, and Bernhard Rinner 13.1 Smart Camera Networks 262

13.2 Object Tracking 263

13.3 Multi-camera Tracking Coordination 264

13.4 Self-aware and Self-expressive Building Blocks 265

13.4.1 Object Tracking 266

13.4.2 Object Handover 267

13.4.3 Topology Learning 269

13.4.4 Strategy Selection 269

13.4.5 Resource Monitoring 270

13.4.6 Constraints and Objectives 270

13.5 Camera Network Case Study 271

13.5.1 Camera Network Setup 271

13.5.2 Tracking Results 272

13.5.3 Topology Learning 274

13.5.4 Communication and Utility Trade-off 274

13.6 Conclusion and Outlook 275

14 Self-awareness in Active Music Systems 279

Kristian Nymoen, Arjun Chandra, and Jim T rresen 14.1 Introduction 279

14.2 Decentralised Circulation of Musical Control 281

14.2.1 SoloJam Algorithmic Details 282

14.2.2 SoloJam Implementation 284

14.3 Adaptive Mapping in Active Music Systems 286

14.3.1 Gesture Recognition in Active Music Systems 288

14.3.2 Pheromone-Inspired Gait Recognition 288

14.3.3 Music Synthesis in Funky Sole Music 290

14.3.4 Adaptive Mapping 290

14.4 Pheromone Trails in a Musical Space 292

14.4.1 Flexible Musical Scenes 292

14.4.2 Pheromone Mechanism 294

14.5 Conclusion 296

15 Conclusions and Outlook 297

Peter R Lewis, Marco Platzner, Bernhard Rinner, Jim T rresen, and Xin Yao 15.1 Computational Self-awareness 298

15.2 Challenges and Research Questions 299

References 301

Index 323

ø

ø

Trang 20

Alpen-Adria-Universit¨at Klagenfurt, Austria e-mail:lukas.esterle@aau.at

Gustavo Fern´andez Dom´ınguez

Austrian Institute of Technology, Austria e-mail:gustavo.fernandez@ait.ac.at

Trang 22

List of Contributors xxi

University of Oslo, Norway e-mail:jimtoer@ifi.uio.no

Trang 24

ACO Ant Colony Optimisation

AES Advanced Encryption Standard

ALA Ant Learning Algorithm

API Application Programming Interface

BSD Berkeley Software Distribution

CDC Concept Drift Committee

CDT Correct Detected Track

CMT Consensus-Based Matching and Tracking

CPU Central Processing Unit

CUDA Compute Unified Device Architecture

CV Computer Vision

DDD Diversity for Dealing with Drifts

DDM Drift Detection Method

DPS Dynamic Protocol Stack

DWM Dynamic Weight Majority

EA Evolutionary Algorithm

EDDM Early Drift Detection Method

EGO Efficient Global Optimisation

FAT False Alarm Track

FB Functional Block

FF Flip-Flop

FPGA Field-Programmable Gate Array

FPS Frames per Second

FMC FPGA Mezzanine Card

FOV Field of View

Trang 25

HLS High Level Synthesis

HMM Hidden Markov Models

HPC High Performance Computing

ICAP Internal Configuration Access Port

IDP Information Dispatch Point

ILP Integer Linear Programming

IP Internet Protocol

IPC Inter-process Communication

LUT Look-up Table

MAC Media Access Protocol

MLO Machine Learning Optimiser

MOEA/D Multi-objective Evolutionary Algorithm Based on DecompositionMOP Multi-objective Optimisation Problem

MPI Message Passing Interface

MTBF Mean Time Between Failures

NoC Network-on-Chip

OSC Open Sound Control

OT Object Tracking

PE Processing Element

RAP Redundancy Allocation Problem

RAM Random Access Memory

RTM Reverse Time Migration

S2H Software-to-Hardware

SA Self-aware

SACS Self-aware Computing Systems

SDRAM Synchronous Dynamic Random Access Memory

SE Self-expression

SIMD Single Instruction, Multiple Data

SMT Satisfiability Modulo Theories

SVM Support Vector Machine

SoC System-on-Chip

SOP Single-Objective Optimisation Problem

SSE Streaming SIMD Extensions

STEPD Statistical Test of Equal Proportions

TCP Transmission Control Protocol

TDF Track Detection Failure

TPOT-RL Team-Partitioned Opaque-Transition Reinforcement LearningTodi Two Online Classifiers for Learning and Detecting Concept Drift

TLD Tracking-Learning-Detection

UDP User Datagram Protocol

VHDL Very High Speed Integrated Circuit Hardware Description Language

Trang 26

This glossary lists important terms used in this book, in particular in Part I cepts and Fundamentals”, with accompanying descriptions or definitions The glos-sary is organised into four sections: concepts of self-awareness and self-expression,engineering self-aware systems, related approaches, and general terms The terms

“Con-in each of the sections are listed alphabetically

Concepts of Self-awareness and Self-expression

self-awareness Self-awareness is a broad concept which describes the property of asystem (typically a human) which has knowledge of “itself”, based on its own senses(perceptual) and internal models (conceptual) This knowledge may take differentforms (cf levels of self-awareness), and be based on perceptions of both internaland external phenomena (cf public vs private self-awareness) It can be a property

of single systems (e.g., agents) and collective systems

collective self-awareness Collective self-awareness refers to the self-awarenessproperty of a collective system, i.e., as opposed to a single agent Levels of, andpublic/private self-awareness apply also at this abstraction This means that a self-aware system is not required to have a central “knowledge” component (though itmay have, if desired)

computational self-awareness Computational self-awareness is a notion we havedeveloped to refer to a computational interpretation of self-awareness Since much

of the literature on self-awareness does not readily make sense to engineers or plies directly to technical systems, aspects of computational self-awareness are de-signed to describe self-awareness properties of computational systems, inspired byself-awareness in humans

ap-emergent self-awareness This is a special case of collective self-awareness, whenthe collective self-awareness properties are present, but it is not obvious how thiscomes about by simply examining the behaviour of individual nodes within a col-lective

xxv

Trang 27

level(s) of self-awareness A very common theme in self-awareness theory is thedistinction between several levels of self-awareness, to describe different aspects

or capabilities which comprise a system’s complex self-awareness There are manyexamples of “sets of levels” to be found in the literature In developing our notion

of computational self-awareness, we have based a set of levels of computationalself-awareness on the set of levels (for humans) proposed by Ulric Neisser Notethat our levels are not hierarchical, do not build on each other, nor are they in anyparticular order, save that the ecological self/stimulus awareness is the most basic,and the conceptual self/meta-self-awareness is typically the most complex

meta-self-awareness Meta-self-awareness is one of the levels of computationalself-awareness we propose, indeed the highest one in our framework It refers tothe capability of a system to be aware of its own self-awareness This can be veryuseful, since it means a system has knowledge, obtained at run time, about its ownself-awareness processes, including, for example, how effective its learning is atpresent, or how much resource is being spent to maintain its knowledge Meta-self-awareness is closely related to, and permits, meta-reasoning It is a concept inspireddirectly from human psychology

private self-awareness Private self-awareness refers to a system’s ability to obtainknowledge based on phenomena that are internal to itself A system needs internalsensors to achieve this Again, this is a notion which exists in human self-awarenesstheory, and also features in computational self-awareness

public self-awareness Public self-awareness refers to a system’s ability to obtainknowledge based on phenomena external to itself Such knowledge depends on howthe system itself senses/observes/measures aspects of the environment it is situated

in, and includes knowledge of its situation and context, as well as (potential) pact and role within its environment This is a notion which exists in human self-awareness theory, and also features in computational self-awareness

im-scope of self-awareness The im-scope of self-awareness refers to the domain of nomena able to be sensed and modelled by the self in question For a system which

phe-is only privately self-aware, the scope may be the same as the span (i.e., it has noperception of its environment) For a system which has some private and some pub-lic self-awareness, the scope would be larger than the span, and include externalsocial or physical aspects of the environment The term scope can be useful to avoidhaving to use the word “level” to mean multiple things simultaneously in a passage

of text

self-aware system We do not formally define this in the book, however we ally consider a self-aware system to be one which (at least) obtains and maintainsknowledge relating to itself (including its perspective of its environment), withoutexternal control

gener-self-awareness capability When a particular level of gener-self-awareness is present in

a system, we refer to this as the system having that particular self-awareness bility For example, a node may have a time-awareness capability, indicating that

Trang 28

capa-Glossary xxvii

it implements the time-awareness level Levels may be realised in different wayssimultaneously in the same system, meaning that, for example, a system may haveseveral time-awareness capabilities

self-explanation Another form of self-expression when based on self-awareness,self-explanation is the ability of a system to explain/justify its behaviour to an entity

on the outside (such as a user or another system)

expression Self-expression is, in the general sense, behaviour based on awareness It may include a wide range of different actions, enacted through a sys-tem’s actuators, including self-adaptation, self-explanation, or just normal systembehaviour Self-expression can also be considered as a property of a collective, since

self-a collective’s behself-aviour cself-an self-also be bself-ased on collective self-self-awself-areness Exself-amples

of this might include the adaptive behaviour of a flock of birds in response to anexternal (to the flock) stimulus

self-expression capability As with self-awareness capabilities, self-expression pabilities refer to the presence of an implementation of self-expression in a system.For example, a system which adapts its parameters in response to its goal-awareness,would have a self-expression capability Again, multiple self-expression capabilitiesmay be present simultaneously

ca-self-knowledge Self-knowledge is a general term for knowledge (usually held in

a learnt model) concerning the system itself, which typically is produced as part

of a self-awareness process Note that this can include objective self-knowledge(i.e., about the system as an object in the world, how it interacts with others, howits internal state changes, etc.) and also subjective self-knowledge (i.e., about itsexperiences, sensor data, changing context, etc.)

self-optimisation Self-optimisation is a form of self-expression; self-optimisation

is the ability of a system to optimise itself by improving metrics such as performance

or power consumption

span of self-awareness We use this term to refer to the domain of the subject ofthe self-awareness, i.e., it is the answer to the question: who is the self here? Forexample, if a single agent is self-aware, then the span is the agent If we are con-sidering the collective self-awareness of a network of smart sensors, then the spanwould be the network The term span can be useful to avoid having to use the word

“level” to mean multiple things simultaneously in a passage of text

Engineering Self-aware Systems

(architectural) pattern We produced eight architectural patterns, which are rived from the reference architecture and describe how various capabilities (such

de-as levels of self-awareness, etc.) can be included or excluded de-as appropriate to theapplication need

Trang 29

methodology for engineering self-aware systems We developed a methodologyfor engineering self-aware systems, based on the reference architecture and the de-rived architectural patterns.

primitive A primitive is a particular block in the reference architecture, ing, for example, a level of self-awareness, self-expression and a sensor They areinstantiated for particular applications

represent-reference architecture We developed a represent-reference architecture which captures thecore aspects of computational self-awareness The aim is to provide a common, prin-cipled basis on which researchers and practitioners can structure their work We haveargued that the psychological foundations, while not strictly necessary, can provide

a means of channelling a wide range of ideas, which would perhaps otherwise nothave occurred to engineers, acting to inspire the design of future computing sys-tems The architecture can also be used as a template for identifying common ways

of implementing self-awareness capabilities Different implementations of the samecapability can thereby be compared and evaluated Further, we have derived a set ofarchitectural patterns from the reference architecture

(self-aware) node We use the term self-aware node to refer to various types of tem that are self-aware, e.g., an agent, a robot and a camera Agent is an alternativeterm, but node can be used when not wanting to be specific about a particular sys-tem being an agent We also claim that self-aware collectives (see next entry) can beviewed as self-aware nodes, at a higher level of abstraction A node may or may notcorrespond to a physical system—this is not a requirement, but it may often makesense to make it correspond

sys-tactic/algorithm/technique A tactic is a particular instantiation of a primitive inthe reference architecture, typically referred to as a particular algorithm, technique,etc These are application specific Multiple tactics may be suitable for a particularprimitive, and some tactics may implement multiple primitives simultaneously

Related Approaches

autonomic (computing) Autonomic computing is a vision originally pioneered

by IBM, of engineered systems which manage themselves This self-management

is stated to include: configuration, optimisation, healing and protection The aim is to reduce the need for human involvement in the management

self-of complex computing systems Some autonomic computing literature mentions theneed for self-awareness as a characteristic to support self-management, though theliterature on autonomic computing does not significantly expand on this (Not to beconfused with autonomous.)

autonomous (system) Autonomy is a broad notion with much disagreement rounding it However, in general, an autonomous system is one which acts withoutany external direction Examples include robots, vehicles and software agents Inmany cases, this ability to make decisions is based on a method of decision makingpre-programmed into the system, in other cases it is learnt online at run time The

Trang 30

sur-Glossary xxxix

types of systems we are concerned with in this book are ones which would typically

be considered to be autonomous to a greater or lesser extent (Not to be confusedwith autonomic.)

metacognition/metareasoning Metareasoning is reasoning about reasoning, andhas been the topic of a significant amount of research primarily in the US, where

it has been primarily led by DARPA Metareasoning relies on meta-self-awareness,and again the metareasoning community has discussed self-awareness as being im-portant, but not expanded on the notion significantly

organic computing This is a vision from a long-running (primarily) German search project to create “life-like” engineered systems, in which self-organisingemergent behaviour is controlled (by an observer/controller component), to ensuredesirability in the self-organisation The Organic Computing literature also men-tioned self-awareness as beneficial, but again does not expand on this significantly

be used when there is a need to talk generally of these types of systems, withoutrestricting the discussion to a specific one

learnt model A learnt model is a model which has been induced through a process

of (typically online) learning, based on data from sensors and other existing models.Learnt models hold the conceptual knowledge a self-aware system has concerningitself, its interactions, history, expectations, goals, etc

model We use the term model in a very general way, to refer to a conceptual resentation of some knowledge, typically obtained through sensors A model couldsimply be a direct representation of some data, or could be abstractions of that data,

rep-or further data synthesised from sensrep-ory input

online learning Online learning is the process of learning a model from data on

an ongoing basis Typically, not all data is available in advance (e.g., it arrives in

a streaming fashion from sensors), and the concept being learnt may change over

self-adaptive system A system which adapts (typically its behaviour) in response

to external or internal changes, but without external control We have argued that

time (i.e., concept drift) In online learning, models are often used (e.g., throughself-expression in this case) before learning “completes”, if indeed it ever does.Hence most online learning algorithms also need to be anytime algorithms, implyingthat models are used and improved continuously as time goes by

Trang 31

awareness is an enabling property for effective adaptation When adaptation behaviour is based on self-awareness, it is a form of self-expression.self-organising system A system which changes its organisation (e.g., its structure,architecture, topology), without external control.

Trang 32

self-Chapter 1

Self-aware Computing: Introduction and

Motivation

1.1 Self-aware Computing: A New Paradigm

Designing and operating computing and communication systems are becoming creasingly challenging tasks, due to a multitude of reasons First, compute nodesare evolving towards parallel and heterogeneous architectures to realise perfor-mance gains while minimising their power consumption Progress in micro(nano)-electronics allows us to integrate more and more functionality on a single computenode, but at the same time requires us to deal with increasing numbers of faultyand unreliable components Second, distributed systems are growing in the num-bers and heterogeneity of nodes and must be able to cope with an increasing level ofdynamics The network topology and the collective resources of a distributed sys-tem can vary strongly during runtime since nodes may leave and enter the networkdynamically The position, functionality and available resources of each node mayalso change dynamically Third, future challenging application domains have quitedivergent requirements with respect to functionality and flexibility, performance, re-source usage and costs, reliability and safety, and security Fuelled by technologicalprogress, applications with exciting levels of user interaction will be possible, andthese dynamic socio-technical systems bring with them numerous additional run-time trade-offs to consider Fourth, the size and complexity of decentralised com-

Alpen-Adria-Universit¨at Klagenfurt, Austria, e-mail: bernhard.rinner@aau.at

University of Oslo, Norway, e-mail: jimtoer@ifi.uio.no

Xin Yao

University of Birmingham, UK, e-mail: x.yao@cs.bham.ac.uk

1

© Springer International Publishing Switzerland 2016

P.R Lewis et al (eds.), Self-aware Computing Systems, Natural Computing Series,

DOI 10.1007/978-3-319-39675-0_1

Peter R Lewis, Marco Platzner, Bernhard Rinner, Jim T rresen, and Xin Yaò

Jim T rresen ø

Trang 33

puting systems have grown at an increasingly fast rate, posing new challenges interms of scalability and complexity Based on our experience, we believe that currentdesign and operation principles and methods will neither be able to scale with fu-ture systems, nor efficiently handle the variety and changing nature of requirementsand optimisation goals Novel design and operation principles and methods, such asthose incorporating self-awareness (SA) and self-expression (SE), are needed.Self-aware computing describes a new paradigm for systems and applicationsthat proactively gather information; maintain knowledge about their own internalstates and environments; and then use this knowledge to reason about behaviours.This paradigm is well suited for advanced intelligent decision making in dynamicand uncertain environments, which can in turn support effective and explainable au-tonomy and self-adaptation Self-expression describes behaviours that are based onthe knowledge acquired through system self-awareness, such as self-adaptation andself-explanation A self-expressive system can adapt to its environment including itsusers, and thus limits the need for users to adapt to fixed system behaviours [390].Self-awareness is not a new concept and has been studied for a long time in thefields of psychology and cognitive science [275] However, a clear understandingand interpretation of self-awareness in computer science and engineering is lacking.There has been no universally agreed and accepted definition of self-aware comput-ing in spite of frequent use of the word “self-aware” in different contexts Althoughthere are systems that are declared to be self-aware in one sense or another, little hasbeen said about engineering methodologies that can help to build such systems Ithas not previously been clear what properties a self-aware system could and shouldhave, and what capabilities such a system might have.

This book attempts to bridge the gaps in the literature related to self-aware puting, in the spirit of recent work to translate concepts of self-awareness frompsychology to computing [236] It focuses on key ideas from self-awareness the-

com-ory, leading to working definitions and pragmatic principles of computational

self-awareness that can be used in engineering self-aware systems and understanding

their behaviours While it surveys a range of views concerning self-awareness, itdoes not attempt to engage in more philosophical debates on the ability of machines

to achieve so-called “true” self-awareness, or what that might mean As an example

of the pragmatic approach taken in this book, building on notions from ogy, different levels of self-awareness as they apply to computing systems are de-scribed, examples are then used to illustrate what capabilities a system could havewith which level(s) of self-awareness, how these might be implemented, and whatbenefits and costs are associated with such functionality An engineering methodol-ogy is then introduced to facilitate the design of self-aware systems with differentrequired capabilities

psychol-This book builds on and extends earlier work in the related fields including nomic computing [105] and organic computing [277] and architectures like MAPE-

auto-K and auto-Kramer and Magee’s three-layered architecture [225] It takes an engineeringapproach to the design of self-aware computing systems, that includes consideringdifferent levels of self-awareness and the introduction of a reference architecturefor designing self-aware and self-expressive computing systems As a more con-

Trang 34

1 Self-aware Computing: Introduction and Motivation 3

crete guide to engineering self-aware and self-expressive systems, this book givesdetailed architectural patterns and primitives for systems with different levels ofself-awareness, to facilitate the design of such systems

Many techniques and algorithms are needed to support and implement awareness and self-expression at different levels For example, proactively acquiringknowledge about oneself (e.g., as a compute node in a large decentralised system)and then building a model(s) of one’s internal state and environment based on suchknowledge requires online learning, i.e., learning while the system is running On-line learning algorithms are one of the key ingredients employed in self-aware andself-expressive systems These algorithms try to make the most appropriate (trade-off) decision among several conflicting goals in a dynamic and uncertain environ-ment, including what information to acquire, which level of abstraction to use tocapture and model such information, and what resources to use for such informa-tion acquiring and modelling so as to maximise the expected performance gain andminimise the resource usage, etc Such online learning must be able to deal withconcept drifts because both the computing system and the environment it is operat-ing in are changing and have uncertainty The system needs to learn new concepts

self-as they appear and forget old concepts self-as they become obsolete In this book wewill describe how some of the existing online learning algorithms could be used oradapted for self-aware and self-expressive systems Examples will be given to il-lustrate how online learning algorithms could be implemented to support self-awareand self-expressive systems with desired capabilities

Importantly, we do not propose a preferred online learning paradigm to supportself-aware and self-expressive systems There are many techniques and algorithmsthat can be used specifically for either self-awareness or self-expression In fact, one

of the key observations from our own studies revealed that using different learningtechniques or strategies at different compute nodes in a large decentralised systemcan often lead to enhanced performance or efficiency gain compared to that achieved

by a system where all nodes use the same learning technique/strategy This bookpresents one such example to illustrate how heterogeneous learning strategies forself-expression in a smart camera network could help to achieve better system per-formance

Performance has often been a primary concern of many studies For example,fast learning to recognise a face from a video accurately is always of great interest.However, there might be some additional factors that a system should consider in thereal world For example, fast and accurate learning might imply heavy consumption

of computing resources, which might not be available or necessary It might alsolead to higher energy consumption due to heavy computing, which is undesirablefor any battery-driven autonomous system As a result, fast and accurate learningmight not be the most appropriate choice for a resource-constrained system/node.However, the availability of resources is not fixed in the real world It is changing Aself-aware system needs to learn such changing conditions, learn the changing im-portance of different goals (performance vs energy consumption), and learn the besttrade-off among conflicting goals at run-time This is one of several key issues thatwill be discussed in this book Other issues that will be discussed and often consid-

Trang 35

ered in self-aware and self-expressive systems include robustness, decentralisation,and multi-objectivity of the systems.

1.2 Organisation of This Book

The book consists of four parts Part I motivates the concepts of self-awareness andself-expression for engineering computing systems by looking into other disciplinesand related concepts It introduces a reference architecture for describing and en-gineering computational self-awareness and self-expression in computing systems.The architecture provides a common language which paves a way for identifying ar-chitectural patterns influencing the engineering of computational self-awareness andself-expression capabilities across a range of applications Chapter 2 translates con-cepts from psychology to the domain of computing, introducing key ideas in self-aware computing Chapter 3 relates our concepts of computational self-awarenessand self-expression to other efforts in computer science and engineering under theself-awareness label Depending on the fields, the term self-awareness may havedifferent meanings Chapter 4 concludes the first part by presenting our referencearchitecture for describing self-aware and self-expressive computing systems.Part II outlines some common architectural primitives and guidelines for engi-neering self-aware systems using design patterns and different knowledge represen-tation techniques, respectively Chapter 5 provides design patterns and primitives

on how to design self-aware and self-expressive computing systems in a principledway It discusses how the proposed patterns and primitives can be used in real soft-ware system projects Chapter 6 explains issues which may be present in self-awareand self-expressive systems such as adaptivity, robustness, multi-objectivity and de-centralization, and discusses their implications in terms of knowledge representationand modelling choices Finally, Chapter 7 concludes the second part by introducingcommon techniques that could be used in self-aware and self-expressive systems,including classical online learning, nature-inspired learning and socially-inspiredlearning in collective systems

Part III presents the design of nodes and networks which provide self-aware andself-expressive capabilities Many modern compute nodes are heterogeneous multi-cores that integrate several CPU cores with fixed function or reconfigurable hard-ware cores In Chapter 8 we present a node architecture, programming model andexecution environment for heterogeneous multi-cores, and show how the compo-nents of the reference architecture can be implemented on top of the operating sys-tem ReconOS Chapter 9 describes how to build a heterogeneous cluster that canadapt to application requirements Chapter 10 presents flexible protocol stacks as

a promising alternative to today’s static Internet architecture Self-aware and expressive network nodes cooperate to select the protocol stacks that fulfil all com-munication requirements at the minimal cost at run-time Finally, Chapter 11 com-pares different middleware paradigms and their suitability to support self-awareness

Trang 36

self-1 Self-aware Computing: Introduction and Motivation 5

in distributed applications and briefly describes a dedicated middleware tation

implemen-Part IV demonstrates how self-awareness and self-expression are useful in thethree widely different application domains of hardware acceleration of financialcomputation, object tracking in multi-camera networks, and active music sys-tems, respectively Chapter 12 demonstrates how complex financial models can bespeeded up using reconfigurable hardware combined with optimisation algorithms.Object tracking in multi-camera networks is the topic of Chapter 13, where au-tonomous monitoring of each camera in a network is combined with learning mech-anisms to adapt its behaviour to changing conditions Finally, Chapter 14 illustrateshow persons without musical skills can influence music in interactive music systemsusing nature and socially-inspired methods

The book is a result of extensive teamwork through the EU-funded researchproject “Engineering Proprioception in Computing Systems (EPiCS)” Eight re-search groups in five different countries collaborated to develop concepts and foun-dations for self-awareness and self-expression in computing systems and tested anddemonstrated their usefulness in highly different domains While the book includessome of the research results, it also, and more importantly, serves the purpose ofstimulating further research into the field of self-aware and self-expressive comput-ing systems

Trang 37

Concepts and Fundamentals

Trang 38

Part I motivates the concepts of self-awareness and self-expression for ing computing systems by looking into other disciplines and related concepts Itintroduces a reference architecture for describing and engineering computationalself-awareness and self-expression in computing systems The architecture provides

engineer-a common lengineer-anguengineer-age which pengineer-aves engineer-a wengineer-ay for identifying engineer-architecturengineer-al pengineer-atterns encing the engineering of computational self-awareness and self-expression capa-bilities across a range of applications Chapter 2 translates concepts from psychol-ogy to the domain of computing, introducing key ideas in self-aware computing.Chapter 3 relates our concepts of computational self-awareness and self-expression

influ-to other efforts in computer science and engineering under the self-awareness bel Depending on the fields, the term self-awareness may have different meanings.Chapter 4 concludes the first part by presenting our reference architecture for de-scribing self-aware and self-expressive computing systems

Trang 39

la-Self-awareness and Self-expression: Inspiration from Psychology

Peter R Lewis, Arjun Chandra, and Kyrre Glette

Abstract Self-awareness concepts from psychology are inspiring new approachesfor engineering computing systems which operate in complex dynamic environ-ments There has been a broad and long-standing interest in self-awareness for com-puting, but only recently has a systematic understanding of self-awareness and how

it can be used and evaluated been developed In this chapter, we take inspirationfrom human self-awareness to develop new notions of computational self-awarenessand self-expression We translate concepts from psychology to the domain of com-puting, introducing key ideas in self-aware computing In doing so, this chaptertherefore paves the way for subsequent work in this book

2.1 Introduction to Self-awareness

The Oxford English Dictionary defines awareness as “knowledge or perception of

a situation or fact.” Informally, we might typically consider that humans build upknowledge, or become aware of things, by perceiving the world around them Weobserve interactions, listen to other people, watch television, read books, and, par-ticularly in early life, learn through play When considering awareness in humans,

it is common to consider that all the knowledge we possess, all of our awareness,

is acquired through perception This idea was first postulated by Hume [187], whoargued that all human knowledge is induced from experience What then does it

mean for a human to be self-aware? For Hume, the “self” is not a defined physical

entity, but instead describes the bundle of experiences or perceptions unique to an

© Springer International Publishing Switzerland 2016

P.R Lewis et al (eds.), Self-aware Computing Systems, Natural Computing Series,

DOI 10.1007/978-3-319-39675-0_2

Trang 40

10 Peter R Lewis, Arjun Chandra, and Kyrre Glette

individual A Humean form of self-awareness might then be considered to consist

of an individual’s knowledge of its experiences Kant [210] criticised Hume’s view,extending the scope of the self significantly, arguing that there is some entity which

is the subject of these experiences, and is common through space and time ThisKantian self synthesises information from experiences with concepts held in themind and with the imagination Kant further argued that as an individual performsactions within the world, since its actions are based on its synthesised knowledge,they represent its self, giving rise to the self also as an object This object in turn issomething which can be perceived and experienced

Though there is a long history of analysis of the nature of the self in philosophy,more recently, psychology has made a more pragmatic attempt to develop an under-standing of the varieties of knowledge individuals possess concerning themselves.The notion of self-awareness first appears in the literature around the turn of thetwentieth century [25, 382], perhaps most importantly with James [197] making thedistinction between two forms of self based on the differences between the Humean

and Kantian views described above First, the implicit self, often referred to as the

self-as-subject, or the “I”, is the self which is the subject of experiences These periences are unique to the individual, and they are from the individual’s own point

ex-of view, determined by factors such as their sensing apparatus, their situation within

the world, and other factors associated with their own state Second, the explicit self,

or self-as-object, can be discerned Here the self is an object of knowledge It is athing which can be recognised, modelled and reasoned about, including in relation

to other objects in the world An individual’s awareness of its explicit self is oftenconsidered the more advanced form of self-awareness in this distinction, building

on implicit self-awareness Indeed, implicit self-awareness emerges much earlier inthe lives of human infants than its explicit counterpart does [231]

One commonly considered form of self-awareness is that as measured by the

so-called mirror test [140] A subject being evaluated is presented with a mirror,

to which it is then allowed to get accustomed The subject is then distracted and,without its knowledge, a visible change is made to its appearance This is usuallydone by marking its face, e.g., putting a spot on its cheek or forehead The subject

is then presented with the mirror again Any behaviour directed towards this marker

by the subject implies self-recognition, which is seen as being enabled by a mentalrepresentation of oneself (also known as a secondary representation) As Asendorpf

et al [18] put it:

“[secondary representation] is not a perception of oneself but rather a constructed mental model of oneself that can be manipulated in fantasy Therefore, the ability to recognise oneself in a mirror that requires linking a mirror image (a primary representation) with one’s self marks the capacity for secondary representation.”

Explicit self-awareness requires a subject to possess the capacity to constructsuch a secondary conceptual representation of itself What then does the mirrortest tell us about self-awareness? Humans, primates and some other animals have

“passed” the mirror test [140, 18], however, Haikonen [155] showed that very littlesophistication in computing machinery can enable a computational system with vi-sual sensors to also pass Haikonen therefore goes on to suggest that the ability or

Ngày đăng: 14/05/2018, 15:02