You are on page 1of 52

Assignment 1

What is Soft Computing

Soft computing is the reverse of hard (conventional) computing. It refers to a group of


computational techniques that are based on artificial intelligence (AI) and natural
selection. It provides cost-effective solutions to the complex real-life problems for which
hard computing solution does not exist.

Soft computing is a branch of computer science that deals with computational systems
that are designed to approximate and handle imprecision, uncertainty, and partial truth
in order to achieve robustness and adaptability. It is an approach that combines
elements of artificial intelligence, computer science, and engineering to solve complex
problems that are hard to tackle using traditional methods of computation.

Soft computing techniques include fuzzy logic, artificial neural networks, genetic
algorithms, and other methods that are based on heuristics and approximate reasoning,
rather than precise and deterministic algorithms. These techniques are often used to
solve problems that involve uncertainty, imprecision, and incomplete information, such
as pattern recognition, optimization, and control.
Example

Soft computing deals with the approximation model. You will understand with the help
of examples of how it deals with the approximation model.

Let's consider a problem that actually does not have any solution via traditional
computing, but soft computing gives the approximate solution.

string1 = "xyz" and string2 = "xyw"

1. Problem 1
2. Are string1 and string2 same?
3. Solution
4. No, the solution is simply No. It does not require any algorithm to analyze this.

Let's modify the problem a bit.


1. Problem 2
2. How much string1 and string2 are same?
3. Solution
4. Through conventional programming, either the answer is Yes or No. But these
strings might be 80% similar according to soft computing.

You have noticed that soft computing gave us the approximate solution.

Some of the key characteristics/advantages of soft computing include:

● Approximation: Soft computing techniques are designed to handle imprecision


and uncertainty in the data, and therefore can provide approximate solutions to
complex problems.

● Adaptability: Soft computing techniques are able to adapt and learn from data,
and therefore can be used to solve problems in dynamic and changing
environments.

● Robustness: Soft computing techniques are designed to be robust and tolerant


of errors, and can therefore be used to solve problems in noisy and uncertain
environments.

● Interdisciplinary: Soft computing involves the integration of multiple disciplines,


including artificial intelligence, computer science, and engineering, which allows it
to tackle complex problems that are beyond the scope of any single discipline.

How Soft Computing is different from Hard Computing


Hard computing refers to traditional methods of computation that rely on precise and
deterministic algorithms to solve problems. Hard computing techniques are based on
mathematical and logical principles and are designed to provide exact solutions to
problems. These techniques are typically used to solve problems that can be precisely
defined and whose solutions can be calculated using well-established rules.

In contrast, soft computing refers to computational techniques that are designed to


approximate and handle imprecision, uncertainty, and partial truth in order to achieve
robustness and adaptability. Soft computing techniques include fuzzy logic, artificial
neural networks, genetic algorithms, and other methods that are based on heuristics
and approximate reasoning, rather than precise and deterministic algorithms. These
techniques are often used to solve problems that involve uncertainty, imprecision, and
incomplete information, such as pattern recognition, optimization, and control.

Some key differences between hard and soft computing include:

● Precision: Hard computing techniques are designed to provide precise and exact
solutions to problems, while soft computing techniques are designed to handle
imprecision and uncertainty and can provide approximate solutions.
● Problem-solving approach: Hard computing techniques rely on well-defined rules
and mathematical principles to solve problems, while soft computing techniques
are based on heuristics and approximate reasoning and can adapt and learn from
data.
● Robustness: Soft computing techniques are designed to be robust and tolerant
of errors, while hard computing techniques may be more sensitive to errors and
require precise input data to provide accurate solutions.
● Interdisciplinary: Soft computing involves the integration of multiple disciplines,
including artificial intelligence, computer science, and engineering, while hard
computing is typically more narrowly focused on mathematical and logical
principles.
Write advantages and disadvantages of Soft Computing

Advantages of soft computing:

1. Ability to handle imprecision and uncertainty: Soft computing techniques are


designed to handle imprecision, uncertainty, and partial truth in order to achieve
robustness and adaptability. This makes them well-suited for solving problems
that involve incomplete or noisy data, such as pattern recognition and control.
2. Adaptability and learning: Soft computing techniques are able to adapt and learn
from data, and can therefore be used to solve problems in dynamic and changing
environments. This makes them particularly useful for tasks that require
real-time decision-making or continuous learning.
3. Robustness: Soft computing techniques are designed to be robust and tolerant
of errors, and can therefore be used to solve problems in noisy and uncertain
environments.
4. Interdisciplinary: Soft computing involves the integration of multiple disciplines,
including artificial intelligence, computer science, and engineering, which allows
it to tackle complex problems that are beyond the scope of any single discipline.

Disadvantages of soft computing:

1. Approximation: While soft computing techniques are able to handle imprecision


and uncertainty, this also means that they provide approximate rather than exact
solutions to problems. This may not be suitable for tasks that require high levels
of precision or accuracy.
2. Complexity: Soft computing techniques can be complex to implement and
require significant computational resources. This can make them less practical
for certain types of applications.
3. Lack of transparency: Some soft computing techniques, such as artificial neural
networks, can be difficult to interpret and understand, making it hard to
understand how they arrived at a particular solution. This lack of transparency
can make it difficult to debug problems or verify the accuracy of the results.
4. Overfitting: Soft computing techniques, particularly artificial neural networks, can
be prone to overfitting, which means that they may perform well on the training
data but poorly on new, unseen data. This can make it difficult to generalize the
results of these techniques to new situations.

Explain various Soft Computing Techniques

Some of the main soft computing techniques include:

1. Fuzzy logic: Fuzzy logic is a form of mathematical logic that allows for the
representation and manipulation of vague or imprecise information. It is based
on the idea that statements can have a degree of truth rather than being either
true or false. Fuzzy logic can be used to model complex systems that involve
uncertainty, such as control systems and decision-making.
2. Artificial neural networks: Artificial neural networks are computational models
inspired by the structure and function of the human brain. They are composed of
interconnected nodes called "neurons" that can process and transmit
information. Neural networks can be trained to recognize patterns in data and
can be used for tasks such as classification and prediction.
3. Genetic algorithms: Genetic algorithms are a type of optimization algorithm that
are inspired by the process of natural evolution. They work by simulating the
process of natural selection and evolution, using concepts such as inheritance,
mutation, and selection to generate solutions to problems. Genetic algorithms
are often used to solve optimization problems, such as finding the optimal
solution to a given problem.
a. Evolutionary computation: Evolutionary computation is a family of
algorithms that are inspired by natural evolution and use principles such
as reproduction, selection, and mutation to generate solutions to
problems. These algorithms can be used for tasks such as optimization,
search, and machine learning.
Write Applications of Soft Computing in the Current industry

Soft computing techniques have a wide range of applications in various industries.


Some examples of applications of soft computing in the current industry include:

1. Pattern recognition: Soft computing techniques such as artificial neural


networks and fuzzy logic can be used for tasks such as image and speech
recognition.

2. Optimization: Genetic algorithms and other evolutionary computation


techniques can be used to find the optimal solution to problems such as
scheduling, routing, and resource allocation.

3. Control: Fuzzy logic and neural networks can be used to design control systems
for applications such as automotive systems, process control, and robotics.

4. Data analysis and prediction: Soft computing techniques such as neural


networks and genetic algorithms can be used for tasks such as data mining,
predictive modeling, and forecasting.

5. Natural language processing: Soft computing techniques such as artificial


neural networks and fuzzy logic can be used for tasks such as language
translation, text classification, and sentiment analysis.

6. Fraud detection: Soft computing techniques such as neural networks and


genetic algorithms can be used to detect fraudulent activity in areas such as
credit card transactions, insurance claims, and financial markets.

7. Biomedical engineering: Soft computing techniques such as artificial neural


networks and fuzzy logic can be used for tasks such as medical diagnosis, drug
design, and image analysis in healthcare and biomedical engineering.

Explain different defuzzification techniques.


Defuzzification Methods
Following defuzzification methods are known to calculate crisp output in the situations
as discussed in the last lecture.
1. Maxima Methods
a. Height method
b. First of maxima (FoM)
c. Last of maxima (LoM)
d. Mean of maxima(MoM)
2. Centroid methods
a. Centre of gravity method (CoG)
b. Centre of sum method (CoS)
c. Centre of area method (CoA)
3. Weighted average method

1. a. Maxima method : Height method

1. b. Maxima method : FoM (First of Maxima)


1. c. Maxima method : LoM (Last of Maxima)
1. d. Maxima method : MoM (Mean of Maxima)

2. a. Centroid Method : CoG (Center of Gravity)


2. b. Centroid Method : CoS (Center of Sum)

2. c. Centroid Method : CoA (Center of Area)


3. Weighted Average Method
Represent the standard fuzzy set operations using Venn diagram.
What do you mean by Fuzzy Logic and Fuzzy Relations

Fuzzy logic is a form of mathematical logic that allows for the representation and
manipulation of vague or imprecise information. It is based on the idea that statements
can have a degree of truth rather than being either true or false. In fuzzy logic, truth
values are represented by membership degrees, which are real numbers between 0
and 1 that represent the degree to which a statement is true.

Fuzzy logic is used to model complex systems that involve uncertainty, such as control
systems and decision-making. It can be used to represent and manipulate imprecise or
uncertain information, such as linguistic variables (e.g., "hot," "cold," "warm") or
subjective probabilities (e.g., "likely," "unlikely").

Fuzzy relations are binary relationships between two fuzzy sets that are defined using
fuzzy logic. They can be used to represent complex relationships between variables,
such as "is taller than," "is warmer than," or "is older than." Fuzzy relations are typically
defined using a membership function, which assigns membership degrees to the
possible pairs of values of the two fuzzy sets based on the strength of the relationship
between them.

Fuzzy logic and fuzzy relations are used in a variety of applications, including control
systems, decision-making, and pattern recognition. They allow for the representation
and manipulation of imprecise or uncertain information, which makes them well-suited
for solving complex problems that involve uncertainty or incomplete information.
Write short notes on
a.Crisp Sets, b. Fuzzy Sets

Crisp Sets
Crisp sets are a type of set in mathematics that consists of a well-defined collection of
elements. The membership of an element in a crisp set is either true or false, and there
is no uncertainty or imprecision in the membership of an element. Crisp sets are used to
represent precise and well-defined concepts or relationships.

Fuzzy Sets
Fuzzy sets are a type of set in mathematics that allow for the representation and
manipulation of imprecise or uncertain information. In a fuzzy set, the membership of an
element is not necessarily true or false, but can be any real value between 0 and 1, with
0 representing "not a member" and 1 representing "fully a member." Fuzzy sets are
used to represent concepts or relationships that are vague or uncertain, such as
linguistic variables (e.g., "hot," "cold," "warm") or subjective probabilities (e.g., "likely,"
"unlikely").

Fuzzy sets can be used to model complex systems that involve uncertainty, such as
control systems and decision-making. They allow for the representation and
manipulation of imprecise or uncertain information, which makes them well-suited for
solving complex problems that involve uncertainty or incomplete information.
Assignment 2

Write short note on Neural Network


An artificial neural network is a computational model inspired by the structure and
function of the human brain. It is composed of interconnected nodes called "neurons"
that can process and transmit information. Neural networks are composed of multiple
layers of neurons, with the input layer receiving data and the output layer producing the
final results.

Neural networks are trained using a set of input data and corresponding output labels.
During training, the neural network adjusts the strengths of the connections between
neurons (called "weights") in order to minimize the error between the predicted output
and the true output. This process is called "backpropagation," and it allows the neural
network to learn from the data and improve its predictions over time.
Neural networks can be used for a wide range of tasks, including pattern recognition,
classification, prediction, and control. They are particularly well-suited for tasks that
involve complex and nonlinear relationships, such as image and speech recognition.
Neural networks can also be used for tasks such as data mining, predictive modeling,
and natural language processing.

One of the key advantages of neural networks is their ability to learn and adapt to new
data. They can be trained on a large dataset and then used to make predictions or
decisions on new, unseen data. Neural networks can also learn to recognize patterns
and relationships in the data that may be difficult for humans to detect.

However, neural networks also have some limitations. They can be computationally
intensive and require significant amounts of data and computational resources to train.
They can also be difficult to interpret and understand, as it is often hard to understand
how they arrived at a particular prediction or decision. Additionally, neural networks can
be prone to overfitting, which means that they may perform well on the training data but
poorly on new, unseen data.

Write short note on Neural Model and Network Architectures.

A neural model is a computational model that is inspired by the structure and function of
the human brain. Neural models are typically composed of interconnected nodes called
"neurons" that can process and transmit information. Neural models are used to solve a
wide range of tasks, including pattern recognition, classification, prediction, and control.
There are several different neural model architectures that can be used, depending on
the specific needs of the application. Some common neural model architectures include:

1. Feedforward neural networks: Feedforward neural networks are the most basic
type of neural model. They are composed of an input layer, one or more hidden
layers, and an output layer. Information flows through the network in a single
direction, from the input layer to the output layer. Feedforward neural networks
are well-suited for tasks such as classification and prediction.

2. Recurrent neural networks: Recurrent neural networks are neural models that
have connections between neurons that form a directed cycle. This allows the
network to process sequential data and remember previous inputs, making them
well-suited for tasks such as language translation and natural language
processing.
3. Convolutional neural networks: Convolutional neural networks are neural
models that are specifically designed for image processing tasks. They are
composed of layers of neurons that are connected in a way that allows them to
process spatial information, such as the pixels in an image. Convolutional neural
networks are often used for tasks such as image classification and object
detection.

4. Autoencoders: Autoencoders are neural models that are used for tasks such as
dimensionality reduction and feature learning. They are composed of an encoder
and a decoder, which are neural networks that are trained to reconstruct the input
data from a lower-dimensional representation. Autoencoders can be used to
extract useful features from raw data and are often used as a preprocessing step
for other machine learning tasks.

5. Generative adversarial networks: Generative adversarial networks are neural


models that are used for tasks such as image generation and data augmentation.
They are composed of two neural networks that are trained to work together: a
generator network and a discriminator network. The generator network generates
new data, while the discriminator network tries to distinguish the generated data
from real data. The two networks are trained together, with the generator network
trying to produce data that the discriminator network cannot distinguish from real
data.

Write Short note on Perceptron Learning

Perceptron learning is a type of machine learning algorithm that is used for binary
classification, which means that it can be used to classify data into two categories. It is
based on the concept of a linear classifier, which is a model that can separate the two
classes of data by a single linear boundary.

Perceptron learning is a type of neural network that is composed of a single layer of


neurons, with each neuron representing a linear function that combines the input
features and produces a binary output. The weights of the connections between the
input features and the output neuron are adjusted based on the training data in order to
minimize the error between the predicted output and the true output. This process is
called "training," and it allows the perceptron to learn the relationship between the input
features and the output label.

Perceptron learning is a simple and efficient algorithm that can be used for a wide range
of classification tasks. It is particularly useful for problems where the input data is
linearly separable, meaning that the two classes can be separated by a single linear
boundary. However, it is limited to problems where the input data is linearly separable
and may not perform well on more complex or nonlinear problems.

Basic Components of Perceptron

Mr. Frank Rosenblatt invented the perceptron model as a binary classifier which
contains three main components. These are as follows:

● Input Nodes or Input Layer: This is the primary component of Perceptron which
accepts the initial data into the system for further processing. Each input node
contains a real numerical value.

● Wight and Bias: Weight parameter represents the strength of the connection
between units. This is another most important parameter of Perceptron
components. Weight is directly proportional to the strength of the associated
input neuron in deciding the output. Further, Bias can be considered as the line of
intercept in a linear equation.
● Activation Function: These are the final and important components that help to
determine whether the neuron will fire or not. Activation Function can be
considered primarily as a step function.

Types of Activation functions:

● Sign function

● Step function, and

● Sigmoid function

The data scientist uses the activation function to take a subjective decision based on
various problem statements and forms the desired outputs. Activation function may
differ (e.g., Sign, Step, and Sigmoid) in perceptron models by checking whether the
learning process is slow or has vanishing or exploding gradients

Working of Perceptron

In Machine Learning, Perceptron is considered as a single-layer neural network that


consists of four main parameters named input values (Input nodes), weights and Bias,
net sum, and an activation function. The perceptron model begins with the
multiplication of all input values and their weights, then adds these values together to
create the weighted sum. Then this weighted sum is applied to the activation function 'f'
to obtain the desired output. This activation function is also known as the step function
and is represented by 'f'.
This step function or Activation function plays a vital role in ensuring that output is
mapped between required values (0,1) or (-1,1). It is important to note that the weight of
input is indicative of the strength of a node. Similarly, an input's bias value gives the
ability to shift the activation function curve up or down.

Perceptron model works in two important steps as follows:

Step-1 : In the first step first, multiply all input values with corresponding weight
values and then add them to determine the weighted sum. Mathematically, we
can calculate the weighted sum as follows:

∑wi*xi = x1*w1 + x2*w2 +…wn*xn

Add a special term called bias 'b' to this weighted sum to improve the model's
performance.

∑wi*xi + b

Step-2 : In the second step, an activation function is applied with the


above-mentioned weighted sum, which gives us output either in binary form or a
continuous value as follows:

Y = f(∑wi*xi + b)

For learning rules from hebbian and perceptron

https://www.softwaretestinghelp.com/neural-network-learning-rules/
Write short note on Supervised Hebbian Learning.

Hebbian learning is a type of machine learning algorithm that is based on the idea that
neurons that are active together tend to strengthen their connections. It is a type of
unsupervised learning, which means that it does not require labeled training data in
order to learn a task.

In Hebbian learning, the weights of the connections between neurons are adjusted
based on the activity of the neurons. When a neuron is active, the connections between
it and other active neurons are strengthened, while the connections between it and
inactive neurons are weakened. This process is called "adaptation," and it allows the
neural network to learn the relationships between the neurons and the patterns in the
data.

Hebbian learning is a simple and efficient algorithm that can be used for a wide range of
tasks, including pattern recognition, clustering, and classification. It is particularly
well-suited for tasks that involve complex and nonlinear relationships, such as image
and speech recognition.

One of the key advantages of Hebbian learning is that it is simple and efficient, as it only
requires the use of the Hebbian learning rule to adjust the weights of the connections
between neurons. However, it is limited to problems where the input data is linearly
separable, meaning that the two classes can be separated by a single linear boundary. It
can also be sensitive to noise and may not perform well on tasks with large amounts of
noise or uncertainty.

Deep Explanation

Hebb Network was stated by Donald Hebb in 1949. According to Hebb’s rule, the weights
are found to increase proportionately to the product of input and output. It means that in a
Hebb network if two neurons are interconnected then the weights associated with these
neurons can be increased by changes in the synaptic gap.

Weight increase ∝ input * output


This network is suitable for bipolar data. The Hebbian learning rule is generally applied to
logic gates.

The weights are updated as:


W (new) = w (old) + x*y

Training Algorithm For Hebbian Learning Rule

The training steps of the algorithm are as follows:

● Initially, the weights are set to zero, i.e. w =0 for all inputs i =1 to n and n is the
total number of input neurons.
● Let s be the output. The activation function for inputs is generally set as an
identity function.
● The activation function for output is also set to y= t.
● The weight adjustments and bias are adjusted to:

● The steps 2 to 4 are repeated for each input vector and output.

https://www.geeksforgeeks.org/hebbian-learning-rule-with-implementation-of-and-gat
e/

Write a short note on Genetic Algorithm and Modeling.

A genetic algorithm is a type of optimization algorithm that is inspired by the process of


natural evolution. It works by simulating the process of natural selection and evolution,
using concepts such as inheritance, mutation, and selection to generate solutions to
problems.

In a genetic algorithm, a set of potential solutions to a problem, called "individuals," is


generated. These individuals are evaluated based on a "fitness function," which
measures the quality of the solution. The individuals with the highest fitness are
selected to be "parents," and their characteristics are combined to create a new
generation of individuals. This process is repeated over multiple generations, with the
goal of producing a solution that is optimal according to the fitness function.
Genetic algorithms can be used for a wide range of optimization tasks, such as finding
the minimum or maximum of a function, finding the shortest path between two points,
or finding the optimal combination of variables to solve a given problem. They are
particularly well-suited for problems that are complex or have many variables, as they
can search a large space of potential solutions efficiently.

One of the key advantages of genetic algorithms is that they can find good solutions to
problems even when there is little information available about the problem. They are
also relatively simple to implement and can be used for a wide range of optimization
tasks. However, they can be computationally intensive and may not scale well to very
large problems.

Basic terminologies to better understand this algorithm:

● Population: Population is the subset of all possible or probable solutions, which


can solve the given problem.

● Chromosomes: A chromosome is one of the solutions in the population for the


given problem, and the collection of gene generate a chromosome.

● Gene: A chromosome is divided into a different gene, or it is an element of the


chromosome.

● Allele: Allele is the value provided to the gene within a particular chromosome.

● Fitness Function: The fitness function is used to determine the individual's


fitness level in the population. It means the ability of an individual to compete
with other individuals. In every iteration, individuals are evaluated based on their
fitness function.

● Genetic Operators: In a genetic algorithm, the best individual mate to regenerate


offspring better than parents. Here genetic operators play a role in changing the
genetic composition of the next generation.

● Selection : After calculating the fitness of every existent in the population, a


selection process is used to determine which of the individualities in the
population will get to reproduce and produce the seed that will form the coming
generation.

Types of selection styles available

● Roulette wheel selection

● Event selection

● Rank- grounded selection

So, now we can define a genetic algorithm as a heuristic search algorithm to solve
optimization problems. It is a subset of evolutionary algorithms, which is used in
computing. A genetic algorithm uses genetic and natural selection concepts to solve
optimization problems.

Working of Genetic Algorithm

How Genetic Algorithm Work?


The genetic algorithm works on the evolutionary generational cycle to generate
high-quality solutions. These algorithms use different operations that either enhance or
replace the population to give an improved fit solution.

It basically involves five phases to solve the complex optimization problems, which are
given as below:

● Initialization
● Fitness Assignment

● Selection

● Reproduction

● Termination

1. Initialization

The process of a genetic algorithm starts by generating the set of individuals, which is
called population. Here each individual is the solution for the given problem. An
individual contains or is characterized by a set of parameters called Genes. Genes are
combined into a string and generate chromosomes, which is the solution to the
problem. One of the most popular techniques for initialization is the use of random
binary strings.

2. Fitness Assignment

Fitness function is used to determine how fit an individual is? It means the ability of an
individual to compete with other individuals. In every iteration, individuals are evaluated
based on their fitness function. The fitness function provides a fitness score to each
individual. This score further determines the probability of being selected for
reproduction. The high the fitness score, the more chances of getting selected for
reproduction.

3. Selection

The selection phase involves the selection of individuals for the reproduction of
offspring. All the selected individuals are then arranged in a pair of two to increase
reproduction. Then these individuals transfer their genes to the next generation.

There are three types of Selection methods available, which are:

● Roulette wheel selection

● Tournament selection

● Rank-based selection

4. Reproduction

After the selection process, the creation of a child occurs in the reproduction step. In
this step, the genetic algorithm uses two variation operators that are applied to the
parent population. The two operators involved in the reproduction phase are given
below:

● Crossover: The crossover plays a most significant role in the reproduction phase
of the genetic algorithm. In this process, a crossover point is selected at random
within the genes. Then the crossover operator swaps genetic information of two
parents from the current generation to produce a new individual representing the
offspring.
The genes of parents are exchanged among themselves until the crossover point
is met. These newly generated offspring are added to the population. This
process is also called crossover. Types of crossover styles available:

○ One point crossover

○ Two-point crossover

○ Livery crossover

○ Inheritable Algorithms crossover

● Mutation
The mutation operator inserts random genes in the offspring (new child) to
maintain the diversity in the population. It can be done by flipping some bits in
the chromosomes.
Mutation helps in solving the issue of premature convergence and enhances
diversification. The below image shows the mutation process:
Types of mutation styles available,

○ Flip bit mutation

○ Gaussian mutation

○ Exchange/Swap mutation

5. Termination
After the reproduction phase, a stopping criterion is applied as a base for termination.
The algorithm terminates after the threshold fitness solution is reached. It will identify
the final solution as the best solution in the population.

General Workflow of a Simple Genetic Algorithm

Advantages of Genetic Algorithm


● The parallel capabilities of genetic algorithms are best.

● It helps in optimizing various problems such as discrete functions,


multi-objective problems, and continuous functions.

● It provides a solution for a problem that improves over time.

● A genetic algorithm does not need derivative information.

Limitations of Genetic Algorithms

● Genetic algorithms are not efficient algorithms for solving simple problems.

● It does not guarantee the quality of the final solution to a problem.

● Repetitive calculation of fitness values may generate some computational


challenges.

Difference between Genetic Algorithms and Traditional


Algorithms

● A search space is the set of all possible solutions to the problem. In the
traditional algorithm, only one set of solutions is maintained, whereas, in a
genetic algorithm, several sets of solutions in search space can be used.

● Traditional algorithms need more information in order to perform a search,


whereas genetic algorithms need only one objective function to calculate the
fitness of an individual.

● Traditional Algorithms cannot work parallelly, whereas genetic Algorithms can


work parallelly (calculating the fitness of the individualities are independent).

● One big difference in genetic Algorithms is that rather of operating directly on


seeker results, inheritable algorithms operate on their representations (or
rendering), frequently appertained to as chromosomes.
● One of the big differences between traditional algorithm and genetic algorithm is
that it does not directly operate on candidate solutions.

● Traditional Algorithms can only generate one result in the end, whereas Genetic
Algorithms can generate multiple optimal results from different generations.

● The traditional algorithm is not more likely to generate optimal results, whereas
Genetic algorithms do not guarantee to generate optimal global results, but also
there is a great possibility of getting the optimal result for a problem as it uses
genetic operators such as Crossover and Mutation.

● Traditional algorithms are deterministic in nature, whereas Genetic algorithms


are probabilistic and stochastic in nature.
Write short note on applications and advances of Genetic algorithm

Genetic algorithms have a wide range of applications in various fields and have been
used to solve a variety of problems, including:

Optimization: Genetic algorithms can be used to find the optimal solution to problems
such as scheduling, routing, and resource allocation.

Data analysis: Genetic algorithms can be used for tasks such as data mining, feature
selection, and predictive modeling.

Control: Genetic algorithms can be used to design control systems for applications
such as automotive systems, process control, and robotics.

Machine learning: Genetic algorithms can be used as a component of machine learning


algorithms, such as neural networks and support vector machines, to optimize their
performance.

Bioinformatics: Genetic algorithms can be used for tasks such as protein folding, drug
design, and gene expression analysis.

There have been several advances in genetic algorithms in recent years, including:

Hybrid genetic algorithms: Hybrid genetic algorithms combine genetic algorithms with
other optimization techniques, such as simulated annealing or particle swarm
optimization, to improve their performance.

Multilevel genetic algorithms: Multilevel genetic algorithms use multiple levels of


representation, such as genes, chromosomes, and populations, to represent the
solutions to a problem.

Niche genetic algorithms: Niche genetic algorithms use multiple populations that are
specialized for different parts of the search space, which allows them to explore a wider
range of solutions more efficiently.
Memetic algorithms: Memetic algorithms combine genetic algorithms with local search
techniques, such as hill climbing or gradient descent, to improve the quality of the
solutions found.

Distributed genetic algorithms: Distributed genetic

Differences & similarities between GA & other traditional methods.

Feature Genetic Algorithms Traditional Algorithms

Nature of search Evolutionary Deterministic

Ability to handle large, complex Good Poor


search spaces

Ability to handle uncertainty or Good Poor


noise in the data
Requirement for initial solution None Often required

Efficiency Moderate Often faster

Ability to find global optima Good Often poor

Suitability for parallel Good Variable


implementation

Suitability for online learning Good Variable

Interpretability of the solution Poor Often good


Similarities between genetic algorithm and traditional algoritm

There are several similarities between genetic algorithms and traditional algorithms:

1. Both types of algorithms can be used to solve a wide range of problems,


including optimization, data analysis, control, and machine learning tasks.
2. Both types of algorithms can be implemented in software and can be run on a
computer.
3. Both types of algorithms can be improved or modified to solve specific types of
problems or to achieve better performance.
4. Both types of algorithms can be parallelized and run on multiple processors or
machines to improve their efficiency.
5. Both types of algorithms can be used as components of larger systems or as
part of a workflow to solve more complex problems.
6. Both types of algorithms can be used in a supervised or unsupervised learning
setting, depending on the type of problem and the availability of labeled training
data.
7. Both types of algorithms can be evaluated based on their performance on a given
task and can be compared to other algorithms to determine which is the most
suitable for a particular problem.
What is Hybrid Learning Algorithm
Hybrid systems: A Hybrid system is an intelligent system that is framed by
combining at least two intelligent technologies like Fuzzy Logic, Neural networks,
Genetic algorithms, reinforcement learning, etc. The combination of different
techniques in one computational model makes these systems possess an
extended range of capabilities. These systems are capable of reasoning and
learning in an uncertain and imprecise environment. These systems can provide
human-like expertise like domain knowledge, adaptation in noisy environments,
etc.
Types of Hybrid Systems:
● Neuro-Fuzzy Hybrid systems
● Neuro Genetic Hybrid systems
● Fuzzy Genetic Hybrid systems

(A) Neuro-Fuzzy Hybrid systems:


The Neuro-fuzzy system is based on fuzzy system which is trained on the basis
of the working of neural network theory. The learning process operates only on
the local information and causes only local changes in the underlying fuzzy
system. A neuro-fuzzy system can be seen as a 3-layer feedforward neural
network. The first layer represents input variables, the middle (hidden) layer
represents fuzzy rules and the third layer represents output variables. Fuzzy sets
are encoded as connection weights within the layers of the network, which
provides functionality in processing and training the model.
Working flow:
● In the input layer, each neuron transmits external crisp signals directly
to the next layer.
● Each fuzzification neuron receives a crisp input and determines the
degree to which the input belongs to the input fuzzy set.
● The fuzzy rule layer receives neurons that represent fuzzy sets.
● An output neuron combines all inputs using fuzzy operation UNION.
● Each defuzzification neuron represents the single output of the
neuro-fuzzy system.

Advantages:
● It can handle numeric, linguistic, logic, etc kinds of information.
● It can manage imprecise, partial, vague, or imperfect information.
● It can resolve conflicts by collaboration and aggregation.
● It has self-learning, self-organizing and self-tuning capabilities.
● It can mimic the human decision-making process.
Disadvantages:
● Hard to develop a model from a fuzzy system
● Problems of finding suitable membership values for fuzzy systems
● Neural networks cannot be used if training data is not available.

Applications:
● Student Modelling
● Medical systems
● Traffic control systems
● Forecasting and predictions

(B) Neuro Genetic Hybrid systems:


A Neuro Genetic hybrid system is a system that combines Neural networks:
which are capable to learn various tasks from examples, classify objects and
establish relations between them, and a Genetic algorithm: which serves
important search and optimization techniques. Genetic algorithms can be used to
improve the performance of Neural Networks and they can be used to decide the
connection weights of the inputs. These algorithms can also be used for topology
selection and training networks.
Working Flow:
● GA repeatedly modifies a population of individual solutions. GA uses
three main types of rules at each step to create the next generation
from the current population:
1. Selection to select the individuals, called parents, that
contribute to the population at the next generation
2. Crossover to combine two parents to form children for the
next generation
3. Mutation to apply random changes to individual parents in
order to form children
● GA then sends the new child generation to ANN model as a new input
parameter.
● Finally, calculating the fitness by the developed ANN model is
performed.
Advantages:
● GA is used for topology optimization i.e to select the number of hidden
layers, number of hidden nodes, and interconnection pattern for ANN.
● In GAs, the learning of ANN is formulated as a weight optimization
problem, usually using the inverse mean squared error as a fitness
measure.
● Control parameters such as learning rate, momentum rate, tolerance
level, etc are also optimized using GA.
● It can mimic the human decision-making process.

Disadvantages:
● Highly complex system.
● The accuracy of the system is dependent on the initial population.
● Maintenance costs are very high.

Applications:
● Face recognition
● DNA matching
● Animal and human research
● Behavioral system

(C) Fuzzy Genetic Hybrid systems:


A Fuzzy Genetic Hybrid System is developed to use fuzzy logic-based
techniques for improving and modeling Genetic algorithms and vice-versa.
Genetic algorithm has proved to be a robust and efficient tool to perform tasks
like generation of the fuzzy rule base, generation of membership function, etc.
Three approaches that can be used to develop such a system are:
● Michigan Approach
● Pittsburgh Approach
● IRL Approach

Working Flow:
● Start with an initial population of solutions that represent the first
generation.
● Feed each chromosome from the population into the Fuzzy logic
controller and compute performance index.
● Create a new generation using evolution operators till some condition is
met.

Advantages:
● GAs are used to develop the best set of rules to be used by a fuzzy
inference engine
● GAs are used to optimize the choice of membership functions.
● A Fuzzy GA is a directed random search over all discrete fuzzy subsets.
● It can mimic the human decision-making process.

Disadvantages:
● Interpretation of results is difficult.
● Difficult to build membership values and rules.
● Takes lots of time to converge.

Applications:
● Mechanical Engineering
● Electrical Engine
● Artificial Intelligence
● Economics
What is Neuro-fuzzy Modeling

Neuro-Fuzzy systems:
The Neuro-fuzzy system is based on fuzzy system which is trained on the basis
of the working of neural network theory. The learning process operates only on
the local information and causes only local changes in the underlying fuzzy
system. A neuro-fuzzy system can be seen as a 3-layer feedforward neural
network. The first layer represents input variables, the middle (hidden) layer
represents fuzzy rules and the third layer represents output variables. Fuzzy sets
are encoded as connection weights within the layers of the network, which
provides functionality in processing and training the model.

Working flow:
● In the input layer, each neuron transmits external crisp signals directly
to the next layer.
● Each fuzzification neuron receives a crisp input and determines the
degree to which the input belongs to the input fuzzy set.
● The fuzzy rule layer receives neurons that represent fuzzy sets.
● An output neuron combines all inputs using fuzzy operation UNION.
● Each defuzzification neuron represents the single output of the
neuro-fuzzy system.

Advantages:
● It can handle numeric, linguistic, logic, etc kind of information.
● It can manage imprecise, partial, vague, or imperfect information.
● It can resolve conflicts by collaboration and aggregation.
● It has self-learning, self-organizing and self-tuning capabilities.
● It can mimic the human decision-making process.

Disadvantages:
● Hard to develop a model from a fuzzy system
● Problems of finding suitable membership values for fuzzy systems
● Neural networks cannot be used if training data is not available.

Applications:
● Student Modelling
● Medical systems
● Traffic control systems
● Forecasting and predictions

You might also like