You are on page 1of 10

Organic Computing

A Summary of Issues Raised During the Symposium but also those that were left out!

Why Organic Computing?


The Software Crisis
Many software projects fail or exceed projected costs The algorithmic schema is doomed where too many processes need to be coordinated/anticipated by a programmer
Distributed processing across networks Sensor-rich processing Strongly dynamic environments

There seems to be consensus that a coordinated research initiative towards Organic Computing would be useful!

Where Is Organic Computing Useful?


Computational processing characterized by:
High precisions is not the primary purpose (?) Processes with some fault tolerance Sensor-rich processing Dynamic environments Processes where manual decomposition is tough E.g., HCI, computer action,perception, language, networking, complex process control

Organic computing may be less useful for


Simple computer tools (e.g., text editors, graphic programs) Zero-fault tolerance tools (accounting, databases, etc.)

What is Organic Computing?


Computing with a hierarchy/nesting of active modules
Dynamics of module formation and growth Search in module space Teaching of OC modules (Bootstrapping) Communication between OC modules

Programming by teaching, biasing, and reusing modules The Physics of Biology An Evolvable Computer

Properties of Organic Computing


Robustness
Structural Robustness (->redundancy) Process Robustness (->feedback loops) Noise Rejection (->redundancy) Generalization (->large basins of attraction)

Flexibility
Stability/Plasticity dilemma Exploration vs. Exploitation

Modularity Hierarchies Adaptation, Learning, Self-Organization Templates & Instantiation Specialization

OC = Modularity-Research?
Modularity is good!
Reduces search space (data hiding, dimensionality reduction), allows re-use of modules, allows later global optimization

Communication between Modules


Embodiment can serve a communication device

Processing within a module: Some form of selforganization What are modules?


Inputs, outputs, reinforcement, internal state (memory) Specific computational abilities Confidence (probabilistic modules?)

Module Competition vs. Restructuring of Modules


Module selection (based on confidence, reinforcement, self-consistency, inter-module consistency?)

Formalizing the OC Module


Reinforcement
(Environment)

Computational Specialization Instantiation

OC Module Inputs
afferent efferent output from other modules confidence values values may be grouped

Outputs
transformed values confidences

Self-Organization
Within Modules: Comp. Specialization:
Unsupervised learning
Feature extraction, density estimation Dimensionality reduction Self-consistency: recognition-generation networks (statistical or functional inversion)

(Self-)Supervised Learning
Nonlinear correlations->dimensionality reduction

Reinforcement Learning
Somehow we need to encode a goal

Dynamical Systems (e.g., feedback loops?)

Between Modules
Contribution to the goal Consistency with other modules With who to interact?

OC-Related Computing Areas


Statistical Learning
Reinforcement learning (in particular modular RL) (Self-)supervised learning Unsupervised learning Committee machines

Genetic/Evolutionary Programming Artificial Life Soft-Computation, Natural Computation Distributed Computing


Agents community Computer networking

Research Approaches Towards Organic Computing


Methods of Self-Organization & SelfConsistency
Within the module

Theory of Self-organization of Modules


Communication(Interaction) between modules Propagation of probabilities across modules? Selection

Task-oriented Experiments
Manual creation of OC modules and their interaction Exploration of principles and constraints Generalization to other tasks Compare systems programmed with different paradigms Model experimental data

You might also like