BTAIML AI Notes Upto Unit 3

Download as pdf or txt
Download as pdf or txt
You are on page 1of 101

UNIT I

INTRODUCTION-AI

Syllabus: AI problems, Agents and Environments, Structure of Agents, Problem


Solving Agents Basic Search Strategies: Problem Spaces, Uninformed Search
(BreadthFirst, Depth-First Search, Depth-first with Iterative Deepening), Heuristic
Search (Hill Climbing, Generic Best-First, A*), Constraint Satisfaction
(Backtracking, Local Search)
Introduction to AI
AI systems work by ingesting large amounts of labeled training data, analyzing the
data for correlations and patterns, and using these patterns to make predictions
about future states. In this way, a chatbot that is fed examples of text chats can learn
to produce lifelike exchanges with people, or an image recognition tool can learn to
identify and describe objects in images by reviewing millions of examples.
Definition(s)
Artificial Intelligence is an approach to make a computer, a robot, or a product to
think how smart human think. The aim of AI is to improve computer functions
which are related to human knowledge, for example, reasoning, learning, and
problem-solving.
Artificial intelligence is the simulation of human intelligence processes by
machines, especially computer systems. Specific applications of AI include expert
systems, natural language processing, and speech recognition and machine vision.
Importance of AI:
• AI can give enterprises insights into their operations that they may not have
been aware of previously and because, in some cases, AI can perform tasks better
than humans.
• Particularly when it comes to repetitive, detail-oriented tasks like analyzing
large numbers of legal documents to ensure relevant fields are filled in properly, AI
tools often complete jobs quickly and with relatively few errors.
Understanding AI:
• It would have been hard to imagine using computer software to connect riders
to taxis, but today Uber has become one of the largest companies in the world by
doing just that. It utilizes sophisticated machine learning algorithms to predict when
people are likely to need rides in certain areas, which helps proactively get drivers
on the road before they're needed.
• Google has become one of the largest players for a range of online services
by using machine learning to understand how people use their services and then
improving them.
Examples of AI based on different technologies:
1. Automation. When paired with AI technologies, automation tools can expand
the volume and types of tasks performed. An example is robotic process automation
(RPA), a type of software that automates repetitive, rules-based data processing
tasks traditionally done by humans. When combined with machine learning and
emerging AI tools, RPA can automate bigger portions of enterprise jobs, enabling
RPA's tactical bots to pass along intelligence from AI and respond to process
changes.
2. Machine learning. This is the science of getting a computer to act without
programming. Deep learning is a subset of machine learning that, in very simple
terms, can be thought of as the automation of predictive analytics. There are three
types of machine learning algorithms:
1. Supervised learning. Data sets are labelled so that patterns can be detected
and used to label new data sets.
2. Unsupervised learning. Data sets are not labelled and are sorted according to
similarities or differences.
3. Reinforcement learning. Data sets aren't labelled but, after performing an
action or several actions, the AI system is given feedback.
3. Machine vision. This technology gives a machine the ability to see. Machine
vision captures and analyzes visual information using a camera, analog-to-digital
conversion and digital signal processing. It is often compared to human eyesight,
but machine vision isn't bound by biology and can be programmed to see through
walls, for example. It is used in a range of applications from signature identification
to medical image analysis. Computer vision, which is focused on machine-based
image processing, is often conflated with machine vision.
4. Natural language processing (NLP). This is the processing of human language
by a computer program. One of the older and best-known examples of NLP is spam
detection, which looks at the subject line and text of an email and decides if it's
junk. Current approaches to NLP are based on machine learning. NLP tasks include
text translation, sentiment analysis and speech recognition.
5. Robotics. This field of engineering focuses on the design and manufacturing of
robots. Robots are often used to perform tasks that are difficult for humans to
perform or perform consistently. For example, robots are used in assembly lines for
car production or by NASA to move large objects in space. Researchers are also
using machine learning to build robots that can interact in social settings.
6. Self-driving cars. Autonomous vehicles use a combination of computer vision,
image recognition and deep learning to build automated skill at piloting a vehicle
while staying in a given lane and avoiding unexpected obstructions, such as
pedestrians.

Advantages and Disadvantages


Advantages
1. Good at detail-oriented jobs;
2. Reduced time for data-heavy tasks;
3. Delivers consistent results; and
4. AI-powered virtual agents are always available.
Disadvantages
1. Expensive;
2. Requires deep technical expertise;
3. Limited supply of qualified workers to build AI tools;
4. Only knows what it's been shown; and
5. Lack of ability to generalize from one task to another.
Applications of AI
1. AI in healthcare. The biggest bets are on improving patient outcomes and
reducing costs. Companies are applying machine learning to make better and faster
diagnoses than humans. One of the best-known healthcare technologies is IBM
Watson. It understands natural language and can respond to questions asked of it.
The system mines patient data and other available data sources to form a hypothesis,
which it then presents with a confidence scoring schema. Other AI applications
include using online virtual health assistants and chatbots to help patients and
healthcare customers find medical information, schedule appointments, understand
the billing process and complete other administrative processes. An array of AI
technologies is also being used to predict, fight and understand pandemics such as
COVID-19.
2. AI in business. Machine learning algorithms are being integrated into analytics
and customer relationship management (CRM) platforms to uncover information
on how to better serve customers. Chatbots have been incorporated into websites to
provide immediate service to customers. Automation of job positions has also
become a talking point among academics and IT analysts.
3. AI in education. AI can automate grading, giving educators more time. It can
assess students and adapt to their needs, helping them work at their own pace. AI
tutors can provide additional support to students, ensuring they stay on track. And
it could change where and how students learn, perhaps even replacing some
teachers.
4. AI in finance. AI in personal finance applications, such as Intuit Mint or
TurboTax, is disrupting financial institutions. Applications such as these collect
personal data and provide financial advice. Other programs, such as IBM Watson,
have been applied to the process of buying a home. Today, artificial intelligence
software performs much of the trading on Wall Street.
5. AI in law. The discovery process -- sifting through documents -- in law is often
overwhelming for humans. Using AI to help automate the legal industry's labor-
intensive processes is saving time and improving client service. Law firms are using
machine learning to describe data and predict outcomes, computer vision to classify
and extract information from documents and natural language processing to
interpret requests for information.
6. AI in manufacturing. Manufacturing has been at the forefront of incorporating
robots into the workflow. For example, the industrial robots that were at one time
programmed to perform single tasks and separated from human workers,
increasingly function as cobots: Smaller, multitasking robots that collaborate with
humans and take on responsibility for more parts of the job in warehouses, factory
floors and other workspaces.
7. AI in banking. Banks are successfully employing chatbots to make their
customers aware of services and offerings and to handle transactions that don't
require human intervention. AI virtual assistants are being used to improve and cut
the costs of compliance with banking regulations. Banking organizations are also
using AI to improve their decision-making for loans, and to set credit limits and
identify investment opportunities.
8. AI in transportation. In addition to AI's fundamental role in operating
autonomous vehicles, AI technologies are used in transportation to manage traffic,
predict flight delays, and make ocean shipping safer and more efficient.
9. Security. AI and machine learning are at the top of the buzzword list security
vendor’s use today to differentiate their offerings. Those terms also represent truly
viable technologies. Organizations use machine learning in security information
and event management (SIEM) software and related areas to detect anomalies and
identify suspicious activities that indicate threats. By analyzing data and using logic
to identify similarities to known malicious code, AI can provide alerts to new and
emerging attacks much sooner than human employees and previous technology
iterations. The maturing technology is playing a big role in helping organizations
fight off cyber-attacks.
Components of AI

Categorization of AI
Weak AI, also known as narrow AI, is an AI system that is designed and trained to
complete a specific task. Industrial robots and virtual personal assistants, such as
Apple's Siri, use weak AI.
Strong AI, also known as artificial general intelligence (AGI), describes
programming that can replicate the cognitive abilities of the human brain. When
presented with an unfamiliar task, a strong AI system can use fuzzy logic to apply
knowledge from one domain to another and find a solution autonomously. In theory,
a strong AI program should be able to pass both a Turing Test and the Chinese room
test.
AI programming focuses on three cognitive skills: Learning, Reasoning and Self-
correction.
Learning processes: This aspect of AI programming focuses on acquiring data
and creating rules for how to turn the data into actionable information. The rules,
which are called algorithms, provide computing devices with step-by-step
instructions for how to complete a specific task.
Reasoning processes: This aspect of AI programming focuses on choosing the
right algorithm to reach a desired outcome.
Self-correction processes: This aspect of AI programming is designed to
continually fine-tune algorithms and ensure they provide the most accurate results
possible.
Augmented intelligence vs. artificial intelligence
Experts believe the term artificial intelligence is too closely linked to popular
culture, and this has caused the general public to have improbable expectations
about how AI will change the workplace and life in general.
Augmented intelligence. Some researchers and marketers hope the label
augmented intelligence, which has a more neutral connotation, will help people
understand that most implementations of AI will be weak and simply improve
products and services. Examples include automatically surfacing important
information in business intelligence reports or highlighting important information
in legal filings.
Artificial intelligence. True AI, or artificial general intelligence, is closely
associated with the concept of the technological singularity -- a future ruled by an
artificial superintelligence that far surpasses the human brain's ability to understand
it or how it is shaping our reality. This remains within the realm of science fiction,
though some developers are working on the problem. Many believe that
technologies such as quantum computing could play an important role in making
AGI a reality and that we should reserve the use of the term AI for this kind of
general intelligence.
Ethical Use of Artificial Intelligence
While AI tools present a range of new functionality for businesses, the use of
artificial intelligence also raises ethical questions because, for better or worse, an
AI system will reinforce what it has already learned.
This can be problematic because machine learning algorithms, which underpin
many of the most advanced AI tools, are only as smart as the data they are given in
training. Because a human being selects what data is used to train an AI program,
the potential for machine learning bias is inherent and must be monitored closely.
Anyone looking to use machine learning as part of real-world, in-production
systems needs to factor ethics into their AI training processes and strive to avoid
bias. This is especially true when using AI algorithms that are inherently
unexplainable in deep learning and generative adversarial network (GAN)
applications.
Explainability is a potential stumbling block to using AI in industries that operate
under strict regulatory compliance requirements. For example, financial institutions
in the United States operate under regulations that require them to explain their
credit-issuing decisions. When a decision to refuse credit is made by AI
programming, however, it can be difficult to explain how the decision was arrived
at because the AI tools used to make such decisions operate by teasing out subtle
correlations between thousands of variables. When the decision-making process
cannot be explained, the program may be referred to as black box AI.
Despite potential risks, there are currently few regulations governing the use of AI
tools, and where laws do exist, they typically pertain to AI indirectly. For example,
as previously mentioned, United States Fair Lending regulations require financial
institutions to explain credit decisions to potential customers. This limits the extent
to which lenders can use deep learning algorithms, which by their nature are opaque
and lack explainability.
The European Union's General Data Protection Regulation (GDPR) puts strict
limits on how enterprises can use consumer data, which impedes the training and
functionality of many consumer-facing AI applications.
In October 2016, the National Science and Technology Council issued a report
examining the potential role governmental regulation might play in AI
development, but it did not recommend specific legislation be considered.
Crafting laws to regulate AI will not be easy, in part because AI comprises a variety
of technologies that companies use for different ends, and partly because
regulations can come at the cost of AI progress and development. The rapid
evolution of AI technologies is another obstacle to forming meaningful regulation
of AI. Technology breakthroughs and novel applications can make existing laws
instantly obsolete. For example, existing laws regulating the privacy of
conversations and recorded conversations do not cover the challenge posed by voice
assistants like Amazon's Alexa and Apple's Siri that gather but do not distribute
conversation -- except to the companies' technology teams which use it to improve
machine learning algorithms. And, of course, the laws that governments do manage
to craft to regulate AI don't stop criminals from using the technology with malicious
intent.
Cognitive computing and AI
The terms AI and cognitive computing are sometimes used interchangeably, but,
generally speaking, the label AI is used in reference to machines that replace human
intelligence by simulating how we sense, learn, process and react to information in
the environment.
The label cognitive computing is used in reference to products and services that
mimic and augment human thought processes.
Types of AI
AI can be categorized into four types, beginning with the task-specific intelligent
systems in wide use today and progressing to sentient systems, which do not yet
exist. The categories are as follows:
Type 1: Reactive machines. These AI systems have no memory and are task
specific. An example is Deep Blue, the IBM chess program that beat Garry
Kasparov in the 1990s. Deep Blue can identify pieces on the chessboard and make
predictions, but because it has no memory, it cannot use past experiences to inform
future ones.
Type 2: Limited memory. These AI systems have memory, so they can use past
experiences to inform future decisions. Some of the decision-making functions in
self-driving cars are designed this way.
Type 3: Theory of mind. Theory of mind is a psychology term. When applied to
AI, it means that the system would have the social intelligence to understand
emotions. This type of AI will be able to infer human intentions and predict
behavior, a necessary skill for AI systems to become integral members of human
teams.
Type 4: Self-awareness. In this category, AI systems have a sense of self, which
gives them consciousness. Machines with self-awareness understand their own
current state. This type of AI does not yet exist.
An AI system is composed of an agent and its environment. The agents act in their
environment. The environment may contain other agents.
An agent is anything that can perceive its environment through sensors and acts
upon that environment through effectors.
 A human agent has sensory organs such as eyes, ears, nose, tongue and skin
parallel to the sensors, and other organs such as hands, legs, mouth, for effectors.
 A robotic agent replaces cameras and infrared range finders for the sensors,
and various motors and actuators for effectors.
 A software agent has encoded bit strings as its programs and actions.

AI Problems:
Artificial Intelligence (AI) is the toast of every technology driven company.
Integration of AI gives a business a massive amount of transformation opportunities
to leverage the value chain. Adopting and integrating AI technologies is a roller-
coaster ride no matter how business-friendly it may sound. A report says, around
94% of the enterprises face potential Artificial Intelligence problems while
implementing it.
1. Lack of technical knowledge
To integrate, deploy and implement AI applications in the enterprise, the
organization must have the knowledge of the current AI advancement and
technologies as well as its shortcomings. The lack of technical know-how is
hindering the adoption of this niche domain in most of the organization. Only
6% enterprises, currently, having a smooth ride adopting AI technologies.
Enterprise requires a specialist to identify the roadblocks in the deployment
process. Skilled human resources would also help the teamwork with Return
on in tracking of adopting AI/ML solutions.

2. The price factor


Small and mid-sized organization struggles a lot when it comes to adopting
AI technologies as it is a costly affair. Even big firms like Facebook, Apple,
Microsoft, Google, Amazon (FAMGA) allocate a separate budget for
adopting and implementing AI technologies.

3. Data acquisition and storage


One of the biggest Artificial Intelligence problems is data acquisition and
storage. Business AI systems depend on sensor data as its input. For
validation of AI, a mountain of sensor data is collected. Irrelevant and noisy
datasets may cause obstruction as they are hard to store and analyze.

AI works best when it has a good amount of quality data available to it. The
algorithm becomes strong and performs well as the relevant data grows. The
AI system fails badly when enough quality data isn’t fed into it.

With small input variations in data quality having such profound results on
outcomes and predictions, there’s a real need to ensure greater stability and
accuracy in Artificial Intelligence. Furthermore, in some industries, such as
industrial applications, sufficient data might not be available, limiting AI
adoption.

4. Rare and expensive workforce


As mentioned above, adoption and deployment of AI technologies require
specialists like data scientists, data engineer and other SMEs (Subject Matter
Experts). These experts are expensive and rare in the current marketplace.
Small and medium-sized enterprises fall short of their tight budget to bring
in the manpower according to the requirement of the project.

5. Issue of responsibility
The implementation of AI application comes with great responsibility. Any
specific individual must bear the burden of any sort of hardware
malfunctions. Earlier, it was relatively easy to determine whether an incident
was the result of the actions of a user, developer or manufacturer.

6. Ethical challenges
One of the major AI problems that are yet be tackled are the ethics and
morality. The way how the developers are technically grooming the AI bots
to perfection where it can flawlessly imitate human conversations, making it
increasingly tough to spot a difference between a machine and a real
customer service rep.

Artificial intelligence algorithm predicts based on the training given to it. The
algorithm will label things as per the assumption of data it is trained on.
Hence, it will simply ignore the correctness of data, for example- if the
algorithm is trained on data that reflects racism or sexism, the result of
prediction will mirror back it instead of correcting it automatically. There are
some current algorithms that have mislabeled black people as ‘gorillas’.
Therefore, we need to make sure that the algorithms are fair, especially when
it is used by private and corporate individuals.

7. Lack of computation speed


AI, Machine learning and deep learning solutions require a high degree of
computation speeds offered only by high-end processors. Larger
infrastructure requirements and pricing associated with these processors has
become a hindrance in their general adoption of the AI technology. In this
scenario, cloud computing environment and multiple processors running in
parallel offer a potent alternative to cater to these computational
requirements. As the volume of data available for processing grows
exponentially, the computation speed requirements will grow with it. It is
imperative to develop next-gen computational infrastructure solutions.

8. Legal Challenges
An AI application with an erroneous algorithm and data governance can
cause legal challenges for the company. This is yet again one of the biggest
Artificial Intelligence problems that a developer faces in a real world. Flawed
algorithm made with an inappropriate set of data can leave a colossal dent in
an organization’s profit. An erroneous algorithm will always make incorrect
and unfavorable predictions. Problems like data breach can be a consequence
of weak & poor data governance–how? To an algorithm, a user’s PII
(personal identifiable information) acts as a feed stock which may slip into
the hands of hackers. Consequently, the organization will fall into the traps
of legal challenges.

9. AI Myths & Expectation:


There’s a quite discrepancy between the actual potential of the AI system and
the expectations of this generation. Media says, Artificial Intelligence, with
its cognitive capabilities, will replace human’s jobs.

However, the IT industry has a challenge on their hands to address these lofty
expectations by accurately conveying that AI is just a tool that can operate
only with the indulgence of human brains. AI can definitely boost the
outcome of something that will replace human roles like automation of
routine or common work, optimizations of every industrial work, data-driven
predictions, etc.
However, in most of the occasions (particularly in highly specialized roles),
AI cannot substitute the caliber of the human brain and what it brings to the
table.

Not everything you hear about AI is true. AI is often over-hyped. Read this
article from Forbes to clear all your misconceptions about the AI
technologies.

10. Difficulty of assessing vendors


In any emerging field, a tech procurement is quite challenging as AI is
particularly vulnerable. Businesses face a lot of problems to know how exactly
they can use AI effectively as many non-AI companies engage in AI washing,
some organizations overstate.
Agent Terminology
 Performance Measure of Agent − It is the criteria, which determines how
successful an agent is.
 Behavior of Agent − It is the action that agent performs after any given
sequence of percepts.
 Percept − It is agent’s perceptual inputs at a given instance.
 Percept Sequence − It is the history of all that an agent has perceived till date.
 Agent Function − It is a map from the precept sequence to an action.

Rationality
Rationality is nothing but status of being reasonable, sensible, and having good
sense of judgment.
Rationality is concerned with expected actions and results depending upon what the
agent has perceived. Performing actions with the aim of obtaining useful
information is an important part of rationality.
An ideal rational agent is the one, which is capable of doing expected actions to
maximize its performance measure, on the basis of −
 Its percept sequence
 Its built-in knowledge base
Rationality of an agent depends on the following −
 The performance measures, which determine the degree of success.
 Agent’s Percept Sequence till now.
 The agent’s prior knowledge about the environment.
 The actions that the agent can carry out.
A rational agent always performs right action, where the right action means the
action that causes the agent to be most successful in the given percept sequence.
The problem the agent solves is characterized by Performance Measure,
Environment, Actuators, and Sensors (PEAS).
The Structure of Intelligent Agents
Agent’s structure can be viewed as −

 Agent = Architecture + Agent Program


 Architecture = the machinery that an agent executes on.
 Agent Program = an implementation of an agent function.

Simple Reflex Agents

 They choose actions only based on the current percept.


 They are rational only if a correct decision is made only on the basis of
current precept.
 Their environment is completely observable.
Condition-Action Rule − It is a rule that maps a state (condition) to an action.
Model Based Reflex Agents
They use a model of the world to choose their actions. They maintain an internal
state.
Model − knowledge about “how the things happen in the world”.
Internal State − It is a representation of unobserved aspects of current state
depending on percept history.
Updating the state requires the information about −
 How the world evolves.
 How the agent’s actions affect the world.
Goal Based Agents
They choose their actions in order to achieve goals. Goal-based approach is more
flexible than reflex agent since the knowledge supporting a decision is explicitly
modeled, thereby allowing for modifications.
Goal − It is the description of desirable situations.

Utility Based Agents


They choose actions based on a preference (utility) for each state.
Goals are inadequate when −
 There are conflicting goals, out of which only few can be achieved.
 Goals have some uncertainty of being achieved and you need to weigh
likelihood of success against the importance of a goal.

Learning Agent
A learning agent in AI is the type of agent which can learn from its past experiences
or it has learning capabilities.
It starts to act with basic knowledge and then able to act and adapt automatically
through learning.
A learning agent has mainly four conceptual components, which are:
i. Learning element :It is responsible for making improvements by learning
from the environment
ii. Critic: Learning element takes feedback from critic which describes how
well the agent is doing with respect to a fixed performance standard.
iii. Performance element: It is responsile for selecting external action
iv. Problem Generator: This component is responsible for suggesting actions
that will lead to new and informative experiences.
The Nature of Environments
Some programs operate in the entirely artificial environment confined to keyboard
input, database, computer file systems and character output on a screen.
In contrast, some software agents (software robots or softbots) exist in rich,
unlimited softbots domains. The simulator has a very detailed, complex
environment. The software agent needs to choose from a long array of actions in
real time. A softbot designed to scan the online preferences of the customer and
show interesting items to the customer works in the real as well as an artificial
environment.
The most famous artificial environment is the Turing Test environment, in which
one real and other artificial agents are tested on equal ground. This is a very
challenging environment as it is highly difficult for a software agent to perform as
well as a human.
Turing Test
The success of an intelligent behavior of a system can be measured with Turing
Test.
Two persons and a machine to be evaluated participate in the test. Out of the two
persons, one plays the role of the tester. Each of them sits in different rooms. The
tester is unaware of who is machine and who is a human. He interrogates the
questions by typing and sending them to both intelligences, to which he receives
typed responses.
This test aims at fooling the tester. If the tester fails to determine machine’s response
from the human response, then the machine is said to be intelligent.
Properties of Environment
The environment has multifold properties −
Discrete / Continuous − If there are a limited number of distinct, clearly defined,
states of the environment, the environment is discrete (For example, chess);
otherwise it is continuous (For example, driving).
Observable / Partially Observable − If it is possible to determine the complete
state of the environment at each time point from the percepts it is observable;
otherwise it is only partially observable.
Static / Dynamic − If the environment does not change while an agent is acting,
then it is static; otherwise it is dynamic.
Single agent / Multiple agents − the environment may contain other agents which
may be of the same or different kind as that of the agent.
Accessible / Inaccessible − If the agent’s sensory apparatus can have access to the
complete state of the environment, then the environment is accessible to that agent.
Deterministic / Non-deterministic − If the next state of the environment is
completely determined by the current state and the actions of the agent, then the
environment is deterministic; otherwise it is non-deterministic.
Episodic / Non-episodic − In an episodic environment, each episode consists of the
agent perceiving and then acting. The quality of its action depends just on the
episode itself. Subsequent episodes do not depend on the actions in the previous
episodes. Episodic environments are much simpler because the agent does not need
to think ahead.
Problem-solving agents:
In Artificial Intelligence, Search techniques are universal problem-solving
methods. Rational agents or Problem-solving agents in AI mostly used these
search strategies or algorithms to solve a specific problem and provide the best
result. Problem-solving agents are the goal-based agents and use atomic
representation.
Search Algorithm Terminologies (Search Strategies):
1. Search
Searching is a step by step procedure to solve a search-problem in a given search
space. A search problem can have three main factors:
 Search Space: Search space represents a set of possible solutions, which a
system may have.
 Start State: It is a state from where agent begins the search.
 Goal test: It is a function which observe the current state and returns whether
the goal state is achieved or not.
2. Search Trees
A tree representation of search problem is called Search tree. The root of the search
tree is the root node which is corresponding to the initial state.
3. Actions
It gives the description of all the available actions to the agent.
4. Transition Model
A description of what each action do, can be represented as a transition model.
5. Path Cost
It is a function which assigns a numeric cost to each path.
6. Solution
It is an action sequence which leads from the start node to the goal node.
7. Optimal Solution
If a solution has the lowest cost among all solutions.
Properties of Search Algorithms:
Following are the four essential properties of search algorithms:
Completeness: A search algorithm is said to be complete if it guarantees to return
a solution if at least any solution exists for any random input.
Optimality: If a solution found for an algorithm is guaranteed to be the best solution
(lowest path cost) among all other solutions, then such a solution for is said to be
an optimal solution.
Time Complexity: Time complexity is a measure of time for an algorithm to
complete its task.
Space Complexity: It is the maximum storage space required at any point during
the search, as the complexity of the problem.
Types of search algorithms
Based on the search problems we can classify the search algorithms into
uninformed (Blind search) search and informed search (Heuristic search)
algorithms.
Uninformed/Blind Search:
The uninformed search does not contain any domain knowledge such as closeness,
the location of the goal. It operates in a brute-force way as it only includes
information about how to traverse the tree and how to identify leaf and goal nodes.
Uninformed search applies a way in which search tree is searched without any
information about the search space like initial state operators and test for the goal,
so it is also called blind search. It examines each node of the tree until it achieves
the goal node.
It can be divided into five main types:
 Breadth-first search
 Uniform cost search
 Depth-first search
 Iterative deepening depth-first search
 Bidirectional Search
Uninformed Search Algorithms
Uninformed search is a class of general-purpose search algorithms which
operates in brute force-way. Uninformed search algorithms do not have
additional information about state or search space other than how to traverse the
tree, so it is also called blind search.
Following are the various types of uninformed search algorithms:
1. Breadth-first Search
2. Depth-first Search
3. Depth-limited Search
4. Iterative deepening depth-first search
5. Uniform cost search
6. Bidirectional Search
1. Breadth-first Search:
 Breadth-first search is the most common search strategy for traversing a tree
or graph. This algorithm searches breadthwise in a tree or graph, so it is called
breadth-first search.
 BFS algorithm starts searching from the root node of the tree and expands all
successor node at the current level before moving to nodes of next level.
 The breadth-first search algorithm is an example of a general-graph search
algorithm.
 Breadth-first search implemented using FIFO queue data structure.
Advantages:
 BFS will provide a solution if any solution exists.
 If there are more than one solutions for a given problem, then BFS will
provide the minimal solution which requires the least number of steps.
Disadvantages:
 It requires lots of memory since each level of the tree must be saved into memory
to expand the next level.
 BFS needs lots of time if the solution is far away from the root node.
Example:
In the below tree structure, we have shown the traversing of the tree using BFS
algorithm from the root node S to goal node K. BFS search algorithm traverse in
layers, so it will follow the path which is shown by the dotted arrow, and the
traversed path will be:
Time Complexity: Time Complexity of BFS algorithm can be obtained by the
number of nodes traversed in BFS until the shallowest Node. Where the d= depth
of shallowest solution and b is a node at every state.
T (b) = 1+b2+b3+.......+ bd= O (bd)
Space Complexity: Space complexity of BFS algorithm is given by the Memory
size of frontier which is O(bd).
Completeness: BFS is complete, which means if the shallowest goal node is at some
finite depth, then BFS will find a solution.
Optimality: BFS is optimal if path cost is a non-decreasing function of the depth of
the node.
2. Depth-first Search
 Depth-first search is a recursive algorithm for traversing a tree or graph data
structure.
 It is called the depth-first search because it starts from the root node and
follows each path to its greatest depth node before moving to the next path.
 DFS uses a stack data structure for its implementation.
 The process of the DFS algorithm is similar to the BFS algorithm.
Advantage:
 DFS requires very less memory as it only needs to store a stack of the
nodes on the path from root node to the current node.
 It takes less time to reach to the goal node than BFS algorithm (if it
traverses in the right path).
Disadvantages:
 There is the possibility that many states keep re-occurring, and there is no
guarantee of finding the solution.
 DFS algorithm goes for deep down searching and sometime it may go to
the infinite loop.
Example:
In the below search tree, we have shown the flow of depth-first search, and
it will follow the order as:
Root node--->Left node ----> right node.
It will start searching from root node S, and traverse A, then B, then D and
E, after traversing E, it will backtrack the tree as E has no other successor
and still goal node is not found. After backtracking it will traverse node C
and then G, and here it will terminate as it found goal node.
Completeness: DFS search algorithm is complete within finite state space as
it will expand every node within a limited search tree.
Time Complexity: Time complexity of DFS will be equivalent to the node
traversed by the algorithm. It is given by:
T(n)= 1+ n2+ n3 +.........+ nm=O(nm)
Where, m= maximum depth of any node and this can be much larger than d
(Shallowest solution depth)
Space Complexity: DFS algorithm needs to store only single path from the
root node, hence space complexity of DFS is equivalent to the size of the
fringe set, which is O(bm).
Optimal: DFS search algorithm is non-optimal, as it may generate a large
number of steps or high cost to reach to the goal node.
3. Depth-Limited Search Algorithm:
A depth-limited search algorithm is similar to depth-first search with a
predetermined limit. Depth-limited search can solve the drawback of the
infinite path in the Depth-first search. In this algorithm, the node at the depth
limit will treat as it has no successor nodes further.
Depth-limited search can be terminated with two Conditions of failure:
 Standard failure value: It indicates that problem does not have any
solution.
 Cutoff failure value: It defines no solution for the problem within a
given depth limit.
Advantage:
Depth-limited search is Memory efficient.
Disadvantages:
o Depth-limited search also has a disadvantage of incompleteness.
o It may not be optimal if the problem has more than one solution.
Example:
Completeness: DLS search algorithm is complete if the solution is above the depth-
limit.
Time Complexity: Time complexity of DLS algorithm is O(bℓ).
Space Complexity: Space complexity of DLS algorithm is O(b×ℓ).
Optimal: Depth-limited search can be viewed as a special case of DFS, and it is
also not optimal even if ℓ>d.
4. Uniform-cost Search Algorithm:
Uniform-cost search is a searching algorithm used for traversing a weighted tree or
graph. This algorithm comes into play when a different cost is available for each
edge. The primary goal of the uniform-cost search is to find a path to the goal node
which has the lowest cumulative cost. Uniform-cost search expands nodes
according to their path costs form the root node. It can be used to solve any
graph/tree where the optimal cost is in demand. A uniform-cost search algorithm is
implemented by the priority queue. It gives maximum priority to the lowest
cumulative cost. Uniform cost search is equivalent to BFS algorithm if the path cost
of all edges is the same.
Advantage:
 Uniform cost search is optimal because at every state the path with the least
cost is chosen.
Disadvantage:
 It does not care about the number of steps involve in searching and only
concerned about path cost. Due to which this algorithm may be stuck in an
infinite loop.
Example:

Completeness:
Uniform-cost search is complete, such as if there is a solution, UCS will find it.
Time Complexity:
Let C* is Cost of the optimal solution, and ε is each step to get closer to the goal
node. Then the number of steps is = C*/ε+1. Here we have taken +1, as we start
from state 0 and end to C*/ε.
Hence, the worst-case time complexity of Uniform-cost search is O(b1 + [C*/ε])/.
Space Complexity:
The same logic is for space complexity so, the worst-case space complexity of
Uniform-cost search is O(b1 + [C*/ε]).
Optimal:
Uniform-cost search is always optimal as it only selects a path with the lowest
path cost.
5. Iterative deepening depth-first Search:
The iterative deepening algorithm is a combination of DFS and BFS algorithms.
This search algorithm finds out the best depth limit and does it by gradually
increasing the limit until a goal is found.
This algorithm performs depth-first search up to a certain "depth limit", and it
keeps increasing the depth limit after each iteration until the goal node is found.
This Search algorithm combines the benefits of Breadth-first search's fast search
and depth-first search's memory efficiency.
The iterative search algorithm is useful uninformed search when search space is
large, and depth of goal node is unknown.
Advantages:
 It combines the benefits of BFS and DFS search algorithm in terms of fast
search and memory efficiency.
Disadvantages:
 The main drawback of IDDFS is that it repeats all the work of the previous
phase.
Example:
Following tree structure is showing the iterative deepening depth-first search.
IDDFS algorithm performs various iterations until it does not find the goal node.
The iteration performed by the algorithm is given as:
1'st Iteration-----> A
2'nd Iteration----> A, B, C
3'rd Iteration------>A, B, D, E, C, F, G
4'th Iteration------>A, B, D, H, I, E, C, F, K, G
In the fourth iteration, the algorithm will find the goal node.
Completeness:
This algorithm is complete is ifthe branching factor is finite.
Time Complexity:
Let's suppose b is the branching factor and depth is d then the worst-case time
complexity is O(bd).
Space Complexity:
The space complexity of IDDFS will be O(bd).
Optimal:
IDDFS algorithm is optimal if path cost is a non- decreasing function of the
depth of the node.
6. Bidirectional Search Algorithm:
Bidirectional search algorithm runs two simultaneous searches, one form initial
state called as forward-search and other from goal node called as backward-
search, to find the goal node. Bidirectional search replaces one single search
graph with two small subgraphs in which one starts the search from an initial
vertex and other starts from goal vertex. The search stops when these two graphs
intersect each other.
Bidirectional search can use search techniques such as BFS, DFS, DLS, etc.
Advantages:
 Bidirectional search is fast.
 Bidirectional search requires less memory
Disadvantages:
 Implementation of the bidirectional search tree is difficult.
 In bidirectional search, one should know the goal state in advance.
Example:
In the below search tree, bidirectional search algorithm is applied. This
algorithm divides one graph/tree into two sub-graphs. It starts traversing from
node 1 in the forward direction and starts from goal node 16 in the backward
direction.
The algorithm terminates at node 9 where two searches meet.
Completeness: Bidirectional Search is complete if we use BFS in both searches.
Time Complexity: Time complexity of bidirectional search using BFS is O(bd).
Space Complexity: Space complexity of bidirectional search is O(bd).
Optimal: Bidirectional search is Optimal.
Informed Search
Informed search algorithms use domain knowledge. In an informed search, problem
information is available which can guide the search. Informed search strategies can
find a solution more efficiently than an uninformed search strategy. Informed search
is also called a Heuristic search.
A heuristic is a way which might not always be guaranteed for best solutions but
guaranteed to find a good solution in reasonable time.
Informed search can solve much complex problem which could not be solved in
another way.
An example of informed search algorithms is a traveling salesman problem.
 Greedy Search
 A* Search
The informed search algorithm is more useful for large search space. Informed
search algorithm uses the idea of heuristic, so it is also called Heuristic search.
Heuristics function: Heuristic is a function which is used in Informed Search, and
it finds the most promising path. It takes the current state of the agent as its input
and produces the estimation of how close agent is from the goal. The heuristic
method, however, might not always give the best solution, but it guaranteed to find
a good solution in reasonable time. Heuristic function estimates how close a state
is to the goal. It is represented by h(n), and it calculates the cost of an optimal path
between the pair of states. The value of the heuristic function is always positive.
Admissibility of the heuristic function is given as:
h(n) <= h*(n)
Here h(n) is heuristic cost, and h*(n) is the estimated cost. Hence heuristic cost
should be less than or equal to the estimated cost.
Pure Heuristic Search:
Pure heuristic search is the simplest form of heuristic search algorithms. It expands
nodes based on their heuristic value h(n). It maintains two lists, OPEN and
CLOSED list. In the CLOSED list, it places those nodes which have already
expanded and in the OPEN list, it places nodes which have yet not been expanded.
On each iteration, each node n with the lowest heuristic value is expanded and
generates all its successors and n is placed to the closed list. The algorithm continues
unit a goal state is found.
In the informed search we will discuss two main algorithms which are given below:
 Best First Search Algorithm(Greedy search)
 A* Search Algorithm
1.) Best-first Search Algorithm (Greedy Search):
Greedy best-first search algorithm always selects the path which appears best at that
moment. It is the combination of depth-first search and breadth-first search
algorithms. It uses the heuristic function and search. Best-first search allows us to
take the advantages of both algorithms. With the help of best-first search, at each
step, we can choose the most promising node. In the best first search algorithm, we
expand the node which is closest to the goal node and the closest cost is estimated
by heuristic function, i.e.
f(n)= g(n).
Were, h(n)= estimated cost from node n to the goal.
The greedy best first algorithm is implemented by the priority queue.
Best first search algorithm:
Step 1: Place the starting node into the OPEN list.
Step 2: If the OPEN list is empty, Stop and return failure.
Step 3: Remove the node n, from the OPEN list which has the lowest value of h(n),
and places it in the CLOSED list.
Step 4: Expand the node n, and generate the successors of node n.
Step 5: Check each successor of node n, and find whether any node is a goal node
or not. If any successor node is goal node, then return success and terminate the
search, else proceed to Step 6.
Step 6: For each successor node, algorithm checks for evaluation function f(n), and
then check if the node has been in either OPEN or CLOSED list. If the node has not
been in both list, then add it to the OPEN list.
Step 7: Return to Step 2.
Advantages:
 Best first search can switch between BFS and DFS by gaining the advantages
of both the algorithms.
 This algorithm is more efficient than BFS and DFS algorithms.
Disadvantages:
 It can behave as an unguided depth-first search in the worst case scenario.
 It can get stuck in a loop as DFS.
This algorithm is not optimal.
Example:
Consider the below search problem, and we will traverse it using greedy best-first
search. At each iteration, each node is expanded using evaluation function f(n)=h(n)
, which is given in the below table.

In this search example, we are using two lists which are OPEN and CLOSED Lists.
Following are the iteration for traversing the above example.
Expand the nodes of S and put in the CLOSED list
Initialization: Open [A, B], Closed [S]
Iteration 1: Open [A], Closed [S, B]
Iteration 2: Open [E, F, A], Closed [S, B]
: Open [E, A], Closed [S, B, F]
Iteration 3: Open [I, G, E, A], Closed [S, B, F]
: Open [I, E, A], Closed [S, B, F, G]
Hence the final solution path will be: S----> B----->F----> G
Time Complexity: The worst case time complexity of Greedy best first search is
O(bm)
Space Complexity: The worst case space complexity of Greedy best first search is
O(bm). Where, m is the maximum depth of the search space.
Complete: Greedy best-first search is also incomplete, even if the given state space
is finite.
Optimal: Greedy best first search algorithm is not optimal.
2.) A* Search Algorithm:
A* search is the most commonly known form of best-first search. It uses heuristic
function h(n), and cost to reach the node n from the start state g(n). It has combined
features of UCS and greedy best-first search, by which it solve the problem
efficiently. A* search algorithm finds the shortest path through the search space
using the heuristic function. This search algorithm expands less search tree and
provides optimal result faster. A* algorithm is similar to UCS except that it uses
g(n)+h(n) instead of g(n).
In A* search algorithm, we use search heuristic as well as the cost to reach the node.
Hence we can combine both costs as following, and this sum is called as a fitness
number.

Algorithm of A* search:
Step1: Place the starting node in the OPEN list.
Step 2: Check if the OPEN list is empty or not, if the list is empty then return failure
and stops.
Step 3: Select the node from the OPEN list which has the smallest value of
evaluation function (g+h), if node n is goal node then return success and stop,
otherwise
Step 4: Expand node n and generate all of its successors, and put n into the closed
list. For each successor n', check whether n' is already in the OPEN or CLOSED
list, if not then compute evaluation function for n' and place into Open list.
Step 5: Else if node n' is already in OPEN and CLOSED, then it should be attached
to the back pointer which reflects the lowest g(n') value.
Step 6: Return to Step 2
Advantages:
 A* search algorithm is the best algorithm than other search algorithms.
 A* search algorithm is optimal and complete.
 This algorithm can solve very complex problems.
Disadvantages:
 It does not always produce the shortest path as it mostly based on heuristics
and approximation.
 A* search algorithm has some complexity issues.
 The main drawback of A* is memory requirement as it keeps all generated
nodes in the memory, so it is not practical for various large-scale problems.
Example:
In this example, we will traverse the given graph using the A* algorithm. The
heuristic value of all states is given in the below table so we will calculate the f(n)
of each state using the formula f(n)= g(n) + h(n), where g(n) is the cost to reach any
node from start state.
Here we will use OPEN and CLOSED list.

Solution:
Initialization: {(S, 5)}
Iteration1: {(S--> A, 4), (S-->G, 10)}
Iteration2: {(S--> A-->C, 4), (S--> A-->B, 7), (S-->G, 10)}
Iteration3: {(S--> A-->C--->G, 6), (S--> A-->C--->D, 11), (S--> A-->B, 7), (S--
>G, 10)}
Iteration 4 will give the final result, as S--->A--->C--->G it provides the optimal
path with cost 6.
Points to remember:
 A* algorithm returns the path which occurred first, and it does not search for
all remaining paths.
 The efficiency of A* algorithm depends on the quality of heuristic.
 A* algorithm expands all nodes which satisfy the condition f(n)
Complete: A* algorithm is complete as long as:
 Branching factor is finite.
 Cost at every action is fixed.
Optimal: A* search algorithm is optimal if it follows below two conditions:
Admissible: the first condition requires for optimality is that h(n) should be an
admissible heuristic for A* tree search. An admissible heuristic is optimistic in
nature.
Consistency: Second required condition is consistency for only A* graph-search.
If the heuristic function is admissible, then A* tree search will always find the least
cost path.
Time Complexity: The time complexity of A* search algorithm depends on
heuristic function, and the number of nodes expanded is exponential to the depth of
solution d. So the time complexity is O(b^d), where b is the branching factor.
Space Complexity: The space complexity of A* search algorithm is O(b^d)
Hill Climbing Algorithm
 Hill climbing algorithm is a local search algorithm which continuously
moves in the direction of increasing elevation/value to find the peak of the
mountain or best solution to the problem. It terminates when it reaches a peak
value where no neighbor has a higher value.
 Hill climbing algorithm is a technique which is used for optimizing the
mathematical problems. One of the widely discussed examples of Hill
climbing algorithm is Traveling-salesman Problem in which we need to
minimize the distance traveled by the salesman.
 It is also called greedy local search as it only looks to its good immediate
neighbor state and not beyond that.
 A node of hill climbing algorithm has two components which are state and
value.
 Hill Climbing is mostly used when a good heuristic is available.
 In this algorithm, we don't need to maintain and handle the search tree or
graph as it only keeps a single current state.
Features of Hill Climbing:
Following are some main features of Hill Climbing Algorithm:
 Generate and Test variant: Hill Climbing is the variant of Generate and
Test method. The Generate and Test method produce feedback which
helps to decide which direction to move in the search space.
 Greedy approach: Hill-climbing algorithm search moves in the direction
which optimizes the cost.
 No backtracking: It does not backtrack the search space, as it does not
remember the previous states.
State-space Diagram for Hill Climbing:
The state-space landscape is a graphical representation of the hill-climbing
algorithm which is showing a graph between various states of algorithm and
Objective function/Cost.
On Y-axis we have taken the function which can be an objective function or
cost function, and state-space on the x-axis. If the function on Y-axis is cost
then, the goal of search is to find the global minimum and local minimum. If
the function of Y-axis is Objective function, then the goal of the search is to
find the global maximum and local maximum.

Different regions in the state space landscape:


Local Maximum: Local maximum is a state which is better than its neighbor
states, but there is also another state which is higher than it.
Global Maximum: Global maximum is the best possible state of state space
landscape. It has the highest value of objective function.
Current state: It is a state in a landscape diagram where an agent is currently
present.
Flat local maximum: It is a flat space in the landscape where all the neighbor
states of current states have the same value.
Shoulder: It is a plateau region which has an uphill edge.
Types of Hill Climbing Algorithm:
1. Simple hill Climbing:
2. Steepest-Ascent hill-climbing:
3. Stochastic hill Climbing:
1. Simple Hill Climbing:
Simple hill climbing is the simplest way to implement a hill climbing
algorithm. It only evaluates the neighbor node state at a time and selects the
first one which optimizes current cost and set it as a current state. It only
checks it's one successor state, and if it finds better than the current state, then
move else be in the same state. This algorithm has the following features:
 Less time consuming
 Less optimal solution and the solution is not guaranteed
Algorithm for Simple Hill Climbing:
Step 1: Evaluate the initial state, if it is goal state then return success and Stop.
Step 2: Loop Until a solution is found or there is no new operator left to apply.
Step 3: Select and apply an operator to the current state.
Step 4: Check new state:
i. If it is goal state, then return success and quit.
ii. Else if it is better than the current state then assign new state as a
current state.
iii. Else if not better than the current state, then return to step2.
Step 5: Exit.
2. Steepest-Ascent hill climbing:
The steepest-Ascent algorithm is a variation of simple hill climbing algorithm. This
algorithm examines all the neighboring nodes of the current state and selects one
neighbor node which is closest to the goal state. This algorithm consumes more
time as it searches for multiple neighbors.
Algorithm for Steepest-Ascent hill climbing:
Step 1: Evaluate the initial state, if it is goal state then return success and stop, else
make current state as initial state.
Step 2: Loop until a solution is found or the current state does not change.
a. Let SUCC be a state such that any successor of the current state will be better
than it.
b. For each operator that applies to the current state:
i. Apply the new operator and generate a new state.
ii. Evaluate the new state.
iii. If it is goal state, then return it and quit, else compare it to the
SUCC.
iv. If it is better than SUCC, then set new state as SUCC.
v. If the SUCC is better than the current state, then set current state to
SUCC.
Step 5: Exit.
3. Stochastic hill climbing:
Stochastic hill climbing does not examine for all its neighbor before moving.
Rather, this search algorithm selects one neighbor node at random and decides
whether to choose it as a current state or examine another state.
Problems in Hill Climbing Algorithm:
1. Local Maximum: A local maximum is a peak state in the landscape which is
better than each of its neighboring states, but there is another state also present
which is higher than the local maximum.
Solution: Backtracking technique can be a solution of the local maximum in state
space landscape. Create a list of the promising path so that the algorithm can
backtrack the search space and explore other paths as well.

2. Plateau: A plateau is the flat area of the search space in which all the neighbor
states of the current state contains the same value, because of this algorithm does
not find any best direction to move. A hill-climbing search might be lost in the
plateau area.
Solution: The solution for the plateau is to take big steps or very little steps while
searching, to solve the problem. Randomly select a state which is far away from the
current state so it is possible that the algorithm could find non-plateau region.
3. Ridges: A ridge is a special form of the local maximum. It has an area which is
higher than its surrounding areas, but itself has a slope, and cannot be reached in a
single move.
Solution: With the use of bidirectional search, or by moving in different directions,
we can improve this problem.

Simulated Annealing:
A hill-climbing algorithm which never makes a move towards a lower value
guaranteed to be incomplete because it can get stuck on a local maximum. And if
algorithm applies a random walk, by moving a successor, then it may complete but
not efficient. Simulated Annealing is an algorithm which yields both efficiency and
completeness.
In mechanical term Annealing is a process of hardening a metal or glass to a high
temperature then cooling gradually, so this allows the metal to reach a low-energy
crystalline state. The same process is used in simulated annealing in which the
algorithm picks a random move, instead of picking the best move. If the random
move improves the state, then it follows the same path. Otherwise, the algorithm
follows the path which has a probability of less than 1 or it moves downhill and
chooses another path.
CSP (constraint satisfaction problem):
CSPs represent a state with a set of variable/value pairs and represent the conditions
for a solution by a set of constraints on the variables. Many important real-world
problems can be described as CSPs.
CSP (constraint satisfaction problem): Use a factored representation (a set of
variables, each of which has a value) for each state, a problem that is solved when
each variable has a value that satisfies all the constraints on the variable is called a
CSP.
A CSP consists of 3 components:
·X is a set of variables, {X1, …, Xn}.
·D is a set of domains, {D1, …, Dn}, one for each variable.
Each domain Di consists of a set of allowable values, {v1, …, vk} for variable Xi.
·C is a set of constraints that specify allowable combination of values.
A relation can be represented as: a. an explicit list of all tuples of values that satisfy
the constraint; or b. an abstract relation that supports two operations. (e.g. if X1 and
X2 both have the domain {A,B}, the constraint saying “the two variables must have
different values” can be written as a. <(X1,X2),[(A,B),(B,A)]> or b.
<(X1,X2),X1≠X2>.
Each constraint Ci consists of pair <scope, rel>, where scope is a tuple of variables
that participate in the constraint, and rel is a relation that defines the values that
those variables can take on.
Assignment:
Each state in a CSP is defined by an assignment of values to some of the variables,
{Xi=vi, Xj=vj, …};
An assignment that does not violate any constraints is called a consistent or legal
assignment;
A complete assignment is one in which every variable is assigned;
A solution to a CSP is a consistent, complete assignment;
A partial assignment is one that assigns values to only some of the variables.
Map coloring
UNIT II
ADVANCED SEARCH
Advanced Search: Constructing Search Trees, Stochastic Search, A* Search Implementation, Minimax
Search, Alpha-Beta Pruning

BASIC KNOWLEDGE REPRESENTATION AND REASONING: Propositional Logic, First-Order Logic,


Forward Chaining and Backward Chaining, Introduction to Probabilistic Reasoning, Bayes Theorem

Adversarial search or Game Tree search is a search, where we examine the problem which arises when
we try to plan ahead of the world and other agents are planning against us.

In previous topics, it is studied the search strategies which are only associated with a single agent that
aims to find the solution which often expressed in the form of a sequence of actions.

But, there might be some situations where more than one agent is searching for the solution in the
same search space, and this situation usually occurs in game playing.

The environment with more than one agent is termed as multi-agent environment, in which each
agent is an opponent of other agent and playing against each other. Each agent needs to consider the
action of other agent and effect of that action on their performance.

So, Searches in which two or more players with conflicting goals are trying to explore the same search
space for the solution, are called adversarial searches, often known as Games.

Games are modeled as a Search problem and heuristic evaluation function, and these are the two
main factors which help to model and solve games in AI.

Types of Games in AI:

Deterministic Chance Moves

Perfect information Chess, Checkers, go, Othello Backgammon, monopoly

Imperfect information Battleships, blind, tic-tac-toe Bridge, poker, scrabble, nuclear war

Perfect information: A game with the perfect information is that in which agents can look into the
complete board. Agents have all the information about the game, and they can see each other moves
also. Examples are Chess, Checkers, Go, etc.

Imperfect information: If in a game agents do not have all information about the game and not aware
with what's going on, such type of games are called the game with imperfect information, such as tic-
tac-toe, Battleship, blind, Bridge, etc.

Deterministic games: Deterministic games are those games which follow a strict pattern and set of
rules for the games, and there is no randomness associated with them. Examples are chess, Checkers,
Go, tic-tac-toe, etc.

Non-deterministic games: Non-deterministic are those games which have various unpredictable
events and has a factor of chance or luck. This factor of chance or luck is introduced by either dice or
cards. These are random, and each action response is not fixed. Such games are also called as
stochastic games.
Example: Backgammon, Monopoly, Poker, etc.

Zero-Sum Game

 Zero-sum games are adversarial search which involves pure competition.


 In Zero-sum game each agent's gain or loss of utility is exactly balanced by the losses or gains
of utility of another agent.
 One player of the game try to maximize one single value, while other player tries to minimize
it.
 Each move by one player in the game is called as ply.
 Chess and tic-tac-toe are examples of a Zero-sum game.

Zero-sum game: Embedded thinking

The Zero-sum game involved embedded thinking in which one agent or player is trying to figure
out:

 What to do.
 How to decide the move
 Needs to think about his opponent as well
 The opponent also thinks what to do

Each of the players is trying to find out the response of his opponent to their actions. This requires
embedded thinking or backward reasoning to solve the game problems in AI.

Formalization of the problem:

A game can be defined as a type of search in AI which can be formalized of the following elements:

Initial state: It specifies how the game is set up at the start.

Player(s): It specifies which player has moved in the state space.

Action(s): It returns the set of legal moves in state space.

Result(s, a): It is the transition model, which specifies the result of moves in the state space.

Terminal-Test(s): Terminal test is true if the game is over, else it is false at any case. The state where
the game ends is called terminal states.

Utility(s, p): A utility function gives the final numeric value for a game that ends in terminal states s
for player p. It is also called payoff function. For Chess, the outcomes are a win, loss, or draw and its
payoff values are +1, 0, ½. And for tic-tac-toe, utility values are +1, -1, and 0.

Game tree:

A game tree is a tree where nodes of the tree are the game states and Edges of the tree are the moves
by players. Game tree involves initial state, actions function, and result Function.

Example: Tic-Tac-Toe game tree:

The following figure is showing part of the game-tree for tic-tac-toe game. Following are some key
points of the game:
 There are two players MAX and MIN.
 Players have an alternate turn and start with MAX.
 MAX maximizes the result of the game tree
 MIN minimizes the result.

Example Explanation:

 From the initial state, MAX has 9 possible moves as he starts first. MAX place x and MIN place
o, and both player plays alternatively until we reach a leaf node where one player has three
in a row or all squares are filled.
 Both players will compute each node, minimax, the minimax value which is the best
achievable utility against an optimal adversary.
 Suppose both the players are well aware of the tic-tac-toe and playing the best play. Each
player is doing his best to prevent another one from winning. MIN is acting against Max in the
game.
 So in the game tree, we have a layer of Max, a layer of MIN, and each layer is called as Ply.
Max place x, then MIN puts o to prevent Max from winning, and this game continues until the
terminal node.
 In this either MIN wins, MAX wins, or it's a draw. This game-tree is the whole search space of
possibilities that MIN and MAX are playing tic-tac-toe and taking turns alternately.

Hence adversarial Search for the minimax procedure works as follows:


 It aims to find the optimal strategy for MAX to win the game.
 It follows the approach of Depth-first search.
 In the game tree, optimal leaf node could appear at any depth of the tree.
 Propagate the minimax values up to the tree until the terminal node discovered.

In a given game tree, the optimal strategy can be determined from the minimax value of each
node, which can be written as MINIMAX(n). MAX prefer to move to a state of maximum value
and MIN prefer to move to a state of minimum value then:

Mini-Max Algorithm

 Mini-max algorithm is a recursive or backtracking algorithm which is used in decision-


making and game theory. It provides an optimal move for the player assuming that
opponent is also playing optimally.
 Mini-Max algorithm uses recursion to search through the game-tree.
 Min-Max algorithm is mostly used for game playing in AI. Such as Chess, Checkers, tic-tac-
toe, go, and various tow-players game. This Algorithm computes the minimax decision for
the current state.
 In this algorithm two players play the game, one is called MAX and other is called MIN.
 Both the players fight it as the opponent player gets the minimum benefit while they get
the maximum benefit.
 Both Players of the game are opponent of each other, where MAX will select the
maximized value and MIN will select the minimized value.
 The minimax algorithm performs a depth-first search algorithm for the exploration of the
complete game tree.
 The minimax algorithm proceeds all the way down to the terminal node of the tree, then
backtrack the tree as the recursion.

Pseudo-code for MinMax Algorithm:

function minimax(node, depth, maximizingPlayer) is


if depth ==0 or node is a terminal node then
return static evaluation of node

if MaximizingPlayer then // for Maximizer Player


maxEva= -infinity
for each child of node do
eva= minimax(child, depth-1, false)
maxEva= max(maxEva,eva) //gives Maximum of the values
return maxEva

else // for Minimizer player


minEva= +infinity
for each child of node do
eva= minimax(child, depth-1, true)
minEva= min(minEva, eva) //gives minimum of the values
return minEva

Initial call:

Minimax(node, 3, true)

Working of Min-Max Algorithm:

 The working of the minimax algorithm can be easily described using an example. Below
we have taken an example of game-tree which is representing the two-player game.
 In this example, there are two players one is called Maximizer and other is called
Minimizer.
 Maximizer will try to get the Maximum possible score, and Minimizer will try to get the
minimum possible score.
 This algorithm applies DFS, so in this game-tree, we have to go all the way through the
leaves to reach the terminal nodes.
 At the terminal node, the terminal values are given so we will compare those value and
backtrack the tree until the initial state occurs. Following are the main steps involved in
solving the two-player game tree:

Step-1: In the first step, the algorithm generates the entire game-tree and apply the utility
function to get the utility values for the terminal states. In the below tree diagram, let's take
A is the initial state of the tree. Suppose maximizer takes first turn which has worst-case initial
value =- infinity, and minimizer will take next turn which has worst-case initial value = +infinity.
Step 2: Now, first we find the utilities value for the Maximizer, its initial value is -∞, so we will
compare each value in terminal state with initial value of Maximizer and determines the
higher nodes values. It will find the maximum among the all.

o For node D max(-1,- -∞) => max(-1,4)= 4


o For Node E max(2, -∞) => max(2, 6)= 6
o For Node F max(-3, -∞) => max(-3,-5) = -3
o For node G max(0, -∞) = max(0, 7) = 7
Step 3: In the next step, it's a turn for minimizer, so it will compare all nodes
value with +∞, and will find the 3rd layer node values.

o For node B= min(4,6) = 4


o For node C= min (-3, 7) = -3
Step 4: Now it's a turn for Maximizer, and it will again choose the maximum of
all nodes value and find the maximum value for the root node. In this game
tree, there are only 4 layers, hence we reach immediately to the root node, but
in real games, there will be more than 4 layers.

o For node A max(4, -3)= 4


It is the complete workflow of the minimax two player game

Properties of Mini-Max algorithm:

 Complete- Min-Max algorithm is Complete. It will definitely find a solution (if exist), in the
finite search tree.
 Optimal- Min-Max algorithm is optimal if both opponents are playing optimally.
 Time complexity- As it performs DFS for the game-tree, so the time complexity of Min-
Max algorithm is O(bm), where b is branching factor of the game-tree, and m is the
maximum depth of the tree.
 Space Complexity- Space complexity of Mini-max algorithm is also similar to DFS which is
O(bm).

Limitation of the minimax Algorithm:

The main drawback of the minimax algorithm is that it gets really slow for complex games
such as Chess, go, etc. This type of games has a huge branching factor, and the player has lots
of choices to decide. This limitation of the minimax algorithm can be improved from alpha-
beta pruning.

Alpha-Beta Pruning

 Alpha-beta pruning is a modified version of the minimax algorithm. It is an


optimization technique for the minimax algorithm.
 As we have seen in the minimax search algorithm that the number of game states it
has to examine are exponential in depth of the tree. Since we cannot eliminate the
exponent, but we can cut it to half. Hence there is a technique by which without
checking each node of the game tree we can compute the correct minimax decision,
and this technique is called pruning. This involves two threshold parameter Alpha and
beta for future expansion, so it is called alpha-beta pruning. It is also called as Alpha-
Beta Algorithm.
 Alpha-beta pruning can be applied at any depth of a tree, and sometimes it not only
prune the tree leaves but also entire sub-tree.
 The two-parameter can be defined as:
o Alpha: The best (highest-value) choice we have found so far at any point along
the path of Maximizer. The initial value of alpha is -∞.
o Beta: The best (lowest-value) choice we have found so far at any point along
the path of Minimizer. The initial value of beta is +∞.
 The Alpha-beta pruning to a standard minimax algorithm returns the same move as
the standard algorithm does, but it removes all the nodes which are not really
affecting the final decision but making algorithm slow. Hence by pruning these nodes,
it makes the algorithm fast.

Condition for Alpha-beta pruning:

The main condition which required for alpha-beta pruning is:

α>=β

Key points about alpha-beta pruning:

 The Max player will only update the value of alpha.


 The Min player will only update the value of beta.
 While backtracking the tree, the node values will be passed to upper nodes instead of
values of alpha and beta.
 We will only pass the alpha, beta values to the child nodes.

Pseudo-code for Alpha-beta Pruning:

function minimax(node, depth, alpha, beta, maximizingPlayer) is


if depth ==0 or node is a terminal node then
return static evaluation of node

if MaximizingPlayer then // for Maximizer Player


maxEva= -infinity
for each child of node do
eva= minimax(child, depth-1, alpha, beta, False)
maxEva= max(maxEva, eva)
alpha= max(alpha, maxEva)
if beta<=alpha
break
return maxEva

else // for Minimizer player


minEva= +infinity
for each child of node do
eva= minimax(child, depth-1, alpha, beta, true)
minEva= min(minEva, eva)
beta= min(beta, eva)
if beta<=alpha
break
return minEva

Working of Alpha-Beta Pruning:

Example of two-player search tree to understand the working of Alpha-beta pruning

Step 1: At the first step the, Max player will start first move from node A where α= -∞ and
β= +∞, these value of alpha and beta passed down to node B where again α= -∞ and β=
+∞, and Node B passes the same value to its child D.
Step 2: At Node D, the value of α will be calculated as its turn for Max. The value of α is
compared with firstly 2 and then 3, and the max (2, 3) = 3 will be the value of α at node D
and node value will also 3.

Step 3: Now algorithm backtrack to node B, where the value of β will change as this is a
turn of Min, Now β= +∞, will compare with the available subsequent nodes value, i.e.
min (∞, 3) = 3, hence at node B now α= -∞, and β= 3.

In the next step, algorithm traverse the next successor of Node B which is node E, and the
values of α= -∞, and β= 3 will also be passed.

Step 4: At node E, Max will take its turn, and the value of alpha will change. The current
value of alpha will be compared with 5, so max (-∞, 5) = 5, hence at node E α= 5 and β=
3, where α>=β, so the right successor of E will be pruned, and algorithm will not traverse
it, and the value at node E will be 5.
Step 5: At next step, algorithm again backtrack the tree, from node B to node A. At node
A, the value of alpha will be changed the maximum available value is 3 as max (-∞, 3)= 3,
and β= +∞, these two values now passes to right successor of A which is Node C.

At node C, α=3 and β= +∞, and the same values will be passed on to node F.

Step 6: At node F, again the value of α will be compared with left child which is 0, and
max(3,0)= 3, and then compared with right child which is 1, and max(3,1)= 3 still α remains
3, but the node value of F will become 1.
Step 7: Node F returns the node value 1 to node C, at C α= 3 and β= +∞, here the value of
beta will be changed, it will compare with 1 so min (∞, 1) = 1. Now at C, α=3 and β= 1, and
again it satisfies the condition α>=β, so the next child of C which is G will be pruned, and
the algorithm will not compute the entire sub-tree G.
Step 8: C now returns the value of 1 to A here the best value for A is max (3, 1) = 3.
Following is the final game tree which is the showing the nodes which are computed and
nodes which has never computed. Hence the optimal value for the maximizer is 3 for this
example.
Move Ordering in Alpha-Beta pruning:

The effectiveness of alpha-beta pruning is highly dependent on the order in which each
node is examined. Move order is an important aspect of alpha-beta pruning.

It can be of two types:

 Worst ordering: In some cases, alpha-beta pruning algorithm does not prune any of
the leaves of the tree, and works exactly as minimax algorithm. In this case, it also
consumes more time because of alpha-beta factors, such a move of pruning is called
worst ordering. In this case, the best move occurs on the right side of the tree. The
time complexity for such an order is O(bm).
 Ideal ordering: The ideal ordering for alpha-beta pruning occurs when lots of pruning
happens in the tree, and best moves occur at the left side of the tree. We apply DFS
hence it first search left of the tree and go deep twice as minimax algorithm in the
same amount of time. Complexity in ideal ordering is O(b m/2).

Rules to find good ordering:

Following are some rules to find good ordering in alpha-beta pruning:

 Occur the best move from the shallowest node.


 Order the nodes in the tree such that the best nodes are checked first.
 Use domain knowledge while finding the best move. Ex: for Chess, try order: captures
first, then threats, then forward moves, backward moves.
 We can bookkeep the states, as there is a possibility that states may repeat.

KNOWLEDGE-BASED AGENT

 An intelligent agent needs knowledge about the real world for taking decisions and reasoning to
act efficiently.
 Knowledge-based agents are those agents who have the capability of maintaining an internal state
of knowledge, reason over that knowledge, update their knowledge after observations and take
actions. These agents can represent the world with some formal representation and act
intelligently.
 Knowledge-based agents are composed of two main parts:
o Knowledge-base and
o Inference system.

A knowledge-based agent must able to do the following:

 An agent should be able to represent states, actions, etc.


 An agent Should be able to incorporate new percepts
 An agent can update the internal representation of the world
 An agent can deduce the internal representation of the world
 An agent can deduce appropriate actions.

The architecture of knowledge-based agent:

The above diagram is representing a generalized architecture for a knowledge-based agent. The
knowledge-based agent (KBA) take input from the environment by perceiving the environment. The
input is taken by the inference engine of the agent and which also communicate with KB to decide as
per the knowledge store in KB. The learning element of KBA regularly updates the KB by learning new
knowledge.
Knowledge base: Knowledge-base is a central component of a knowledge-based agent, it is also
known as KB. It is a collection of sentences (here 'sentence' is a technical term and it is not identical
to sentence in English). These sentences are expressed in a language which is called a knowledge
representation language. The Knowledge-base of KBA stores fact about the world.

Use of a knowledge base:

Knowledge-base is required for updating knowledge for an agent to learn with experiences and take
action as per the knowledge.

Inference system

Inference means deriving new sentences from old. Inference system allows us to add a new sentence
to the knowledge base. A sentence is a proposition about the world. Inference system applies logical
rules to the KB to deduce new information.

Inference system generates new facts so that an agent can update the KB. An inference system works
mainly in two rules which are given as:

 Forward chaining
 Backward chaining

Operations Performed by KBA

Following are three operations which are performed by KBA in order to show the intelligent behavior:

 TELL: This operation tells the knowledge base what it perceives from the environment.
 ASK: This operation asks the knowledge base what action it should perform.
 Perform: It performs the selected action.

A generic knowledge-based agent:

Following is the structure outline of a generic knowledge-based agents program:

function KB-AGENT(percept):
persistent: KB, a knowledge base
t, a counter, initially 0, indicating time
TELL(KB, MAKE-PERCEPT-SENTENCE(percept, t))
Action = ASK(KB, MAKE-ACTION-QUERY(t))
TELL(KB, MAKE-ACTION-SENTENCE(action, t))
t=t+1
return action

The knowledge-based agent takes percept as input and returns an action as output. The agent
maintains the knowledge base, KB, and it initially has some background knowledge of the real world.
It also has a counter to indicate the time for the whole process, and this counter is initialized with
zero.

Each time when the function is called, it performs its three operations:

 Firstly it TELLs the KB what it perceives.


 Secondly, it asks KB what action it should take
 Third agent program TELLS the KB that which action was chosen.

The MAKE-PERCEPT-SENTENCE generates a sentence as setting that the agent perceived the given
percept at the given time.

The MAKE-ACTION-QUERY generates a sentence to ask which action should be done at the current
time.

MAKE-ACTION-SENTENCE generates a sentence which asserts that the chosen action was
executed.

Various levels of knowledge-based agent:

A knowledge-based agent can be viewed at different levels which are given below:

1. Knowledge level

Knowledge level is the first level of knowledge-based agent, and in this level, we need to specify
what the agent knows, and what the agent goals are. With these specifications, we can fix its
behavior. For example, suppose an automated taxi agent needs to go from a station A to station
B, and he knows the way from A to B, so this comes at the knowledge level.

2. Logical level:

At this level, we understand that how the knowledge representation of knowledge is stored. At
this level, sentences are encoded into different logics. At the logical level, an encoding of
knowledge into logical sentences occurs. At the logical level we can expect to the automated taxi
agent to reach to the destination B.

3. Implementation level:

This is the physical representation of logic and knowledge. At the implementation level agent
perform actions as per logical and knowledge level. At this level, an automated taxi agent actually
implement his knowledge and logic so that he can reach to the destination.

Approaches to designing a knowledge-based agent:

There are mainly two approaches to build a knowledge-based agent:

1. Declarative approach: We can create a knowledge-based agent by initializing with an empty


knowledge base and telling the agent all the sentences with which we want to start with. This
approach is called Declarative approach.

2. Procedural approach: In the procedural approach, we directly encode desired behavior as a


program code. Which means we just need to write a program that already encodes the desired
behavior or agent.

However, in the real world, a successful agent can be built by combining both declarative and
procedural approaches, and declarative knowledge can often be compiled into more efficient
procedural code.

Propositional logic in Artificial intelligence


Propositional logic (PL) is the simplest form of logic where all the statements are made by
propositions. A proposition is a declarative statement which is either true or false. It is a technique
of knowledge representation in logical and mathematical form.

Example:

a) It is Sunday.
b) The Sun rises from West (False proposition)
c) 3+3= 7(False proposition)
d) 5 is a prime number.
Following are some basic facts about propositional logic:

 Propositional logic is also called Boolean logic as it works on 0 and 1.


 In propositional logic, we use symbolic variables to represent the logic, and we
can use any symbol for a representing a proposition, such A, B, C, P, Q, R, etc.
 Propositions can be either true or false, but it cannot be both.
 Propositional logic consists of an object, relations or function, and logical
connectives.
 These connectives are also called logical operators.
 The propositions and connectives are the basic elements of the propositional
logic.
 Connectives can be said as a logical operator which connects two sentences.
 A proposition formula which is always true is called tautology, and it is also
called a valid sentence.
 A proposition formula which is always false is called Contradiction.
 A proposition formula which has both true and false values is called
 Statements which are questions, commands, or opinions are not propositions
such as "Where is Rohini", "How are you", "What is your name", are not
propositions.

Syntax of propositional logic:

The syntax of propositional logic defines the allowable sentences for the knowledge
representation. There are two types of Propositions:

 Atomic Propositions
 Compound propositions
o Atomic Proposition: Atomic propositions are the simple propositions. It consists of a single
proposition symbol. These are the sentences which must be either true or false.

Example:
a) 2+2 is 4, it is an atomic proposition as it is a true fact.
b) "The Sun is cold" is also a proposition as it is a false fact.

o Compound proposition: Compound propositions are constructed by combining simpler or


atomic propositions, using parenthesis and logical connectives.

Example:

a) "It is raining today, and street is wet."


b) "Ankit is a doctor, and his clinic is in Mumbai."
First-Order Logic
In the topic of Propositional logic, we have seen that how to represent statements using
propositional logic. But unfortunately, in propositional logic, we can only represent the facts,
which are either true or false. PL is not sufficient to represent the complex sentences or natural
language statements. The propositional logic has very limited expressive power. Consider the
following sentence, which we cannot represent using PL logic.

o "Some humans are intelligent", or


o "Sachin likes cricket."

To represent the above statements, PL logic is not sufficient, so we required some more powerful
logic, such as first-order logic.

First-Order logic:

o First-order logic is another way of knowledge representation in artificial intelligence. It is an


extension to propositional logic.
o FOL is sufficiently expressive to represent the natural language statements in a concise way.
o First-order logic is also known as Predicate logic or First-order predicate logic. First-order logic
is a powerful language that develops information about the objects in a more easy way and
can also express the relationship between those objects.
o First-order logic (like natural language) does not only assume that the world contains facts like
propositional logic but also assumes the following things in the world:
o Objects: A, B, people, numbers, colors, wars, theories, squares, pits, wumpus, ......
o Relations: It can be unary relation such as: red, round, is adjacent, or n-any relation
such as: the sister of, brother of, has color, comes between
o Function: Father of, best friend, third inning of, end of, ......
o As a natural language, first-order logic also has two main parts:
a. Syntax
b. Semantics

Syntax of First-Order logic:

The syntax of FOL determines which collection of symbols is a logical expression in first-order logic.
The basic syntactic elements of first-order logic are symbols. We write statements in short-hand
notation in FOL.

Basic Elements of First-order logic:


Following are the basic elements of FOL syntax:

Constant 1, 2, A, John, Mumbai, cat,....

Variables x, y, z, a, b,....

Predicates Brother, Father, >,....

Function sqrt, LeftLegOf, ....

Connectives ∧, ∨, ¬, ⇒, ⇔

Equality ==

Quantifier ∀, ∃

Atomic sentences:
Atomic sentences are the most basic sentences of first-order logic. These sentences are
formed from a predicate symbol followed by a parenthesis with a sequence of terms.
We can represent atomic sentences as Predicate (term1, term2, ......, term n).

Example: Ravi and Ajay are brothers: => Brothers(Ravi, Ajay).


Chinky is a cat: => cat (Chinky).
Complex Sentences:
o Complex sentences are made by combining atomic sentences using connectives.
First-order logic statements can be divided into two parts:
o Subject: Subject is the main part of the statement.
o Predicate: A predicate can be defined as a relation, which binds two atoms
together in a statement.
Consider the statement:
"x is an integer.", it consists of two parts, the first part x is the subject of the statement
and second part "is an integer," is known as a predicate.
Quantifiers in First-order logic:

 A quantifier is a language element which generates quantification, and


quantification specifies the quantity of specimen in the universe of discourse.
 These are the symbols that permit to determine or identify the range and
scope of the variable in the logical expression. There are two types of
quantifier:
o Universal Quantifier, (for all, everyone, everything)
o Existential quantifier, (for some, at least one).
Universal Quantifier:
Universal quantifier is a symbol of logical representation, which specifies that the
statement within its range is true for everything or every instance of a particular
thing.
The Universal quantifier is represented by a symbol ∀, which resembles an
inverted A.
If x is a variable, then ∀x is read as:

 For all x
 For each x
 For every x.
Example:
All man drink coffee.
Let a variable x which refers to a cat so all x can be represented in UOD as below:
∀x man(x) → drink (x, coffee).
It will be read as: There are all x where x is a man who drink coffee.
Existential Quantifier:
Existential quantifiers are the type of quantifiers, which express that the statement
within its scope is true for at least one instance of something.
It is denoted by the logical operator ∃, which resembles as inverted E. When it is used
with a predicate variable then it is called as an existential quantifier.
If x is a variable, then existential quantifier will be ∃x or ∃(x). And it will be read as:

 There exists a 'x.'


 For some 'x.'
 For at least one 'x.'
Example:

∃x: boys(x) ∧ intelligent(x)


It will be read as: There are some x where x is a boy who is intelligent.
Points to remember:

 The main connective for universal quantifier ∀ is implication →.


 The main connective for existential quantifier ∃ is and ∧.
Properties of Quantifiers:

 In universal quantifier, ∀x∀y is similar to ∀y∀x.


 In Existential quantifier, ∃x∃y is similar to ∃y∃x.
 ∃x∀y is not similar to ∀y∃x.
Some Examples of FOL using quantifier:
1. All birds fly.
In this question the predicate is "fly(bird)."
And since there are all birds who fly so it will be represented as follows.
∀x bird(x) →fly(x).
2. Every man respects his parent.
In this question, the predicate is "respect(x, y)," where x=man, and y= parent.
Since there is every man so will use ∀, and it will be represented as follows:
∀x man(x) → respects (x, parent).
3. Some boys play cricket.
In this question, the predicate is "play(x, y)," where x= boys, and y= game. Since there are
some boys so we will use ∃, and it will be represented as:
∃x boys(x) → play(x, cricket).
4. Not all students like both Mathematics and Science.
In this question, the predicate is "like(x, y)," where x= student, and y= subject.
Since there are not all students, so we will use ∀ with negation, so following
representation for this:
¬∀ (x) [ student(x) → like(x, Mathematics) ∧ like(x, Science)].
5. Only one student failed in Mathematics.
In this question, the predicate is "failed(x, y)," where x= student, and y= subject.
Since there is only one student who failed in Mathematics, so we will use following
representation for this:
∃(x) [ student(x) → failed (x, Mathematics) ∧∀ (y) [¬(x==y) ∧ student(y) → ¬failed
(x, Mathematics)].
Free and Bound Variables:
The quantifiers interact with variables which appear in a suitable way. There are two types
of variables in First-order logic which are given below:
Free Variable: A variable is said to be a free variable in a formula if it occurs outside the
scope of the quantifier.
Example: ∀x ∃(y)[P (x, y, z)], where z is a free variable.
Bound Variable: A variable is said to be a bound variable in a formula if it occurs within
the scope of the quantifier.
Example: ∀x [A (x) B( y)], here x and y are the bound variables.
Forward Chaining and backward chaining
In artificial intelligence, forward and backward chaining is one of the important topics, but
before understanding forward and backward chaining lets first understand that from
where these two terms came.
Inference engine:
The inference engine is the component of the intelligent system in artificial intelligence,
which applies logical rules to the knowledge base to infer new information from known
facts. The first inference engine was part of the expert system. Inference engine
commonly proceeds in two modes, which are:

 Forward chaining
 Backward chaining
Horn Clause and Definite clause:
Horn clause and definite clause are the forms of sentences, which enables knowledge base to
use a more restricted and efficient inference algorithm. Logical inference algorithms use
forward and backward chaining approaches, which require KB in the form of the first-order
definite clause.
Definite clause: A clause which is a disjunction of literals with exactly one positive literal is
known as a definite clause or strict horn clause.
Horn clause: A clause which is a disjunction of literals with at most one positive literal is
known as horn clause. Hence all the definite clauses are horn clauses.
Example: (¬ p V ¬ q V k). It has only one positive literal k.
It is equivalent to p ∧ q → k.
A. Forward Chaining
Forward chaining is also known as a forward deduction or forward reasoning method when
using an inference engine. Forward chaining is a form of reasoning which start with atomic
sentences in the knowledge base and applies inference rules (Modus Ponens) in the forward
direction to extract more data until a goal is reached.
The Forward-chaining algorithm starts from known facts, triggers all rules whose premises
are satisfied, and add their conclusion to the known facts. This process repeats until the
problem is solved.
Properties of Forward-Chaining:
 It is a down-up approach, as it moves from bottom to top.
 It is a process of making a conclusion based on known facts or data, by starting from the
initial state and reaches the goal state.
 Forward-chaining approach is also called as data-driven as we reach to the goal using
available data.
 Forward -chaining approach is commonly used in the expert system, such as CLIPS,
business, and production rule systems.

Consider the following example which we will use in both approaches:


Example:
"As per the law, it is a crime for an American to sell weapons to hostile nations. Country
A, an enemy of America, has some missiles, and all the missiles were sold to it by Robert,
who is an American citizen."
Prove that "Robert is criminal."

To solve the above problem, first, we will convert all the above facts into first-order
definite clauses, and then we will use a forward-chaining algorithm to reach the goal.

Facts Conversion into FOL:

o It is a crime for an American to sell weapons to hostile nations. (Let's say p, q,


and r are variables)
American (p) ∧ weapon(q) ∧ sells (p, q, r) ∧ hostile(r) → Criminal(p) ...(1)
o Country A has some missiles. ?p Owns(A, p) ∧ Missile(p). It can be written in
two definite clauses by using Existential Instantiation, introducing new Constant
T1.
Owns(A, T1) ......(2)
Missile(T1) .......(3)
o All of the missiles were sold to country A by Robert.
?p Missiles(p) ∧ Owns (A, p) → Sells (Robert, p, A) ......(4)
o Missiles are weapons.
Missile(p) → Weapons (p) .......(5)
o Enemy of America is known as hostile.
Enemy(p, America) →Hostile(p) ........(6)
o Country A is an enemy of America.
Enemy (A, America) .........(7)
o Robert is American
American(Robert). ..........(8)
Forward chaining proof:
Step-1:
In the first step we will start with the known facts and will choose the sentences which do
not have implications, such as: American(Robert), Enemy(A, America), Owns(A, T1), and
Missile(T1). All these facts will be represented as below.

Step-2:
At the second step, we will see those facts which infer from available facts and with
satisfied premises.
Rule-(1) does not satisfy premises, so it will not be added in the first iteration.
Rule-(2) and (3) are already added.
Rule-(4) satisfy with the substitution {p/T1}, so Sells (Robert, T1, A) is added, which infers
from the conjunction of Rule (2) and (3).
Rule-(6) is satisfied with the substitution(p/A), so Hostile(A) is added and which infers
from Rule-(7).

Step-3:
At step-3, as we can check Rule-(1) is satisfied with the substitution {p/Robert, q/T1, r/A},
so we can add Criminal(Robert) which infers all the available facts. And hence we reached
our goal statement.

Hence it is proved that Robert is Criminal using forward chaining approach.


B. Backward Chaining:
Backward-chaining is also known as a backward deduction or backward reasoning method
when using an inference engine. A backward chaining algorithm is a form of reasoning,
which starts with the goal and works backward, chaining through rules to find known facts
that support the goal.
Properties of backward chaining:
 It is known as a top-down approach.
 Backward-chaining is based on modus ponens inference rule.
 In backward chaining, the goal is broken into sub-goal or sub-goals to prove the facts
true.
 It is called a goal-driven approach, as a list of goals decides which rules are selected
and used.
 Backward -chaining algorithm is used in game theory, automated theorem proving
tools, inference engines, proof assistants, and various AI applications.
 The backward-chaining method mostly used a depth-first search strategy for proof.
Example:
In backward-chaining, we will use the same above example, and will rewrite all the rules.
1. American (p) ∧ weapon(q) ∧ sells (p, q, r) ∧ hostile(r) → Criminal(p) ...(1)
2. Owns(A, T1) ........(2)
3. Missile(T1)
4. ?p Missiles(p) ∧ Owns (A, p) → Sells (Robert, p, A) ......(4)
5. Missile(p) → Weapons (p) .......(5)
6. Enemy(p, America) →Hos le(p) ........(6)
7. Enemy (A, America) .........(7)
8. American(Robert). ..........(8)
Backward-Chaining proof:
In Backward chaining, we will start with our goal predicate, which is Criminal(Robert), and
then infer further rules.
Step-1:
At the first step, we will take the goal fact. And from the goal fact, we will infer other facts,
and at last, we will prove those facts true. So our goal fact is "Robert is Criminal," so
following is the predicate of it.

Step-2:
At the second step, we will infer other facts form goal fact which satisfies the rules. So as
we can see in Rule-1, the goal predicate Criminal (Robert) is present with substitution
{Robert/P}. So we will add all the conjunctive facts below the first level and will replace p
with Robert.
Here we can see American (Robert) is a fact, so it is proved here.

Step-3:t At step-3, we will extract further fact Missile(q) which infer from Weapon(q), as it
satisfies Rule-(5). Weapon (q) is also true with the substitution of a constant T1 at q.

Step-4:
At step-4, we can infer facts Missile(T1) and Owns(A, T1) form Sells(Robert, T1, r) which
satisfies the Rule- 4, with the substitution of A in place of r. So these two statements are
proved here.
Step-5:
At step-5, we can infer the fact Enemy(A, America) from Hostile(A) which satisfies Rule- 6.
And hence all the statements are proved true using backward chaining.
Probabilistic reasoning
Uncertainty:
Till now, it is understood about knowledge representation using first-order logic and
propositional logic with certainty, which means we were sure about the predicates. With
this knowledge representation, we might write A→B, which means if A is true then B is
true, but consider a situation where we are not sure about whether A is true or not then
we cannot express this statement, this situation is called uncertainty.
So to represent uncertain knowledge, where we are not sure about the predicates, we
need uncertain reasoning or probabilistic reasoning.
Causes of uncertainty:
Following are some leading causes of uncertainty to occur in the real world.

 Information occurred from unreliable sources.


 Experimental Errors
 Equipment fault
 Temperature variation
 Climate change.
Probabilistic reasoning:
Probabilistic reasoning is a way of knowledge representation where we apply the concept of
probability to indicate the uncertainty in knowledge. In probabilistic reasoning, we combine
probability theory with logic to handle the uncertainty.
We use probability in probabilistic reasoning because it provides a way to handle the
uncertainty that is the result of someone's laziness and ignorance.
In the real world, there are lots of scenarios, where the certainty of something is not
confirmed, such as "It will rain today," "behavior of someone for some situations," "A match
between two teams or two players." These are probable sentences for which we can assume
that it will happen but not sure about it, so here we use probabilistic reasoning.
Need of probabilistic reasoning in AI:

 When there are unpredictable outcomes.


 When specifications or possibilities of predicates becomes too large to handle.
 When an unknown error occurs during an experiment.
In probabilistic reasoning, there are two ways to solve problems with uncertain knowledge:

 Bayes' rule
 Bayesian Statistics
As probabilistic reasoning uses probability and related terms, so before understanding
probabilistic reasoning, let's understand some common terms:
Probability: Probability can be defined as a chance that an uncertain event will occur. It is the
numerical measure of the likelihood that an event will occur. The value of probability always
remains between 0 and 1 that represent ideal uncertainties.

0 ≤ P(A) ≤ 1, where P(A) is the probability of an event A.

P(A) = 0, indicates total uncertainty in an event A.

P(A) =1, indicates total certainty in an event A.

We can find the probability of an uncertain event by using the below formula.

o P(¬A) = probability of a not happening event.


o P(¬A) + P(A) = 1.

Event: Each possible outcome of a variable is called an event.

Sample space: The collection of all possible events is called sample space.

Random variables: Random variables are used to represent the events and objects in
the real world.

Prior probability: The prior probability of an event is probability computed before


observing new information.

Posterior Probability: The probability that is calculated after all evidence or


information has taken into account. It is a combination of prior probability and new
information.

Conditional probability:

Conditional probability is a probability of occurring an event when another event has


already happened.

Let's suppose, we want to calculate the event A when event B has already occurred,
"the probability of A under the conditions of B", it can be written as:

Where P(A⋀B)= Joint probability of a and B


P(B)= Marginal probability of B.

If the probability of A is given and we need to find the probability of B, then it will be
given as:

It can be explained by using the below Venn diagram, where B is occurred event, so
sample space will be reduced to set B, and now we can only calculate event A when
event B is already occurred by dividing the probability of P(A⋀B) by P( B ).

Example:
In a class, there are 70% of the students who like English and 40% of the students who likes
English and mathematics, and then what is the percent of students those who like English also
like mathematics?

Solution:

Let, A is an event that a student likes Mathematics

B is an event that a student likes English.

Hence, 57% are the students who like English also like Mathematics.
Bayes' theorem:
Bayes' theorem is also known as Bayes' rule, Bayes' law, or Bayesian reasoning, which
determines the probability of an event with uncertain knowledge.
In probability theory, it relates the conditional probability and marginal probabilities of two
random events.
Bayes' theorem was named after the British mathematician Thomas Bayes. The Bayesian
inference is an application of Bayes' theorem, which is fundamental to Bayesian statistics.
It is a way to calculate the value of P(B|A) with the knowledge of P(A|B).
Bayes' theorem allows updating the probability prediction of an event by observing new
information of the real world.
Example: If cancer corresponds to one's age then by using Bayes' theorem, we can determine
the probability of cancer more accurately with the help of age.
Bayes' theorem can be derived using product rule and conditional probability of event A with
known event B:
As from product rule we can write:

P(A ⋀ B)= P(A|B) P(B) or

Similarly, the probability of event B with known event A:

P(A ⋀ B)= P(B|A) P(A)

Equating right hand side of both the equations, we will get:

The above equation (a) is called as Bayes' rule or Bayes' theorem. This equation is basic
of most modern AI systems for probabilistic inference.

It shows the simple relationship between joint and conditional probabilities. Here,

P(A|B) is known as posterior, which we need to calculate, and it will be read as


Probability of hypothesis A when we have occurred an evidence B.

P(B|A) is called the likelihood, in which we consider that hypothesis is true, then we
calculate the probability of evidence.

P(A) is called the prior probability, probability of hypothesis before considering the
evidence
P(B) is called marginal probability, pure probability of an evidence.

In the equation (a), in general, we can write P (B) = P(A)*P(B|Ai), hence the Bayes' rule
can be written as:

Where A1, A2, A3,........, An is a set of mutually exclusive and exhaustive events.

Applying Bayes' rule:

Bayes' rule allows us to compute the single term P(B|A) in terms of P(A|B), P(B), and
P(A). This is very useful in cases where we have a good probability of these three terms
and want to determine the fourth one. Suppose we want to perceive the effect of some
unknown cause, and want to compute that cause, then the Bayes' rule becomes:

Example-1:

Question: what is the probability that a patient has diseases meningitis with a stiff
neck?

Given Data:

A doctor is aware that disease meningitis causes a patient to have a stiff neck, and it
occurs 80% of the time. He is also aware of some more facts, which are given as follows:

 The Known probability that a patient has meningitis disease is 1/30,000.


 The Known probability that a patient has a stiff neck is 2%.

Let a be the proposition that patient has stiff neck and b be the proposition that
patient has meningitis. , so we can calculate the following as:

P(a|b) = 0.8

P(b) = 1/30000

P(a)= .02
Hence, we can assume that 1 patient out of 750 patients has meningitis disease
with a stiff neck.

Example-2:

Question: From a standard deck of playing cards, a single card is drawn. The
probability that the card is king is 4/52, then calculate posterior probability
P(King|Face), which means the drawn face card is a king card.

Solution:

P(king): probability that the card is King= 4/52= 1/13

P(face): probability that a card is a face card= 3/13

P(Face|King): probability of face card when we assume it is a king = 1

Putting all values in equation (i) we will get:

Application of Bayes' theorem in Artificial intelligence:

Following are some applications of Bayes' theorem:

1. It is used to calculate the next step of the robot when the already executed step
is given.
2. Bayes' theorem is helpful in weather forecasting.
3. It can solve the Monty Hall problem.
UNIT III
Advanced Knowledge Representation and Reasoning: Knowledge Representation Issues, Non-
monotonic Reasoning, Other Knowledge Representation Schemes Reasoning Under Uncertainty:
Basic probability, Acting Under Uncertainty, Bayes’ Rule, Representing Knowledge in an Uncertain
Domain, Bayesian Networks

Knowledge Representation:

 Artificial intelligence is a system that is concerned with the study of understanding, designing
and implementing the ways, associated with knowledge representation to computers.
 In any intelligent system, representing the knowledge is supposed to be an important technique
to encode the knowledge.
 The main objective of AI system is to design the programs that provide information to the
computer, which can be helpful to interact with humans and solve problems in various fields
which require human intelligence.

Knowledge

 Knowledge is a useful term to judge the understanding of an individual on a given subject.


 In intelligent systems, domain is the main focused subject area. So, the system specifically
focuses on acquiring the domain knowledge.

Types of knowledge in AI

Depending on the type of functionality, the knowledge in AI is categorized as:

1. Declarative knowledge
 The knowledge which is based on concepts, facts and objects, is termed as 'Declarative
Knowledge'.
 It provides all the necessary information about the problem in terms of simple statements,
either true or false.

2. Procedural knowledge

 Procedural knowledge derives the information on the basis of rules, strategies, agendas and
procedure.
 It describes how a problem can be solved.
 Procedural knowledge directs the steps on how to perform something.

For example: Computer program.

3. Heuristic knowledge

 Heuristic knowledge is based on thumb rule.


 It provides the information based on a thumb rule, which is useful in guiding the reasoning
process.
 In this type, the knowledge representation is based on the strategies to solve the problems
through the experience of past problems, compiled by an expert. Hence, it is also known as
Shallow knowledge.

4. Meta-knowledge

 This type gives an idea about the other types of knowledge that are suitable for solving problem.
 Meta-knowledge is helpful in enhancing the efficiency of problem solving through proper
reasoning process.

5. Structural knowledge

 Structural knowledge is associated with the information based on rules, sets, concepts and
relationships.
 It provides the information necessary for developing the knowledge structures and overall
mental model of the problem.

Issues in knowledge representation

The main objective of knowledge representation is to draw the conclusions from the knowledge, but
there are many issues associated with the use of knowledge representation techniques.
1. Important attributes

There are two attributes shown in the diagram, instance and isa. Since these attributes support
property of inheritance, they are of prime importance.

2. Relationships among attributes

Basically, the attributes used to describe objects are nothing but the entities. However, the
attributes of an object do not depend on the encoded specific knowledge.

3. Choosing the granularity of representation

While deciding the granularity of representation, it is necessary to know the following:

i. What are the primitives and at what level should the knowledge be represented?

ii. What should be the number (small or large) of low-level primitives or high-level facts?

High-level facts may be insufficient to draw the conclusion while Low-level primitives may require a
lot of storage.

For example: Suppose that we are interested in following facts:

John spotted Alex.

Now, this could be represented as "Spotted (agent(John), object (Alex))"

Such a representation can make it easy to answer questions such as: Who spotted Alex?

Suppose we want to know : "Did John see Sue?"

Given only one fact, user cannot discover that answer.

Hence, the user can add other facts, such as "Spotted (x, y) → saw (x, y)"

4. Representing sets of objects.


There are some properties of objects which satisfy the condition of a set together but not as
individual;

Example: Consider the assertion made in the sentences:

"There are more sheep than people in Australia", and "English speakers can be found all over the
world."

These facts can be described by including an assertion to the sets representing people, sheep, and
English.

5. Finding the right structure as needed

To describe a particular situation, it is always important to find the access of right structure. This can
be done by selecting an initial structure and then revising the choice.

While selecting and reversing the right structure, it is necessary to solve following problem
statements.

 Select an initial appropriate structure.


 Fill the necessary details from the current situations.
 Determine a better structure if the initially selected structure is not appropriate to fulfill other
conditions.
 Find the solution if none of the available structures is appropriate.
 Create and remember a new structure for the given condition.
 There is no specific way to solve these problems, but some of the effective knowledge
representation techniques have the potential to solve them.

The relation between knowledge and intelligence:

Knowledge of real-worlds plays a vital role in intelligence and same for creating artificial intelligence.
Knowledge plays an important role in demonstrating intelligent behavior in AI agents. An agent is
only able to accurately act on some input when he has some knowledge or experience about that
input.

Let's suppose if you met some person who is speaking in a language which you don't know, then
how you will able to act on that. The same thing applies to the intelligent behavior of the agents.

As we can see in below diagram, there is one decision maker which act by sensing the environment
and using knowledge. But if the knowledge part will not present then, it cannot display intelligent
behavior.
AI knowledge cycle:

An Artificial intelligence system has the following components for displaying intelligent behavior:

 Perception
 Learning
 Knowledge Representation and Reasoning
 Planning
 Execution

The above diagram is showing how an AI system can interact with the real world and what
components help it to show intelligence. AI system has Perception component by which it retrieves
information from its environment. It can be visual, audio or another form of sensory input. The
learning component is responsible for learning from data captured by Perception comportment. In
the complete cycle, the main components are knowledge representation and Reasoning. These two
components are involved in showing the intelligence in machine-like humans. These two
components are independent with each other but also coupled together. The planning and
execution depend on analysis of Knowledge representation and reasoning.

Approaches to knowledge representation:

There are mainly four approaches to knowledge representation, which are given below:

1. Simple relational knowledge:

 It is the simplest way of storing facts which uses the relational method, and each fact about a set
of the object is set out systematically in columns.
 This approach of knowledge representation is famous in database systems where the
relationship between different entities is represented.
 This approach has little opportunity for inference.

Example: The following is the simple relational knowledge representation.

Player Weight Age

Player1 65 23

Player2 58 18

Player3 75 24

2. Inheritable knowledge:

 In the inheritable knowledge approach, all data must be stored into a hierarchy of classes.
 All classes should be arranged in a generalized form or a hierarchal manner.
 In this approach, we apply inheritance property.
 Elements inherit values from other members of a class.
 This approach contains inheritable knowledge which shows a relation between instance and
class, and it is called instance relation.
 Every individual frame can represent the collection of attributes and its value.
 In this approach, objects and values are represented in Boxed nodes.
 We use Arrows which point from objects to their values.
 Example:
3. Inferential knowledge:
o Inferential knowledge approach represents knowledge in the form of formal logics.
o This approach can be used to derive more facts.
o It guaranteed correctness.
o Example: Let's suppose there are two statements:
 Marcus is a man
 All men are mortal
Then it can represent as;

man(Marcus)
∀x = man (x) ----------> mortal (x)s

4. Procedural knowledge:

 Procedural knowledge approach uses small programs and codes which describes how to
do specific things, and how to proceed.
 In this approach, one important rule is used which is If-Then rule.
 In this knowledge, we can use various coding languages such as LISP language and Prolog
language.
 We can easily represent heuristic or domain-specific knowledge using this approach.
 But it is not necessary that we can represent all cases in this approach.

Requirements for knowledge Representation system:

A good knowledge representation system must possess the following properties.

1. Representational Accuracy:

KR system should have the ability to represent all kind of required knowledge.

2. Inferential Adequacy:
KR system should have ability to manipulate the representational structures to produce new
knowledge corresponding to existing structure.

3. Inferential Efficiency:

The ability to direct the inferential knowledge mechanism into the most productive
directions by storing appropriate guides.

4. Acquisitional efficiency- The ability to acquire the new knowledge easily using automatic
methods.

Reasoning:

The reasoning is the mental process of deriving logical conclusion and making predictions
from available knowledge, facts, and beliefs. Or we can say, "Reasoning is a way to infer
facts from existing data." It is a general process of thinking rationally, to find valid
conclusions.

In artificial intelligence, the reasoning is essential so that the machine can also think
rationally as a human brain, and can perform like a human.

Types of Reasoning

1. Deductive reasoning
2. Inductive reasoning
3. Abductive reasoning
4. Common Sense Reasoning
5. Monotonic Reasoning
6. Non-monotonic Reasoning

1. Deductive reasoning:

Deductive reasoning is deducing new information from logically related known information.
It is the form of valid reasoning, which means the argument's conclusion must be true when
the premises are true.

Deductive reasoning is a type of propositional logic in AI, and it requires various rules and
facts. It is sometimes referred to as top-down reasoning, and contradictory to inductive
reasoning.

In deductive reasoning, the truth of the premises guarantees the truth of the conclusion.

Deductive reasoning mostly starts from the general premises to the specific conclusion,
which can be explained as below example.

Example:

Premise-1: All the human eats veggies

Premise-2: Suresh is human.

Conclusion: Suresh eats veggies.

The general process of deductive reasoning is given below:


2. Inductive Reasoning:

Inductive reasoning is a form of reasoning to arrive at a conclusion using limited sets of facts
by the process of generalization. It starts with the series of specific facts or data and reaches
to a general statement or conclusion.

Inductive reasoning is a type of propositional logic, which is also known as cause-effect


reasoning or bottom-up reasoning.

In inductive reasoning, we use historical data or various premises to generate a generic rule,
for which premises support the conclusion.

In inductive reasoning, premises provide probable supports to the conclusion, so the truth of
premises does not guarantee the truth of the conclusion.

Example:

Premise: All of the pigeons we have seen in the zoo are white.

Conclusion: Therefore, we can expect all the pigeons to be white.

3. Abductive reasoning:

Abductive reasoning is a form of logical reasoning which starts with single or multiple
observations then seeks to find the most likely explanation or conclusion for the
observation.

Abductive reasoning is an extension of deductive reasoning, but in abductive reasoning, the


premises do not guarantee the conclusion.

Example:

Implication: Cricket ground is wet if it is raining

Axiom: Cricket ground is wet.

Conclusion: It is raining.

4. Common Sense Reasoning

Common sense reasoning is an informal form of reasoning, which can be gained through
experiences.
Common Sense reasoning simulates the human ability to make presumptions about events
which occurs on every day.

It relies on good judgment rather than exact logic and operates on heuristic knowledge and
heuristic rules.

Example:

1. One person can be at one place at a time.


2. If I put my hand in a fire, then it will burn.

The above two statements are the examples of common sense reasoning which a human
mind can easily understand and assume.

5. Monotonic Reasoning:

In monotonic reasoning, once the conclusion is taken, then it will remain the same even if we
add some other information to existing information in our knowledge base. In monotonic
reasoning, adding knowledge does not decrease the set of prepositions that can be derived.

To solve monotonic problems, we can derive the valid conclusion from the available facts
only, and it will not be affected by new facts.

Monotonic reasoning is not useful for the real-time systems, as in real time, facts get
changed, so we cannot use monotonic reasoning.

Monotonic reasoning is used in conventional reasoning systems, and a logic-based system is


monotonic.

Any theorem proving is an example of monotonic reasoning.

Example:

o Earth revolves around the Sun.

It is a true fact, and it cannot be changed even if we add another sentence in knowledge
base like, "The moon revolves around the earth" Or "Earth is not round," etc.

Advantages of Monotonic Reasoning:

o In monotonic reasoning, each old proof will always remain valid.


o If we deduce some facts from available facts, then it will remain valid for always.

Disadvantages of Monotonic Reasoning:

o We cannot represent the real world scenarios using Monotonic reasoning.


o Hypothesis knowledge cannot be expressed with monotonic reasoning, which means
facts should be true.
o Since we can only derive conclusions from the old proofs, so new knowledge from the
real world cannot be added.

6. Non-monotonic Reasoning

In Non-monotonic reasoning, some conclusions may be invalidated if we add some more


information to our knowledge base.
Logic will be said as non-monotonic if some conclusions can be invalidated by adding more
knowledge into our knowledge base.

Non-monotonic reasoning deals with incomplete and uncertain models.

"Human perceptions for various things in daily life, "is a general example of non-monotonic
reasoning.

Example: Let suppose the knowledge base contains the following knowledge:

o Birds can fly


o Penguins cannot fly
o Pitty is a bird

So from the above sentences, we can conclude that Pitty can fly.

However, if we add one another sentence into knowledge base "Pitty is a penguin", which
concludes "Pitty cannot fly", so it invalidates the above conclusion.

Advantages of Non-monotonic reasoning:

o For real-world systems such as Robot navigation, we can use non-monotonic


reasoning.
o In Non-monotonic reasoning, we can choose probabilistic facts or can make
assumptions.

Disadvantages of Non-monotonic Reasoning:

o In non-monotonic reasoning, the old facts may be invalidated by adding new


sentences.
o It cannot be used for theorem proving.

Categories of Knowledge Representation Schemes:

1. Logical Representation Scheme:

This class of representation uses expressions in formal logic to represent a knowledge


base. Inference rules and proof procedures apply this knowledge to problem solving.
First order predicate calculus is the most widely used logical representation scheme, and
PROLOG is an ideal programming language for implementing logical representation
schemes.

2. Procedural Representation Scheme:

Procedural scheme represents knowledge as a set of instructions for solving a problem.


In a rule-based system, for example, an if then rule may be interpreted as a procedure
for searching a goal in a problem domain: to arrive at the conclusion, solve the premises
in order. Production systems are examples of a procedural representation scheme.

3. Network Representation Scheme:

Network representation captures knowledge as a graph in which the nodes represent


objects or concepts in the problem domain and the arcs represent relations or
associations between them. Examples of network representations include semantic
network, conceptual dependencies and conceptual graphs.
4. Structured Representation Scheme:

Structured representation languages extend networks by allowing each node to be a


complex data structure consisting of named slots with attached values. These values
may be simple numeric or complex data, such as pointers to other frames, or even
procedures.

Reasoning Under Uncertainty:

Uncertainty:

Its discussed previously about the knowledge representation using first-order logic and
propositional logic with certainty, which means it was sure about the predicates. With
this knowledge representation, we might write A→B, which means if A is true then B is
true, but consider a situation where we are not sure about whether A is true or not then
we cannot express this statement, this situation is called uncertainty.

So to represent uncertain knowledge, where we are not sure about the predicates, we
need uncertain reasoning or probabilistic reasoning.

Causes of uncertainty:

Following are some leading causes of uncertainty to occur in the real world.

o Information occurred from unreliable sources.


o Experimental Errors
o Equipment fault
o Temperature variation
o Climate change.

Probabilistic reasoning:

Probabilistic reasoning is a way of knowledge representation where we apply the


concept of probability to indicate the uncertainty in knowledge. In probabilistic
reasoning, we combine probability theory with logic to handle the uncertainty.

We use probability in probabilistic reasoning because it provides a way to handle the


uncertainty that is the result of someone's laziness and ignorance.

In the real world, there are lots of scenarios, where the certainty of something is not
confirmed, such as "It will rain today," "behavior of someone for some situations," "A
match between two teams or two players." These are probable sentences for which we
can assume that it will happen but not sure about it, so here we use probabilistic
reasoning.

Need of probabilistic reasoning in AI:

o When there are unpredictable outcomes.


o When specifications or possibilities of predicates becomes too large to handle.
o When an unknown error occurs during an experiment.

In probabilistic reasoning, there are two ways to solve problems with uncertain
knowledge:
o Bayes' rule
o Bayesian Statistics

As probabilistic reasoning uses probability and related terms, so before understanding


probabilistic reasoning, let's understand some common terms:

Probability: Probability can be defined as a chance that an uncertain event will occur. It
is the numerical measure of the likelihood that an event will occur. The value of
probability always remains between 0 and 1 that represent ideal uncertainties.

0 ≤ P(A) ≤ 1, where P(A) is the probability of an event A.

P(A) = 0, indicates total uncertainty in an event A.

P(A) =1, indicates total certainty in an event A.

We can find the probability of an uncertain event by using the below formula.

o P(¬A) = probability of a not happening event.


o P(¬A) + P(A) = 1.

Event: Each possible outcome of a variable is called an event.

Sample space: The collection of all possible events is called sample space.

Random variables: Random variables are used to represent the events and
objects in the real world.

Prior probability: The prior probability of an event is probability computed


before observing new information.

Posterior Probability: The probability that is calculated after all evidence or


information has taken into account. It is a combination of prior probability and
new information.

Conditional probability:

Conditional probability is a probability of occurring an event when another event


has already happened.
Let's suppose, we want to calculate the event A when event B has already
occurred, "the probability of A under the conditions of B", it can be written as:

Where P(A⋀B)= Joint probability of a and B

P(B)= Marginal probability of B.

If the probability of A is given and we need to find the probability of B, then it will be
given as:

It can be explained by using the below Venn diagram, where B is occurred event, so
sample space will be reduced to set B, and now we can only calculate event A when event
B is already occurred by dividing the probability of P(A⋀B) by P( B ).

Example:

In a class, there are 70% of the students who like English and 40% of the students who
likes English and mathematics, and then what is the percent of students those who like
English also like mathematics?

Solution:

Let, A is an event that a student likes Mathematics


B is an event that a student likes English.

Probabilistic reasoning in Artificial intelligence

Hence, 57% are the students who like English also like Mathematics.

Bayesian Belief Network in artificial intelligence

Bayesian belief network is key computer technology for dealing with probabilistic events
and to solve a problem which has uncertainty. We can define a Bayesian network as:

"A Bayesian network is a probabilistic graphical model which represents a set of variables
and their conditional dependencies using a directed acyclic graph."

It is also called a Bayes network, belief network, decision network, or Bayesian model.

Bayesian networks are probabilistic, because these networks are built from a probability
distribution, and also use probability theory for prediction and anomaly detection.

Real world applications are probabilistic in nature, and to represent the relationship
between multiple events, we need a Bayesian network. It can also be used in various
tasks including prediction, anomaly detection, diagnostics, automated insight, reasoning,
time series prediction, and decision making under uncertainty.

Bayesian Network can be used for building models from data and experts opinions, and
it consists of two parts:

o Directed Acyclic Graph


o Table of conditional probabilities.

The generalized form of Bayesian network that represents and solve decision problems under
uncertain knowledge is known as an Influence diagram.

A Bayesian network graph is made up of nodes and Arcs (directed links), where:
o Each node corresponds to the random variables, and a variable can be continuous or
discrete.
o Arc or directed arrows represent the causal relationship or conditional probabilities
between random variables. These directed links or arrows connect the pair of nodes in
the graph.These links represent that one node directly influence the other node, and if
there is no directed link that means that nodes are independent with each other
o In the above diagram, A, B, C, and D are random variables represented by the
nodes of the network graph.
o If we are considering node B, which is connected with node A by a directed arrow,
then node A is called the parent of Node B.
o Node C is independent of node A.

The Bayesian network has mainly two components:

o Causal Component
o Actual numbers

Each node in the Bayesian network has condition probability distribution P(Xi |Parent(Xi) ),
which determines the effect of the parent on that node.

Bayesian network is based on Joint probability distribution and conditional probability. So let's
first understand the joint probability distribution:

Joint probability distribution:

If we have variables x1, x2, x3,....., xn, then the probabilities of a different combination of x1,
x2, x3.. xn, are known as Joint probability distribution.
P[x1, x2, x3,....., xn], it can be written as the following way in terms of the joint
probability distribution.

= P[x1| x2, x3,....., xn]P[x2, x3,....., xn]

= P[x1| x2, x3,....., xn]P[x2|x3,....., xn]....P[xn-1|xn]P[xn].

In general for each variable Xi, we can write the equation as:

P(Xi|Xi-1,........., X1) = P(Xi |Parents(Xi ))


Explanation of Bayesian network:

Let's understand the Bayesian network through an example by creating a directed acyclic
graph:

Example: Harry installed a new burglar alarm at his home to detect burglary. The alarm
reliably responds at detecting a burglary but also responds for minor earthquakes. Harry has
two neighbors David and Sophia, who have taken a responsibility to inform Harry at work
when they hear the alarm. David always calls Harry when he hears the alarm, but sometimes
he got confused with the phone ringing and calls at that time too. On the other hand, Sophia
likes to listen to high music, so sometimes she misses to hear the alarm. Here we would like
to compute the probability of Burglary Alarm.

Problem:

Calculate the probability that alarm has sounded, but there is neither a burglary, nor an
earthquake occurred, and David and Sophia both called the Harry.

Solution:

o The Bayesian network for the above problem is given below. The network structure is
showing that burglary and earthquake is the parent node of the alarm and directly
affecting the probability of alarm's going off, but David and Sophia's calls depend on alarm
probability.
o The network is representing that our assumptions do not directly perceive the burglary
and also do not notice the minor earthquake, and they also not confer before calling.
o The conditional distributions for each node are given as conditional probabilities table or
CPT.
o Each row in the CPT must be sum to 1 because all the entries in the table represent an
exhaustive set of cases for the variable.
o In CPT, a boolean variable with k boolean parents contains 2K probabilities. Hence, if there
are two parents, then CPT will contain 4 probability values

List of all events occurring in this network:

o Burglary (B)
o Earthquake(E)
o Alarm(A)
o David Calls(D)
o Sophia calls(S)
We can write the events of problem statement in the form of probability: P[D, S,
A, B, E], can rewrite the above probability statement using joint probability
distribution:

P[D, S, A, B, E]= P[D | S, A, B, E]. P[S, A, B, E]

=P[D | S, A, B, E]. P[S | A, B, E]. P[A, B, E]

= P [D| A]. P [ S| A, B, E]. P[ A, B, E]

= P[D | A]. P[ S | A]. P[A| B, E]. P[B, E]

= P[D | A ]. P[S | A]. P[A| B, E]. P[B |E]. P[E]

Let's take the observed probability for the Burglary and earthquake component:

P(B= True) = 0.002, which is the probability of burglary.

P(B= False)= 0.998, which is the probability of no burglary.

P(E= True)= 0.001, which is the probability of a minor earthquake

P(E= False)= 0.999, Which is the probability that an earthquake not occurred.

We can provide the conditional probabilities as per the below tables:


Conditional probability table for Alarm A:

The Conditional probability of Alarm A depends on Burglar and earthquake:

B E P(A= True) P(A= False)

True True 0.94 0.06

True False 0.95 0.04

False True 0.31 0.69

False False 0.001 0.999

Conditional probability table for David Calls:

The Conditional probability of David that he will call depends on the probability of
Alarm.

A P(D= True) P(D= False)

True 0.91 0.09

False 0.05 0.95

Conditional probability table for Sophia Calls:

The Conditional probability of Sophia that she calls is depending on its Parent Node
"Alarm."

A P(S= True) P(S= False)

True 0.75 0.25

False 0.02 0.98

From the formula of joint distribution, we can write the problem statement in the form
of probability distribution:

P(S, D, A, ¬B, ¬E) = P (S|A) *P (D|A)*P (A|¬B ^ ¬E) *P (¬B) *P (¬E).

= 0.75* 0.91* 0.001* 0.998*0.999


= 0.00068045.

Hence, a Bayesian network can answer any query about the domain by using
Joint distribution.

The semantics of Bayesian Network:

There are two ways to understand the semantics of the Bayesian network, which is
given below:

1. To understand the network as the representation of the Joint probability distribution.

It is helpful to understand how to construct the network.

2. To understand the network as an encoding of a collection of conditional


independence statements.

It is helpful in designing inference procedure.

You might also like