We would just briefly highlight these three aspects of Artificial Intelligence:

**1. Introduction to Fuzzy Logic**

Fuzzy Logic is an attempt to create systems that accept information and process them the way we humans process information. The important point is that the input data is ambiguous or imprecise. An example would be rate of rainfall. The process this information, your input would be very imprecise.

Components of Fuzzy Controller

Any fuzzy logic system must have a fuzzy controller. That is the the brain of a fuzzy logic system

The four components of a fuzzy controller a the Fuzzifier, the Inference Engine, the Rule Base and the Defuzzifier.

The structure of a fuzzy logic controller is shown below:

How it works

Input to the fuzzy logic controller passes through a pre-processor while the output passes through a post-processor.

Firstly, a disperse set of input data are gathered and converted to a fuzzy set using fuzzy linguistic variables, fuzzy linguistic terms and membership functions. This step is known as fuzzification.

Afterwards, using the fuzzy set obtained from the fuzzification process, an interface is made based on a set of rules(Rule Base). Finally, the resulting fuzzy output is then mapped to a cript output using membership functions. This is the defuzzificaiton step.

**2. Natural Language Processing**

Natural Language Processing (NLP) is an aspect of Artificial Intelligence that tends to capable of understanding instructions written in everyday language of humans. This means that the computer can be made to listen and understand human expressions just like every other person.

Natural Language Processing can be divided in to (1) Rule-based NLP and (2) Statistical NLP

- Rule-based NLP: This is the traditional method of Natural Language Processing where a series of rules are build into the knowledgebase of the system and decisions are made based on those rules
- Statistical NLP: In this case, the processing of natural language is based on Machine Learning where the systems extracts features from the input and generates some set of rules

Application of NLP

NLP can be applied in the area of translation where the computer could take an expression in a particular language and translate it to another target language.

- Foreign Language Reading Assistance
- Natural Language Search Applications
- Information Retrieval
- Information Extraction Systems
- Automated Article Review
- Speech Understanding
- Automated Language Translators

**3. Search Techniques**

In this section we would examine four common search techniques in AI and their algorithms. We would consider the efficiency of each search technique in terms of how fast it arrives at a solution as well as how optimal the solution it. Then we would write a program to implement the algorithms in Java.The four of them are:

- Depth-First Search
- Breadth-First Search
- Hill-Climbing
- Least-Cost
- Binary Search

Let’s begin with the first one.

**Depth-First Search:** This search algorithm explores all possible path all the way to its conclusion before it takes another path.

**Breadth-First Search**: This can be considered the opposite of the depth-first technique. Here, the algorithm traverses all nodes on the same level before moving to another level.

**Hill-Climbing:** This can be considered an improvement over the depth-first search. After a particular level, it chooses as the next step, the node that tends to place it in the closer to the key or goal node.

**Least-Cost Search Technique:** This technique takes the part of the minimum effort and can be considered the opposite of the Hill-Climbing algorithm

**Binary Search:** This search is also known a logarithmic search because it takes O(logn) time complexity. It works by iteratively comparing the key value to the middle element of the array.