Article On Soft Computing

An overview of soft computing 

Pooja Gaikwad*






Abstract 
Soft computing, as opposed to traditional computing, deals with approximate models and gives solutions to complex real-life problems. Unlike hard computing, soft computing is tolerant of imprecision, uncertainty, partial truth, and approximations. In effect, the role model for soft computing is the human mind. Soft computing is based on techniques such as fuzzy logic, genetic algorithms, artificial neural networks, machine learning, and expert systems. Although soft computing theory and techniques were first introduced in 1980s, it has now become a major research and study area in automatic control engineering. The techniques of soft computing are nowadays being used successfully in many domestic, commercial, and industrial applications. With the advent of the low-cost and very high performance digital processors and the reduction of the cost of memory chips it is clear that the techniques and application areas of soft computing will continue to expand. This paper gives an overview of the current state of soft computing techniques and describes the advantages and disadvantages of soft computing compared to traditional hard computing techniques. 


1. Introduction
  One of the problems in traditional control systems is that complex plants cannot be accurately described by mathematical models, and are therefore difficult to control using such existing methods. Soft computing on the other hand deals with partial truth, uncertainty, and approximation to solve complex problems. Dr Zadeh who is the pioneer of fuzzy logic quoted that “the guiding principle of soft computing is to exploit the tolerance for imprecision, uncertainty, and partial truth to achieve tractability, robustness, low solution cost, better rapport with reality”. Because of its features such as intelligent control, nonlinear programming, optimization, and decision making support, soft computing has become popular and has drawn research interest from people with different backgrounds, Jang et al . 
  It is becoming difficult to control the growing complexity of modern machinery using traditional control systems techniques. For example, many nonlinear and time-variant plants with large time delays cannot easily be controlled and stabilized using traditional techniques. One of the reasons for this difficulty is the lack of an accurate model that describes the plant. Soft computing is proving to be an efficient way of controlling such complex plants.
  Zadeh pointed out that soft computing is not a single method, but instead it is a combination of several methods, such as fuzzy logic, neural networks, and genetic algorithms. All these methods are not competitive, but are complimentary to each other and can be used together to solve a given problem . It can be said that soft computing aims to solve complex problems by exploiting the imprecision and uncertainty in decision making processes. 
  Fig. 1 shows the conventional and soft computing based problem solution principle as suggested by Gupta and Kulkarni. The left diagram shows the traditional hard computing approach where an exact model of the plant under investigation is available and traditional mathematical methods are used to solve the problem. The right diagram shows soft computing approach where only an approximate model of the plant may be available, and the solution depends upon approximate reasoning techniques.

Fuzzy control has been in use for over two decades to solve complex control problems, Driankov et al . In addition, many instrumentation problems are being solved using fuzzy logic principles as reported by Russo . Neural networks, although a newer concept, have also been used by many people to solve complex automatic control problems, including the demanding servo problems . In addition to solving automatic control problems, soft computing has also been used in diverse applications such as in intelligent speech recognition , communications, fields of signal processing, heavy current systems, design and manufacturing, pattern recognition, and many more applications. This paper is an overview of soft computing techniques and describes some of the commonly used techniques to solve complex problems with soft computing methods, such as fuzzy logic, neural networks, genetic algorithms, and expert systems. 

2. Fuzzy logic
  The concept of fuzz logic was introduced by Zadeh3 as a method for representing human knowledge that is imprecise by nature. Fig. 2 shows the basic configuration of a fuzzy logic system. The fuzzification interface transforms the crisp input value into a fuzzy linguistic value. The fuzzification is always necessary in a fuzzy logic system since the input values from existing sensors are always crisp numerical values. The inference engine takes the fuzzy input and the fuzzy rule base and generates fuzzy outputs. The fuzzy rule base is in the form of “IF-THEN” rules involving linguistic variables. The last processing element of a fuzzy logic system is the defuzzification which has the task of producing crisp output actions. 
  Perhaps one of the biggest advantage of fuzzy logic is that it offers a practical way for designing nonlinear control systems which are difficult to design and stabilize using traditional methods.


3. Artificial neural networks
  Artificial neural networks (ANN), or neural computing is one of the rapidly growing fields of research, attracting researchers from a wide variety of engineering disciplines, such as electronic engineering, control engineering, and software engineering. ANNs are information processing systems that are inspired by the way biological nervous system and the brain works. ANNs are usually configured for specific applications, such as pattern recognition, data recognition, image processing, stock market prediction, weather prediction, image compression, and security and loan applications. Neural networks aim to bring the traditional computers a little closer to the way human brain works. ANNS work best if the relationship between the inputs and outputs are highly non-linear. ANNs are highly suitable for solving problems where there are no algorithms or specific set of rules to be followed in order to solve the problem. A neural network is a large network of interconnected elements, inspired by the human neurons. Each neuron performs a little operations and the overall operation is the weighted sum of these operations. A neural network has to be trained so that a known set of inputs produces the desired outputs. Training is usually done by feeding teaching patterns to the network and letting the network to change its weighting function according to some previously defined learning rules. The learning can either be supervised, or unsupervised. In supervised learning the network under investigation is trained by giving it inputs and matching output patterns. i.e. the outcomes are known for specific inputs. In unsupervised learning the output of the network is trained to respond to input patterns.

   Some of the advantages and disadvantages of neural networks are:
  • ANNs are not universal tools for solving problems as there is no methodology for training and verifying an ANN. 
  • The result of an ANN depends upon the accuracy of the available data 
  • Excessive training may be required in complex ANN systems 
  • ANNs can deal with incomplete data sets 
  • ANNs are successful in prediction and forecasting applications
An ANN is basically composed of three layers: input, hidden layer, and output, where each layer can have number of nodes. Backpropagation algorithm is used in most ANN networks as a method to train the network. Here, output of the neural network is evaluated against desired output, and if the results are not as expected, the weights between layers are modified and the process is repeated until a very small error remains. 

4. Genetic algorithms
   Genetic algorithms18,19 are parts of artificial intelligence and fuzzy computing and they are mainly used to solve various optimization problems encountered in real-life applications. The basic idea of a genetic algorithm is to mimic the natural selection in nature in order to find a good selection for an application. Genetic algorithm is basically a model of machine learning inspired by the process of evolution in nature. A genetic algorithm can be used for finding solutions complex search problems found in engineering applications. For example, they can search through various designs and components to find the best combination that will result in overall better and cheaper design. Genetic algorithms are used in many diverse fields nowadays, such as climatology, biomedical engineering, code-breaking, control engineering, games theory, electronic design, and automated manufacturing and design.

The basic processes in genetic algorithms are:
  • Initialization, where an initial population is created randomly. 
  • Evaluation, where each member of the population is evaluated and the fitness of the individuals are assessed based on how well they fit the desired requirements. 
  • Selection, where only the ones that fit the desired requirements are selected. 
  • Crossover, where new individual are created by combining best aspects of the existing individuals. At the end of this it is expected to create individuals that are closer to the desired requirements. The process is repeated from the second step until a termination condition is finally reached.
5. Expert systems 
   An expert system, also known as a knowledge based system, is a computer based system that can make intelligent decisions by emulating the decision making abilities of human experts. Expert systems are rule based systems and they are part of the artificial intelligence. Expert systems have the abilities that they can change their decisions and make new decisions based on the external factors. Some expert systems are designed to take place of a human in an application, while some others are designed to aid the human. Some application areas of expert systems are: online medical systems for diagnosing a problem, financial loan/credit decisions, legal matters, robotics, and engineering design. One of the main problems in expert systems is the knowledge acquisition. 
  The main components of an expert system are: knowledge base, interface engine, and user interface. The knowledge base is probably the most important part of any expert system. This is where the intelligence of the system is stored. Expert systems in general can acquire new knowledge by their sensors or by training and extend their knowledge bases so that they can easily respond to new problems. The knowledge is stored in the form of INTHEN-ELSE statements. The interface engine is between the knowledge base and the user. The interface engine makes decisions by following the conditions and the requirements before it comes to an outcome and presents a solution to the user. The user interface is usually in the form of natural language used daily by the user in everyday life. There are basically two types of programming languages: algorithmic and symbolic. Traditional programming languages such as Pascal, Basic C, and Fortran are algorithmic, also known as procedural languages, where it is difficult to implement logical inferences in these languages. Several symbolic languages have been developed over the years for expert systems development, such as Prolog, Lisp, Clips and so on.

6. Conclusions and the future 
   Intelligent systems and hence soft computing techniques are becoming more important as the power of computer processing devices increase and their cost is reduced. Intelligent systems are required to make complex decisions and choose the best outcome from many possibilities, using complex algorithms. This requires fast processing power and large storage space which has recently become available in recent years to many research centres, universities, and technical colleges at a very low cost. With the power and the recognition of the Internet of Things (IoT) concept, the need for using soft computing techniques and building intelligent systems have become more important than ever. Nowadays, most soft computing applications can be handled efficiently by low-cost but super-fast microcontrollers. Already we see the use of fuzzy logic, artificial neural networks, and expert systems in many everyday domestic appliances, such as washing machines, cookers, and fridges. Many industrial and commercial applications of soft computing are also in everyday use and this is expected to grow within the next decade. It is the author’s opinion that the soft computing theory and techniques and its applications will grow rapidly together with the use of IoT devices in future domestic, industrial and commercial markets. 

References

Comments

Popular posts from this blog

How to easily upgrade React Native and the project dependencies.

CodeIgniter PHP website into a PWA (progressive web app)!!!