User Tools

Site Tools


public:t-720-atai:atai-16:lecture_notes_f-4_22.01.2016

T-720-ATAI-2016 Main

T-720-ATAI-2016

Lecture Notes, F-4 22.01.2016




System Architecture

What it is In CS: the organization of the software that implements a system.
In AI: The total system that has direct and independent control of the behavior of an Agent via its sensors and effectors.
Why it's important The system architecture determines what kind of information processing can be done, and what the system as a whole is capable of in a particular Task-Environemnt.
Key concepts process types; process initiation; information storage; information flow.
Graph representation Common way to represent processes as nodes, information flow as edges.
Relation to AI The term “system” not only includes not only the processing components, the functions these implement, their input and output, and relationships, but also temporal aspects of the system's behavior as a whole. This is important in AI because any controller of an Agent is supposed to control it in such a way that its behavior can be classified as being “intelligent”. But what are the necessary and sufficient components of that behavior set?
Intelligence is in part a systemic phenomenon Thought experiment: Take any system we deem intelligent, e.g. a 10-year old human, and isolate any of his/her skills and features. A machine that implements any single one of these is unlikely to seem worthy of being called “intelligent” (viz chess programs), without further qualification (e.g. “a limited expert in a sub-field”).



Causal Structures

Nodes stand for identified causal factors, edges stand for the causal relationship between these.
a. Sparsely coupled system; b. Densely coupled system; c. Tightly coupled system; d. Loosely coupled system; e. System with multi-variable couplings; f. Densely coupled system with mixed loose and tight, and multi-variable causal chains.



CS Architecture Building Blocks

Pipes & filters Extension of functions.
Component: Each component has a set of inputs and a set of outputs. A component reads streams of data on its inputs and produces streams of data on its outputs, delivering a complete instance of the result in a standard order.
Pipes: Connectors in a system of such components transmit outputs of one filter to inputs of others.
Object-orientation Abstract compound data types with associated operations.
Event-based invocation Pre-defined event types trigger particular computation sequences in pre-defined ways.
Layered systems System is deliberately separated into layers, a layer being a grouping of one or more sub-functions.
Hierarchical systems System is deliberately organized into a hierarchy, where the position in the hierarchy represents one or more important (key system) parameters.
Blackboards System employs a common data store, accessible by more than a single a sub-process of the system (often all).
Hybrid architectures Take two or more of the above and mix together to suit your tastes.



Network Topologies

Point-to-Point Dedicated connection between nodes, shared only by a node at each end.
Bus A message medium, shared by all nodes (or a subset).
Star Central node serves as a conduit, forwarding to others; full structure of nodes forming a kind of star.
Ring All nodes are connected to only two other nodes.
Mesh All nodes are connected to all other nodes (fully connected graph); can be relaxed to partially-connected graph.
Tree Node connections forms a hierarchical tree structure.
Pub-Sub In publish-subscribe architectures one or more “post offices” receive requests to get certain information from nodes.
reference Network topology on Wikipedia



Coordination Hierarchies

A functional hierarchy organizes the execution of tasks according to their functions. A product hierarchy organizes production in little units, each focused on a particular product.
Several types of markets exist - here two idealized versions are show, without and with brokers. De-centralized markets require more intelligence to be present in the nodes, which can be aleviated by brokers. Brokers, however, present weak points in the system: If you have a system with only 2 brokers mediating between processors and consumers/buyers, failure in these 2 points will render the system useless.
Notice that in a basic program written in C++ every single character is such a potential point of failure, which is why bugs are so common in standard software.



Methodology

What it is The methods we use to study a phenomenon.
Why it's important Methodology directly influences the shape of our solution - our answers to scientific questions. For this reason, and equally importantly, it directly determines the speed with which we can make progress.
The main AI methodology AI never really had a proper methodology discussion as part of its mainstream scientific discourse. Only 2 or 3 approaches to AI can be properly called 'methodologies': BDI (belief, desire, intention), subsumption, decision theory. As a result AI inherited the run of the mill CS methodology/ies by default.



Constructionist Methodologies

What it is A constructionist methodology requires an intelligent designer that manually (or via scripts) arranges selected components that together makes up a system of parts (read: architecture) that can act in particular ways. Examples: automobiles, telephone networks, computers, operating systems, the Internet, mobile phones, apps, etc.
Why it's important Virtually all methodologies we have for creating software are of this kind.
Fundamental CS methodology On the theory side, for the most part mathematical methodologies (not natural science). On the practical side, hand-coding programs and manual invention and implementation of algorithms. Systems creation in CS is co-owned by the field of engineering.
The main methodology/ies in CS Constructionist.
Constructionist AI Methodology for building cognitive agents that relies primarily on Constructionist methodologies.
Key Limitation Rests on the key assumption (on which CS - as a science - is built) that humans, or those with human-level intelligence, are the only ones that will create software systems.






2016©K. R. Thórisson

EOF

/var/www/ailab/WWW/wiki/data/pages/public/t-720-atai/atai-16/lecture_notes_f-4_22.01.2016.txt · Last modified: 2017/12/01 13:55 by thorisson