# soft computing

Soft computing is a body of knowledge that consists of a group of computational techniques that are applied to complex computations that seek to achieve as close to a human solution as possible. These techniques are based on artificial intelligence[1] and they consist of : evolutionary computations, probabilistic reasoning, neural networks and fuzzy logic.

The term was first coined by *Zadeh L.A(1994)[2]*.

Soft computing techniques are employed for complex computations such as optimizations.

*This piece is the first article of this blog. This blog will document my AI/ML journey, therefore starting with a piece about soft computing is apt given that it was my first foray into artificial intelligence.*

You’ll find this piece interesting if you’re a noob in AL/ML like me and have a generous disposition towards a fellow noob sharing what they hope passes for knowledge, or you just generally are curious about stuff and generally have a generous disposition.

I recently completed my masters degree project which was on intelligent scheduling in fog computing. The project examined the process of scheduling within a domain(fog computing) and uses a soft computing heuristic to optimize its scheduling process with respect to the total energy consumption of the domain system.

The soft computing heuristic employed is called a genetic fuzzy rule based system (FRBS). This heuristic makes use of a genetic algorithm based learning technique called **Pittsburgh**[3] to produce optimized rule bases for the main fuzzy inference system algorithm.

Learning techniques for FRBS are based on algorithms such as evolutionary algorithms(GA and particle swarm optimizations) and neural networks.

Karr(1991) proposed the pioneer work in genetic learning for FIS.

The concept of a learning technique for fuzzy rule based systems stems from the concept of linguistic modelling which is considered to be the most important application of fuzzy logic in academia.

In soft computing, fuzzy logic is used instead of binary logic to achieve the aim of coming as close to human solutions as possible.

### Component Parts of Soft computing

The various component parts of soft computing are as follows:

- Evolutionary computations
- Fuzzy logic
- Probabilistic Reasoning
- Neural Networks

All four of these parts may interplay in groups of twos or threes to form wholly new heuristics that make up individual user's required problem solving algorithm.

In the case of my masters degree, we combined fuzzy logic and evolutionary computations for our heuristic. The heart of the heuristic is the fuzzy inference system while the brain of the heuristic is the learning technique for the fuzzy inference which so happens to be a genetic algorithm.

## PittsBurgh: A genetic Algorithm Based Learning Technique For FRBS

Fuzzy inference systems are used in various applications to make as close to human decisions as possible[4]. Their most prevalent applications include those involving control systems. However, they do not have any self-learning abilities for the design of their knowledge bases, hence why learning techniques are essential and used.

The most common learning techniques are those involving evolutionary computations particularly genetic algorithm. Particle swarm optimizations and simulated annealing algorithms are also used.

Apart from the foregoing, neural networks and interpolation methods are also used for FIS knowledge base learning.

There are 3 genetic algorithm based learning techniques: Pittsburgh, Michigan and Iterative Rule learning techniques.

### Pittsburgh

In pittsburgh, each chromosome is a whole rulebase or knowledge base.

A rulebase is a collection of fuzzy rules.

For example, consider a FIS with 2 inputs and 1 output with 3 independent linguistic terms(at the input) as shown below:

inputs and output with their linguistic terms

The fuzzy rules for this FIS could include the following:

*if x1 is low and x2 is medium then y is poor*

*if x1 is medium and x2 is medium then y is medium*

*if x1 is high and x2 is medium then y is high*

A chromosome within the population of the genetic algorithm could encode rules like the one above in the following way:

each of the fuzzy rules above is encoded in this one chromosome like so

After encoding the fuzzy rulesbases in each chromosome, the genetic algorithm is then employed for the optimization of the rulebases for the FIS.

### A Quick Step-by-Step on How to Use a Genetic Fuzzy Inference System

- Decide what your ultimate end-goal is. In the case of optimizations, decide the parameters you want to optimize. This will inform the decision on the right inputs and outputs for the FIS.
- Encode the fuzzy rules in individual rulebases for each chromosome.
- choose a learning technique.
- optimize your rulebase with your learning technique.
- Integrate your heuristic into your desired point of optimization/domain environment.

**References**

Choudhury, B., & Jha, R. (2016). Soft Computing Techniques. In Soft Computing in Electromagnetics: Methods and Applications (pp. 9-44). Cambridge: Cambridge University Press. doi:10.1017/CBO9781316402924.003

Zadeh, L., 1994. Fuzzy logic, neural networks, and soft computing. Communications of the ACM, 37(3), pp.77-84.

Alcala, R., Casillas, J., Cordon, O., Herrera, F. and Zwir, I., 1970. Techniques for Learning and Tuning Fuzzy Rule-Based Systems for Linguistic Modeling and their Application.

Vaščák J. (2013) Automatic Design and Optimization of Fuzzy Inference Systems. In: Zelinka I., Snášel V., Abraham A. (eds) Handbook of Optimization. Intelligent Systems Reference Library, vol 38. Springer, Berlin, Heidelberg. doi.org/10.1007/978-3-642-30504-7_12

<