[[http://cadia.ru.is/wiki/public:t-720-atai:atai-16:main|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==== | {{ public:t-720-atai:coupled-systems.png }} | | 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 | [[https://en.wikipedia.org/wiki/Network_topology|Network topology on Wikipedia]] | \\ \\ ====Coordination Hierarchies==== | {{ public:t-720-atai:coordinationhierarchies.png?500 }} | | 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(c)K. R. Thórisson \\ \\ //EOF//